Daniel Kolesa
58a6895e41
eolian: do not use string for attrs
2014-07-07 15:14:21 +01:00
Daniel Kolesa
a621692fdd
eolian: use eina logging for error messages
2014-07-03 01:48:00 +01:00
Daniel Kolesa
61da74bc42
eolian: print error line with a caret
2014-07-03 00:30:39 +01:00
Daniel Kolesa
08a669f08b
eolian: show column information when matching balanced braces
2014-07-03 00:05:16 +01:00
Daniel Kolesa
7d46c921cb
eolian: column information in error messages
2014-07-02 23:39:44 +01:00
Daniel Kolesa
f12b36e1c1
eolian: some dirty janitoring
2014-07-01 18:25:17 +01:00
Daniel Kolesa
8c44810525
eolian: keep the struct keyword in the regular type name
2014-07-01 18:03:20 +01:00
Daniel Kolesa
0cc319a5b2
eolian: restrict own() for pointers only
2014-07-01 17:55:34 +01:00
Daniel Kolesa
e5e6d8f1f2
eolian: also allow void in @out params
2014-06-30 23:21:36 +01:00
Daniel Kolesa
8d0649ef0b
eolian: remove superfluous macros
2014-06-30 23:17:05 +01:00
Daniel Kolesa
154a407bf2
eolian: allow void return in getter accessors (to force the return to be an out param)
2014-06-30 23:13:04 +01:00
Daniel Kolesa
39aad55991
eolian: support for void as separate type type
2014-06-30 23:07:32 +01:00
Daniel Kolesa
d5f4af5e61
eolian: different syntax for functions (func ret_type (arg_types))
2014-06-30 22:07:13 +01:00
Daniel Kolesa
d2fb3c5cb0
eolian: function type parsing
2014-06-30 21:52:57 +01:00
Daniel Kolesa
c8e2e8d48a
eolian: @own -> own
2014-06-30 18:10:29 +01:00
Daniel Kolesa
7b54a0101c
eolian: new type API
...
This new API supports function pointer types, multiple type subtypes, const attribute without parsing
the name string, own attribute for any partial type and more. This commit also updates the C and C++
generators so that they compile and generate correct code.
@feature
2014-06-30 17:20:39 +01:00
Daniel Kolesa
2bdba6c850
eolian: type -> typedef
2014-06-30 17:20:39 +01:00
Daniel Kolesa
74d0cbf29b
eolian: allow multiple subtypes by reorganizing the type structure - preparation for new API
2014-06-30 17:20:39 +01:00
Daniel Kolesa
4f4eba4fe4
eolian: support for C type translation in eo lexer
2014-06-30 17:20:39 +01:00
Daniel Kolesa
4e79b27977
eolian: handle new type syntax in parser
2014-06-30 17:20:39 +01:00
Daniel Kolesa
7a8ef6d02a
eolian: introducing support for .eot files
...
.eot files are similar to .eo, but they can't contain classes; all .eot files found in include paths
are parsed and information is added into the database. They're there for typedefs and eventually also
enums, structs and constants.
@feature
2014-06-30 17:20:06 +01:00
Daniel Kolesa
18c6f486f6
eolian: process classes and typedefs in order
2014-06-30 17:20:06 +01:00
Daniel Kolesa
0f4bb89492
Revert "eolian: process classes and typedefs in order (preparation for later potential extension)"
...
This reverts commit 7c28de0616
.
2014-06-23 18:44:11 +01:00
Daniel Kolesa
af9b338dee
Revert "eolian: generalized node append"
...
This reverts commit 98d25243aa
.
Reason: accidentally got into master... I'm tired.
2014-06-23 18:43:23 +01:00
Daniel Kolesa
98d25243aa
eolian: generalized node append
2014-06-23 15:38:23 +01:00
Daniel Kolesa
7c28de0616
eolian: process classes and typedefs in order (preparation for later potential extension)
2014-06-23 15:32:17 +01:00
Daniel Kolesa
4dcd45b010
eolian: less code repeating
2014-06-20 15:46:00 +01:00
Daniel Kolesa
efcdfec94f
eolian: more cleanups
2014-06-20 15:31:45 +01:00
Daniel Kolesa
eb3a7cf6d0
eolian: some less repeated code
2014-06-20 15:07:25 +01:00
Daniel Kolesa
15704a7454
eolian: small cleanup
2014-06-20 14:38:57 +01:00
Daniel Kolesa
3acbdaa8c7
eolian: mark all methods/properties in interfaces as virtual by default and disallow everything but class.(con|de)structor in their implements
2014-06-20 12:24:10 +01:00
Daniel Kolesa
ded5623c86
eolian: simplify the parser a bit (unify 3 funcs into one)
2014-06-20 11:33:25 +01:00
Daniel Kolesa
e9f4890747
eolian: fix end-of-file checking, move namespaces from :: to .
2014-06-20 10:46:04 +01:00
Daniel Kolesa
ee24425ab5
eolian: remove semicolon termination of classes
2014-06-20 00:01:56 +01:00
Daniel Kolesa
fc72ca590d
eolian: allow omitting of () in class with no inherits, fix up tests
2014-06-19 16:30:18 +01:00
Daniel Kolesa
78c1e92722
eolian: stricten the allowed characters in values, and values starting with @ must be keywords - we no longer need all the arbitrary characters beacuse of lex_balanced and lex_until
2014-06-19 16:04:08 +01:00
Daniel Kolesa
ee053aa840
eolian: fix double free
2014-06-19 16:04:08 +01:00
Daniel Kolesa
9c2fcf5d4e
eolian: lex_until and lex_balanced
2014-06-19 16:04:08 +01:00
Daniel Kolesa
74181192ad
eolian: fix error handling and memory leaks
2014-06-19 16:04:08 +01:00
Daniel Kolesa
07dcaadb97
eolian: simpler type parsing
2014-06-19 16:04:08 +01:00
Daniel Kolesa
b39b37d732
eolian: cleanup
2014-06-19 16:04:08 +01:00
Daniel Kolesa
9d48e256dc
eolian: remove the ugly old type extractor, instead build the inlist during parsing
2014-06-19 16:04:08 +01:00
Daniel Kolesa
3c621045cd
eolian: complex non-pointer types
2014-06-19 16:04:08 +01:00
Daniel Kolesa
9b833f1dbd
eolian: introducing a new lexer/parser
...
This handwritten lexer/parser is more strict and cleaner than the previous Ragel based one,
as well as faster and doesn't leak memory (or shouldn't). It's a recursive descent style
parser with separate lexer part (unlike the previous effort) which is run at the same
stage as the parser (so it doesn't pre-lex).
@feature
2014-06-19 16:04:08 +01:00