Commit Graph

145 Commits

Author SHA1 Message Date
Daniel Kolesa 84451db638 eolian: have eolian_all_classes_list_get instead of eolian_class_names_list_get 2014-07-03 22:12:31 +01:00
Daniel Kolesa 8c80b1a7f4 eolian: rename the log domain 2014-07-03 01:50:47 +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 8d902a4820 eolian: keep track of column better 2014-07-03 00:14:28 +01:00
Daniel Kolesa 55e5e71593 eolian: use eina API 2014-07-03 00:05:16 +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 e84275cc37 eolian: make tests pass 2014-06-30 17:20:39 +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 70347cb7d7 eolian: preparation for new type API 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 275103e1b0 eolian/lexer: new keyword (func) plus new token (->) - for function pointer types 2014-06-30 17:20:39 +01:00
Daniel Kolesa ec057a089a eolian: builtin fixed size integer types, floating point types and void 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 c0576cee73 eolian: new API: eolian_function_full_c_name_get - reduces duplication of code 2014-06-30 17:20:06 +01:00
Daniel Kolesa 1674d967d2 eolian: free the iterator 2014-06-30 17:20:06 +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 4ef61a1c29 eolian: fix a few casts 2014-06-19 17:28:19 +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