From 4e33fd16e2e819eb8d0db828b66cf5a0889b2581 Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Mon, 10 Mar 2014 11:52:46 +0200 Subject: [PATCH] Eolian: add support of eo_prefix and data. You can add in the .eo file the eo_prefix:... and data:... in case you want to override respectively the Eo prefix and the data type. If "data: null" is used, no data type will be added. --- src/bin/eolian/common_funcs.c | 53 +- src/bin/eolian/common_funcs.h | 3 + src/bin/eolian/eo1_generator.c | 93 +- src/bin/eolian/legacy_generator.c | 16 +- src/lib/eolian/Eolian.h | 21 + src/lib/eolian/eo_definitions.c | 4 + src/lib/eolian/eo_definitions.h | 2 + src/lib/eolian/eo_lexer.c | 2606 +++++++++++++------------ src/lib/eolian/eo_lexer.rl | 28 + src/lib/eolian/eolian_database.c | 48 + src/lib/eolian/eolian_database.h | 8 + src/lib/evas/canvas/evas_line.eo | 1 + src/lib/evas/canvas/evas_object.eo | 1 + src/lib/evas/canvas/evas_polygon.eo | 1 + src/lib/evas/canvas/evas_rectangle.eo | 1 + src/lib/evas/canvas/evas_text.eo | 1 + src/lib/evas/canvas/evas_textblock.eo | 1 + src/lib/evas/canvas/evas_textgrid.eo | 1 + 18 files changed, 1593 insertions(+), 1296 deletions(-) diff --git a/src/bin/eolian/common_funcs.c b/src/bin/eolian/common_funcs.c index e98a02b009..b3e9703bd8 100644 --- a/src/bin/eolian/common_funcs.c +++ b/src/bin/eolian/common_funcs.c @@ -1,7 +1,28 @@ #include "common_funcs.h" +#include "Eolian.h" int _eolian_gen_log_dom = -1; +const char *current_classname = NULL; + +static void +_class_names_fill(const char *classname) +{ + char *p; + const char *eo_prefix = NULL; + if (classname == current_classname) return; + current_classname = classname; + if (eolian_class_exists(classname)) + eo_prefix = eolian_class_eo_prefix_get(classname); + if (!eo_prefix) eo_prefix = classname; + strncpy(current_eo_prefix_lower, eo_prefix, sizeof(current_eo_prefix_lower) - 1); + p = current_eo_prefix_lower; + eina_str_tolower(&p); + strncpy(current_eo_prefix_upper, eo_prefix, sizeof(current_eo_prefix_lower) - 1); + p = current_eo_prefix_upper; + eina_str_toupper(&p); +} + void _template_fill(Eina_Strbuf *buf, const char* templ, const char* classname, const char *funcname, Eina_Bool reset) { @@ -11,12 +32,15 @@ _template_fill(Eina_Strbuf *buf, const char* templ, const char* classname, const static char lowclass[0xFF]; static char normclass[0xFF]; static char capfunc[0xFF]; - static char eoprefix[0xFF]; char *p; - if (reset) eina_strbuf_reset(buf); - if (templ) eina_strbuf_append(buf, templ); + _class_names_fill(classname); + if (buf) + { + if (reset) eina_strbuf_reset(buf); + if (templ) eina_strbuf_append(buf, templ); + } if (strcmp(classname, normclass)) { @@ -54,25 +78,22 @@ _template_fill(Eina_Strbuf *buf, const char* templ, const char* classname, const p = lowobjclass; eina_str_tolower(&p); - strncpy(eoprefix, lowobjclass, sizeof(eoprefix) - 1); - - if (!strcmp(classname, "Elm_Widget")) - strncpy(eoprefix, "elm_wdg", sizeof(eoprefix) - 1); - eina_strbuf_free(classobj); } if (funcname) strncpy(capfunc, funcname, sizeof(capfunc) - 1); p = capfunc; eina_str_toupper(&p); - if (funcname) eina_strbuf_replace_all(buf, "@#func", funcname); - eina_strbuf_replace_all(buf, "@#FUNC", capfunc); - eina_strbuf_replace_all(buf, "@#Class", classname); - eina_strbuf_replace_all(buf, "@#class", lowclass); - eina_strbuf_replace_all(buf, "@#CLASS", capclass); - eina_strbuf_replace_all(buf, "@#OBJCLASS", capobjclass); - eina_strbuf_replace_all(buf, "@#objclass", lowobjclass); - eina_strbuf_replace_all(buf, "@#eoprefix", eoprefix); + if (buf) + { + if (funcname) eina_strbuf_replace_all(buf, "@#func", funcname); + eina_strbuf_replace_all(buf, "@#FUNC", capfunc); + eina_strbuf_replace_all(buf, "@#Class", classname); + eina_strbuf_replace_all(buf, "@#class", lowclass); + eina_strbuf_replace_all(buf, "@#CLASS", capclass); + eina_strbuf_replace_all(buf, "@#OBJCLASS", capobjclass); + eina_strbuf_replace_all(buf, "@#objclass", lowobjclass); + } } char* diff --git a/src/bin/eolian/common_funcs.h b/src/bin/eolian/common_funcs.h index 092533079d..922cb2ab0b 100644 --- a/src/bin/eolian/common_funcs.h +++ b/src/bin/eolian/common_funcs.h @@ -38,4 +38,7 @@ char *_startline(char *str, char *pos); char *_source_desc_get(const char *str); +char current_eo_prefix_lower[256]; + +char current_eo_prefix_upper[256]; #endif diff --git a/src/bin/eolian/eo1_generator.c b/src/bin/eolian/eo1_generator.c index 6938ee294d..f0075b615d 100644 --- a/src/bin/eolian/eo1_generator.c +++ b/src/bin/eolian/eo1_generator.c @@ -8,7 +8,7 @@ static const char tmpl_eo_src_begin[] = "\ \n\ -EAPI Eo_Op @#OBJCLASS_BASE_ID = EO_NOOP;\n\ +EAPI Eo_Op @#EOPREFIX_BASE_ID = EO_NOOP;\n\ \n\ @#list_events\n\ \n\ @@ -51,58 +51,58 @@ static const Eo_Class_Description _@#class_class_desc = {\n\ EO_VERSION,\n\ \"@#Class\",\n\ @#type_class,\n\ - EO_CLASS_DESCRIPTION_OPS(&@#OBJCLASS_BASE_ID, _@#class_op_desc, @#OBJCLASS_SUB_ID_LAST),\n\ + EO_CLASS_DESCRIPTION_OPS(&@#EOPREFIX_BASE_ID, _@#class_op_desc, @#EOPREFIX_SUB_ID_LAST),\n\ _@#class_event_desc,\n\ - sizeof(@#Class_Data),\n\ + @#SizeOfData,\n\ _gen_@#class_class_constructor,\n\ @#dtor_name\n\ };\n\ \n\ -EO_DEFINE_CLASS(@#objclass_class_get, &_@#class_class_desc, @#list_inheritNULL);\ +EO_DEFINE_CLASS(@#eoprefix_class_get, &_@#class_class_desc, @#list_inheritNULL);\ "; static const char -tmpl_eo_op_desc[] = "\n EO_OP_DESCRIPTION(@#OBJCLASS_SUB_ID_@#FUNC, \"@#desc\"),"; +tmpl_eo_op_desc[] = "\n EO_OP_DESCRIPTION(@#EOPREFIX_SUB_ID_@#FUNC, \"@#desc\"),"; static const char -tmpl_eo_func_desc[] = "\n EO_OP_FUNC(@#OBJCLASS_ID(@#OBJCLASS_SUB_ID_@#FUNC), _eo_obj_@#class_@#func),"; +tmpl_eo_func_desc[] = "\n EO_OP_FUNC(@#EOPREFIX_ID(@#EOPREFIX_SUB_ID_@#FUNC), _eo_obj_@#class_@#func),"; static const char tmpl_eobase_func_desc[] = "\n EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_@#FUNC), _eo_obj_@#class_@#func),"; static const char -tmpl_eo_header[] = "\ -#define @#OBJCLASS_CLASS @#objclass_class_get()\n\ +tmpl_eo_obj_header[] = "\ +#define @#EOPREFIX_CLASS @#eoprefix_class_get()\n\ \n\ -const Eo_Class *@#objclass_class_get(void) EINA_CONST;\n\ +const Eo_Class *@#eoprefix_class_get(void) EINA_CONST;\n\ \n\ -extern EAPI Eo_Op @#OBJCLASS_BASE_ID;\n\ +extern EAPI Eo_Op @#EOPREFIX_BASE_ID;\n\ \n\ enum\n\ {@#list_subid\n\ - @#OBJCLASS_SUB_ID_LAST\n\ + @#EOPREFIX_SUB_ID_LAST\n\ };\n\ \n\ -#define @#OBJCLASS_ID(sub_id) (@#OBJCLASS_BASE_ID + sub_id)\n\ +#define @#EOPREFIX_ID(sub_id) (@#EOPREFIX_BASE_ID + sub_id)\n\ "; static const char -tmpl_eo_subid[] = "\n @#OBJCLASS_SUB_ID_@#FUNC,"; +tmpl_eo_subid[] = "\n @#EOPREFIX_SUB_ID_@#FUNC,"; static const char -tmpl_eo_subid_apnd[] = " @#OBJCLASS_SUB_ID_@#FUNC,\n"; +tmpl_eo_subid_apnd[] = " @#EOPREFIX_SUB_ID_@#FUNC,\n"; static const char tmpl_eo_funcdef[] = "\n\ /**\n\ - * @def @#objclass_@#func\n\ + * @def @#eoprefix_@#func\n\ *\n\ @#desc\n\ *\n\ @#list_desc_param\ *\n\ */\n\ -#define @#eoprefix_@#func(@#list_param) @#OBJCLASS_ID(@#OBJCLASS_SUB_ID_@#FUNC)@#list_typecheck\n\ +#define @#eoprefix_@#func(@#list_param) @#EOPREFIX_ID(@#EOPREFIX_SUB_ID_@#FUNC)@#list_typecheck\n\ "; static const char @@ -135,6 +135,7 @@ eo1_fundef_generate(const char *classname, Eolian_Function func, Eolian_Function void *data; char funcname[0xFF]; char descname[0xFF]; + char *tmpstr = malloc(0x1FF); char *fsuffix = ""; if (ftype == GET) fsuffix = "_get"; @@ -147,6 +148,9 @@ eo1_fundef_generate(const char *classname, Eolian_Function func, Eolian_Function Eina_Strbuf *str_func = eina_strbuf_new(); _template_fill(str_func, tmpl_eo_funcdef, classname, funcname, EINA_TRUE); + eina_strbuf_replace_all(str_func, "@#EOPREFIX", current_eo_prefix_upper); + eina_strbuf_replace_all(str_func, "@#eoprefix", current_eo_prefix_lower); + Eina_Strbuf *linedesc = eina_strbuf_new(); eina_strbuf_append(linedesc, funcdesc ? funcdesc : "No description supplied."); if (eina_strbuf_length_get(linedesc)) @@ -223,6 +227,7 @@ eo1_fundef_generate(const char *classname, Eolian_Function func, Eolian_Function eina_strbuf_replace_all(str_func, "@#list_desc_param", eina_strbuf_string_get(str_pardesc)); eina_strbuf_replace_all(str_func, "@#list_typecheck", eina_strbuf_string_get(str_typecheck)); + free(tmpstr); eina_strbuf_free(str_par); eina_strbuf_free(str_pardesc); eina_strbuf_free(str_typecheck); @@ -239,7 +244,7 @@ eo1_header_generate(const char *classname, Eina_Strbuf *buf) const Eolian_Function_Type ftype_order[] = {CONSTRUCTOR, PROPERTY_FUNC, METHOD_FUNC}; const Eina_List *l; void *data; - char tmpstr[0x1FF]; + char *tmpstr = malloc(0x1FF); if (!eolian_class_exists(classname)) { @@ -248,7 +253,10 @@ eo1_header_generate(const char *classname, Eina_Strbuf *buf) } Eina_Strbuf * str_hdr = eina_strbuf_new(); - _template_fill(str_hdr, tmpl_eo_header, classname, "", EINA_TRUE); + _template_fill(str_hdr, tmpl_eo_obj_header, classname, "", EINA_TRUE); + + eina_strbuf_replace_all(str_hdr, "@#EOPREFIX", current_eo_prefix_upper); + eina_strbuf_replace_all(str_hdr, "@#eoprefix", current_eo_prefix_lower); Eina_Strbuf *str_subid = eina_strbuf_new(); Eina_Strbuf *str_ev = eina_strbuf_new(); @@ -300,6 +308,7 @@ eo1_header_generate(const char *classname, Eina_Strbuf *buf) _template_fill(str_subid, tmpl_eo_subid, classname, tmpstr, EINA_FALSE); eo1_fundef_generate(classname, (Eolian_Function)data, GET, str_hdr); } + eina_strbuf_replace_all(str_subid, "@#EOPREFIX", current_eo_prefix_upper); } eina_strbuf_replace_all(str_hdr, "@#list_subid", eina_strbuf_string_get(str_subid)); @@ -307,6 +316,7 @@ eo1_header_generate(const char *classname, Eina_Strbuf *buf) eina_strbuf_append(buf, eina_strbuf_string_get(str_hdr)); + free(tmpstr); eina_strbuf_free(str_subid); eina_strbuf_free(str_ev); eina_strbuf_free(tmpbuf); @@ -442,7 +452,19 @@ eo1_bind_func_generate(const char *classname, Eolian_Function funcid, Eolian_Fun eina_strbuf_replace_all(fbody, "@#list_vars", eina_strbuf_string_get(va_args)); eina_strbuf_replace_all(fbody, "@#full_params", eina_strbuf_string_get(full_params)); eina_strbuf_replace_all(fbody, "@#list_params", eina_strbuf_string_get(params)); - eina_strbuf_replace_all(fbody, "@#Datatype", classname); + const char *data_type = eolian_class_data_type_get(classname); + if (data_type && !strcmp(data_type, "null")) + eina_strbuf_replace_all(fbody, "@#Datatype_Data", "void *"); + else + { + if (data_type) eina_strbuf_replace_all(fbody, "@#Datatype_Data", data_type); + else eina_strbuf_replace_all(fbody, "@#Datatype", classname); + } + + if (!data_type || !strcmp(data_type, "null")) + eina_strbuf_replace_all(fbody, "@#Datatype", classname); + else + eina_strbuf_replace_all(fbody, "@#Datatype_Data", data_type); eina_strbuf_append(buf, eina_strbuf_string_get(fbody)); eina_strbuf_free(va_args); @@ -456,6 +478,7 @@ Eina_Bool eo1_eo_func_desc_generate(const char *classname, const char *funcname, Eina_Strbuf *buf) { _template_fill(buf, tmpl_eo_func_desc, classname, funcname, EINA_TRUE); + eina_strbuf_replace_all(buf, "@#EOPREFIX", current_eo_prefix_upper); return EINA_TRUE; } @@ -463,6 +486,8 @@ Eina_Bool eo1_eo_op_desc_generate(const char *classname, const char *funcname, Eina_Strbuf *buf) { _template_fill(buf, tmpl_eo_op_desc, classname, funcname, EINA_TRUE); + eina_strbuf_replace_all(buf, "@#EOPREFIX", current_eo_prefix_upper); + return EINA_TRUE; } @@ -476,6 +501,7 @@ eo1_source_beginning_generate(const char *classname, Eina_Strbuf *buf) Eina_Strbuf *str_ev = eina_strbuf_new(); _template_fill(str_begin, tmpl_eo_src_begin, classname, "", EINA_TRUE); + eina_strbuf_replace_all(str_begin, "@#EOPREFIX", current_eo_prefix_upper); Eolian_Event event; EINA_LIST_FOREACH(eolian_class_events_list_get(classname), itr, event) @@ -547,6 +573,8 @@ eo1_source_end_generate(const char *classname, Eina_Strbuf *buf) _template_fill(str_end, tmpl_eo_src_end, classname, "", EINA_TRUE); eina_strbuf_replace_all(str_end, "@#type_class", str_classtype); + eina_strbuf_replace_all(str_end, "@#EOPREFIX", current_eo_prefix_upper); + eina_strbuf_replace_all(str_end, "@#eoprefix", current_eo_prefix_lower); if (eolian_class_dtor_enable_get(classname)) { @@ -592,7 +620,9 @@ eo1_source_end_generate(const char *classname, Eina_Strbuf *buf) eolian_implement_information_get(impl_desc, &impl_class, &funcname, &ftype); eina_strbuf_reset(tmpl_impl); + _template_fill(str_func, NULL, impl_class, NULL, EINA_FALSE); /* Invoked to set the variables */ eina_strbuf_append(tmpl_impl, tmpl_eo_func_desc); + eina_strbuf_replace_all(tmpl_impl, "@#EOPREFIX", current_eo_prefix_upper); char implname[0xFF]; char *tp = implname; @@ -657,12 +687,15 @@ eo1_source_end_generate(const char *classname, Eina_Strbuf *buf) char *desc = _source_desc_get(eolian_function_description_get(fn, "comment")); _template_fill(tmpbuf, tmpl_eo_op_desc, classname, funcname, EINA_TRUE); + eina_strbuf_replace_all(tmpbuf, "@#EOPREFIX", current_eo_prefix_upper); + eina_strbuf_replace_all(tmpbuf, "@#desc", desc); free(desc); eina_strbuf_append(str_op, eina_strbuf_string_get(tmpbuf)); _template_fill(str_func, tmpl_eo_func_desc, classname, funcname, EINA_FALSE); + eina_strbuf_replace_all(str_func, "@#EOPREFIX", current_eo_prefix_upper); eo1_bind_func_generate(classname, fn, UNRESOLVED, str_bodyf, NULL); } @@ -744,21 +777,29 @@ eo1_source_end_generate(const char *classname, Eina_Strbuf *buf) eina_strbuf_reset(tmpbuf); EINA_LIST_FOREACH(eolian_class_inherits_list_get(classname), itr, inherit_name) { - if (!strcmp(inherit_name, "Elm_Widget")) - eina_strbuf_append(tmpbuf, "ELM_OBJ_WIDGET_CLASS, "); - else if (!strcmp(inherit_name, "Elm_Interface_Scrollable")) - eina_strbuf_append(tmpbuf, "ELM_SCROLLABLE_INTERFACE, "); - else - _template_fill(tmpbuf, "@#OBJCLASS_CLASS, ", inherit_name, "", EINA_FALSE); + _template_fill(tmpbuf, "@#EOPREFIX_CLASS, ", inherit_name, "", EINA_FALSE); + eina_strbuf_replace_all(tmpbuf, "@#EOPREFIX", current_eo_prefix_upper); } - if (eina_strbuf_length_get(tmpbuf) == 0) eina_strbuf_append(tmpbuf,"EO_BASE_CLASS, "); + if (eina_strbuf_length_get(tmpbuf) == 0) eina_strbuf_append(tmpbuf, "NULL, "); eina_strbuf_replace_all(str_end, "@#list_inherit", eina_strbuf_string_get(tmpbuf)); eina_strbuf_replace_all(str_end, "@#list_func", eina_strbuf_string_get(str_func)); eina_strbuf_replace_all(str_end, "@#list_op", eina_strbuf_string_get(str_op)); eina_strbuf_replace_all(str_end, "@#list_ctors_body", eina_strbuf_string_get(str_bodyf)); + const char *data_type = eolian_class_data_type_get(classname); + if (data_type && !strcmp(data_type, "null")) + eina_strbuf_replace_all(str_end, "@#SizeOfData", "0"); + else + { + Eina_Strbuf *sizeofbuf = eina_strbuf_new(); + eina_strbuf_append_printf(sizeofbuf, "sizeof(%s%s)", + data_type?data_type:classname, + data_type?"":"_Data"); + eina_strbuf_replace_all(str_end, "@#SizeOfData", eina_strbuf_string_get(sizeofbuf)); + eina_strbuf_free(sizeofbuf); + } eina_strbuf_append(buf, eina_strbuf_string_get(str_end)); ret = EINA_TRUE; diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index d219ab1f3b..f7b236333e 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -234,18 +234,25 @@ _eapi_func_generate(const char *classname, Eolian_Function funcid, Eolian_Functi } func_lpref = (func_lpref) ? func_lpref : eolian_function_data_get(funcid, EOLIAN_LEGACY); + if (func_lpref && !strcmp(func_lpref, "null")) goto end; + _template_fill(fbody, tmpl_eapi_body, classname, NULL, EINA_FALSE); + eina_strbuf_replace_all(fbody, "@#eoprefix", current_eo_prefix_lower); if (func_lpref) eina_strbuf_replace_all(fbody, "@#eapi_prefix_@#func", func_lpref); else { func_lpref = eolian_class_legacy_prefix_get(classname); - eina_strbuf_replace_all(fbody, "@#eapi_prefix", func_lpref); - strncpy(tmpstr, classname, sizeof(tmpstr) - 1); - char *p = tmpstr; - eina_str_tolower(&p); + if (func_lpref) eina_strbuf_replace_all(fbody, "@#eapi_prefix", func_lpref); + else + { + strncpy(tmpstr, classname, sizeof(tmpstr) - 1); + char *p = tmpstr; + eina_str_tolower(&p); + eina_strbuf_replace_all(fbody, "@#eapi_prefix", tmpstr); + } } sprintf (tmpstr, "%s%s", eolian_function_name_get(funcid), suffix); @@ -308,6 +315,7 @@ _eapi_func_generate(const char *classname, Eolian_Function funcid, Eolian_Functi eina_strbuf_append(buf, eina_strbuf_string_get(fbody)); +end: eina_strbuf_free(fbody); eina_strbuf_free(fparam); eina_strbuf_free(eoparam); diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 2152038855..b98c340f84 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -217,6 +217,27 @@ EAPI const char *eolian_class_description_get(const char *class_name); */ EAPI const char *eolian_class_legacy_prefix_get(const char *class_name); +/* + * @brief Returns the eo prefix of a class + * + * @param[in] class_name name of the class + * @return the eo prefix + * + * @ingroup Eolian + */ +EAPI const char* eolian_class_eo_prefix_get(const char *class_name); + +/* + * @brief Returns the data type of a class + * + * @param[in] class_name name of the class + * @return the data type + * + * @ingroup Eolian + */ +EAPI const char* +eolian_class_data_type_get(const char *class_name); + /* * @brief Returns the names list of the inherit classes of a class * diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c index db55b87935..6d1996a31e 100644 --- a/src/lib/eolian/eo_definitions.c +++ b/src/lib/eolian/eo_definitions.c @@ -125,6 +125,10 @@ eo_definitions_class_def_free(Eo_Class_Def *kls) eina_stringshare_del(kls->comment); if (kls->legacy_prefix) eina_stringshare_del(kls->legacy_prefix); + if (kls->eo_prefix) + eina_stringshare_del(kls->eo_prefix); + if (kls->data_type) + eina_stringshare_del(kls->data_type); EINA_LIST_FOREACH(kls->inherits, l, s) if (s) eina_stringshare_del(s); diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index 022fdfcbc6..f101679e03 100644 --- a/src/lib/eolian/eo_definitions.h +++ b/src/lib/eolian/eo_definitions.h @@ -125,6 +125,8 @@ typedef struct _eo_class_def Eolian_Class_Type type; const char *comment; const char *legacy_prefix; + const char *eo_prefix; + const char *data_type; Eina_List *inherits; Eina_List *implements; Eina_List *events; diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index d7fce74bb2..5e5b2564ec 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -297,8 +297,8 @@ static const char _eo_tokenizer_actions[] = { 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, - 38, 1, 39, 1, 40, 1, 43, 1, - 44, 1, 45, 1, 46, 1, 47, 1, + 38, 1, 39, 1, 40, 1, 41, 1, + 42, 1, 45, 1, 46, 1, 47, 1, 48, 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 1, 59, 1, @@ -307,7 +307,7 @@ static const char _eo_tokenizer_actions[] = { 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 1, 79, 1, - 80, 1, 81, 1, 84, 1, 85, 1, + 80, 1, 81, 1, 82, 1, 83, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, 94, 1, 95, 1, 96, 1, 97, 1, @@ -317,22 +317,23 @@ static const char _eo_tokenizer_actions[] = { 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, 1, 120, 1, 121, 1, - 122, 2, 0, 40, 2, 0, 51, 2, - 0, 60, 2, 0, 71, 2, 0, 80, - 2, 0, 92, 2, 0, 101, 2, 0, - 117, 2, 4, 46, 2, 6, 41, 2, - 7, 2, 2, 8, 42, 2, 9, 55, - 2, 11, 0, 2, 11, 72, 2, 13, - 87, 2, 15, 82, 2, 16, 83, 2, - 17, 0, 2, 17, 93, 2, 18, 0, - 2, 19, 0, 2, 19, 118, 2, 20, + 122, 1, 123, 1, 124, 1, 125, 1, + 126, 2, 0, 42, 2, 0, 53, 2, + 0, 62, 2, 0, 73, 2, 0, 82, + 2, 0, 94, 2, 0, 103, 2, 0, + 121, 2, 4, 48, 2, 6, 43, 2, + 7, 2, 2, 8, 44, 2, 9, 57, + 2, 11, 0, 2, 11, 74, 2, 13, + 89, 2, 15, 84, 2, 16, 85, 2, + 17, 0, 2, 17, 95, 2, 18, 0, + 2, 19, 0, 2, 19, 122, 2, 20, 0, 2, 21, 0, 2, 21, 2, 2, - 23, 0, 2, 24, 0, 2, 24, 2, - 2, 25, 0, 2, 27, 0, 2, 28, - 0, 2, 28, 2, 2, 35, 0, 2, - 35, 118, 2, 38, 1, 2, 38, 2, - 2, 38, 3, 2, 38, 5, 2, 38, - 10, 2, 38, 12, 2, 38, 14 + 25, 0, 2, 26, 0, 2, 26, 2, + 2, 27, 0, 2, 29, 0, 2, 30, + 0, 2, 30, 2, 2, 37, 0, 2, + 37, 122, 2, 40, 1, 2, 40, 2, + 2, 40, 3, 2, 40, 5, 2, 40, + 10, 2, 40, 12, 2, 40, 14 }; static const short _eo_tokenizer_key_offsets[] = { @@ -359,30 +360,33 @@ static const short _eo_tokenizer_key_offsets[] = { 614, 615, 616, 617, 619, 622, 623, 634, 638, 641, 643, 646, 657, 659, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 672, 673, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 690, 691, 692, 693, - 694, 698, 706, 714, 726, 730, 742, 743, - 744, 754, 756, 759, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 779, 787, 795, - 808, 813, 817, 818, 819, 820, 821, 822, - 834, 839, 843, 852, 856, 857, 858, 859, - 860, 861, 865, 874, 881, 888, 899, 903, - 917, 927, 934, 946, 951, 957, 962, 963, - 964, 965, 966, 967, 970, 977, 984, 992, - 993, 997, 1004, 1012, 1016, 1021, 1022, 1023, - 1033, 1035, 1038, 1048, 1060, 1067, 1079, 1080, - 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, - 1089, 1090, 1091, 1095, 1102, 1109, 1117, 1118, - 1119, 1120, 1121, 1122, 1126, 1127, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1138, 1146, 1149, - 1151, 1152, 1153, 1154, 1155, 1166, 1169, 1171, - 1178, 1186, 1194, 1198, 1198, 1199, 1208, 1211, - 1213, 1224, 1228, 1228, 1229, 1238, 1241, 1243, - 1244, 1245, 1246, 1247, 1248, 1257, 1260, 1262, - 1269, 1270, 1279, 1282, 1284, 1285, 1286, 1287, - 1288, 1292, 1292, 1293, 1302, 1305, 1307, 1314, - 1315, 1327, 1330, 1332, 1333, 1334, 1335, 1336, - 1337, 1338, 1339, 1342, 1343, 1344 + 672, 673, 677, 678, 679, 683, 690, 697, + 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 718, 719, 720, 721, 722, 723, + 724, 725, 729, 736, 743, 751, 752, 753, + 754, 755, 759, 767, 775, 787, 791, 803, + 804, 805, 815, 817, 820, 828, 829, 830, + 831, 832, 833, 834, 835, 836, 840, 848, + 856, 869, 874, 878, 879, 880, 881, 882, + 883, 895, 900, 904, 913, 917, 918, 919, + 920, 921, 922, 926, 935, 942, 949, 960, + 964, 978, 988, 995, 1007, 1012, 1018, 1023, + 1024, 1025, 1026, 1027, 1028, 1031, 1038, 1045, + 1053, 1054, 1058, 1065, 1073, 1077, 1082, 1083, + 1084, 1094, 1096, 1099, 1109, 1121, 1128, 1140, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, + 1149, 1150, 1151, 1152, 1156, 1163, 1170, 1178, + 1179, 1180, 1181, 1182, 1183, 1187, 1188, 1189, + 1190, 1191, 1192, 1193, 1194, 1195, 1199, 1207, + 1210, 1212, 1213, 1214, 1215, 1216, 1227, 1230, + 1232, 1239, 1247, 1255, 1259, 1259, 1260, 1269, + 1272, 1274, 1285, 1289, 1289, 1290, 1299, 1302, + 1304, 1305, 1306, 1307, 1308, 1309, 1318, 1321, + 1323, 1330, 1331, 1340, 1343, 1345, 1346, 1347, + 1348, 1349, 1353, 1353, 1354, 1363, 1366, 1368, + 1375, 1376, 1388, 1391, 1393, 1394, 1396, 1399, + 1401, 1404, 1405, 1406, 1407, 1408, 1411, 1412, + 1413 }; static const char _eo_tokenizer_trans_keys[] = { @@ -470,91 +474,99 @@ static const char _eo_tokenizer_trans_keys[] = { 95, 0, 32, 48, 57, 64, 90, 97, 122, 10, 42, 10, 42, 47, 10, 110, 115, 116, 114, 117, 99, 116, 111, 114, - 115, 10, 123, 0, 32, 115, 116, 114, - 117, 99, 116, 111, 114, 115, 10, 123, - 0, 32, 101, 110, 116, 115, 10, 123, - 0, 32, 10, 125, 0, 32, 65, 90, - 97, 122, 44, 95, 48, 57, 65, 90, - 97, 122, 10, 44, 59, 95, 0, 32, - 48, 57, 65, 90, 97, 122, 10, 59, - 0, 32, 9, 10, 13, 32, 47, 125, - 0, 31, 65, 90, 97, 122, 42, 64, - 10, 95, 0, 32, 48, 57, 64, 90, - 97, 122, 10, 42, 10, 42, 47, 10, - 125, 0, 32, 65, 90, 97, 122, 112, - 108, 101, 109, 101, 110, 116, 115, 10, - 123, 0, 32, 10, 125, 0, 32, 65, - 90, 97, 122, 58, 95, 48, 57, 65, - 90, 97, 122, 10, 58, 59, 95, 123, - 0, 32, 48, 57, 65, 90, 97, 122, - 10, 59, 123, 0, 32, 10, 108, 0, - 32, 101, 103, 97, 99, 121, 9, 10, - 13, 32, 59, 123, 0, 31, 65, 90, - 97, 122, 10, 59, 123, 0, 32, 10, - 125, 0, 32, 10, 59, 125, 0, 32, - 65, 90, 97, 122, 10, 112, 0, 32, - 97, 114, 97, 109, 115, 10, 123, 0, - 32, 10, 58, 59, 0, 32, 65, 90, - 97, 122, 9, 13, 32, 65, 90, 97, - 122, 95, 48, 57, 65, 90, 97, 122, - 10, 59, 95, 0, 32, 48, 57, 65, + 115, 10, 123, 0, 32, 116, 97, 10, + 58, 0, 32, 10, 0, 32, 65, 90, + 97, 122, 95, 48, 57, 65, 90, 97, + 122, 59, 95, 48, 57, 65, 90, 97, + 122, 115, 116, 114, 117, 99, 116, 111, + 114, 115, 10, 123, 0, 32, 95, 112, + 114, 101, 102, 105, 120, 10, 58, 0, + 32, 10, 0, 32, 65, 90, 97, 122, + 95, 48, 57, 65, 90, 97, 122, 59, + 95, 48, 57, 65, 90, 97, 122, 101, + 110, 116, 115, 10, 123, 0, 32, 10, + 125, 0, 32, 65, 90, 97, 122, 44, + 95, 48, 57, 65, 90, 97, 122, 10, + 44, 59, 95, 0, 32, 48, 57, 65, 90, 97, 122, 10, 59, 0, 32, 9, - 10, 13, 32, 47, 58, 59, 125, 0, - 31, 65, 90, 97, 122, 10, 58, 59, - 125, 0, 32, 65, 90, 97, 122, 95, - 48, 57, 65, 90, 97, 122, 9, 13, - 32, 58, 59, 95, 48, 57, 65, 90, - 97, 122, 9, 13, 32, 58, 59, 10, - 59, 114, 125, 0, 32, 10, 114, 125, - 0, 32, 101, 116, 117, 114, 110, 9, - 13, 32, 9, 13, 32, 65, 90, 97, - 122, 95, 48, 57, 65, 90, 97, 122, + 10, 13, 32, 47, 125, 0, 31, 65, + 90, 97, 122, 42, 64, 10, 95, 0, + 32, 48, 57, 64, 90, 97, 122, 10, + 42, 10, 42, 47, 10, 125, 0, 32, + 65, 90, 97, 122, 112, 108, 101, 109, + 101, 110, 116, 115, 10, 123, 0, 32, + 10, 125, 0, 32, 65, 90, 97, 122, 58, 95, 48, 57, 65, 90, 97, 122, - 58, 65, 90, 97, 122, 95, 48, 57, - 65, 90, 97, 122, 59, 95, 48, 57, - 65, 90, 97, 122, 10, 125, 0, 32, - 10, 59, 125, 0, 32, 42, 64, 10, - 95, 0, 32, 48, 57, 64, 90, 97, - 122, 10, 42, 10, 42, 47, 10, 58, - 59, 125, 0, 32, 65, 90, 97, 122, - 9, 10, 13, 32, 59, 123, 0, 31, + 10, 58, 59, 95, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 59, 123, + 0, 32, 10, 108, 0, 32, 101, 103, + 97, 99, 121, 9, 10, 13, 32, 59, + 123, 0, 31, 65, 90, 97, 122, 10, + 59, 123, 0, 32, 10, 125, 0, 32, + 10, 59, 125, 0, 32, 65, 90, 97, + 122, 10, 112, 0, 32, 97, 114, 97, + 109, 115, 10, 123, 0, 32, 10, 58, + 59, 0, 32, 65, 90, 97, 122, 9, + 13, 32, 65, 90, 97, 122, 95, 48, + 57, 65, 90, 97, 122, 10, 59, 95, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 59, 0, 32, 9, 10, 13, 32, + 47, 58, 59, 125, 0, 31, 65, 90, + 97, 122, 10, 58, 59, 125, 0, 32, 65, 90, 97, 122, 95, 48, 57, 65, - 90, 97, 122, 10, 59, 95, 123, 0, - 32, 48, 57, 65, 90, 97, 122, 58, - 103, 97, 99, 121, 95, 112, 114, 101, - 102, 105, 120, 10, 58, 0, 32, 10, - 0, 32, 65, 90, 97, 122, 95, 48, - 57, 65, 90, 97, 122, 59, 95, 48, - 57, 65, 90, 97, 122, 116, 104, 111, - 100, 115, 10, 123, 0, 32, 111, 112, - 101, 114, 116, 105, 101, 115, 10, 123, - 0, 32, 10, 47, 97, 99, 105, 109, - 0, 32, 10, 0, 32, 42, 47, 98, - 108, 110, 105, 10, 47, 108, 114, 125, + 90, 97, 122, 9, 13, 32, 58, 59, + 95, 48, 57, 65, 90, 97, 122, 9, + 13, 32, 58, 59, 10, 59, 114, 125, + 0, 32, 10, 114, 125, 0, 32, 101, + 116, 117, 114, 110, 9, 13, 32, 9, + 13, 32, 65, 90, 97, 122, 95, 48, + 57, 65, 90, 97, 122, 58, 95, 48, + 57, 65, 90, 97, 122, 58, 65, 90, + 97, 122, 95, 48, 57, 65, 90, 97, + 122, 59, 95, 48, 57, 65, 90, 97, + 122, 10, 125, 0, 32, 10, 59, 125, + 0, 32, 42, 64, 10, 95, 0, 32, + 48, 57, 64, 90, 97, 122, 10, 42, + 10, 42, 47, 10, 58, 59, 125, 0, + 32, 65, 90, 97, 122, 9, 10, 13, + 32, 59, 123, 0, 31, 65, 90, 97, + 122, 95, 48, 57, 65, 90, 97, 122, + 10, 59, 95, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 58, 103, 97, 99, + 121, 95, 112, 114, 101, 102, 105, 120, + 10, 58, 0, 32, 10, 0, 32, 65, + 90, 97, 122, 95, 48, 57, 65, 90, + 97, 122, 59, 95, 48, 57, 65, 90, + 97, 122, 116, 104, 111, 100, 115, 10, + 123, 0, 32, 111, 112, 101, 114, 116, + 105, 101, 115, 10, 123, 0, 32, 10, + 47, 97, 99, 105, 109, 0, 32, 10, + 0, 32, 42, 47, 98, 108, 110, 105, + 10, 47, 108, 114, 125, 0, 32, 65, + 90, 97, 122, 10, 0, 32, 42, 47, + 95, 48, 57, 65, 90, 97, 122, 95, + 101, 48, 57, 65, 90, 97, 122, 95, + 101, 48, 57, 65, 90, 97, 122, 9, + 13, 32, 47, 59, 10, 47, 125, 0, + 32, 64, 90, 97, 122, 10, 0, 32, + 42, 47, 9, 13, 32, 42, 95, 48, + 57, 64, 90, 97, 122, 9, 13, 32, + 47, 59, 10, 47, 103, 107, 115, 118, + 125, 0, 32, 10, 0, 32, 42, 47, + 101, 101, 101, 97, 59, 10, 47, 125, 0, 32, 65, 90, 97, 122, 10, 0, 32, 42, 47, 95, 48, 57, 65, 90, - 97, 122, 95, 101, 48, 57, 65, 90, - 97, 122, 95, 101, 48, 57, 65, 90, - 97, 122, 9, 13, 32, 47, 59, 10, - 47, 125, 0, 32, 64, 90, 97, 122, - 10, 0, 32, 42, 47, 9, 13, 32, - 42, 95, 48, 57, 64, 90, 97, 122, - 9, 13, 32, 47, 59, 10, 47, 103, - 107, 115, 118, 125, 0, 32, 10, 0, - 32, 42, 47, 101, 101, 101, 97, 59, - 10, 47, 125, 0, 32, 65, 90, 97, - 122, 10, 0, 32, 42, 47, 95, 48, - 57, 65, 90, 97, 122, 59, 10, 47, - 99, 108, 112, 114, 125, 0, 32, 10, - 0, 32, 42, 47, 111, 101, 97, 101, - 9, 13, 32, 47, 59, 10, 47, 125, - 0, 32, 65, 90, 97, 122, 10, 0, - 32, 42, 47, 95, 48, 57, 65, 90, - 97, 122, 59, 10, 47, 99, 100, 101, - 105, 108, 109, 112, 125, 0, 32, 10, - 0, 32, 42, 47, 111, 101, 118, 59, - 109, 59, 101, 10, 0, 32, 101, 114, - 59, 0 + 97, 122, 59, 10, 47, 99, 108, 112, + 114, 125, 0, 32, 10, 0, 32, 42, + 47, 111, 101, 97, 101, 9, 13, 32, + 47, 59, 10, 47, 125, 0, 32, 65, + 90, 97, 122, 10, 0, 32, 42, 47, + 95, 48, 57, 65, 90, 97, 122, 59, + 10, 47, 99, 100, 101, 105, 108, 109, + 112, 125, 0, 32, 10, 0, 32, 42, + 47, 111, 97, 101, 10, 0, 32, 111, + 118, 10, 0, 32, 59, 109, 59, 101, + 10, 0, 32, 101, 114, 59, 0 }; static const char _eo_tokenizer_single_lengths[] = { @@ -581,30 +593,33 @@ static const char _eo_tokenizer_single_lengths[] = { 1, 1, 1, 2, 3, 1, 3, 2, 3, 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, - 2, 2, 2, 4, 2, 6, 1, 1, - 2, 2, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 5, - 3, 2, 1, 1, 1, 1, 1, 6, - 3, 2, 3, 2, 1, 1, 1, 1, - 1, 2, 3, 3, 1, 3, 2, 8, - 4, 1, 6, 5, 4, 3, 1, 1, - 1, 1, 1, 3, 3, 1, 2, 1, - 0, 1, 2, 2, 3, 1, 1, 2, - 2, 3, 4, 6, 1, 4, 1, 1, + 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 1, 2, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 6, 1, 2, - 1, 1, 1, 1, 5, 1, 2, 1, - 2, 2, 4, 0, 1, 3, 1, 2, - 5, 4, 0, 1, 7, 1, 2, 1, - 1, 1, 1, 1, 3, 1, 2, 1, - 1, 7, 1, 2, 1, 1, 1, 1, - 4, 0, 1, 3, 1, 2, 1, 1, - 10, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1 + 1, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 2, 1, 1, 1, + 1, 2, 2, 2, 4, 2, 6, 1, + 1, 2, 2, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, + 5, 3, 2, 1, 1, 1, 1, 1, + 6, 3, 2, 3, 2, 1, 1, 1, + 1, 1, 2, 3, 3, 1, 3, 2, + 8, 4, 1, 6, 5, 4, 3, 1, + 1, 1, 1, 1, 3, 3, 1, 2, + 1, 0, 1, 2, 2, 3, 1, 1, + 2, 2, 3, 4, 6, 1, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 2, 1, + 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 6, 1, + 2, 1, 1, 1, 1, 5, 1, 2, + 1, 2, 2, 4, 0, 1, 3, 1, + 2, 5, 4, 0, 1, 7, 1, 2, + 1, 1, 1, 1, 1, 3, 1, 2, + 1, 1, 7, 1, 2, 1, 1, 1, + 1, 4, 0, 1, 3, 1, 2, 1, + 1, 10, 1, 2, 1, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, + 1 }; static const char _eo_tokenizer_range_lengths[] = { @@ -631,30 +646,33 @@ static const char _eo_tokenizer_range_lengths[] = { 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, - 1, 3, 3, 4, 1, 3, 0, 0, - 4, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 3, 4, - 1, 1, 0, 0, 0, 0, 0, 3, - 1, 1, 3, 1, 0, 0, 0, 0, - 0, 1, 3, 2, 3, 4, 1, 3, - 3, 3, 3, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 2, 3, 3, 0, - 2, 3, 3, 1, 1, 0, 0, 4, - 0, 0, 3, 3, 3, 4, 0, 0, + 0, 1, 0, 0, 1, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 3, 3, 3, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 3, 3, 3, 0, 0, 0, + 0, 1, 3, 3, 4, 1, 3, 0, + 0, 4, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 3, 3, + 4, 1, 1, 0, 0, 0, 0, 0, + 3, 1, 1, 3, 1, 0, 0, 0, + 0, 0, 1, 3, 2, 3, 4, 1, + 3, 3, 3, 3, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 2, 3, 3, + 0, 2, 3, 3, 1, 1, 0, 0, + 4, 0, 0, 3, 3, 3, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 3, 3, 3, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, + 0, 0, 0, 0, 0, 3, 1, 0, + 3, 3, 3, 0, 0, 0, 3, 1, + 0, 3, 0, 0, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 3, 1, 0, + 3, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 3, - 3, 3, 0, 0, 0, 3, 1, 0, - 3, 0, 0, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 3, 1, 0, 3, - 0, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 1, 0, 3, 0, - 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0 + 0, 1, 1, 0, 0, 0, 1, 0, + 1, 0, 0, 0, 0, 1, 0, 0, + 0 }; static const short _eo_tokenizer_index_offsets[] = { @@ -681,30 +699,33 @@ static const short _eo_tokenizer_index_offsets[] = { 644, 646, 648, 650, 653, 657, 659, 667, 671, 675, 678, 682, 690, 693, 697, 699, 701, 703, 705, 707, 709, 711, 713, 715, - 717, 719, 723, 725, 727, 729, 731, 733, - 735, 737, 739, 741, 745, 747, 749, 751, - 753, 757, 763, 769, 778, 782, 792, 794, - 796, 803, 806, 810, 816, 818, 820, 822, - 824, 826, 828, 830, 832, 836, 842, 848, - 858, 863, 867, 869, 871, 873, 875, 877, - 887, 892, 896, 903, 907, 909, 911, 913, - 915, 917, 921, 928, 934, 939, 947, 951, - 963, 971, 976, 986, 992, 998, 1003, 1005, - 1007, 1009, 1011, 1013, 1017, 1023, 1028, 1034, - 1036, 1039, 1044, 1050, 1054, 1059, 1061, 1063, - 1070, 1073, 1077, 1085, 1095, 1100, 1109, 1111, - 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, - 1129, 1131, 1133, 1137, 1142, 1147, 1153, 1155, - 1157, 1159, 1161, 1163, 1167, 1169, 1171, 1173, - 1175, 1177, 1179, 1181, 1183, 1187, 1195, 1198, - 1201, 1203, 1205, 1207, 1209, 1218, 1221, 1224, - 1229, 1235, 1241, 1246, 1247, 1249, 1256, 1259, - 1262, 1271, 1276, 1277, 1279, 1288, 1291, 1294, - 1296, 1298, 1300, 1302, 1304, 1311, 1314, 1317, - 1322, 1324, 1333, 1336, 1339, 1341, 1343, 1345, - 1347, 1352, 1353, 1355, 1362, 1365, 1368, 1373, - 1375, 1387, 1390, 1393, 1395, 1397, 1399, 1401, - 1403, 1405, 1407, 1410, 1412, 1414 + 717, 719, 723, 725, 727, 731, 736, 741, + 747, 749, 751, 753, 755, 757, 759, 761, + 763, 765, 769, 771, 773, 775, 777, 779, + 781, 783, 787, 792, 797, 803, 805, 807, + 809, 811, 815, 821, 827, 836, 840, 850, + 852, 854, 861, 864, 868, 874, 876, 878, + 880, 882, 884, 886, 888, 890, 894, 900, + 906, 916, 921, 925, 927, 929, 931, 933, + 935, 945, 950, 954, 961, 965, 967, 969, + 971, 973, 975, 979, 986, 992, 997, 1005, + 1009, 1021, 1029, 1034, 1044, 1050, 1056, 1061, + 1063, 1065, 1067, 1069, 1071, 1075, 1081, 1086, + 1092, 1094, 1097, 1102, 1108, 1112, 1117, 1119, + 1121, 1128, 1131, 1135, 1143, 1153, 1158, 1167, + 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, + 1185, 1187, 1189, 1191, 1195, 1200, 1205, 1211, + 1213, 1215, 1217, 1219, 1221, 1225, 1227, 1229, + 1231, 1233, 1235, 1237, 1239, 1241, 1245, 1253, + 1256, 1259, 1261, 1263, 1265, 1267, 1276, 1279, + 1282, 1287, 1293, 1299, 1304, 1305, 1307, 1314, + 1317, 1320, 1329, 1334, 1335, 1337, 1346, 1349, + 1352, 1354, 1356, 1358, 1360, 1362, 1369, 1372, + 1375, 1380, 1382, 1391, 1394, 1397, 1399, 1401, + 1403, 1405, 1410, 1411, 1413, 1420, 1423, 1426, + 1431, 1433, 1445, 1448, 1451, 1453, 1456, 1459, + 1462, 1465, 1467, 1469, 1471, 1473, 1476, 1478, + 1480 }; static const short _eo_tokenizer_indicies[] = { @@ -799,249 +820,265 @@ static const short _eo_tokenizer_indicies[] = { 255, 272, 255, 273, 255, 274, 255, 275, 255, 276, 255, 277, 255, 278, 255, 279, 280, 278, 255, 281, 255, 282, 255, 283, - 255, 284, 255, 285, 255, 286, 255, 287, - 255, 288, 255, 289, 255, 290, 291, 289, + 284, 282, 255, 285, 284, 286, 286, 255, + 287, 287, 287, 287, 255, 288, 287, 287, + 287, 287, 255, 289, 255, 290, 255, 291, 255, 292, 255, 293, 255, 294, 255, 295, - 255, 296, 297, 295, 255, 298, 300, 297, - 299, 299, 255, 301, 301, 301, 301, 301, - 255, 303, 301, 304, 301, 302, 301, 301, - 301, 255, 306, 307, 305, 255, 307, 298, - 307, 307, 308, 300, 297, 299, 299, 255, - 309, 255, 310, 255, 311, 312, 310, 312, - 312, 312, 255, 314, 315, 313, 314, 315, - 316, 313, 318, 320, 317, 319, 319, 255, - 321, 255, 322, 255, 323, 255, 324, 255, - 325, 255, 326, 255, 327, 255, 328, 255, - 329, 330, 328, 255, 331, 333, 330, 332, - 332, 255, 335, 334, 334, 334, 334, 255, - 337, 335, 338, 334, 339, 336, 334, 334, - 334, 255, 341, 330, 342, 340, 255, 343, - 344, 342, 255, 345, 255, 346, 255, 347, - 255, 348, 255, 349, 255, 351, 352, 351, - 351, 353, 355, 350, 354, 354, 255, 357, - 358, 359, 356, 255, 360, 361, 358, 255, - 331, 330, 333, 330, 332, 332, 255, 362, - 363, 359, 255, 364, 255, 365, 255, 366, - 255, 367, 255, 368, 255, 369, 370, 368, - 255, 371, 372, 373, 370, 374, 374, 255, - 372, 372, 372, 375, 375, 255, 376, 376, - 376, 376, 255, 378, 379, 376, 377, 376, - 376, 376, 255, 381, 373, 380, 255, 373, - 383, 373, 373, 384, 372, 373, 385, 382, - 374, 374, 255, 383, 372, 373, 385, 382, - 374, 374, 255, 386, 386, 386, 386, 255, - 387, 387, 387, 388, 389, 386, 386, 386, - 386, 255, 390, 390, 390, 372, 373, 255, - 392, 391, 393, 394, 391, 255, 392, 393, - 394, 391, 255, 395, 255, 396, 255, 397, - 255, 398, 255, 399, 255, 400, 400, 400, - 255, 400, 400, 400, 401, 401, 255, 402, - 402, 402, 402, 255, 403, 402, 402, 402, - 402, 255, 404, 255, 405, 405, 255, 406, - 406, 406, 406, 255, 407, 406, 406, 406, - 406, 255, 409, 394, 408, 255, 360, 358, - 361, 358, 255, 410, 255, 411, 255, 412, - 413, 411, 413, 413, 413, 255, 415, 416, - 414, 415, 416, 417, 414, 419, 420, 421, - 423, 418, 422, 422, 255, 424, 357, 424, - 424, 358, 359, 356, 425, 425, 255, 426, - 426, 426, 426, 255, 428, 429, 426, 430, - 427, 426, 426, 426, 255, 334, 255, 431, - 255, 432, 255, 433, 255, 434, 255, 435, - 255, 436, 255, 437, 255, 438, 255, 439, - 255, 440, 255, 441, 255, 442, 443, 441, - 255, 444, 443, 445, 445, 255, 446, 446, - 446, 446, 255, 447, 446, 446, 446, 446, - 255, 448, 255, 449, 255, 450, 255, 451, - 255, 452, 255, 453, 454, 452, 255, 455, + 255, 296, 255, 297, 255, 298, 299, 297, + 255, 300, 255, 301, 255, 302, 255, 303, + 255, 304, 255, 305, 255, 306, 255, 307, + 308, 306, 255, 309, 308, 310, 310, 255, + 311, 311, 311, 311, 255, 312, 311, 311, + 311, 311, 255, 313, 255, 314, 255, 315, + 255, 316, 255, 317, 318, 316, 255, 319, + 321, 318, 320, 320, 255, 322, 322, 322, + 322, 322, 255, 324, 322, 325, 322, 323, + 322, 322, 322, 255, 327, 328, 326, 255, + 328, 319, 328, 328, 329, 321, 318, 320, + 320, 255, 330, 255, 331, 255, 332, 333, + 331, 333, 333, 333, 255, 335, 336, 334, + 335, 336, 337, 334, 339, 341, 338, 340, + 340, 255, 342, 255, 343, 255, 344, 255, + 345, 255, 346, 255, 347, 255, 348, 255, + 349, 255, 350, 351, 349, 255, 352, 354, + 351, 353, 353, 255, 356, 355, 355, 355, + 355, 255, 358, 356, 359, 355, 360, 357, + 355, 355, 355, 255, 362, 351, 363, 361, + 255, 364, 365, 363, 255, 366, 255, 367, + 255, 368, 255, 369, 255, 370, 255, 372, + 373, 372, 372, 374, 376, 371, 375, 375, + 255, 378, 379, 380, 377, 255, 381, 382, + 379, 255, 352, 351, 354, 351, 353, 353, + 255, 383, 384, 380, 255, 385, 255, 386, + 255, 387, 255, 388, 255, 389, 255, 390, + 391, 389, 255, 392, 393, 394, 391, 395, + 395, 255, 393, 393, 393, 396, 396, 255, + 397, 397, 397, 397, 255, 399, 400, 397, + 398, 397, 397, 397, 255, 402, 394, 401, + 255, 394, 404, 394, 394, 405, 393, 394, + 406, 403, 395, 395, 255, 404, 393, 394, + 406, 403, 395, 395, 255, 407, 407, 407, + 407, 255, 408, 408, 408, 409, 410, 407, + 407, 407, 407, 255, 411, 411, 411, 393, + 394, 255, 413, 412, 414, 415, 412, 255, + 413, 414, 415, 412, 255, 416, 255, 417, + 255, 418, 255, 419, 255, 420, 255, 421, + 421, 421, 255, 421, 421, 421, 422, 422, + 255, 423, 423, 423, 423, 255, 424, 423, + 423, 423, 423, 255, 425, 255, 426, 426, + 255, 427, 427, 427, 427, 255, 428, 427, + 427, 427, 427, 255, 430, 415, 429, 255, + 381, 379, 382, 379, 255, 431, 255, 432, + 255, 433, 434, 432, 434, 434, 434, 255, + 436, 437, 435, 436, 437, 438, 435, 440, + 441, 442, 444, 439, 443, 443, 255, 445, + 378, 445, 445, 379, 380, 377, 446, 446, + 255, 447, 447, 447, 447, 255, 449, 450, + 447, 451, 448, 447, 447, 447, 255, 355, + 255, 452, 255, 453, 255, 454, 255, 455, 255, 456, 255, 457, 255, 458, 255, 459, 255, 460, 255, 461, 255, 462, 255, 463, - 464, 462, 255, 467, 468, 469, 470, 471, - 472, 466, 465, 467, 466, 473, 1, 5, - 474, 475, 474, 476, 474, 477, 474, 478, - 474, 481, 482, 484, 485, 486, 480, 483, - 483, 479, 481, 480, 487, 489, 69, 488, - 72, 72, 72, 72, 488, 72, 490, 72, - 72, 72, 488, 72, 491, 72, 72, 72, - 488, 98, 98, 98, 99, 492, 493, 495, - 494, 498, 499, 501, 497, 500, 500, 496, - 498, 497, 502, 121, 125, 503, 127, 127, - 127, 127, 127, 127, 127, 127, 503, 130, - 130, 130, 131, 504, 505, 507, 506, 510, - 511, 512, 513, 514, 515, 516, 509, 508, - 510, 509, 517, 141, 145, 518, 519, 518, - 520, 518, 521, 518, 522, 518, 524, 523, - 527, 528, 530, 526, 529, 529, 525, 527, - 526, 531, 164, 168, 532, 172, 172, 172, - 172, 532, 534, 533, 537, 538, 539, 540, - 541, 542, 543, 536, 535, 537, 536, 544, - 546, 189, 545, 547, 545, 548, 545, 549, - 545, 550, 545, 219, 219, 219, 220, 551, - 552, 554, 553, 557, 558, 560, 556, 559, - 559, 555, 557, 556, 561, 242, 246, 562, - 250, 250, 250, 250, 562, 564, 563, 567, - 568, 569, 570, 571, 572, 573, 574, 575, - 576, 566, 565, 567, 566, 577, 579, 267, - 578, 580, 578, 581, 578, 582, 578, 584, - 583, 585, 578, 587, 586, 588, 578, 591, - 590, 589, 592, 578, 593, 578, 595, 594, - 0 + 464, 462, 255, 465, 464, 466, 466, 255, + 467, 467, 467, 467, 255, 468, 467, 467, + 467, 467, 255, 469, 255, 470, 255, 471, + 255, 472, 255, 473, 255, 474, 475, 473, + 255, 476, 255, 477, 255, 478, 255, 479, + 255, 480, 255, 481, 255, 482, 255, 483, + 255, 484, 485, 483, 255, 488, 489, 490, + 491, 492, 493, 487, 486, 488, 487, 494, + 1, 5, 495, 496, 495, 497, 495, 498, + 495, 499, 495, 502, 503, 505, 506, 507, + 501, 504, 504, 500, 502, 501, 508, 510, + 69, 509, 72, 72, 72, 72, 509, 72, + 511, 72, 72, 72, 509, 72, 512, 72, + 72, 72, 509, 98, 98, 98, 99, 513, + 514, 516, 515, 519, 520, 522, 518, 521, + 521, 517, 519, 518, 523, 121, 125, 524, + 127, 127, 127, 127, 127, 127, 127, 127, + 524, 130, 130, 130, 131, 525, 526, 528, + 527, 531, 532, 533, 534, 535, 536, 537, + 530, 529, 531, 530, 538, 141, 145, 539, + 540, 539, 541, 539, 542, 539, 543, 539, + 545, 544, 548, 549, 551, 547, 550, 550, + 546, 548, 547, 552, 164, 168, 553, 172, + 172, 172, 172, 553, 555, 554, 558, 559, + 560, 561, 562, 563, 564, 557, 556, 558, + 557, 565, 567, 189, 566, 568, 566, 569, + 566, 570, 566, 571, 566, 219, 219, 219, + 220, 572, 573, 575, 574, 578, 579, 581, + 577, 580, 580, 576, 578, 577, 582, 242, + 246, 583, 250, 250, 250, 250, 583, 585, + 584, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 587, 586, 588, 587, 598, + 600, 267, 599, 601, 599, 602, 603, 599, + 606, 605, 604, 607, 608, 599, 611, 610, + 609, 613, 612, 614, 599, 616, 615, 617, + 599, 620, 619, 618, 621, 599, 622, 599, + 624, 623, 0 }; static const short _eo_tokenizer_trans_targs[] = { - 309, 0, 0, 1, 309, 2, 309, 4, + 326, 0, 0, 1, 326, 2, 326, 4, 5, 6, 7, 8, 9, 10, 10, 11, - 12, 13, 14, 13, 15, 309, 13, 13, - 309, 14, 15, 16, 17, 13, 13, 309, + 12, 13, 14, 13, 15, 326, 13, 13, + 326, 14, 15, 16, 17, 13, 13, 326, 18, 19, 19, 16, 20, 19, 19, 20, 20, 22, 23, 24, 10, 26, 27, 28, 29, 30, 31, 32, 10, 34, 35, 36, - 10, 316, 38, 38, 39, 40, 316, 40, - 41, 41, 41, 42, 316, 43, 316, 45, - 44, 46, 47, 48, 47, 48, 48, 316, - 50, 51, 52, 53, 54, 55, 56, 316, - 58, 59, 60, 61, 62, 63, 64, 322, - 71, 316, 65, 66, 67, 68, 68, 69, - 69, 69, 70, 323, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 322, - 325, 83, 83, 84, 325, 85, 325, 86, - 329, 325, 87, 88, 89, 90, 90, 91, - 91, 91, 92, 330, 332, 93, 93, 94, - 332, 95, 332, 97, 97, 332, 99, 100, - 100, 332, 102, 102, 332, 104, 105, 106, - 107, 107, 332, 340, 108, 108, 109, 340, - 110, 340, 112, 112, 111, 340, 112, 112, - 340, 345, 114, 114, 115, 116, 345, 116, - 117, 117, 117, 118, 345, 119, 345, 121, - 122, 123, 345, 125, 126, 127, 128, 129, - 130, 131, 345, 133, 134, 135, 136, 136, - 345, 138, 139, 140, 141, 142, 143, 144, - 352, 151, 345, 145, 146, 147, 148, 148, - 149, 149, 149, 150, 353, 152, 153, 154, + 10, 333, 38, 38, 39, 40, 333, 40, + 41, 41, 41, 42, 333, 43, 333, 45, + 44, 46, 47, 48, 47, 48, 48, 333, + 50, 51, 52, 53, 54, 55, 56, 333, + 58, 59, 60, 61, 62, 63, 64, 339, + 71, 333, 65, 66, 67, 68, 68, 69, + 69, 69, 70, 340, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 339, + 342, 83, 83, 84, 342, 85, 342, 86, + 346, 342, 87, 88, 89, 90, 90, 91, + 91, 91, 92, 347, 349, 93, 93, 94, + 349, 95, 349, 97, 97, 349, 99, 100, + 100, 349, 102, 102, 349, 104, 105, 106, + 107, 107, 349, 357, 108, 108, 109, 357, + 110, 357, 112, 112, 111, 357, 112, 112, + 357, 362, 114, 114, 115, 116, 362, 116, + 117, 117, 117, 118, 362, 119, 362, 121, + 122, 123, 362, 125, 126, 127, 128, 129, + 130, 131, 362, 133, 134, 135, 136, 136, + 362, 138, 139, 140, 141, 142, 143, 144, + 369, 151, 362, 145, 146, 147, 148, 148, + 149, 149, 149, 150, 370, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 352, 355, 163, 163, 164, 355, 165, 355, - 167, 167, 166, 355, 167, 167, 355, 360, - 169, 169, 170, 171, 360, 171, 172, 172, - 172, 173, 360, 174, 360, 176, 177, 178, + 369, 372, 163, 163, 164, 372, 165, 372, + 167, 167, 166, 372, 167, 167, 372, 377, + 169, 169, 170, 171, 377, 171, 172, 172, + 172, 173, 377, 174, 377, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 185, - 360, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 195, 360, 197, 198, 199, 200, - 200, 201, 201, 202, 366, 203, 204, 204, - 205, 204, 204, 205, 206, 207, 208, 208, - 209, 209, 209, 210, 211, 201, 201, 202, - 366, 213, 214, 215, 216, 217, 218, 219, - 220, 220, 221, 221, 222, 368, 223, 278, - 224, 224, 221, 225, 224, 224, 225, 225, - 226, 227, 228, 229, 230, 231, 232, 275, - 232, 233, 276, 235, 232, 232, 233, 235, - 233, 234, 235, 236, 237, 238, 239, 240, - 241, 241, 242, 242, 243, 247, 249, 244, - 245, 246, 246, 247, 246, 246, 248, 248, - 269, 252, 250, 251, 243, 247, 251, 253, - 253, 254, 268, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, - 267, 267, 270, 271, 271, 272, 272, 272, - 273, 274, 248, 248, 243, 247, 249, 252, - 275, 276, 277, 232, 232, 233, 235, 280, - 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 290, 291, 291, 292, 293, 370, - 295, 296, 297, 298, 299, 299, 360, 301, - 302, 303, 304, 305, 306, 307, 308, 308, - 360, 309, 310, 310, 311, 312, 313, 314, - 315, 309, 309, 3, 21, 25, 33, 316, - 317, 317, 318, 319, 320, 321, 324, 316, - 316, 37, 49, 57, 316, 316, 316, 316, - 325, 326, 326, 327, 328, 331, 325, 325, - 325, 325, 325, 325, 332, 333, 333, 334, - 335, 336, 337, 338, 339, 332, 332, 96, - 98, 101, 103, 332, 332, 340, 341, 341, - 342, 343, 344, 340, 340, 340, 340, 345, - 346, 346, 347, 348, 349, 350, 351, 354, - 345, 345, 113, 120, 124, 132, 137, 345, - 345, 345, 345, 355, 356, 356, 357, 358, - 359, 355, 355, 355, 355, 360, 361, 361, - 362, 363, 364, 365, 367, 369, 371, 372, - 373, 360, 360, 168, 175, 186, 196, 360, - 360, 212, 360, 360, 279, 360, 370, 370, - 294, 300, 360, 360 + 377, 187, 188, 188, 189, 189, 190, 191, + 382, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 201, 377, 203, 204, 205, 206, + 207, 208, 209, 209, 210, 210, 211, 212, + 384, 214, 215, 216, 217, 217, 218, 218, + 219, 385, 220, 221, 221, 222, 221, 221, + 222, 223, 224, 225, 225, 226, 226, 226, + 227, 228, 218, 218, 219, 385, 230, 231, + 232, 233, 234, 235, 236, 237, 237, 238, + 238, 239, 387, 240, 295, 241, 241, 238, + 242, 241, 241, 242, 242, 243, 244, 245, + 246, 247, 248, 249, 292, 249, 250, 293, + 252, 249, 249, 250, 252, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 258, 259, + 259, 260, 264, 266, 261, 262, 263, 263, + 264, 263, 263, 265, 265, 286, 269, 267, + 268, 260, 264, 268, 270, 270, 271, 285, + 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 284, 284, 287, + 288, 288, 289, 289, 289, 290, 291, 265, + 265, 260, 264, 266, 269, 292, 293, 294, + 249, 249, 250, 252, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 307, + 308, 308, 309, 310, 389, 312, 313, 314, + 315, 316, 316, 377, 318, 319, 320, 321, + 322, 323, 324, 325, 325, 377, 326, 327, + 327, 328, 329, 330, 331, 332, 326, 326, + 3, 21, 25, 33, 333, 334, 334, 335, + 336, 337, 338, 341, 333, 333, 37, 49, + 57, 333, 333, 333, 333, 342, 343, 343, + 344, 345, 348, 342, 342, 342, 342, 342, + 342, 349, 350, 350, 351, 352, 353, 354, + 355, 356, 349, 349, 96, 98, 101, 103, + 349, 349, 357, 358, 358, 359, 360, 361, + 357, 357, 357, 357, 362, 363, 363, 364, + 365, 366, 367, 368, 371, 362, 362, 113, + 120, 124, 132, 137, 362, 362, 362, 362, + 372, 373, 373, 374, 375, 376, 372, 372, + 372, 372, 377, 378, 378, 379, 380, 381, + 383, 386, 388, 390, 391, 392, 377, 377, + 168, 175, 186, 192, 377, 382, 382, 202, + 213, 377, 384, 384, 377, 377, 229, 377, + 377, 296, 377, 389, 389, 311, 317, 377, + 377 }; static const short _eo_tokenizer_trans_actions[] = { - 215, 0, 1, 0, 205, 0, 238, 0, - 0, 0, 0, 0, 0, 43, 0, 3, - 0, 49, 49, 316, 49, 319, 0, 1, - 207, 0, 0, 0, 3, 17, 280, 283, - 0, 15, 277, 15, 15, 0, 1, 0, - 1, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, - 45, 75, 0, 1, 0, 0, 59, 1, - 3, 0, 1, 0, 57, 0, 217, 0, - 0, 0, 7, 247, 0, 3, 0, 250, - 0, 0, 0, 0, 0, 3, 0, 244, - 0, 0, 0, 0, 0, 3, 0, 328, - 5, 73, 0, 0, 0, 0, 1, 3, + 223, 0, 1, 0, 213, 0, 246, 0, + 0, 0, 0, 0, 0, 47, 0, 3, + 0, 53, 53, 324, 53, 327, 0, 1, + 215, 0, 0, 0, 3, 17, 288, 291, + 0, 15, 285, 15, 15, 0, 1, 0, + 1, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, + 49, 79, 0, 1, 0, 0, 63, 1, + 3, 0, 1, 0, 61, 0, 225, 0, + 0, 0, 7, 255, 0, 3, 0, 258, + 0, 0, 0, 0, 0, 3, 0, 252, + 0, 0, 0, 0, 0, 3, 0, 336, + 5, 77, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 331, - 93, 0, 1, 0, 77, 0, 220, 0, - 334, 91, 0, 0, 0, 0, 1, 3, - 0, 1, 0, 0, 115, 0, 1, 0, - 95, 0, 223, 0, 1, 97, 0, 0, - 1, 101, 0, 1, 99, 0, 0, 0, - 0, 1, 103, 131, 0, 1, 0, 117, - 0, 226, 9, 256, 0, 259, 0, 1, - 119, 153, 0, 1, 0, 0, 135, 1, - 3, 0, 1, 0, 133, 0, 229, 0, - 0, 0, 268, 0, 0, 0, 0, 0, - 3, 0, 265, 0, 0, 0, 0, 1, - 137, 0, 0, 0, 0, 0, 3, 0, - 337, 11, 151, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 339, + 97, 0, 1, 0, 81, 0, 228, 0, + 342, 95, 0, 0, 0, 0, 1, 3, + 0, 1, 0, 0, 119, 0, 1, 0, + 99, 0, 231, 0, 1, 101, 0, 0, + 1, 105, 0, 1, 103, 0, 0, 0, + 0, 1, 107, 135, 0, 1, 0, 121, + 0, 234, 9, 264, 0, 267, 0, 1, + 123, 157, 0, 1, 0, 0, 139, 1, + 3, 0, 1, 0, 137, 0, 237, 0, + 0, 0, 276, 0, 0, 0, 0, 0, + 3, 0, 273, 0, 0, 0, 0, 1, + 141, 0, 0, 0, 0, 0, 3, 0, + 345, 11, 155, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 340, 169, 0, 1, 0, 155, 0, 232, - 13, 271, 0, 274, 0, 1, 157, 203, - 0, 1, 0, 0, 173, 1, 3, 0, - 1, 0, 171, 0, 235, 0, 0, 0, + 348, 173, 0, 1, 0, 159, 0, 240, + 13, 279, 0, 282, 0, 1, 161, 211, + 0, 1, 0, 0, 177, 1, 3, 0, + 1, 0, 175, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 179, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 181, 0, 0, 0, 0, - 1, 0, 1, 3, 0, 0, 19, 286, - 19, 0, 1, 0, 0, 0, 0, 1, - 3, 0, 1, 0, 0, 21, 289, 292, - 21, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 3, 0, 0, 0, - 25, 295, 25, 25, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 27, 27, - 298, 27, 301, 27, 0, 1, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 0, 3, 3, - 0, 33, 307, 33, 0, 1, 0, 1, - 0, 0, 0, 31, 31, 31, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 37, 0, 3, 0, 39, - 0, 1, 0, 0, 1, 3, 0, 1, - 0, 0, 35, 310, 35, 35, 313, 35, - 0, 3, 0, 29, 304, 29, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 1, 3, 0, 23, - 0, 0, 0, 0, 0, 1, 185, 0, + 183, 0, 0, 1, 0, 1, 3, 0, + 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 185, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 1, 3, 0, + 25, 0, 0, 0, 0, 1, 0, 1, + 3, 0, 0, 19, 294, 19, 0, 1, + 0, 0, 0, 0, 1, 3, 0, 1, + 0, 0, 21, 297, 300, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 3, 0, 0, 0, 29, 303, 29, + 29, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 31, 31, 306, 31, 309, + 31, 0, 1, 0, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 0, 0, 3, 3, 0, 37, 315, + 37, 0, 1, 0, 1, 0, 0, 0, + 35, 35, 35, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, + 41, 0, 3, 0, 43, 0, 1, 0, + 0, 1, 3, 0, 1, 0, 0, 39, + 318, 39, 39, 321, 39, 0, 3, 0, + 33, 312, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 183, 209, 0, 1, 322, 55, 55, 55, - 55, 211, 213, 0, 0, 0, 0, 63, - 0, 1, 322, 325, 325, 325, 0, 65, - 71, 0, 0, 0, 67, 241, 69, 61, - 81, 0, 1, 322, 325, 0, 83, 89, - 85, 253, 87, 79, 107, 0, 1, 322, - 55, 55, 55, 55, 0, 109, 113, 0, - 0, 0, 0, 111, 105, 123, 0, 1, - 322, 325, 0, 125, 129, 127, 121, 141, - 0, 1, 322, 55, 55, 55, 55, 0, - 143, 149, 0, 0, 0, 0, 0, 145, - 262, 147, 139, 161, 0, 1, 322, 325, - 0, 163, 167, 165, 159, 189, 0, 1, - 322, 55, 55, 55, 55, 55, 55, 55, - 0, 191, 201, 0, 0, 0, 0, 197, - 177, 0, 195, 175, 0, 193, 0, 1, - 0, 0, 199, 187 + 0, 1, 3, 0, 23, 0, 0, 0, + 0, 0, 1, 189, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 187, 217, 0, + 1, 330, 59, 59, 59, 59, 219, 221, + 0, 0, 0, 0, 67, 0, 1, 330, + 333, 333, 333, 0, 69, 75, 0, 0, + 0, 71, 249, 73, 65, 85, 0, 1, + 330, 333, 0, 87, 93, 89, 261, 91, + 83, 111, 0, 1, 330, 59, 59, 59, + 59, 0, 113, 117, 0, 0, 0, 0, + 115, 109, 127, 0, 1, 330, 333, 0, + 129, 133, 131, 125, 145, 0, 1, 330, + 59, 59, 59, 59, 0, 147, 153, 0, + 0, 0, 0, 0, 149, 270, 151, 143, + 165, 0, 1, 330, 333, 0, 167, 171, + 169, 163, 193, 0, 1, 330, 59, 59, + 59, 59, 59, 59, 59, 0, 195, 209, + 0, 0, 0, 0, 201, 0, 1, 0, + 0, 199, 0, 1, 205, 181, 0, 203, + 179, 0, 197, 0, 1, 0, 0, 207, + 191 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1083,15 +1120,18 @@ static const short _eo_tokenizer_to_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 0, 0, - 0, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 0, 0, - 0, 0, 0, 0, 51, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 0, 0, - 0, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 0, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 55, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 0, + 0, 0, 0, 0, 0, 55, 0, 0, + 0, 0, 0, 0, 0, 55, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0 }; static const short _eo_tokenizer_from_state_actions[] = { @@ -1133,15 +1173,18 @@ static const short _eo_tokenizer_from_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 0, 0, - 0, 53, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 0, + 0, 0, 0, 0, 0, 57, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 0, + 0, 0, 0, 0, 0, 57, 0, 0, + 0, 0, 0, 0, 0, 57, 0, 0, + 0, 0, 57, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 0, + 0, 57, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0 }; static const short _eo_tokenizer_eof_trans[] = { @@ -1183,32 +1226,35 @@ static const short _eo_tokenizer_eof_trans[] = { 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 0, 474, 475, - 475, 475, 475, 475, 0, 488, 489, 489, - 489, 489, 493, 494, 495, 0, 503, 504, - 504, 505, 506, 507, 0, 518, 519, 519, - 519, 519, 519, 524, 0, 532, 533, 533, - 534, 0, 545, 546, 546, 546, 546, 546, - 552, 553, 554, 0, 562, 563, 563, 564, - 0, 578, 579, 579, 579, 579, 584, 579, - 587, 579, 590, 579, 579, 595 + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 0, 495, + 496, 496, 496, 496, 496, 0, 509, 510, + 510, 510, 510, 514, 515, 516, 0, 524, + 525, 525, 526, 527, 528, 0, 539, 540, + 540, 540, 540, 540, 545, 0, 553, 554, + 554, 555, 0, 566, 567, 567, 567, 567, + 567, 573, 574, 575, 0, 583, 584, 584, + 585, 0, 599, 600, 600, 600, 605, 600, + 610, 613, 600, 616, 600, 619, 600, 600, + 624 }; -static const int eo_tokenizer_start = 309; -static const int eo_tokenizer_first_final = 309; +static const int eo_tokenizer_start = 326; +static const int eo_tokenizer_first_final = 326; static const int eo_tokenizer_error = -1; -static const int eo_tokenizer_en_tokenize_accessor = 316; -static const int eo_tokenizer_en_tokenize_params = 325; -static const int eo_tokenizer_en_tokenize_property = 332; -static const int eo_tokenizer_en_tokenize_properties = 340; -static const int eo_tokenizer_en_tokenize_method = 345; -static const int eo_tokenizer_en_tokenize_methods = 355; -static const int eo_tokenizer_en_tokenize_class = 360; -static const int eo_tokenizer_en_main = 309; +static const int eo_tokenizer_en_tokenize_accessor = 333; +static const int eo_tokenizer_en_tokenize_params = 342; +static const int eo_tokenizer_en_tokenize_property = 349; +static const int eo_tokenizer_en_tokenize_properties = 357; +static const int eo_tokenizer_en_tokenize_method = 362; +static const int eo_tokenizer_en_tokenize_methods = 372; +static const int eo_tokenizer_en_tokenize_class = 377; +static const int eo_tokenizer_en_main = 326; -#line 946 "eo_lexer.rl" +#line 966 "eo_lexer.rl" Eina_Bool @@ -1232,7 +1278,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1236 "eo_lexer.c" +#line 1282 "eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1240,7 +1286,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 969 "eo_lexer.rl" +#line 989 "eo_lexer.rl" while (!done) { @@ -1267,7 +1313,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1271 "eo_lexer.c" +#line 1317 "eo_lexer.c" { int _klen; unsigned int _trans; @@ -1282,11 +1328,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 37: + case 39: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1290 "eo_lexer.c" +#line 1336 "eo_lexer.c" } } @@ -1548,15 +1594,33 @@ _eof_trans: } break; case 23: -#line 796 "eo_lexer.rl" +#line 792 "eo_lexer.rl" + { + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + if (toknz->tmp.kls->eo_prefix != NULL) + ABORT(toknz, "An Eo prefix has already been given"); + toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); + } + break; + case 24: +#line 801 "eo_lexer.rl" + { + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + if (toknz->tmp.kls->data_type != NULL) + ABORT(toknz, "A data type has already been given"); + toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p)); + } + break; + case 25: +#line 814 "eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 24: -#line 802 "eo_lexer.rl" + case 26: +#line 820 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -1564,8 +1628,8 @@ _eof_trans: toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 25: -#line 809 "eo_lexer.rl" + case 27: +#line 827 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1573,8 +1637,8 @@ _eof_trans: toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 26: -#line 816 "eo_lexer.rl" + case 28: +#line 834 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -1584,24 +1648,24 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 27: -#line 825 "eo_lexer.rl" + case 29: +#line 843 "eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 831 "eo_lexer.rl" + case 30: +#line 849 "eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 29: -#line 837 "eo_lexer.rl" + case 31: +#line 855 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1609,8 +1673,8 @@ _eof_trans: toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 30: -#line 844 "eo_lexer.rl" + case 32: +#line 862 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1618,32 +1682,32 @@ _eof_trans: toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 31: -#line 912 "eo_lexer.rl" + case 33: +#line 932 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 32: -#line 915 "eo_lexer.rl" + case 34: +#line 935 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 33: -#line 918 "eo_lexer.rl" + case 35: +#line 938 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 34: -#line 921 "eo_lexer.rl" + case 36: +#line 941 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 35: -#line 925 "eo_lexer.rl" + case 37: +#line 945 "eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1651,11 +1715,11 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 38: + case 40: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 39: + case 41: #line 368 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); @@ -1665,22 +1729,22 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 40: + case 42: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 41: + case 43: #line 438 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 42: + case 44: #line 439 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 43: + case 45: #line 403 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); @@ -1688,10 +1752,10 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} }} break; - case 44: + case 46: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1710,15 +1774,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 45: + case 47: #line 434 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 46: + case 48: #line 437 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 47: + case 49: #line 403 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); @@ -1726,35 +1790,12 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} }} - break; - case 48: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 49: -#line 437 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 50: #line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1772,27 +1813,50 @@ _eof_trans: }} break; case 51: +#line 437 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} + break; + case 52: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 53: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 52: + case 54: #line 463 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 345; goto _again;} + { toknz->cs = 362; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 53: + case 55: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1811,54 +1875,31 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 54: + case 56: #line 479 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 55: + case 57: #line 481 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 56: + case 58: #line 463 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 345; goto _again;} + { toknz->cs = 362; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} - break; - case 57: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 58: -#line 481 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 59: #line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1876,87 +1917,110 @@ _eof_trans: }} break; case 60: +#line 481 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} + break; + case 61: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 62: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 61: + case 63: #line 488 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 316; goto _again;} + { toknz->cs = 333; goto _again;} }} break; - case 62: + case 64: #line 495 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 316; goto _again;} + { toknz->cs = 333; goto _again;} }} break; - case 63: + case 65: #line 502 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 325; goto _again;} + { toknz->cs = 342; goto _again;} }} break; - case 64: + case 66: #line 509 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 325; goto _again;} - }} - break; - case 65: -#line 516 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); - if (eina_list_count(toknz->tmp.prop->values) == 0) - WRN("property '%s' has no values.", toknz->tmp.prop->name); - if (eina_list_count(toknz->tmp.prop->accessors) == 0) - WRN("property '%s' has no accessors.", toknz->tmp.prop->name); - INF(" }"); - toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); - toknz->tmp.prop = NULL; - toknz->current_nesting--; - { toknz->cs = 340; goto _again;} - }} - break; - case 66: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 342; goto _again;} }} break; case 67: +#line 516 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); + if (eina_list_count(toknz->tmp.prop->values) == 0) + WRN("property '%s' has no values.", toknz->tmp.prop->name); + if (eina_list_count(toknz->tmp.prop->accessors) == 0) + WRN("property '%s' has no accessors.", toknz->tmp.prop->name); + INF(" }"); + toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); + toknz->tmp.prop = NULL; + toknz->current_nesting--; + { toknz->cs = 357; goto _again;} + }} + break; + case 68: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 69: #line 535 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 68: + case 70: #line 516 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); @@ -1968,10 +2032,10 @@ _eof_trans: toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); toknz->tmp.prop = NULL; toknz->current_nesting--; - { toknz->cs = 340; goto _again;} + { toknz->cs = 357; goto _again;} }} break; - case 69: + case 71: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1990,7 +2054,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 70: + case 72: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2009,62 +2073,62 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 71: + case 73: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 72: + case 74: #line 547 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 332; goto _again;} - }} - break; - case 73: -#line 560 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} - }} - break; - case 74: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 349; goto _again;} }} break; case 75: +#line 560 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} + }} + break; + case 76: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 77: #line 569 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 76: + case 78: #line 560 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 360; goto _again;} + { toknz->cs = 377; goto _again;} }} break; - case 77: + case 79: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2083,7 +2147,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 78: + case 80: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2102,7 +2166,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 79: + case 81: #line 578 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2112,32 +2176,32 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 80: + case 82: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 81: + case 83: #line 586 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 325; goto _again;} + { toknz->cs = 342; goto _again;} }} break; - case 82: + case 84: #line 669 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 83: + case 85: #line 670 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 84: + case 86: #line 627 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l; @@ -2162,10 +2226,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 85: + case 87: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2184,15 +2248,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 86: + case 88: #line 664 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 87: + case 89: #line 668 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 88: + case 90: #line 627 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l; @@ -2217,35 +2281,12 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} - break; - case 89: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 90: -#line 668 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 91: #line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2263,82 +2304,10 @@ _eof_trans: }} break; case 92: -#line 307 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} +#line 668 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} break; case 93: -#line 677 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); - INF(" %s {", toknz->tmp.meth->name); - toknz->current_nesting++; - { toknz->cs = 345; goto _again;} - }} - break; - case 94: -#line 690 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} - }} - break; - case 95: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 96: -#line 700 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 97: -#line 690 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} - }} - break; - case 98: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 99: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2355,9 +2324,104 @@ _eof_trans: toknz->current_nesting, toknz->current_line, *( toknz->p), buf); toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 94: +#line 307 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 95: +#line 677 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); + INF(" %s {", toknz->tmp.meth->name); + toknz->current_nesting++; + { toknz->cs = 362; goto _again;} + }} + break; + case 96: +#line 690 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} + }} + break; + case 97: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 98: +#line 700 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 99: +#line 690 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} }} break; case 100: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 101: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 102: #line 709 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -2366,59 +2430,59 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 101: + case 103: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 102: + case 104: #line 727 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 103: + case 105: #line 730 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 104: + case 106: #line 733 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 105: + case 107: #line 740 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 106: + case 108: #line 747 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 340; goto _again;} + { toknz->cs = 357; goto _again;} }} break; - case 107: + case 109: #line 753 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 108: + case 110: #line 760 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -2426,10 +2490,10 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 309; goto _again;} + { toknz->cs = 326; goto _again;} }} break; - case 109: + case 111: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2447,26 +2511,34 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} - break; - case 110: -#line 889 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 111: -#line 892 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: +#line 907 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 113: +#line 910 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 114: +#line 911 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 115: +#line 912 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 116: #line 727 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 113: + case 117: #line 730 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 114: + case 118: #line 760 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -2474,66 +2546,12 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 309; goto _again;} - }} - break; - case 115: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 116: -#line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 117: -#line 307 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} - break; - case 118: -#line 905 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); - INF("begin class: %s", toknz->tmp.kls->name); - toknz->current_nesting++; - { toknz->cs = 360; goto _again;} + { toknz->cs = 326; goto _again;} }} break; case 119: #line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2551,29 +2569,6 @@ _eof_trans: }} break; case 120: -#line 940 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 121: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 122: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2592,7 +2587,84 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2596 "eo_lexer.c" + case 121: +#line 307 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 122: +#line 925 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + INF("begin class: %s", toknz->tmp.kls->name); + toknz->current_nesting++; + { toknz->cs = 377; goto _again;} + }} + break; + case 123: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 124: +#line 960 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 125: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 126: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; +#line 2668 "eo_lexer.c" } } @@ -2601,11 +2673,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 36: + case 38: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2609 "eo_lexer.c" +#line 2681 "eo_lexer.c" } } @@ -2623,12 +2695,12 @@ _again: _out: {} } -#line 995 "eo_lexer.rl" +#line 1015 "eo_lexer.rl" if ( toknz->cs == -#line 2630 "eo_lexer.c" +#line 2702 "eo_lexer.c" -1 -#line 996 "eo_lexer.rl" +#line 1016 "eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -2686,7 +2758,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns } -#line 2690 "eo_lexer.c" +#line 2762 "eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -2694,14 +2766,14 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->act = 0; } -#line 1053 "eo_lexer.rl" +#line 1073 "eo_lexer.rl" toknz->p = buffer; toknz->pe = toknz->p + len; -#line 2705 "eo_lexer.c" +#line 2777 "eo_lexer.c" { int _klen; unsigned int _trans; @@ -2716,11 +2788,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 37: + case 39: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 2724 "eo_lexer.c" +#line 2796 "eo_lexer.c" } } @@ -2982,15 +3054,33 @@ _eof_trans: } break; case 23: -#line 796 "eo_lexer.rl" +#line 792 "eo_lexer.rl" + { + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + if (toknz->tmp.kls->eo_prefix != NULL) + ABORT(toknz, "An Eo prefix has already been given"); + toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); + } + break; + case 24: +#line 801 "eo_lexer.rl" + { + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + if (toknz->tmp.kls->data_type != NULL) + ABORT(toknz, "A data type has already been given"); + toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p)); + } + break; + case 25: +#line 814 "eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 24: -#line 802 "eo_lexer.rl" + case 26: +#line 820 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -2998,8 +3088,8 @@ _eof_trans: toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 25: -#line 809 "eo_lexer.rl" + case 27: +#line 827 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3007,8 +3097,8 @@ _eof_trans: toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 26: -#line 816 "eo_lexer.rl" + case 28: +#line 834 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -3018,24 +3108,24 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 27: -#line 825 "eo_lexer.rl" + case 29: +#line 843 "eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 831 "eo_lexer.rl" + case 30: +#line 849 "eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 29: -#line 837 "eo_lexer.rl" + case 31: +#line 855 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3043,8 +3133,8 @@ _eof_trans: toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 30: -#line 844 "eo_lexer.rl" + case 32: +#line 862 "eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3052,32 +3142,32 @@ _eof_trans: toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 31: -#line 912 "eo_lexer.rl" + case 33: +#line 932 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 32: -#line 915 "eo_lexer.rl" + case 34: +#line 935 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 33: -#line 918 "eo_lexer.rl" + case 35: +#line 938 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 34: -#line 921 "eo_lexer.rl" + case 36: +#line 941 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 35: -#line 925 "eo_lexer.rl" + case 37: +#line 945 "eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -3085,11 +3175,11 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 38: + case 40: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 39: + case 41: #line 368 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); @@ -3099,22 +3189,22 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 40: + case 42: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 41: + case 43: #line 438 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 42: + case 44: #line 439 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 43: + case 45: #line 403 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); @@ -3122,10 +3212,10 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} }} break; - case 44: + case 46: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3144,15 +3234,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 45: + case 47: #line 434 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 46: + case 48: #line 437 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 47: + case 49: #line 403 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); @@ -3160,35 +3250,12 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} }} - break; - case 48: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 49: -#line 437 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 50: #line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3206,27 +3273,50 @@ _eof_trans: }} break; case 51: +#line 437 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} + break; + case 52: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 53: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 52: + case 54: #line 463 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 345; goto _again;} + { toknz->cs = 362; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 53: + case 55: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3245,54 +3335,31 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 54: + case 56: #line 479 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 55: + case 57: #line 481 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 56: + case 58: #line 463 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 332; goto _again;} + { toknz->cs = 349; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 345; goto _again;} + { toknz->cs = 362; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} - break; - case 57: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 58: -#line 481 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 59: #line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3310,87 +3377,110 @@ _eof_trans: }} break; case 60: +#line 481 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} + break; + case 61: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 62: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 61: + case 63: #line 488 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 316; goto _again;} + { toknz->cs = 333; goto _again;} }} break; - case 62: + case 64: #line 495 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 316; goto _again;} + { toknz->cs = 333; goto _again;} }} break; - case 63: + case 65: #line 502 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 325; goto _again;} + { toknz->cs = 342; goto _again;} }} break; - case 64: + case 66: #line 509 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 325; goto _again;} - }} - break; - case 65: -#line 516 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); - if (eina_list_count(toknz->tmp.prop->values) == 0) - WRN("property '%s' has no values.", toknz->tmp.prop->name); - if (eina_list_count(toknz->tmp.prop->accessors) == 0) - WRN("property '%s' has no accessors.", toknz->tmp.prop->name); - INF(" }"); - toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); - toknz->tmp.prop = NULL; - toknz->current_nesting--; - { toknz->cs = 340; goto _again;} - }} - break; - case 66: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 342; goto _again;} }} break; case 67: +#line 516 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); + if (eina_list_count(toknz->tmp.prop->values) == 0) + WRN("property '%s' has no values.", toknz->tmp.prop->name); + if (eina_list_count(toknz->tmp.prop->accessors) == 0) + WRN("property '%s' has no accessors.", toknz->tmp.prop->name); + INF(" }"); + toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); + toknz->tmp.prop = NULL; + toknz->current_nesting--; + { toknz->cs = 357; goto _again;} + }} + break; + case 68: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 69: #line 535 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 68: + case 70: #line 516 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); @@ -3402,10 +3492,10 @@ _eof_trans: toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); toknz->tmp.prop = NULL; toknz->current_nesting--; - { toknz->cs = 340; goto _again;} + { toknz->cs = 357; goto _again;} }} break; - case 69: + case 71: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3424,7 +3514,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 70: + case 72: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3443,62 +3533,62 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 71: + case 73: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 72: + case 74: #line 547 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 332; goto _again;} - }} - break; - case 73: -#line 560 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} - }} - break; - case 74: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 349; goto _again;} }} break; case 75: +#line 560 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} + }} + break; + case 76: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 77: #line 569 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 76: + case 78: #line 560 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 360; goto _again;} + { toknz->cs = 377; goto _again;} }} break; - case 77: + case 79: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3517,7 +3607,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 78: + case 80: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3536,7 +3626,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 79: + case 81: #line 578 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3546,32 +3636,32 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 80: + case 82: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 81: + case 83: #line 586 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 325; goto _again;} + { toknz->cs = 342; goto _again;} }} break; - case 82: + case 84: #line 669 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 83: + case 85: #line 670 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 84: + case 86: #line 627 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l; @@ -3596,10 +3686,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 85: + case 87: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3618,15 +3708,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 86: + case 88: #line 664 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 87: + case 89: #line 668 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 88: + case 90: #line 627 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l; @@ -3651,35 +3741,12 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} - break; - case 89: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 90: -#line 668 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 91: #line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3697,82 +3764,10 @@ _eof_trans: }} break; case 92: -#line 307 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} +#line 668 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} break; case 93: -#line 677 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); - INF(" %s {", toknz->tmp.meth->name); - toknz->current_nesting++; - { toknz->cs = 345; goto _again;} - }} - break; - case 94: -#line 690 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} - }} - break; - case 95: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 96: -#line 700 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 97: -#line 690 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} - }} - break; - case 98: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 99: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3789,9 +3784,104 @@ _eof_trans: toknz->current_nesting, toknz->current_line, *( toknz->p), buf); toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 94: +#line 307 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 95: +#line 677 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); + INF(" %s {", toknz->tmp.meth->name); + toknz->current_nesting++; + { toknz->cs = 362; goto _again;} + }} + break; + case 96: +#line 690 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} + }} + break; + case 97: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 98: +#line 700 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 99: +#line 690 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} }} break; case 100: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 101: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 102: #line 709 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -3800,59 +3890,59 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 101: + case 103: #line 307 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 102: + case 104: #line 727 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 103: + case 105: #line 730 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 104: + case 106: #line 733 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 105: + case 107: #line 740 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 106: + case 108: #line 747 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 340; goto _again;} + { toknz->cs = 357; goto _again;} }} break; - case 107: + case 109: #line 753 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 355; goto _again;} + { toknz->cs = 372; goto _again;} }} break; - case 108: + case 110: #line 760 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -3860,10 +3950,10 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 309; goto _again;} + { toknz->cs = 326; goto _again;} }} break; - case 109: + case 111: #line 316 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3881,26 +3971,34 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} - break; - case 110: -#line 889 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 111: -#line 892 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: +#line 907 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 113: +#line 910 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 114: +#line 911 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 115: +#line 912 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 116: #line 727 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 113: + case 117: #line 730 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 114: + case 118: #line 760 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -3908,66 +4006,12 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 309; goto _again;} - }} - break; - case 115: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 116: -#line 316 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 117: -#line 307 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} - break; - case 118: -#line 905 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); - INF("begin class: %s", toknz->tmp.kls->name); - toknz->current_nesting++; - { toknz->cs = 360; goto _again;} + { toknz->cs = 326; goto _again;} }} break; case 119: #line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3985,29 +4029,6 @@ _eof_trans: }} break; case 120: -#line 940 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 121: -#line 316 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 122: #line 316 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -4026,7 +4047,84 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 4030 "eo_lexer.c" + case 121: +#line 307 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 122: +#line 925 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + INF("begin class: %s", toknz->tmp.kls->name); + toknz->current_nesting++; + { toknz->cs = 377; goto _again;} + }} + break; + case 123: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 124: +#line 960 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 125: +#line 316 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 126: +#line 316 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; +#line 4128 "eo_lexer.c" } } @@ -4035,11 +4133,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 36: + case 38: #line 1 "NONE" { toknz->ts = 0;} break; -#line 4043 "eo_lexer.c" +#line 4141 "eo_lexer.c" } } @@ -4057,12 +4155,12 @@ _again: _out: {} } -#line 1059 "eo_lexer.rl" +#line 1079 "eo_lexer.rl" if ( toknz->cs == -#line 4064 "eo_lexer.c" +#line 4162 "eo_lexer.c" -1 -#line 1060 "eo_lexer.rl" +#line 1080 "eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -4249,6 +4347,14 @@ eo_tokenizer_database_fill(const char *filename) { database_class_legacy_prefix_set(kls->name, kls->legacy_prefix); } + if (kls->eo_prefix) + { + database_class_eo_prefix_set(kls->name, kls->eo_prefix); + } + if (kls->data_type) + { + database_class_data_type_set(kls->name, kls->data_type); + } EINA_LIST_FOREACH(kls->constructors, l, meth) { Eolian_Function foo_id = database_function_new(meth->name, CONSTRUCTOR); diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index 6869eaaa29..c02c55d527 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -789,6 +789,24 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) legacy_prefix = 'legacy_prefix' ignore* colon ignore* ident %end_legacy_prefix end_statement ignore*; + action end_eo_prefix { + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + if (toknz->tmp.kls->eo_prefix != NULL) + ABORT(toknz, "An Eo prefix has already been given"); + toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, fpc); + } + + eo_prefix = 'eo_prefix' ignore* colon ignore* ident %end_eo_prefix end_statement ignore*; + + action end_data_type{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + if (toknz->tmp.kls->data_type != NULL) + ABORT(toknz, "A data type has already been given"); + toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, fpc); + } + + data_type = 'data' ignore* colon ignore* ident %end_data_type end_statement ignore*; + class_it = ident %end_str_item ignore*; class_it_next = list_separator ignore* class_it; inherits = begin_list (class_it class_it_next*)? end_list %end_inherits; @@ -890,6 +908,8 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) eo_comment => end_class_comment; comment => show_comment; legacy_prefix; + eo_prefix; + data_type; implements => end_implements; events => end_events; constructors => begin_constructors; @@ -1243,6 +1263,14 @@ eo_tokenizer_database_fill(const char *filename) { database_class_legacy_prefix_set(kls->name, kls->legacy_prefix); } + if (kls->eo_prefix) + { + database_class_eo_prefix_set(kls->name, kls->eo_prefix); + } + if (kls->data_type) + { + database_class_data_type_set(kls->name, kls->data_type); + } EINA_LIST_FOREACH(kls->constructors, l, meth) { Eolian_Function foo_id = database_function_new(meth->name, CONSTRUCTOR); diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 3c060d3981..a8850de97f 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -11,6 +11,8 @@ typedef struct Eolian_Class_Type type; Eina_Stringshare *description; Eina_Stringshare *legacy_prefix; + Eina_Stringshare *eo_prefix; + Eina_Stringshare *data_type; Eolian_Function dflt_ctor; Eolian_Function dflt_dtor; Eina_List *inherits; /* List Eina_Stringshare * */ @@ -128,6 +130,8 @@ _class_del(Class_desc *class) eina_stringshare_del(class->file); eina_stringshare_del(class->description); eina_stringshare_del(class->legacy_prefix); + eina_stringshare_del(class->eo_prefix); + eina_stringshare_del(class->data_type); free(class); } @@ -299,6 +303,38 @@ database_class_legacy_prefix_set(const char *class_name, const char *legacy_pref desc->legacy_prefix = eina_stringshare_add(legacy_prefix); } +EAPI const char* +eolian_class_eo_prefix_get(const char *class_name) +{ + Class_desc *desc = _class_get(class_name); + EINA_SAFETY_ON_NULL_RETURN_VAL(desc, NULL); + return desc->eo_prefix; +} + +void +database_class_eo_prefix_set(const char *class_name, const char *eo_prefix) +{ + Class_desc *desc = _class_get(class_name); + EINA_SAFETY_ON_NULL_RETURN(desc); + desc->eo_prefix = eina_stringshare_add(eo_prefix); +} + +EAPI const char* +eolian_class_data_type_get(const char *class_name) +{ + Class_desc *desc = _class_get(class_name); + EINA_SAFETY_ON_NULL_RETURN_VAL(desc, NULL); + return desc->data_type; +} + +void +database_class_data_type_set(const char *class_name, const char *data_type) +{ + Class_desc *desc = _class_get(class_name); + EINA_SAFETY_ON_NULL_RETURN(desc); + desc->data_type= eina_stringshare_add(data_type); +} + EAPI const Eina_List * eolian_class_inherits_list_get(const char *class_name) { @@ -1116,6 +1152,18 @@ static Eina_Bool _class_print(const Eina_Hash *hash EINA_UNUSED, const void *key printf(" legacy prefix: <%s>\n", desc->legacy_prefix); } + // Eo prefix + if (desc->eo_prefix) + { + printf(" Eo prefix: <%s>\n", desc->eo_prefix); + } + + // Data type + if (desc->data_type) + { + printf(" Data type: <%s>\n", desc->data_type); + } + // Default constructor if (desc->dflt_ctor) { diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 0817841fa5..a85851889f 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -51,6 +51,14 @@ database_class_description_set(const char *class_name, const char *description); void database_class_legacy_prefix_set(const char *class_name, const char *legacy_prefix); +/* Set eo prefix of class. */ +void +database_class_eo_prefix_set(const char *class_name, const char *eo_prefix); + +/* Set data of class. */ +void +database_class_data_type_set(const char *class_name, const char *data_type); + /* Set file of class */ Eina_Bool database_class_file_set(const char *class_name, const char *file_name); diff --git a/src/lib/evas/canvas/evas_line.eo b/src/lib/evas/canvas/evas_line.eo index fd53f4f374..aa99a09a3c 100644 --- a/src/lib/evas/canvas/evas_line.eo +++ b/src/lib/evas/canvas/evas_line.eo @@ -1,6 +1,7 @@ class Evas_Line (Evas_Object) { legacy_prefix: evas_object_line; + eo_prefix: evas_obj_line; properties { xy { set { diff --git a/src/lib/evas/canvas/evas_object.eo b/src/lib/evas/canvas/evas_object.eo index 386610f8d3..8b67c06ea3 100644 --- a/src/lib/evas/canvas/evas_object.eo +++ b/src/lib/evas/canvas/evas_object.eo @@ -1,5 +1,6 @@ abstract Evas_Object (Eo_Base, Evas_Common_Interface) { + eo_prefix: evas_obj; properties { size_hint_max { set { diff --git a/src/lib/evas/canvas/evas_polygon.eo b/src/lib/evas/canvas/evas_polygon.eo index c4b93deeb1..4a35704cd9 100644 --- a/src/lib/evas/canvas/evas_polygon.eo +++ b/src/lib/evas/canvas/evas_polygon.eo @@ -1,6 +1,7 @@ class Evas_Polygon (Evas_Object) { legacy_prefix: evas_object_polygon; + eo_prefix: evas_obj_polygon; methods { point_add { /*@ diff --git a/src/lib/evas/canvas/evas_rectangle.eo b/src/lib/evas/canvas/evas_rectangle.eo index ab6ef3d3c3..4453686b90 100644 --- a/src/lib/evas/canvas/evas_rectangle.eo +++ b/src/lib/evas/canvas/evas_rectangle.eo @@ -1,6 +1,7 @@ class Evas_Rectangle (Evas_Object) { legacy_prefix: evas_object_rectangle; + eo_prefix: evas_obj_rectangle; implements { Eo_Base::constructor; } diff --git a/src/lib/evas/canvas/evas_text.eo b/src/lib/evas/canvas/evas_text.eo index 1560a6e75d..eb214edd51 100644 --- a/src/lib/evas/canvas/evas_text.eo +++ b/src/lib/evas/canvas/evas_text.eo @@ -1,6 +1,7 @@ class Evas_Text (Evas_Object) { legacy_prefix: evas_object_text; + eo_prefix: evas_obj_text; properties { font_source { set { diff --git a/src/lib/evas/canvas/evas_textblock.eo b/src/lib/evas/canvas/evas_textblock.eo index f5a06bbccc..dcad4d3de2 100644 --- a/src/lib/evas/canvas/evas_textblock.eo +++ b/src/lib/evas/canvas/evas_textblock.eo @@ -1,6 +1,7 @@ class Evas_Textblock (Evas_Object) { legacy_prefix: evas_object_textblock; + eo_prefix: evas_obj_textblock; properties { text_markup { set { diff --git a/src/lib/evas/canvas/evas_textgrid.eo b/src/lib/evas/canvas/evas_textgrid.eo index 4927c43d75..9a75bae455 100644 --- a/src/lib/evas/canvas/evas_textgrid.eo +++ b/src/lib/evas/canvas/evas_textgrid.eo @@ -1,6 +1,7 @@ class Evas_Textgrid (Evas_Object) { legacy_prefix: evas_object_textgrid; + eo_prefix: evas_obj_textgrid; properties { font_source { set {