Commit Graph

35 Commits

Author SHA1 Message Date
Daniel Kolesa 831ade54fa eolian: also make time_t a builtin 2014-07-14 17:02:58 +01:00
Daniel Kolesa 3be0dce99d eolian: builtin types size, ssize, intptr, uintptr, ptrdiff 2014-07-14 16:51:38 +01:00
Daniel Kolesa f510b6de72 eolian: schar and uchar are now called byte and ubyte, char stays
Here, 'char' represents an actual character and is meant to be treated as so by generators.
The byte types represent a numerical value and should be treated numerically.
2014-07-14 16:25:26 +01:00
Daniel Kolesa c9744596de eolian: builtin bool type, and change the eo files to use that 2014-07-11 14:40:49 +01:00
Daniel Kolesa 7b9438e76e eolian: refactoring: remove Eo_Type_Def 2014-07-10 15:10:24 +01:00
Daniel Kolesa a03bef4734 eolian: get rid of Eo_Type_Def 2014-07-10 14:44:17 +01:00
Daniel Kolesa 6bd0e0ab7f eolian: better struct support including an API for by-name lookup 2014-07-08 16:42:33 +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 7d46c921cb eolian: column information in error messages 2014-07-02 23:39:44 +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 c8e2e8d48a eolian: @own -> own 2014-06-30 18:10:29 +01:00
Daniel Kolesa 2bdba6c850 eolian: type -> typedef 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 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 efcdfec94f eolian: more cleanups 2014-06-20 15:31:45 +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 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 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
Daniel Kolesa 2056b99e85 eolian: add some stuff into eo_definitions needed for the new parser and temporarily adjust the lexer for it 2014-06-19 16:04:08 +01:00
Daniel Kolesa 44afa93503 eolian: Eo_Tokenizer -> Eo_Lexer 2014-06-19 16:04:07 +01:00
Daniel Zaoui e4444d2518 Eolian: add support for typedefs.
It includes parser updates, database fill and tests on basic and complex
types.

One can define types in this way:
type Evas_Coord: int; /* Simple type definition */
type List_Objects: Eina_List * <Eo *>;

@feature
2014-05-26 13:56:05 +03:00
Daniel Zaoui 87776ff0fa Eolian: add support for functions scope.
This patch adds support for protected functions.

In the .eo file, the scope (public by default) has to be added before
the function name e.g:
protected foo ...

To access the protected APIs, #define (CLASS)_PROTECTED is needed e.g:
 #define ELM_BUTTON_PROTECTED
2014-04-10 05:55:16 +03:00
Daniel Zaoui 9b0a502562 Eolian/Lexer: increase buffer length for .eo files
@fix
2014-03-19 07:04:28 +02:00
Daniel Zaoui 5ae7cc962f Eolian: Format changes
- Support keys/values for properties instead of params
- Direction for parameters syntax changed from in to @in...
- obj:const changed to const in .eo
2014-03-03 14:09:55 +02:00
Daniel Zaoui 2f34bcac4b Eolian/Lexer: support of class types.
Now, .eo format has to supply the class type class, abstract, mixin or
interface.

Example: class Elm_Button {...
2014-03-03 14:09:55 +02:00
Daniel Zaoui 8de58b9757 Eolian/Lexer: rename signals to events. 2014-03-03 14:09:54 +02:00
Daniel Zaoui 5dea8ee0a8 Eolian: first import.
Imported by Tom, from the eolian repo which was written by:
Daniel Zaoui <daniel.zaoui@samsung.com>
Yakov Goldberg <yakov.g@samsung.com>
Yossi Kantor <yossi.kantor@samsung.com>
Savio Sena <savio@expertisesolutions.com.br>
Jérémy Zurcher <jeremy@asynk.ch>

Signed-off-by: Tom Hacohen <tom@stosb.com>
2014-03-03 14:09:53 +02:00