From 87776ff0fa79f6c62dc7d2208f5c5d651c7afdcc Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Thu, 3 Apr 2014 16:20:58 +0300 Subject: [PATCH] Eolian: add support for functions scope. This patch adds support for protected functions. In the .eo file, the scope (public by default) has to be added before the function name e.g: protected foo ... To access the protected APIs, #define (CLASS)_PROTECTED is needed e.g: #define ELM_BUTTON_PROTECTED --- src/bin/eolian/eo1_generator.c | 10 +- src/lib/eolian/Eolian.h | 16 + src/lib/eolian/eo_definitions.h | 2 + src/lib/eolian/eo_lexer.c | 1793 +++++++++++++++++++------------------- src/lib/eolian/eo_lexer.h | 1 + src/lib/eolian/eo_lexer.rl | 41 +- src/lib/eolian/eolian_database.c | 17 + src/lib/eolian/eolian_database.h | 3 + 8 files changed, 1000 insertions(+), 883 deletions(-) diff --git a/src/bin/eolian/eo1_generator.c b/src/bin/eolian/eo1_generator.c index a4d9568..669125b 100644 --- a/src/bin/eolian/eo1_generator.c +++ b/src/bin/eolian/eo1_generator.c @@ -113,7 +113,7 @@ static const char tmpl_eo_subid_apnd[] = " @#EOPREFIX_SUB_ID_@#FUNC,\n"; static const char -tmpl_eo_funcdef_doxygen[] = "\n\ +tmpl_eo_funcdef_doxygen[] = "\ /**\n\ * @def @#eoprefix_@#func\n\ *\n\ @@ -163,6 +163,7 @@ eo1_fundef_generate(const char *classname, Eolian_Function func, Eolian_Function Eina_Bool var_as_ret = EINA_FALSE; const char *rettype = NULL; Eina_Bool ret_const = EINA_FALSE; + Eolian_Function_Scope scope = eolian_function_scope_get(func); char *fsuffix = ""; rettype = eolian_function_return_type_get(func, ftype); @@ -189,12 +190,17 @@ eo1_fundef_generate(const char *classname, Eolian_Function func, Eolian_Function const char *funcdesc = eolian_function_description_get(func, descname); Eina_Strbuf *str_func = eina_strbuf_new(); - _template_fill(str_func, tmpl_eo_funcdef_doxygen, classname, funcname, EINA_TRUE); + if (scope == EOLIAN_SCOPE_PROTECTED) + eina_strbuf_append_printf(str_func, "#ifdef %s_PROTECTED\n", capclass); + _template_fill(str_func, tmpl_eo_funcdef_doxygen, classname, funcname, EINA_FALSE); #ifndef EO _template_fill(str_func, tmpl_eo1_funcdef, classname, funcname, EINA_FALSE); #else _template_fill(str_func, tmpl_eo_funcdef, classname, funcname, EINA_FALSE); + if (scope == EOLIAN_SCOPE_PROTECTED) + eina_strbuf_append_printf(str_func, "#endif\n"); #endif + eina_strbuf_append_printf(str_func, "\n"); eina_strbuf_replace_all(str_func, "@#EOPREFIX", current_eo_prefix_upper); eina_strbuf_replace_all(str_func, "@#eoprefix", current_eo_prefix_lower); diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 45bdd25..180e9a4 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -110,6 +110,12 @@ typedef enum EOLIAN_CLASS_INTERFACE } Eolian_Class_Type; +typedef enum +{ + EOLIAN_SCOPE_PUBLIC, + EOLIAN_SCOPE_PROTECTED +} Eolian_Function_Scope; + /* * @brief Parse a given .eo file and fill the database. * @@ -282,6 +288,16 @@ EAPI Eolian_Function eolian_class_default_destructor_get(const char *class_name) EAPI Eolian_Function_Type eolian_function_type_get(Eolian_Function function_id); /* + * @brief Returns the scope of a function + * + * @param[in] function_id Id of the function + * @return the function scope + * + * @ingroup Eolian + */ +EAPI Eolian_Function_Scope eolian_function_scope_get(Eolian_Function function_id); + +/* * @brief Returns the name of a function * * @param[in] function_id Id of the function diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index 76f4a7d..d5a8a94 100644 --- a/src/lib/eolian/eo_definitions.h +++ b/src/lib/eolian/eo_definitions.h @@ -67,6 +67,7 @@ typedef struct _eo_property_def Eina_List *keys; Eina_List *values; Eina_List *accessors; + int scope; } Eo_Property_Def; /* METHOD */ @@ -87,6 +88,7 @@ typedef struct _eo_method_def Eina_List *params; const char* legacy; Eina_Bool obj_const; + int scope; } Eo_Method_Def; /* SIGNAL */ diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 0acce19..66fb0d1 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -35,6 +35,9 @@ static int _eo_tokenizer_log_dom = -1; #endif #define DBG(...) EINA_LOG_DOM_DBG(_eo_tokenizer_log_dom, __VA_ARGS__) +#define FUNC_PUBLIC 0 +#define FUNC_PROTECTED 1 + static int _init_counter = 0; int @@ -154,10 +157,21 @@ _eo_tokenizer_class_get(Eo_Tokenizer *toknz, char *p) static Eo_Property_Def* _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) { - Eo_Property_Def *prop = calloc(1, sizeof(Eo_Property_Def)); - if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); + Eo_Property_Def *prop = NULL; + if (!strncmp(toknz->saved.tok, "protected ", 10)) + { + toknz->saved.tok += 10; + toknz->tmp.fscope = FUNC_PROTECTED; + } + else + { + prop = calloc(1, sizeof(Eo_Property_Def)); + if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); - prop->name = _eo_tokenizer_token_get(toknz, p); + prop->name = _eo_tokenizer_token_get(toknz, p); + prop->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; + } return prop; } @@ -165,10 +179,21 @@ _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) static Eo_Method_Def* _eo_tokenizer_method_get(Eo_Tokenizer *toknz, char *p) { - Eo_Method_Def *meth = calloc(1, sizeof(Eo_Method_Def)); - if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); + Eo_Method_Def *meth = NULL; + if (!strncmp(toknz->saved.tok, "protected ", 10)) + { + toknz->saved.tok += 10; + toknz->tmp.fscope = FUNC_PROTECTED; + } + else + { + meth = calloc(1, sizeof(Eo_Method_Def)); + if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); - meth->name = _eo_tokenizer_token_get(toknz, p); + meth->name = _eo_tokenizer_token_get(toknz, p); + meth->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; + } return meth; } @@ -351,11 +376,11 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) } -#line 428 "lib/eolian/eo_lexer.rl" +#line 453 "lib/eolian/eo_lexer.rl" -#line 359 "lib/eolian/eo_lexer.c" +#line 384 "lib/eolian/eo_lexer.c" static const char _eo_tokenizer_actions[] = { 0, 1, 0, 1, 2, 1, 6, 1, 10, 1, 15, 1, 16, 1, 17, 1, @@ -416,39 +441,40 @@ static const short _eo_tokenizer_key_offsets[] = { 380, 384, 385, 386, 396, 398, 401, 403, 406, 407, 408, 412, 413, 414, 418, 419, 423, 424, 425, 426, 427, 431, 433, 436, - 437, 448, 452, 455, 457, 460, 471, 473, - 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 488, 495, 503, 504, 505, 506, - 507, 511, 512, 513, 514, 515, 518, 525, - 539, 554, 558, 559, 560, 570, 572, 575, - 577, 580, 581, 592, 596, 599, 601, 604, - 615, 617, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 635, 636, - 637, 641, 648, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 669, 670, 671, - 672, 673, 674, 675, 676, 680, 687, 695, - 696, 697, 698, 699, 703, 711, 727, 731, - 743, 744, 745, 755, 757, 760, 768, 776, - 784, 796, 800, 801, 802, 803, 804, 805, - 806, 807, 808, 812, 820, 833, 838, 842, - 843, 844, 845, 846, 847, 859, 864, 868, - 877, 881, 882, 883, 884, 885, 886, 890, - 899, 906, 917, 921, 935, 945, 957, 962, - 968, 973, 974, 975, 976, 977, 978, 981, - 988, 996, 997, 1001, 1009, 1013, 1018, 1019, - 1020, 1030, 1032, 1035, 1045, 1057, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1079, 1080, 1081, 1085, 1092, 1100, 1101, 1102, - 1103, 1104, 1105, 1109, 1110, 1111, 1112, 1113, - 1114, 1115, 1116, 1117, 1121, 1129, 1132, 1134, - 1135, 1136, 1137, 1138, 1149, 1152, 1154, 1165, - 1177, 1189, 1193, 1193, 1194, 1203, 1206, 1208, - 1219, 1223, 1223, 1224, 1233, 1236, 1238, 1239, - 1240, 1241, 1242, 1243, 1254, 1257, 1259, 1266, - 1267, 1276, 1279, 1281, 1282, 1283, 1284, 1285, - 1289, 1289, 1290, 1301, 1304, 1306, 1313, 1314, - 1326, 1329, 1331, 1332, 1334, 1337, 1339, 1342, - 1343, 1344, 1345, 1346, 1349, 1350, 1351 + 437, 451, 455, 466, 477, 480, 482, 485, + 496, 498, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 513, 520, 528, 529, + 530, 531, 532, 536, 537, 538, 539, 540, + 543, 550, 564, 579, 583, 584, 585, 595, + 597, 600, 602, 605, 606, 620, 624, 635, + 646, 649, 651, 654, 665, 667, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 685, 686, 687, 691, 698, 706, + 707, 708, 709, 710, 711, 712, 713, 714, + 715, 719, 720, 721, 722, 723, 724, 725, + 726, 730, 737, 745, 746, 747, 748, 749, + 753, 761, 777, 781, 793, 794, 795, 805, + 807, 810, 818, 826, 834, 846, 850, 851, + 852, 853, 854, 855, 856, 857, 858, 862, + 870, 883, 888, 892, 893, 894, 895, 896, + 897, 909, 914, 918, 927, 931, 932, 933, + 934, 935, 936, 940, 949, 956, 967, 971, + 985, 995, 1007, 1012, 1018, 1023, 1024, 1025, + 1026, 1027, 1028, 1031, 1038, 1046, 1047, 1051, + 1059, 1063, 1068, 1069, 1070, 1080, 1082, 1085, + 1095, 1107, 1119, 1120, 1121, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1135, + 1142, 1150, 1151, 1152, 1153, 1154, 1155, 1159, + 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1171, 1179, 1182, 1184, 1185, 1186, 1187, 1188, + 1199, 1202, 1204, 1215, 1227, 1239, 1243, 1243, + 1244, 1253, 1256, 1258, 1269, 1273, 1273, 1274, + 1283, 1286, 1288, 1289, 1290, 1291, 1292, 1293, + 1304, 1307, 1309, 1316, 1317, 1326, 1329, 1331, + 1332, 1333, 1334, 1335, 1339, 1339, 1340, 1351, + 1354, 1356, 1363, 1364, 1376, 1379, 1381, 1382, + 1384, 1387, 1389, 1392, 1393, 1394, 1395, 1396, + 1399, 1400, 1401 }; static const char _eo_tokenizer_trans_keys[] = { @@ -506,122 +532,128 @@ static const char _eo_tokenizer_trans_keys[] = { 10, 123, 0, 32, 121, 115, 10, 123, 0, 32, 116, 10, 123, 0, 32, 108, 117, 101, 115, 10, 123, 0, 32, 10, - 42, 10, 42, 47, 10, 10, 95, 123, - 0, 32, 48, 57, 65, 90, 97, 122, - 10, 123, 0, 32, 10, 42, 64, 10, - 42, 10, 42, 47, 10, 42, 95, 0, - 32, 48, 57, 64, 90, 97, 122, 10, - 42, 10, 42, 47, 10, 110, 115, 116, - 59, 103, 97, 99, 121, 9, 13, 32, - 9, 13, 32, 65, 90, 97, 122, 59, - 95, 48, 57, 65, 90, 97, 122, 114, - 97, 109, 115, 10, 123, 0, 32, 116, - 117, 114, 110, 9, 13, 32, 9, 13, - 32, 65, 90, 97, 122, 9, 13, 32, - 95, 40, 42, 45, 46, 48, 57, 64, - 90, 97, 122, 9, 13, 32, 59, 95, - 40, 42, 45, 46, 48, 57, 64, 90, - 97, 122, 9, 13, 32, 47, 42, 64, - 10, 95, 0, 32, 48, 57, 64, 90, - 97, 122, 10, 42, 10, 42, 47, 10, - 42, 10, 42, 47, 10, 10, 95, 123, - 0, 32, 48, 57, 65, 90, 97, 122, - 10, 123, 0, 32, 10, 42, 64, 10, - 42, 10, 42, 47, 10, 42, 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, 116, 97, 10, 58, 0, - 32, 10, 0, 32, 65, 90, 97, 122, + 42, 10, 42, 47, 10, 9, 10, 13, + 32, 95, 123, 0, 31, 48, 57, 65, + 90, 97, 122, 10, 123, 0, 32, 10, + 95, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 42, 64, + 10, 42, 10, 42, 47, 10, 42, 95, + 0, 32, 48, 57, 64, 90, 97, 122, + 10, 42, 10, 42, 47, 10, 110, 115, + 116, 59, 103, 97, 99, 121, 9, 13, + 32, 9, 13, 32, 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, 59, - 95, 48, 57, 65, 90, 97, 122, 101, - 110, 116, 115, 10, 123, 0, 32, 10, - 125, 0, 32, 65, 90, 97, 122, 9, - 10, 13, 32, 40, 44, 59, 95, 0, - 31, 48, 57, 65, 90, 97, 122, 10, - 59, 0, 32, 9, 10, 13, 32, 47, - 125, 0, 31, 65, 90, 97, 122, 42, + 114, 97, 109, 115, 10, 123, 0, 32, + 116, 117, 114, 110, 9, 13, 32, 9, + 13, 32, 65, 90, 97, 122, 9, 13, + 32, 95, 40, 42, 45, 46, 48, 57, + 64, 90, 97, 122, 9, 13, 32, 59, + 95, 40, 42, 45, 46, 48, 57, 64, + 90, 97, 122, 9, 13, 32, 47, 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, - 9, 10, 13, 32, 40, 59, 0, 31, - 9, 13, 32, 95, 65, 90, 97, 122, - 9, 13, 32, 41, 42, 95, 48, 57, - 65, 90, 97, 122, 10, 59, 0, 32, - 112, 108, 101, 109, 101, 110, 116, 115, - 10, 123, 0, 32, 10, 125, 0, 32, - 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, 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, 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, 58, 95, 48, 57, - 65, 90, 97, 122, 58, 65, 90, 97, + 10, 42, 10, 42, 47, 10, 9, 10, + 13, 32, 95, 123, 0, 31, 48, 57, + 65, 90, 97, 122, 10, 123, 0, 32, + 10, 95, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 10, 95, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 42, + 64, 10, 42, 10, 42, 47, 10, 42, + 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, 116, 97, 10, + 58, 0, 32, 10, 0, 32, 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, 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, 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, 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, 9, 13, 32, 58, 95, 48, - 57, 65, 90, 97, 122, 9, 13, 32, - 58, 95, 101, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 58, 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, - 48, 57, 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, 48, - 57, 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 + 122, 101, 110, 116, 115, 10, 123, 0, + 32, 10, 125, 0, 32, 65, 90, 97, + 122, 9, 10, 13, 32, 40, 44, 59, + 95, 0, 31, 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, 9, 10, 13, 32, 40, 59, + 0, 31, 9, 13, 32, 95, 65, 90, + 97, 122, 9, 13, 32, 41, 42, 95, + 48, 57, 65, 90, 97, 122, 10, 59, + 0, 32, 112, 108, 101, 109, 101, 110, + 116, 115, 10, 123, 0, 32, 10, 125, + 0, 32, 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, 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, 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, 58, 95, + 48, 57, 65, 90, 97, 122, 58, 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, 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, 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, 9, 13, 32, 58, + 95, 48, 57, 65, 90, 97, 122, 9, + 13, 32, 58, 95, 101, 48, 57, 65, + 90, 97, 122, 9, 13, 32, 58, 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, 48, 57, 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, 48, 57, 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[] = { @@ -637,39 +669,40 @@ static const char _eo_tokenizer_single_lengths[] = { 4, 1, 1, 2, 2, 3, 2, 3, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 3, 1, - 3, 2, 3, 2, 3, 3, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 3, 2, 1, 1, 1, 1, - 2, 1, 1, 1, 1, 3, 3, 4, - 5, 4, 1, 1, 2, 2, 3, 2, - 3, 1, 3, 2, 3, 2, 3, 3, + 6, 2, 3, 3, 3, 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 1, - 2, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 2, 1, - 1, 1, 1, 2, 2, 8, 2, 6, - 1, 1, 2, 2, 3, 2, 6, 4, - 6, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 5, 3, 2, 1, - 1, 1, 1, 1, 6, 3, 2, 3, - 2, 1, 1, 1, 1, 1, 2, 3, - 3, 3, 2, 8, 4, 6, 5, 4, - 3, 1, 1, 1, 1, 1, 3, 3, - 2, 1, 0, 2, 2, 3, 1, 1, - 2, 2, 3, 4, 6, 4, 1, 1, + 1, 1, 1, 3, 3, 2, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 3, + 3, 4, 5, 4, 1, 1, 2, 2, + 3, 2, 3, 1, 6, 2, 3, 3, + 3, 2, 3, 3, 2, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 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, 5, 6, - 6, 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 + 2, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 1, 1, 1, 2, + 2, 8, 2, 6, 1, 1, 2, 2, + 3, 2, 6, 4, 6, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, + 5, 3, 2, 1, 1, 1, 1, 1, + 6, 3, 2, 3, 2, 1, 1, 1, + 1, 1, 2, 3, 3, 3, 2, 8, + 4, 6, 5, 4, 3, 1, 1, 1, + 1, 1, 3, 3, 2, 1, 0, 2, + 2, 3, 1, 1, 2, 2, 3, 4, + 6, 4, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 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, 5, 6, 6, 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[] = { @@ -685,39 +718,40 @@ static const char _eo_tokenizer_range_lengths[] = { 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, - 4, 1, 0, 0, 0, 4, 0, 0, + 4, 1, 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 3, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 2, 5, - 5, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 4, 1, 0, 0, 0, 4, + 0, 0, 0, 0, 2, 3, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 2, 5, 5, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 4, 1, 4, 4, + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, - 1, 3, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 3, 0, - 0, 0, 0, 1, 3, 4, 1, 3, - 0, 0, 4, 0, 0, 3, 1, 2, - 3, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 3, 4, 1, 1, 0, - 0, 0, 0, 0, 3, 1, 1, 3, - 1, 0, 0, 0, 0, 0, 1, 3, - 2, 4, 1, 3, 3, 3, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 2, - 3, 0, 2, 3, 1, 1, 0, 0, - 4, 0, 0, 3, 3, 4, 0, 0, + 0, 1, 0, 0, 1, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 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, 4, 1, 0, 3, 0, - 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 1, 0, 3, 0, 1, - 1, 0, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 1, 0, 0, 0 + 1, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 3, 0, 0, 0, 0, 1, + 3, 4, 1, 3, 0, 0, 4, 0, + 0, 3, 1, 2, 3, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 3, + 4, 1, 1, 0, 0, 0, 0, 0, + 3, 1, 1, 3, 1, 0, 0, 0, + 0, 0, 1, 3, 2, 4, 1, 3, + 3, 3, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 2, 3, 0, 2, 3, + 1, 1, 0, 0, 4, 0, 0, 3, + 3, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 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, 4, + 1, 0, 3, 0, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 1, + 0, 3, 0, 1, 1, 0, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 1, + 0, 0, 0 }; static const short _eo_tokenizer_index_offsets[] = { @@ -733,39 +767,40 @@ static const short _eo_tokenizer_index_offsets[] = { 365, 370, 372, 374, 381, 384, 388, 391, 395, 397, 399, 403, 405, 407, 411, 413, 417, 419, 421, 423, 425, 429, 432, 436, - 438, 446, 450, 454, 457, 461, 469, 472, - 476, 478, 480, 482, 484, 486, 488, 490, - 492, 494, 498, 504, 510, 512, 514, 516, - 518, 522, 524, 526, 528, 530, 534, 540, - 550, 561, 566, 568, 570, 577, 580, 584, - 587, 591, 593, 601, 605, 609, 612, 616, - 624, 627, 631, 633, 635, 637, 639, 641, - 643, 645, 647, 649, 651, 653, 657, 659, - 661, 665, 670, 676, 678, 680, 682, 684, - 686, 688, 690, 692, 694, 698, 700, 702, - 704, 706, 708, 710, 712, 716, 721, 727, - 729, 731, 733, 735, 739, 745, 758, 762, - 772, 774, 776, 783, 786, 790, 796, 804, - 811, 821, 825, 827, 829, 831, 833, 835, - 837, 839, 841, 845, 851, 861, 866, 870, - 872, 874, 876, 878, 880, 890, 895, 899, - 906, 910, 912, 914, 916, 918, 920, 924, - 931, 937, 945, 949, 961, 969, 979, 985, - 991, 996, 998, 1000, 1002, 1004, 1006, 1010, - 1016, 1022, 1024, 1027, 1033, 1037, 1042, 1044, - 1046, 1053, 1056, 1060, 1068, 1078, 1087, 1089, - 1091, 1093, 1095, 1097, 1099, 1101, 1103, 1105, - 1107, 1109, 1111, 1115, 1120, 1126, 1128, 1130, - 1132, 1134, 1136, 1140, 1142, 1144, 1146, 1148, - 1150, 1152, 1154, 1156, 1160, 1168, 1171, 1174, - 1176, 1178, 1180, 1182, 1191, 1194, 1197, 1206, - 1216, 1226, 1231, 1232, 1234, 1241, 1244, 1247, - 1256, 1261, 1262, 1264, 1273, 1276, 1279, 1281, - 1283, 1285, 1287, 1289, 1297, 1300, 1303, 1308, - 1310, 1319, 1322, 1325, 1327, 1329, 1331, 1333, - 1338, 1339, 1341, 1349, 1352, 1355, 1360, 1362, - 1374, 1377, 1380, 1382, 1385, 1388, 1391, 1394, - 1396, 1398, 1400, 1402, 1405, 1407, 1409 + 438, 449, 453, 461, 469, 473, 476, 480, + 488, 491, 495, 497, 499, 501, 503, 505, + 507, 509, 511, 513, 517, 523, 529, 531, + 533, 535, 537, 541, 543, 545, 547, 549, + 553, 559, 569, 580, 585, 587, 589, 596, + 599, 603, 606, 610, 612, 623, 627, 635, + 643, 647, 650, 654, 662, 665, 669, 671, + 673, 675, 677, 679, 681, 683, 685, 687, + 689, 691, 695, 697, 699, 703, 708, 714, + 716, 718, 720, 722, 724, 726, 728, 730, + 732, 736, 738, 740, 742, 744, 746, 748, + 750, 754, 759, 765, 767, 769, 771, 773, + 777, 783, 796, 800, 810, 812, 814, 821, + 824, 828, 834, 842, 849, 859, 863, 865, + 867, 869, 871, 873, 875, 877, 879, 883, + 889, 899, 904, 908, 910, 912, 914, 916, + 918, 928, 933, 937, 944, 948, 950, 952, + 954, 956, 958, 962, 969, 975, 983, 987, + 999, 1007, 1017, 1023, 1029, 1034, 1036, 1038, + 1040, 1042, 1044, 1048, 1054, 1060, 1062, 1065, + 1071, 1075, 1080, 1082, 1084, 1091, 1094, 1098, + 1106, 1116, 1125, 1127, 1129, 1131, 1133, 1135, + 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1153, + 1158, 1164, 1166, 1168, 1170, 1172, 1174, 1178, + 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, + 1198, 1206, 1209, 1212, 1214, 1216, 1218, 1220, + 1229, 1232, 1235, 1244, 1254, 1264, 1269, 1270, + 1272, 1279, 1282, 1285, 1294, 1299, 1300, 1302, + 1311, 1314, 1317, 1319, 1321, 1323, 1325, 1327, + 1335, 1338, 1341, 1346, 1348, 1357, 1360, 1363, + 1365, 1367, 1369, 1371, 1376, 1377, 1379, 1387, + 1390, 1393, 1398, 1400, 1412, 1415, 1418, 1420, + 1423, 1426, 1429, 1432, 1434, 1436, 1438, 1440, + 1443, 1445, 1447 }; static const short _eo_tokenizer_indicies[] = { @@ -824,208 +859,213 @@ static const short _eo_tokenizer_indicies[] = { 127, 144, 127, 145, 127, 146, 127, 147, 127, 148, 149, 147, 127, 152, 153, 151, 152, 153, 154, 151, 156, 155, 158, 159, - 160, 157, 159, 159, 159, 150, 162, 163, - 161, 150, 166, 167, 168, 165, 166, 167, - 165, 166, 167, 169, 165, 170, 167, 171, - 168, 171, 171, 171, 165, 173, 174, 172, - 173, 174, 175, 172, 177, 176, 178, 164, - 179, 164, 180, 164, 181, 164, 182, 164, - 183, 164, 184, 164, 185, 164, 186, 186, - 186, 164, 186, 186, 186, 187, 187, 164, - 189, 188, 188, 188, 188, 164, 190, 164, - 191, 164, 192, 164, 193, 164, 194, 195, - 193, 164, 196, 164, 197, 164, 198, 164, - 199, 164, 200, 200, 200, 164, 200, 200, - 200, 201, 201, 164, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 164, 202, 202, - 202, 203, 202, 202, 202, 202, 202, 202, - 164, 205, 205, 205, 206, 204, 207, 204, - 208, 204, 209, 210, 208, 210, 210, 210, - 204, 212, 213, 211, 212, 213, 214, 211, - 217, 218, 216, 217, 218, 219, 216, 221, - 220, 223, 224, 225, 222, 224, 224, 224, - 215, 227, 228, 226, 215, 231, 232, 233, - 230, 231, 232, 230, 231, 232, 234, 230, - 235, 232, 236, 233, 236, 236, 236, 230, - 238, 239, 237, 238, 239, 240, 237, 242, - 241, 243, 229, 244, 229, 245, 229, 246, - 229, 247, 229, 248, 229, 249, 229, 250, - 229, 251, 229, 252, 229, 253, 254, 252, - 229, 255, 229, 256, 229, 257, 258, 256, - 229, 259, 258, 260, 260, 229, 262, 261, - 261, 261, 261, 229, 263, 229, 264, 229, - 265, 229, 266, 229, 267, 229, 268, 229, - 269, 229, 270, 229, 271, 229, 272, 273, - 271, 229, 274, 229, 275, 229, 276, 229, - 277, 229, 278, 229, 279, 229, 280, 229, - 281, 282, 280, 229, 283, 282, 284, 284, - 229, 286, 285, 285, 285, 285, 229, 287, - 229, 288, 229, 289, 229, 290, 229, 291, - 292, 290, 229, 293, 295, 292, 294, 294, - 229, 297, 298, 297, 297, 299, 300, 301, - 300, 296, 300, 300, 300, 229, 303, 304, - 302, 229, 304, 293, 304, 304, 305, 295, - 292, 294, 294, 229, 306, 229, 307, 229, - 308, 309, 307, 309, 309, 309, 229, 311, - 312, 310, 311, 312, 313, 310, 315, 317, - 314, 316, 316, 229, 318, 303, 318, 318, - 319, 304, 302, 229, 319, 319, 319, 320, - 320, 320, 229, 321, 321, 321, 322, 321, - 321, 321, 321, 321, 229, 324, 325, 323, - 229, 326, 229, 327, 229, 328, 229, 329, - 229, 330, 229, 331, 229, 332, 229, 333, - 229, 334, 335, 333, 229, 336, 338, 335, - 337, 337, 229, 340, 342, 343, 341, 344, - 339, 341, 341, 341, 229, 346, 335, 347, - 345, 229, 348, 349, 347, 229, 350, 229, - 351, 229, 352, 229, 353, 229, 354, 229, - 356, 357, 356, 356, 358, 360, 355, 359, - 359, 229, 362, 363, 364, 361, 229, 365, - 366, 363, 229, 336, 335, 338, 335, 337, - 337, 229, 367, 368, 364, 229, 369, 229, - 370, 229, 371, 229, 372, 229, 373, 229, - 374, 375, 373, 229, 376, 377, 378, 375, - 379, 379, 229, 377, 377, 377, 380, 380, - 229, 382, 384, 383, 381, 383, 383, 383, - 229, 386, 378, 385, 229, 378, 388, 378, - 378, 389, 377, 378, 390, 387, 379, 379, - 229, 388, 377, 378, 390, 387, 379, 379, - 229, 391, 391, 391, 393, 394, 392, 392, - 392, 392, 229, 395, 395, 395, 377, 378, - 229, 397, 396, 398, 399, 396, 229, 397, - 398, 399, 396, 229, 400, 229, 401, 229, - 402, 229, 403, 229, 404, 229, 405, 405, - 405, 229, 405, 405, 405, 406, 406, 229, - 408, 407, 407, 407, 407, 229, 409, 229, - 410, 410, 229, 412, 411, 411, 411, 411, - 229, 414, 399, 413, 229, 365, 363, 366, - 363, 229, 415, 229, 416, 229, 417, 418, - 416, 418, 418, 418, 229, 420, 421, 419, - 420, 421, 422, 419, 424, 425, 426, 428, - 423, 427, 427, 229, 429, 362, 429, 429, - 363, 364, 361, 430, 430, 229, 432, 434, - 433, 435, 431, 433, 433, 433, 229, 341, - 229, 436, 229, 437, 229, 438, 229, 439, - 229, 440, 229, 441, 229, 442, 229, 443, - 229, 444, 229, 445, 229, 446, 229, 447, - 448, 446, 229, 449, 448, 450, 450, 229, - 452, 451, 451, 451, 451, 229, 453, 229, - 454, 229, 455, 229, 456, 229, 457, 229, - 458, 459, 457, 229, 460, 229, 461, 229, - 462, 229, 463, 229, 464, 229, 465, 229, - 466, 229, 467, 229, 468, 469, 467, 229, - 472, 473, 474, 475, 476, 477, 471, 470, - 472, 471, 478, 1, 5, 479, 480, 479, - 481, 479, 482, 479, 483, 479, 486, 487, - 489, 490, 491, 485, 488, 488, 484, 486, - 485, 492, 494, 69, 493, 71, 71, 71, - 72, 79, 79, 79, 79, 493, 71, 71, - 71, 72, 79, 495, 79, 79, 79, 493, - 71, 71, 71, 72, 79, 496, 79, 79, - 79, 493, 97, 97, 97, 98, 497, 498, - 500, 499, 503, 504, 506, 502, 505, 505, - 501, 503, 502, 507, 108, 112, 508, 114, - 114, 114, 114, 114, 114, 114, 114, 508, - 117, 117, 117, 118, 509, 510, 512, 511, - 515, 516, 517, 518, 519, 520, 521, 514, - 513, 515, 514, 522, 128, 132, 523, 524, - 523, 525, 523, 526, 523, 527, 523, 529, - 528, 532, 533, 535, 531, 534, 534, 534, - 530, 532, 531, 536, 151, 155, 537, 159, - 159, 159, 159, 537, 539, 538, 542, 543, - 544, 545, 546, 547, 548, 541, 540, 542, - 541, 549, 551, 176, 550, 552, 550, 553, - 550, 554, 550, 555, 550, 205, 205, 205, - 206, 556, 557, 559, 558, 562, 563, 565, - 561, 564, 564, 564, 560, 562, 561, 566, - 216, 220, 567, 224, 224, 224, 224, 567, - 569, 568, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 571, 570, 572, 571, - 582, 584, 241, 583, 585, 583, 586, 587, - 583, 590, 589, 588, 591, 592, 583, 595, - 594, 593, 597, 596, 598, 583, 600, 599, - 601, 583, 604, 603, 602, 605, 583, 606, - 583, 608, 607, 0 + 158, 158, 160, 161, 157, 160, 160, 160, + 150, 163, 164, 162, 150, 163, 165, 164, + 162, 165, 165, 165, 150, 159, 165, 161, + 157, 165, 165, 165, 150, 168, 169, 170, + 167, 168, 169, 167, 168, 169, 171, 167, + 172, 169, 173, 170, 173, 173, 173, 167, + 175, 176, 174, 175, 176, 177, 174, 179, + 178, 180, 166, 181, 166, 182, 166, 183, + 166, 184, 166, 185, 166, 186, 166, 187, + 166, 188, 188, 188, 166, 188, 188, 188, + 189, 189, 166, 191, 190, 190, 190, 190, + 166, 192, 166, 193, 166, 194, 166, 195, + 166, 196, 197, 195, 166, 198, 166, 199, + 166, 200, 166, 201, 166, 202, 202, 202, + 166, 202, 202, 202, 203, 203, 166, 204, + 204, 204, 204, 204, 204, 204, 204, 204, + 166, 204, 204, 204, 205, 204, 204, 204, + 204, 204, 204, 166, 207, 207, 207, 208, + 206, 209, 206, 210, 206, 211, 212, 210, + 212, 212, 212, 206, 214, 215, 213, 214, + 215, 216, 213, 219, 220, 218, 219, 220, + 221, 218, 223, 222, 225, 226, 225, 225, + 227, 228, 224, 227, 227, 227, 217, 230, + 231, 229, 217, 230, 232, 231, 229, 232, + 232, 232, 217, 226, 232, 228, 224, 232, + 232, 232, 217, 235, 236, 237, 234, 235, + 236, 234, 235, 236, 238, 234, 239, 236, + 240, 237, 240, 240, 240, 234, 242, 243, + 241, 242, 243, 244, 241, 246, 245, 247, + 233, 248, 233, 249, 233, 250, 233, 251, + 233, 252, 233, 253, 233, 254, 233, 255, + 233, 256, 233, 257, 258, 256, 233, 259, + 233, 260, 233, 261, 262, 260, 233, 263, + 262, 264, 264, 233, 266, 265, 265, 265, + 265, 233, 267, 233, 268, 233, 269, 233, + 270, 233, 271, 233, 272, 233, 273, 233, + 274, 233, 275, 233, 276, 277, 275, 233, + 278, 233, 279, 233, 280, 233, 281, 233, + 282, 233, 283, 233, 284, 233, 285, 286, + 284, 233, 287, 286, 288, 288, 233, 290, + 289, 289, 289, 289, 233, 291, 233, 292, + 233, 293, 233, 294, 233, 295, 296, 294, + 233, 297, 299, 296, 298, 298, 233, 301, + 302, 301, 301, 303, 304, 305, 304, 300, + 304, 304, 304, 233, 307, 308, 306, 233, + 308, 297, 308, 308, 309, 299, 296, 298, + 298, 233, 310, 233, 311, 233, 312, 313, + 311, 313, 313, 313, 233, 315, 316, 314, + 315, 316, 317, 314, 319, 321, 318, 320, + 320, 233, 322, 307, 322, 322, 323, 308, + 306, 233, 323, 323, 323, 324, 324, 324, + 233, 325, 325, 325, 326, 325, 325, 325, + 325, 325, 233, 328, 329, 327, 233, 330, + 233, 331, 233, 332, 233, 333, 233, 334, + 233, 335, 233, 336, 233, 337, 233, 338, + 339, 337, 233, 340, 342, 339, 341, 341, + 233, 344, 346, 347, 345, 348, 343, 345, + 345, 345, 233, 350, 339, 351, 349, 233, + 352, 353, 351, 233, 354, 233, 355, 233, + 356, 233, 357, 233, 358, 233, 360, 361, + 360, 360, 362, 364, 359, 363, 363, 233, + 366, 367, 368, 365, 233, 369, 370, 367, + 233, 340, 339, 342, 339, 341, 341, 233, + 371, 372, 368, 233, 373, 233, 374, 233, + 375, 233, 376, 233, 377, 233, 378, 379, + 377, 233, 380, 381, 382, 379, 383, 383, + 233, 381, 381, 381, 384, 384, 233, 386, + 388, 387, 385, 387, 387, 387, 233, 390, + 382, 389, 233, 382, 392, 382, 382, 393, + 381, 382, 394, 391, 383, 383, 233, 392, + 381, 382, 394, 391, 383, 383, 233, 395, + 395, 395, 397, 398, 396, 396, 396, 396, + 233, 399, 399, 399, 381, 382, 233, 401, + 400, 402, 403, 400, 233, 401, 402, 403, + 400, 233, 404, 233, 405, 233, 406, 233, + 407, 233, 408, 233, 409, 409, 409, 233, + 409, 409, 409, 410, 410, 233, 412, 411, + 411, 411, 411, 233, 413, 233, 414, 414, + 233, 416, 415, 415, 415, 415, 233, 418, + 403, 417, 233, 369, 367, 370, 367, 233, + 419, 233, 420, 233, 421, 422, 420, 422, + 422, 422, 233, 424, 425, 423, 424, 425, + 426, 423, 428, 429, 430, 432, 427, 431, + 431, 233, 433, 366, 433, 433, 367, 368, + 365, 434, 434, 233, 436, 438, 437, 439, + 435, 437, 437, 437, 233, 345, 233, 440, + 233, 441, 233, 442, 233, 443, 233, 444, + 233, 445, 233, 446, 233, 447, 233, 448, + 233, 449, 233, 450, 233, 451, 452, 450, + 233, 453, 452, 454, 454, 233, 456, 455, + 455, 455, 455, 233, 457, 233, 458, 233, + 459, 233, 460, 233, 461, 233, 462, 463, + 461, 233, 464, 233, 465, 233, 466, 233, + 467, 233, 468, 233, 469, 233, 470, 233, + 471, 233, 472, 473, 471, 233, 476, 477, + 478, 479, 480, 481, 475, 474, 476, 475, + 482, 1, 5, 483, 484, 483, 485, 483, + 486, 483, 487, 483, 490, 491, 493, 494, + 495, 489, 492, 492, 488, 490, 489, 496, + 498, 69, 497, 71, 71, 71, 72, 79, + 79, 79, 79, 497, 71, 71, 71, 72, + 79, 499, 79, 79, 79, 497, 71, 71, + 71, 72, 79, 500, 79, 79, 79, 497, + 97, 97, 97, 98, 501, 502, 504, 503, + 507, 508, 510, 506, 509, 509, 505, 507, + 506, 511, 108, 112, 512, 114, 114, 114, + 114, 114, 114, 114, 114, 512, 117, 117, + 117, 118, 513, 514, 516, 515, 519, 520, + 521, 522, 523, 524, 525, 518, 517, 519, + 518, 526, 128, 132, 527, 528, 527, 529, + 527, 530, 527, 531, 527, 533, 532, 536, + 537, 539, 535, 538, 538, 538, 534, 536, + 535, 540, 151, 155, 541, 160, 160, 160, + 160, 541, 543, 542, 546, 547, 548, 549, + 550, 551, 552, 545, 544, 546, 545, 553, + 555, 178, 554, 556, 554, 557, 554, 558, + 554, 559, 554, 207, 207, 207, 208, 560, + 561, 563, 562, 566, 567, 569, 565, 568, + 568, 568, 564, 566, 565, 570, 218, 222, + 571, 227, 227, 227, 227, 571, 573, 572, + 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 575, 574, 576, 575, 586, 588, + 245, 587, 589, 587, 590, 591, 587, 594, + 593, 592, 595, 596, 587, 599, 598, 597, + 601, 600, 602, 587, 604, 603, 605, 587, + 608, 607, 606, 609, 587, 610, 587, 612, + 611, 0 }; static const short _eo_tokenizer_trans_targs[] = { - 292, 0, 0, 1, 292, 2, 292, 4, + 296, 0, 0, 1, 296, 2, 296, 4, 5, 6, 7, 8, 9, 10, 10, 11, - 12, 13, 12, 14, 11, 292, 12, 12, - 292, 13, 14, 15, 16, 12, 12, 292, + 12, 13, 12, 14, 11, 296, 12, 12, + 296, 13, 14, 15, 16, 12, 12, 296, 17, 17, 15, 18, 16, 17, 17, 18, 18, 20, 21, 22, 10, 24, 25, 26, 27, 28, 29, 30, 10, 32, 33, 34, - 10, 299, 36, 36, 37, 38, 299, 38, - 39, 39, 39, 40, 299, 41, 299, 42, - 43, 44, 45, 44, 45, 45, 299, 46, - 48, 49, 50, 51, 52, 53, 53, 299, - 55, 56, 57, 58, 59, 60, 61, 305, - 299, 62, 63, 64, 65, 65, 66, 66, - 66, 67, 306, 308, 68, 68, 69, 308, - 70, 308, 71, 312, 308, 72, 73, 74, - 75, 75, 76, 76, 76, 77, 313, 315, - 78, 78, 79, 315, 80, 315, 82, 82, - 315, 84, 85, 85, 315, 87, 87, 315, - 89, 90, 91, 92, 92, 315, 323, 93, - 93, 94, 323, 95, 323, 97, 97, 96, - 323, 97, 97, 323, 328, 99, 99, 100, - 101, 328, 101, 102, 102, 102, 103, 328, - 104, 328, 106, 107, 108, 328, 110, 111, - 112, 113, 114, 115, 115, 328, 117, 118, - 119, 120, 120, 328, 122, 123, 124, 125, - 126, 127, 128, 335, 328, 129, 130, 131, - 132, 132, 133, 133, 133, 134, 336, 338, - 135, 135, 136, 338, 137, 338, 139, 139, - 138, 338, 139, 139, 338, 343, 141, 141, - 142, 143, 343, 143, 144, 144, 144, 145, - 343, 146, 343, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 157, 343, 159, - 160, 160, 161, 161, 162, 162, 348, 164, - 165, 166, 167, 168, 169, 170, 171, 172, - 172, 343, 174, 175, 176, 177, 178, 179, - 180, 180, 181, 181, 182, 182, 350, 184, - 185, 186, 187, 187, 188, 188, 189, 351, - 190, 198, 190, 199, 189, 191, 190, 190, - 191, 192, 193, 194, 194, 195, 195, 195, - 196, 197, 188, 188, 189, 351, 198, 199, - 200, 200, 201, 190, 190, 191, 203, 204, - 205, 206, 207, 208, 209, 210, 210, 211, - 211, 212, 353, 213, 213, 212, 262, 211, - 214, 213, 213, 214, 214, 215, 216, 217, - 218, 219, 220, 221, 260, 221, 222, 261, - 224, 221, 221, 222, 224, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 230, 231, - 231, 232, 235, 237, 233, 234, 234, 233, - 235, 234, 234, 236, 236, 254, 239, 238, - 237, 232, 235, 238, 240, 240, 241, 253, - 242, 243, 244, 245, 246, 247, 248, 248, - 249, 250, 251, 251, 252, 252, 252, 255, - 256, 256, 257, 257, 257, 258, 259, 236, - 236, 232, 235, 237, 239, 260, 261, 221, - 221, 261, 222, 224, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 274, - 275, 275, 276, 276, 355, 278, 279, 280, - 281, 282, 282, 343, 284, 285, 286, 287, - 288, 289, 290, 291, 291, 343, 292, 293, - 293, 294, 295, 296, 297, 298, 292, 292, - 3, 19, 23, 31, 299, 300, 300, 301, - 302, 303, 304, 307, 299, 299, 35, 47, - 54, 299, 299, 299, 299, 308, 309, 309, - 310, 311, 314, 308, 308, 308, 308, 308, - 308, 315, 316, 316, 317, 318, 319, 320, - 321, 322, 315, 315, 81, 83, 86, 88, - 315, 315, 323, 324, 324, 325, 326, 327, - 323, 323, 323, 323, 328, 329, 329, 330, - 331, 332, 333, 334, 337, 328, 328, 98, - 105, 109, 116, 121, 328, 328, 328, 328, - 338, 339, 339, 340, 341, 342, 338, 338, - 338, 338, 343, 344, 344, 345, 346, 347, - 349, 352, 354, 356, 357, 358, 343, 343, - 140, 147, 158, 163, 343, 348, 348, 173, - 183, 343, 350, 350, 343, 343, 202, 343, - 343, 263, 343, 355, 355, 277, 283, 343, - 343 + 10, 303, 36, 36, 37, 38, 303, 38, + 39, 39, 39, 40, 303, 41, 303, 42, + 43, 44, 45, 44, 45, 45, 303, 46, + 48, 49, 50, 51, 52, 53, 53, 303, + 55, 56, 57, 58, 59, 60, 61, 309, + 303, 62, 63, 64, 65, 65, 66, 66, + 66, 67, 310, 312, 68, 68, 69, 312, + 70, 312, 71, 316, 312, 72, 73, 74, + 75, 75, 76, 76, 76, 77, 317, 319, + 78, 78, 79, 319, 80, 319, 82, 82, + 319, 84, 85, 85, 319, 87, 87, 319, + 89, 90, 91, 92, 92, 319, 327, 93, + 93, 94, 327, 95, 327, 97, 98, 97, + 96, 327, 97, 97, 327, 99, 332, 101, + 101, 102, 103, 332, 103, 104, 104, 104, + 105, 332, 106, 332, 108, 109, 110, 332, + 112, 113, 114, 115, 116, 117, 117, 332, + 119, 120, 121, 122, 122, 332, 124, 125, + 126, 127, 128, 129, 130, 339, 332, 131, + 132, 133, 134, 134, 135, 135, 135, 136, + 340, 342, 137, 137, 138, 342, 139, 342, + 141, 142, 141, 140, 342, 141, 141, 342, + 143, 347, 145, 145, 146, 147, 347, 147, + 148, 148, 148, 149, 347, 150, 347, 152, + 153, 154, 155, 156, 157, 158, 159, 160, + 161, 161, 347, 163, 164, 164, 165, 165, + 166, 166, 352, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 176, 347, 178, 179, + 180, 181, 182, 183, 184, 184, 185, 185, + 186, 186, 354, 188, 189, 190, 191, 191, + 192, 192, 193, 355, 194, 202, 194, 203, + 193, 195, 194, 194, 195, 196, 197, 198, + 198, 199, 199, 199, 200, 201, 192, 192, + 193, 355, 202, 203, 204, 204, 205, 194, + 194, 195, 207, 208, 209, 210, 211, 212, + 213, 214, 214, 215, 215, 216, 357, 217, + 217, 216, 266, 215, 218, 217, 217, 218, + 218, 219, 220, 221, 222, 223, 224, 225, + 264, 225, 226, 265, 228, 225, 225, 226, + 228, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 234, 235, 235, 236, 239, 241, + 237, 238, 238, 237, 239, 238, 238, 240, + 240, 258, 243, 242, 241, 236, 239, 242, + 244, 244, 245, 257, 246, 247, 248, 249, + 250, 251, 252, 252, 253, 254, 255, 255, + 256, 256, 256, 259, 260, 260, 261, 261, + 261, 262, 263, 240, 240, 236, 239, 241, + 243, 264, 265, 225, 225, 265, 226, 228, + 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 278, 279, 279, 280, 280, + 359, 282, 283, 284, 285, 286, 286, 347, + 288, 289, 290, 291, 292, 293, 294, 295, + 295, 347, 296, 297, 297, 298, 299, 300, + 301, 302, 296, 296, 3, 19, 23, 31, + 303, 304, 304, 305, 306, 307, 308, 311, + 303, 303, 35, 47, 54, 303, 303, 303, + 303, 312, 313, 313, 314, 315, 318, 312, + 312, 312, 312, 312, 312, 319, 320, 320, + 321, 322, 323, 324, 325, 326, 319, 319, + 81, 83, 86, 88, 319, 319, 327, 328, + 328, 329, 330, 331, 327, 327, 327, 327, + 332, 333, 333, 334, 335, 336, 337, 338, + 341, 332, 332, 100, 107, 111, 118, 123, + 332, 332, 332, 332, 342, 343, 343, 344, + 345, 346, 342, 342, 342, 342, 347, 348, + 348, 349, 350, 351, 353, 356, 358, 360, + 361, 362, 347, 347, 144, 151, 162, 167, + 347, 352, 352, 177, 187, 347, 354, 354, + 347, 347, 206, 347, 347, 267, 347, 359, + 359, 281, 287, 347, 347 }; static const short _eo_tokenizer_trans_actions[] = { @@ -1048,64 +1088,64 @@ static const short _eo_tokenizer_trans_actions[] = { 0, 1, 0, 97, 0, 229, 0, 1, 99, 0, 0, 1, 103, 0, 1, 101, 0, 0, 0, 0, 1, 105, 133, 0, - 1, 0, 119, 0, 232, 7, 262, 0, - 265, 0, 1, 121, 155, 0, 1, 0, - 0, 137, 1, 3, 0, 1, 0, 135, - 0, 235, 0, 0, 0, 274, 0, 0, - 0, 0, 0, 3, 0, 271, 0, 0, - 0, 0, 1, 139, 0, 0, 0, 0, - 0, 3, 0, 343, 153, 0, 0, 0, - 0, 1, 3, 0, 1, 0, 0, 171, - 0, 1, 0, 157, 0, 238, 9, 277, - 0, 280, 0, 1, 159, 209, 0, 1, - 0, 0, 175, 1, 3, 0, 1, 0, - 173, 0, 241, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 181, 0, - 0, 1, 0, 1, 3, 0, 25, 0, + 1, 0, 119, 0, 232, 7, 7, 262, + 0, 265, 0, 1, 121, 0, 155, 0, + 1, 0, 0, 137, 1, 3, 0, 1, + 0, 135, 0, 235, 0, 0, 0, 274, + 0, 0, 0, 0, 0, 3, 0, 271, + 0, 0, 0, 0, 1, 139, 0, 0, + 0, 0, 0, 3, 0, 343, 153, 0, + 0, 0, 0, 1, 3, 0, 1, 0, + 0, 171, 0, 1, 0, 157, 0, 238, + 9, 9, 277, 0, 280, 0, 1, 159, + 0, 209, 0, 1, 0, 0, 175, 1, + 3, 0, 1, 0, 173, 0, 241, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 181, 0, 0, 1, 0, 1, + 3, 0, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 183, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, + 3, 0, 23, 0, 0, 0, 0, 1, + 0, 1, 3, 0, 15, 15, 292, 15, + 0, 15, 0, 1, 0, 0, 0, 0, + 1, 3, 0, 1, 0, 0, 19, 298, + 301, 19, 0, 0, 3, 0, 0, 17, + 295, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 3, 0, 27, + 304, 0, 0, 27, 27, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 29, + 29, 307, 29, 310, 29, 0, 1, 0, + 0, 1, 0, 1, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 0, 0, 3, + 3, 35, 316, 0, 35, 0, 1, 0, + 1, 0, 0, 33, 0, 33, 33, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 39, 0, 3, 0, + 41, 0, 1, 0, 0, 1, 3, 0, + 1, 0, 0, 37, 319, 37, 37, 322, + 37, 0, 3, 31, 313, 0, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 183, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 3, 0, 23, 0, 0, 0, 0, 1, 0, 1, 3, 0, - 15, 15, 292, 15, 0, 15, 0, 1, - 0, 0, 0, 0, 1, 3, 0, 1, - 0, 0, 19, 298, 301, 19, 0, 0, - 3, 0, 0, 17, 295, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, - 1, 3, 0, 27, 304, 0, 0, 27, - 27, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 29, 29, 307, 29, 310, - 29, 0, 1, 0, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 0, 3, 3, 35, 316, 0, - 35, 0, 1, 0, 1, 0, 0, 33, - 0, 33, 33, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, - 39, 0, 3, 0, 41, 0, 1, 0, - 0, 1, 3, 0, 1, 0, 0, 37, - 319, 37, 37, 322, 37, 0, 3, 31, - 313, 0, 31, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 3, 0, 21, 0, 0, 0, - 0, 0, 1, 187, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 185, 215, 0, - 1, 331, 57, 57, 57, 57, 217, 219, - 0, 0, 0, 0, 65, 0, 1, 331, - 334, 334, 334, 0, 67, 73, 0, 0, - 0, 69, 247, 71, 63, 83, 0, 1, - 331, 334, 0, 85, 91, 87, 259, 89, - 81, 109, 0, 1, 331, 57, 57, 57, - 57, 0, 111, 115, 0, 0, 0, 0, - 113, 107, 125, 0, 1, 331, 334, 0, - 127, 131, 129, 123, 143, 0, 1, 331, - 57, 57, 57, 57, 0, 145, 151, 0, - 0, 0, 0, 0, 147, 268, 149, 141, - 163, 0, 1, 331, 334, 0, 165, 169, - 167, 161, 191, 0, 1, 331, 57, 57, - 57, 57, 57, 57, 57, 0, 193, 207, - 0, 0, 0, 0, 199, 0, 1, 0, - 0, 197, 0, 1, 203, 179, 0, 201, - 177, 0, 195, 0, 1, 0, 0, 205, - 189 + 21, 0, 0, 0, 0, 0, 1, 187, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 185, 215, 0, 1, 331, 57, 57, + 57, 57, 217, 219, 0, 0, 0, 0, + 65, 0, 1, 331, 334, 334, 334, 0, + 67, 73, 0, 0, 0, 69, 247, 71, + 63, 83, 0, 1, 331, 334, 0, 85, + 91, 87, 259, 89, 81, 109, 0, 1, + 331, 57, 57, 57, 57, 0, 111, 115, + 0, 0, 0, 0, 113, 107, 125, 0, + 1, 331, 334, 0, 127, 131, 129, 123, + 143, 0, 1, 331, 57, 57, 57, 57, + 0, 145, 151, 0, 0, 0, 0, 0, + 147, 268, 149, 141, 163, 0, 1, 331, + 334, 0, 165, 169, 167, 161, 191, 0, + 1, 331, 57, 57, 57, 57, 57, 57, + 57, 0, 193, 207, 0, 0, 0, 0, + 199, 0, 1, 0, 0, 197, 0, 1, + 203, 179, 0, 201, 177, 0, 195, 0, + 1, 0, 0, 205, 189 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1145,15 +1185,16 @@ 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, 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, 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 }; static const short _eo_tokenizer_from_state_actions[] = { @@ -1193,15 +1234,16 @@ 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, 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, 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 + 0, 0, 0 }; static const short _eo_tokenizer_eof_trans[] = { @@ -1217,56 +1259,57 @@ static const short _eo_tokenizer_eof_trans[] = { 117, 117, 117, 117, 117, 117, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 151, 151, 151, - 151, 151, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 205, 205, 205, 205, 205, 205, 216, - 216, 216, 216, 216, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 0, 479, 480, 480, - 480, 480, 480, 0, 493, 494, 494, 494, - 494, 498, 499, 500, 0, 508, 509, 509, - 510, 511, 512, 0, 523, 524, 524, 524, - 524, 524, 529, 0, 537, 538, 538, 539, - 0, 550, 551, 551, 551, 551, 551, 557, - 558, 559, 0, 567, 568, 568, 569, 0, - 583, 584, 584, 584, 589, 584, 594, 597, - 584, 600, 584, 603, 584, 584, 608 + 151, 151, 151, 151, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 207, 207, 207, 207, 207, + 207, 218, 218, 218, 218, 218, 218, 218, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, + 0, 483, 484, 484, 484, 484, 484, 0, + 497, 498, 498, 498, 498, 502, 503, 504, + 0, 512, 513, 513, 514, 515, 516, 0, + 527, 528, 528, 528, 528, 528, 533, 0, + 541, 542, 542, 543, 0, 554, 555, 555, + 555, 555, 555, 561, 562, 563, 0, 571, + 572, 572, 573, 0, 587, 588, 588, 588, + 593, 588, 598, 601, 588, 604, 588, 607, + 588, 588, 612 }; -static const int eo_tokenizer_start = 292; -static const int eo_tokenizer_first_final = 292; +static const int eo_tokenizer_start = 296; +static const int eo_tokenizer_first_final = 296; static const int eo_tokenizer_error = -1; -static const int eo_tokenizer_en_tokenize_accessor = 299; -static const int eo_tokenizer_en_tokenize_params = 308; -static const int eo_tokenizer_en_tokenize_property = 315; -static const int eo_tokenizer_en_tokenize_properties = 323; -static const int eo_tokenizer_en_tokenize_method = 328; -static const int eo_tokenizer_en_tokenize_methods = 338; -static const int eo_tokenizer_en_tokenize_class = 343; -static const int eo_tokenizer_en_main = 292; +static const int eo_tokenizer_en_tokenize_accessor = 303; +static const int eo_tokenizer_en_tokenize_params = 312; +static const int eo_tokenizer_en_tokenize_property = 319; +static const int eo_tokenizer_en_tokenize_properties = 327; +static const int eo_tokenizer_en_tokenize_method = 332; +static const int eo_tokenizer_en_tokenize_methods = 342; +static const int eo_tokenizer_en_tokenize_class = 347; +static const int eo_tokenizer_en_main = 296; -#line 1030 "lib/eolian/eo_lexer.rl" +#line 1055 "lib/eolian/eo_lexer.rl" Eina_Bool @@ -1290,7 +1333,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1294 "lib/eolian/eo_lexer.c" +#line 1337 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1298,7 +1341,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 1053 "lib/eolian/eo_lexer.rl" +#line 1078 "lib/eolian/eo_lexer.rl" while (!done) { @@ -1325,7 +1368,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1329 "lib/eolian/eo_lexer.c" +#line 1372 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -1344,7 +1387,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1348 "lib/eolian/eo_lexer.c" +#line 1391 "lib/eolian/eo_lexer.c" } } @@ -1411,28 +1454,28 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 359 "lib/eolian/eo_lexer.rl" +#line 384 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 364 "lib/eolian/eo_lexer.rl" +#line 389 "lib/eolian/eo_lexer.rl" { toknz->saved.line = toknz->current_line; DBG("save line[%d] %d", toknz->cs, toknz->current_line); } break; case 2: -#line 369 "lib/eolian/eo_lexer.rl" +#line 394 "lib/eolian/eo_lexer.rl" { toknz->saved.tok = ( toknz->p); DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p)); } break; case 3: -#line 446 "lib/eolian/eo_lexer.rl" +#line 471 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -1441,7 +1484,7 @@ _eof_trans: } break; case 4: -#line 453 "lib/eolian/eo_lexer.rl" +#line 478 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -1452,20 +1495,20 @@ _eof_trans: } break; case 5: -#line 462 "lib/eolian/eo_lexer.rl" +#line 487 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 6: -#line 476 "lib/eolian/eo_lexer.rl" +#line 501 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; case 7: -#line 480 "lib/eolian/eo_lexer.rl" +#line 505 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -1476,7 +1519,7 @@ _eof_trans: } break; case 8: -#line 509 "lib/eolian/eo_lexer.rl" +#line 534 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -1486,7 +1529,7 @@ _eof_trans: } break; case 9: -#line 517 "lib/eolian/eo_lexer.rl" +#line 542 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -1497,7 +1540,7 @@ _eof_trans: } break; case 10: -#line 617 "lib/eolian/eo_lexer.rl" +#line 642 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); @@ -1505,7 +1548,7 @@ _eof_trans: } break; case 11: -#line 657 "lib/eolian/eo_lexer.rl" +#line 682 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -1514,7 +1557,7 @@ _eof_trans: } break; case 12: -#line 664 "lib/eolian/eo_lexer.rl" +#line 689 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -1525,14 +1568,14 @@ _eof_trans: } break; case 13: -#line 673 "lib/eolian/eo_lexer.rl" +#line 698 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 14: -#line 678 "lib/eolian/eo_lexer.rl" +#line 703 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; @@ -1540,7 +1583,7 @@ _eof_trans: } break; case 15: -#line 740 "lib/eolian/eo_lexer.rl" +#line 765 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); @@ -1548,14 +1591,14 @@ _eof_trans: } break; case 16: -#line 772 "lib/eolian/eo_lexer.rl" +#line 797 "lib/eolian/eo_lexer.rl" { const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base); } break; case 17: -#line 777 "lib/eolian/eo_lexer.rl" +#line 802 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; @@ -1563,7 +1606,7 @@ _eof_trans: } break; case 18: -#line 825 "lib/eolian/eo_lexer.rl" +#line 850 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); @@ -1571,7 +1614,7 @@ _eof_trans: } break; case 19: -#line 831 "lib/eolian/eo_lexer.rl" +#line 856 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->type != NULL) @@ -1580,7 +1623,7 @@ _eof_trans: } break; case 20: -#line 838 "lib/eolian/eo_lexer.rl" +#line 863 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -1590,7 +1633,7 @@ _eof_trans: } break; case 21: -#line 846 "lib/eolian/eo_lexer.rl" +#line 871 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -1599,7 +1642,7 @@ _eof_trans: } break; case 22: -#line 855 "lib/eolian/eo_lexer.rl" +#line 880 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -1608,7 +1651,7 @@ _eof_trans: } break; case 23: -#line 864 "lib/eolian/eo_lexer.rl" +#line 889 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -1617,7 +1660,7 @@ _eof_trans: } break; case 24: -#line 877 "lib/eolian/eo_lexer.rl" +#line 902 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); @@ -1625,7 +1668,7 @@ _eof_trans: } break; case 25: -#line 883 "lib/eolian/eo_lexer.rl" +#line 908 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -1634,7 +1677,7 @@ _eof_trans: } break; case 26: -#line 890 "lib/eolian/eo_lexer.rl" +#line 915 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1643,7 +1686,7 @@ _eof_trans: } break; case 27: -#line 897 "lib/eolian/eo_lexer.rl" +#line 922 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -1654,7 +1697,7 @@ _eof_trans: } break; case 28: -#line 906 "lib/eolian/eo_lexer.rl" +#line 931 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -1662,7 +1705,7 @@ _eof_trans: } break; case 29: -#line 912 "lib/eolian/eo_lexer.rl" +#line 937 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -1670,7 +1713,7 @@ _eof_trans: } break; case 30: -#line 918 "lib/eolian/eo_lexer.rl" +#line 943 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1679,7 +1722,7 @@ _eof_trans: } break; case 31: -#line 925 "lib/eolian/eo_lexer.rl" +#line 950 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1688,31 +1731,31 @@ _eof_trans: } break; case 32: -#line 996 "lib/eolian/eo_lexer.rl" +#line 1021 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 33: -#line 999 "lib/eolian/eo_lexer.rl" +#line 1024 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; case 34: -#line 1002 "lib/eolian/eo_lexer.rl" +#line 1027 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; case 35: -#line 1005 "lib/eolian/eo_lexer.rl" +#line 1030 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 36: -#line 1009 "lib/eolian/eo_lexer.rl" +#line 1034 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1725,7 +1768,7 @@ _eof_trans: { toknz->te = ( toknz->p)+1;} break; case 40: -#line 438 "lib/eolian/eo_lexer.rl" +#line 463 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -1735,33 +1778,33 @@ _eof_trans: }} break; case 41: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 42: -#line 501 "lib/eolian/eo_lexer.rl" +#line 526 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 43: -#line 502 "lib/eolian/eo_lexer.rl" +#line 527 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 44: -#line 467 "lib/eolian/eo_lexer.rl" +#line 492 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} }} break; case 45: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1780,26 +1823,26 @@ _eof_trans: }} break; case 46: -#line 497 "lib/eolian/eo_lexer.rl" +#line 522 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 47: -#line 500 "lib/eolian/eo_lexer.rl" +#line 525 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 48: -#line 467 "lib/eolian/eo_lexer.rl" +#line 492 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} }} break; case 49: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1818,11 +1861,11 @@ _eof_trans: }} break; case 50: -#line 500 "lib/eolian/eo_lexer.rl" +#line 525 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 51: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1841,28 +1884,28 @@ _eof_trans: }} break; case 52: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 53: -#line 526 "lib/eolian/eo_lexer.rl" +#line 551 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 328; goto _again;} + { toknz->cs = 332; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; case 54: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1881,29 +1924,29 @@ _eof_trans: }} break; case 55: -#line 542 "lib/eolian/eo_lexer.rl" +#line 567 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 544 "lib/eolian/eo_lexer.rl" +#line 569 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 57: -#line 526 "lib/eolian/eo_lexer.rl" +#line 551 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 328; goto _again;} + { toknz->cs = 332; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; case 58: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1922,11 +1965,11 @@ _eof_trans: }} break; case 59: -#line 544 "lib/eolian/eo_lexer.rl" +#line 569 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 60: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1945,50 +1988,50 @@ _eof_trans: }} break; case 61: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 62: -#line 551 "lib/eolian/eo_lexer.rl" +#line 576 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 299; goto _again;} + { toknz->cs = 303; goto _again;} }} break; case 63: -#line 558 "lib/eolian/eo_lexer.rl" +#line 583 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 299; goto _again;} + { toknz->cs = 303; goto _again;} }} break; case 64: -#line 565 "lib/eolian/eo_lexer.rl" +#line 590 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 308; goto _again;} + { toknz->cs = 312; goto _again;} }} break; case 65: -#line 572 "lib/eolian/eo_lexer.rl" +#line 597 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 308; goto _again;} + { toknz->cs = 312; goto _again;} }} break; case 66: -#line 579 "lib/eolian/eo_lexer.rl" +#line 604 "lib/eolian/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) @@ -1999,11 +2042,11 @@ _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 = 323; goto _again;} + { toknz->cs = 327; goto _again;} }} break; case 67: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2022,11 +2065,11 @@ _eof_trans: }} break; case 68: -#line 598 "lib/eolian/eo_lexer.rl" +#line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 69: -#line 579 "lib/eolian/eo_lexer.rl" +#line 604 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->values) == 0) @@ -2037,11 +2080,11 @@ _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 = 323; goto _again;} + { toknz->cs = 327; goto _again;} }} break; case 70: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2060,7 +2103,7 @@ _eof_trans: }} break; case 71: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2079,31 +2122,31 @@ _eof_trans: }} break; case 72: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 73: -#line 610 "lib/eolian/eo_lexer.rl" +#line 635 "lib/eolian/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 = 315; goto _again;} + { toknz->cs = 319; goto _again;} }} break; case 74: -#line 623 "lib/eolian/eo_lexer.rl" +#line 648 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 75: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2122,19 +2165,19 @@ _eof_trans: }} break; case 76: -#line 632 "lib/eolian/eo_lexer.rl" +#line 657 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 77: -#line 623 "lib/eolian/eo_lexer.rl" +#line 648 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 78: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2153,7 +2196,7 @@ _eof_trans: }} break; case 79: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2172,7 +2215,7 @@ _eof_trans: }} break; case 80: -#line 641 "lib/eolian/eo_lexer.rl" +#line 666 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -2182,32 +2225,32 @@ _eof_trans: }} break; case 81: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 82: -#line 649 "lib/eolian/eo_lexer.rl" +#line 674 "lib/eolian/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 = 308; goto _again;} + { toknz->cs = 312; goto _again;} }} break; case 83: -#line 725 "lib/eolian/eo_lexer.rl" +#line 750 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 84: -#line 726 "lib/eolian/eo_lexer.rl" +#line 751 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 85: -#line 684 "lib/eolian/eo_lexer.rl" +#line 709 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2231,11 +2274,11 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 86: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2254,15 +2297,15 @@ _eof_trans: }} break; case 87: -#line 720 "lib/eolian/eo_lexer.rl" +#line 745 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 88: -#line 724 "lib/eolian/eo_lexer.rl" +#line 749 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 89: -#line 684 "lib/eolian/eo_lexer.rl" +#line 709 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2286,11 +2329,11 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 90: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2309,11 +2352,11 @@ _eof_trans: }} break; case 91: -#line 724 "lib/eolian/eo_lexer.rl" +#line 749 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 92: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2332,32 +2375,32 @@ _eof_trans: }} break; case 93: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 94: -#line 733 "lib/eolian/eo_lexer.rl" +#line 758 "lib/eolian/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 = 328; goto _again;} + { toknz->cs = 332; goto _again;} }} break; case 95: -#line 746 "lib/eolian/eo_lexer.rl" +#line 771 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 96: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2376,20 +2419,20 @@ _eof_trans: }} break; case 97: -#line 756 "lib/eolian/eo_lexer.rl" +#line 781 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 98: -#line 746 "lib/eolian/eo_lexer.rl" +#line 771 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 99: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2408,7 +2451,7 @@ _eof_trans: }} break; case 100: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2427,7 +2470,7 @@ _eof_trans: }} break; case 101: -#line 765 "lib/eolian/eo_lexer.rl" +#line 790 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -2436,70 +2479,70 @@ _eof_trans: }} break; case 102: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 103: -#line 783 "lib/eolian/eo_lexer.rl" +#line 808 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 104: -#line 786 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 105: -#line 789 "lib/eolian/eo_lexer.rl" +#line 814 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 106: -#line 796 "lib/eolian/eo_lexer.rl" +#line 821 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 107: -#line 803 "lib/eolian/eo_lexer.rl" +#line 828 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 323; goto _again;} + { toknz->cs = 327; goto _again;} }} break; case 108: -#line 809 "lib/eolian/eo_lexer.rl" +#line 834 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 109: -#line 816 "lib/eolian/eo_lexer.rl" +#line 841 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 292; goto _again;} + { toknz->cs = 296; goto _again;} }} break; case 110: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2518,44 +2561,44 @@ _eof_trans: }} break; case 111: -#line 971 "lib/eolian/eo_lexer.rl" +#line 996 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 974 "lib/eolian/eo_lexer.rl" +#line 999 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 975 "lib/eolian/eo_lexer.rl" +#line 1000 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 976 "lib/eolian/eo_lexer.rl" +#line 1001 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 115: -#line 783 "lib/eolian/eo_lexer.rl" +#line 808 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 116: -#line 786 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 117: -#line 816 "lib/eolian/eo_lexer.rl" +#line 841 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 292; goto _again;} + { toknz->cs = 296; goto _again;} }} break; case 118: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2574,7 +2617,7 @@ _eof_trans: }} break; case 119: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2593,23 +2636,23 @@ _eof_trans: }} break; case 120: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 121: -#line 989 "lib/eolian/eo_lexer.rl" +#line 1014 "lib/eolian/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 = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 122: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2628,11 +2671,11 @@ _eof_trans: }} break; case 123: -#line 1024 "lib/eolian/eo_lexer.rl" +#line 1049 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 124: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2651,7 +2694,7 @@ _eof_trans: }} break; case 125: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2669,7 +2712,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2673 "lib/eolian/eo_lexer.c" +#line 2716 "lib/eolian/eo_lexer.c" } } @@ -2682,7 +2725,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2686 "lib/eolian/eo_lexer.c" +#line 2729 "lib/eolian/eo_lexer.c" } } @@ -2700,12 +2743,12 @@ _again: _out: {} } -#line 1079 "lib/eolian/eo_lexer.rl" +#line 1104 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 2707 "lib/eolian/eo_lexer.c" +#line 2750 "lib/eolian/eo_lexer.c" -1 -#line 1080 "lib/eolian/eo_lexer.rl" +#line 1105 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -2751,7 +2794,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns Eina_Bool ret = EINA_TRUE; -#line 2755 "lib/eolian/eo_lexer.c" +#line 2798 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -2759,7 +2802,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->act = 0; } -#line 1125 "lib/eolian/eo_lexer.rl" +#line 1150 "lib/eolian/eo_lexer.rl" toknz->p = buffer; @@ -2768,7 +2811,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->eof = toknz->pe; -#line 2772 "lib/eolian/eo_lexer.c" +#line 2815 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -2787,7 +2830,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 2791 "lib/eolian/eo_lexer.c" +#line 2834 "lib/eolian/eo_lexer.c" } } @@ -2854,28 +2897,28 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 359 "lib/eolian/eo_lexer.rl" +#line 384 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 364 "lib/eolian/eo_lexer.rl" +#line 389 "lib/eolian/eo_lexer.rl" { toknz->saved.line = toknz->current_line; DBG("save line[%d] %d", toknz->cs, toknz->current_line); } break; case 2: -#line 369 "lib/eolian/eo_lexer.rl" +#line 394 "lib/eolian/eo_lexer.rl" { toknz->saved.tok = ( toknz->p); DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p)); } break; case 3: -#line 446 "lib/eolian/eo_lexer.rl" +#line 471 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -2884,7 +2927,7 @@ _eof_trans: } break; case 4: -#line 453 "lib/eolian/eo_lexer.rl" +#line 478 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -2895,20 +2938,20 @@ _eof_trans: } break; case 5: -#line 462 "lib/eolian/eo_lexer.rl" +#line 487 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 6: -#line 476 "lib/eolian/eo_lexer.rl" +#line 501 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; case 7: -#line 480 "lib/eolian/eo_lexer.rl" +#line 505 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -2919,7 +2962,7 @@ _eof_trans: } break; case 8: -#line 509 "lib/eolian/eo_lexer.rl" +#line 534 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -2929,7 +2972,7 @@ _eof_trans: } break; case 9: -#line 517 "lib/eolian/eo_lexer.rl" +#line 542 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -2940,7 +2983,7 @@ _eof_trans: } break; case 10: -#line 617 "lib/eolian/eo_lexer.rl" +#line 642 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); @@ -2948,7 +2991,7 @@ _eof_trans: } break; case 11: -#line 657 "lib/eolian/eo_lexer.rl" +#line 682 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -2957,7 +3000,7 @@ _eof_trans: } break; case 12: -#line 664 "lib/eolian/eo_lexer.rl" +#line 689 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -2968,14 +3011,14 @@ _eof_trans: } break; case 13: -#line 673 "lib/eolian/eo_lexer.rl" +#line 698 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 14: -#line 678 "lib/eolian/eo_lexer.rl" +#line 703 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; @@ -2983,7 +3026,7 @@ _eof_trans: } break; case 15: -#line 740 "lib/eolian/eo_lexer.rl" +#line 765 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); @@ -2991,14 +3034,14 @@ _eof_trans: } break; case 16: -#line 772 "lib/eolian/eo_lexer.rl" +#line 797 "lib/eolian/eo_lexer.rl" { const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base); } break; case 17: -#line 777 "lib/eolian/eo_lexer.rl" +#line 802 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; @@ -3006,7 +3049,7 @@ _eof_trans: } break; case 18: -#line 825 "lib/eolian/eo_lexer.rl" +#line 850 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); @@ -3014,7 +3057,7 @@ _eof_trans: } break; case 19: -#line 831 "lib/eolian/eo_lexer.rl" +#line 856 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->type != NULL) @@ -3023,7 +3066,7 @@ _eof_trans: } break; case 20: -#line 838 "lib/eolian/eo_lexer.rl" +#line 863 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -3033,7 +3076,7 @@ _eof_trans: } break; case 21: -#line 846 "lib/eolian/eo_lexer.rl" +#line 871 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -3042,7 +3085,7 @@ _eof_trans: } break; case 22: -#line 855 "lib/eolian/eo_lexer.rl" +#line 880 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -3051,7 +3094,7 @@ _eof_trans: } break; case 23: -#line 864 "lib/eolian/eo_lexer.rl" +#line 889 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -3060,7 +3103,7 @@ _eof_trans: } break; case 24: -#line 877 "lib/eolian/eo_lexer.rl" +#line 902 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); @@ -3068,7 +3111,7 @@ _eof_trans: } break; case 25: -#line 883 "lib/eolian/eo_lexer.rl" +#line 908 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -3077,7 +3120,7 @@ _eof_trans: } break; case 26: -#line 890 "lib/eolian/eo_lexer.rl" +#line 915 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3086,7 +3129,7 @@ _eof_trans: } break; case 27: -#line 897 "lib/eolian/eo_lexer.rl" +#line 922 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -3097,7 +3140,7 @@ _eof_trans: } break; case 28: -#line 906 "lib/eolian/eo_lexer.rl" +#line 931 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -3105,7 +3148,7 @@ _eof_trans: } break; case 29: -#line 912 "lib/eolian/eo_lexer.rl" +#line 937 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -3113,7 +3156,7 @@ _eof_trans: } break; case 30: -#line 918 "lib/eolian/eo_lexer.rl" +#line 943 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3122,7 +3165,7 @@ _eof_trans: } break; case 31: -#line 925 "lib/eolian/eo_lexer.rl" +#line 950 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3131,31 +3174,31 @@ _eof_trans: } break; case 32: -#line 996 "lib/eolian/eo_lexer.rl" +#line 1021 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 33: -#line 999 "lib/eolian/eo_lexer.rl" +#line 1024 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; case 34: -#line 1002 "lib/eolian/eo_lexer.rl" +#line 1027 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; case 35: -#line 1005 "lib/eolian/eo_lexer.rl" +#line 1030 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 36: -#line 1009 "lib/eolian/eo_lexer.rl" +#line 1034 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -3168,7 +3211,7 @@ _eof_trans: { toknz->te = ( toknz->p)+1;} break; case 40: -#line 438 "lib/eolian/eo_lexer.rl" +#line 463 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -3178,33 +3221,33 @@ _eof_trans: }} break; case 41: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 42: -#line 501 "lib/eolian/eo_lexer.rl" +#line 526 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 43: -#line 502 "lib/eolian/eo_lexer.rl" +#line 527 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 44: -#line 467 "lib/eolian/eo_lexer.rl" +#line 492 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} }} break; case 45: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3223,26 +3266,26 @@ _eof_trans: }} break; case 46: -#line 497 "lib/eolian/eo_lexer.rl" +#line 522 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 47: -#line 500 "lib/eolian/eo_lexer.rl" +#line 525 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 48: -#line 467 "lib/eolian/eo_lexer.rl" +#line 492 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} }} break; case 49: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3261,11 +3304,11 @@ _eof_trans: }} break; case 50: -#line 500 "lib/eolian/eo_lexer.rl" +#line 525 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 51: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3284,28 +3327,28 @@ _eof_trans: }} break; case 52: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 53: -#line 526 "lib/eolian/eo_lexer.rl" +#line 551 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 328; goto _again;} + { toknz->cs = 332; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; case 54: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3324,29 +3367,29 @@ _eof_trans: }} break; case 55: -#line 542 "lib/eolian/eo_lexer.rl" +#line 567 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 544 "lib/eolian/eo_lexer.rl" +#line 569 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 57: -#line 526 "lib/eolian/eo_lexer.rl" +#line 551 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 315; goto _again;} + { toknz->cs = 319; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 328; goto _again;} + { toknz->cs = 332; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; case 58: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3365,11 +3408,11 @@ _eof_trans: }} break; case 59: -#line 544 "lib/eolian/eo_lexer.rl" +#line 569 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 60: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3388,50 +3431,50 @@ _eof_trans: }} break; case 61: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 62: -#line 551 "lib/eolian/eo_lexer.rl" +#line 576 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 299; goto _again;} + { toknz->cs = 303; goto _again;} }} break; case 63: -#line 558 "lib/eolian/eo_lexer.rl" +#line 583 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 299; goto _again;} + { toknz->cs = 303; goto _again;} }} break; case 64: -#line 565 "lib/eolian/eo_lexer.rl" +#line 590 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 308; goto _again;} + { toknz->cs = 312; goto _again;} }} break; case 65: -#line 572 "lib/eolian/eo_lexer.rl" +#line 597 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 308; goto _again;} + { toknz->cs = 312; goto _again;} }} break; case 66: -#line 579 "lib/eolian/eo_lexer.rl" +#line 604 "lib/eolian/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) @@ -3442,11 +3485,11 @@ _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 = 323; goto _again;} + { toknz->cs = 327; goto _again;} }} break; case 67: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3465,11 +3508,11 @@ _eof_trans: }} break; case 68: -#line 598 "lib/eolian/eo_lexer.rl" +#line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 69: -#line 579 "lib/eolian/eo_lexer.rl" +#line 604 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->values) == 0) @@ -3480,11 +3523,11 @@ _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 = 323; goto _again;} + { toknz->cs = 327; goto _again;} }} break; case 70: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3503,7 +3546,7 @@ _eof_trans: }} break; case 71: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3522,31 +3565,31 @@ _eof_trans: }} break; case 72: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 73: -#line 610 "lib/eolian/eo_lexer.rl" +#line 635 "lib/eolian/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 = 315; goto _again;} + { toknz->cs = 319; goto _again;} }} break; case 74: -#line 623 "lib/eolian/eo_lexer.rl" +#line 648 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 75: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3565,19 +3608,19 @@ _eof_trans: }} break; case 76: -#line 632 "lib/eolian/eo_lexer.rl" +#line 657 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 77: -#line 623 "lib/eolian/eo_lexer.rl" +#line 648 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 78: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3596,7 +3639,7 @@ _eof_trans: }} break; case 79: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3615,7 +3658,7 @@ _eof_trans: }} break; case 80: -#line 641 "lib/eolian/eo_lexer.rl" +#line 666 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -3625,32 +3668,32 @@ _eof_trans: }} break; case 81: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 82: -#line 649 "lib/eolian/eo_lexer.rl" +#line 674 "lib/eolian/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 = 308; goto _again;} + { toknz->cs = 312; goto _again;} }} break; case 83: -#line 725 "lib/eolian/eo_lexer.rl" +#line 750 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 84: -#line 726 "lib/eolian/eo_lexer.rl" +#line 751 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 85: -#line 684 "lib/eolian/eo_lexer.rl" +#line 709 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3674,11 +3717,11 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 86: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3697,15 +3740,15 @@ _eof_trans: }} break; case 87: -#line 720 "lib/eolian/eo_lexer.rl" +#line 745 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 88: -#line 724 "lib/eolian/eo_lexer.rl" +#line 749 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 89: -#line 684 "lib/eolian/eo_lexer.rl" +#line 709 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3729,11 +3772,11 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 90: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3752,11 +3795,11 @@ _eof_trans: }} break; case 91: -#line 724 "lib/eolian/eo_lexer.rl" +#line 749 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 92: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3775,32 +3818,32 @@ _eof_trans: }} break; case 93: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 94: -#line 733 "lib/eolian/eo_lexer.rl" +#line 758 "lib/eolian/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 = 328; goto _again;} + { toknz->cs = 332; goto _again;} }} break; case 95: -#line 746 "lib/eolian/eo_lexer.rl" +#line 771 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 96: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3819,20 +3862,20 @@ _eof_trans: }} break; case 97: -#line 756 "lib/eolian/eo_lexer.rl" +#line 781 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 98: -#line 746 "lib/eolian/eo_lexer.rl" +#line 771 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 99: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3851,7 +3894,7 @@ _eof_trans: }} break; case 100: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3870,7 +3913,7 @@ _eof_trans: }} break; case 101: -#line 765 "lib/eolian/eo_lexer.rl" +#line 790 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -3879,70 +3922,70 @@ _eof_trans: }} break; case 102: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 103: -#line 783 "lib/eolian/eo_lexer.rl" +#line 808 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 104: -#line 786 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 105: -#line 789 "lib/eolian/eo_lexer.rl" +#line 814 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 106: -#line 796 "lib/eolian/eo_lexer.rl" +#line 821 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 107: -#line 803 "lib/eolian/eo_lexer.rl" +#line 828 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 323; goto _again;} + { toknz->cs = 327; goto _again;} }} break; case 108: -#line 809 "lib/eolian/eo_lexer.rl" +#line 834 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 342; goto _again;} }} break; case 109: -#line 816 "lib/eolian/eo_lexer.rl" +#line 841 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 292; goto _again;} + { toknz->cs = 296; goto _again;} }} break; case 110: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3961,44 +4004,44 @@ _eof_trans: }} break; case 111: -#line 971 "lib/eolian/eo_lexer.rl" +#line 996 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 974 "lib/eolian/eo_lexer.rl" +#line 999 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 975 "lib/eolian/eo_lexer.rl" +#line 1000 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 976 "lib/eolian/eo_lexer.rl" +#line 1001 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 115: -#line 783 "lib/eolian/eo_lexer.rl" +#line 808 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 116: -#line 786 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 117: -#line 816 "lib/eolian/eo_lexer.rl" +#line 841 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 292; goto _again;} + { toknz->cs = 296; goto _again;} }} break; case 118: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4017,7 +4060,7 @@ _eof_trans: }} break; case 119: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4036,23 +4079,23 @@ _eof_trans: }} break; case 120: -#line 374 "lib/eolian/eo_lexer.rl" +#line 399 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 121: -#line 989 "lib/eolian/eo_lexer.rl" +#line 1014 "lib/eolian/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 = 343; goto _again;} + { toknz->cs = 347; goto _again;} }} break; case 122: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4071,11 +4114,11 @@ _eof_trans: }} break; case 123: -#line 1024 "lib/eolian/eo_lexer.rl" +#line 1049 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 124: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4094,7 +4137,7 @@ _eof_trans: }} break; case 125: -#line 383 "lib/eolian/eo_lexer.rl" +#line 408 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4112,7 +4155,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 4116 "lib/eolian/eo_lexer.c" +#line 4159 "lib/eolian/eo_lexer.c" } } @@ -4125,7 +4168,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 4129 "lib/eolian/eo_lexer.c" +#line 4172 "lib/eolian/eo_lexer.c" } } @@ -4143,12 +4186,12 @@ _again: _out: {} } -#line 1133 "lib/eolian/eo_lexer.rl" +#line 1158 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 4150 "lib/eolian/eo_lexer.c" +#line 4193 "lib/eolian/eo_lexer.c" -1 -#line 1134 "lib/eolian/eo_lexer.rl" +#line 1159 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -4392,6 +4435,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(kls->properties, l, prop) { Eolian_Function foo_id = database_function_new(prop->name, EOLIAN_UNRESOLVED); + database_function_scope_set(foo_id, prop->scope); EINA_LIST_FOREACH(prop->keys, m, param) { Eolian_Function_Parameter p = database_property_key_add( @@ -4455,6 +4499,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(kls->methods, l, meth) { Eolian_Function foo_id = database_function_new(meth->name, EOLIAN_METHOD); + database_function_scope_set(foo_id, meth->scope); database_class_function_add(kls->name, foo_id); if (meth->ret) { diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 5ad182a..debd86e 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -47,6 +47,7 @@ typedef struct _eo_tokenizer Eo_Event_Def *event; Eo_Implement_Def *impl; Eo_Implement_Legacy_Param_Def *impl_leg_param; + int fscope; } tmp; } Eo_Tokenizer; diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index a4f6c36..d3caa27 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -33,6 +33,9 @@ static int _eo_tokenizer_log_dom = -1; #endif #define DBG(...) EINA_LOG_DOM_DBG(_eo_tokenizer_log_dom, __VA_ARGS__) +#define FUNC_PUBLIC 0 +#define FUNC_PROTECTED 1 + static int _init_counter = 0; int @@ -152,10 +155,21 @@ _eo_tokenizer_class_get(Eo_Tokenizer *toknz, char *p) static Eo_Property_Def* _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) { - Eo_Property_Def *prop = calloc(1, sizeof(Eo_Property_Def)); - if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); + Eo_Property_Def *prop = NULL; + if (!strncmp(toknz->saved.tok, "protected ", 10)) + { + toknz->saved.tok += 10; + toknz->tmp.fscope = FUNC_PROTECTED; + } + else + { + prop = calloc(1, sizeof(Eo_Property_Def)); + if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); - prop->name = _eo_tokenizer_token_get(toknz, p); + prop->name = _eo_tokenizer_token_get(toknz, p); + prop->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; + } return prop; } @@ -163,10 +177,21 @@ _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) static Eo_Method_Def* _eo_tokenizer_method_get(Eo_Tokenizer *toknz, char *p) { - Eo_Method_Def *meth = calloc(1, sizeof(Eo_Method_Def)); - if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); + Eo_Method_Def *meth = NULL; + if (!strncmp(toknz->saved.tok, "protected ", 10)) + { + toknz->saved.tok += 10; + toknz->tmp.fscope = FUNC_PROTECTED; + } + else + { + meth = calloc(1, sizeof(Eo_Method_Def)); + if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); - meth->name = _eo_tokenizer_token_get(toknz, p); + meth->name = _eo_tokenizer_token_get(toknz, p); + meth->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; + } return meth; } @@ -424,7 +449,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) # chars allowed on the return line. return_char = (alnum_u | '*' | ws | '@' | '(' | ')' | '.' | '-'); - func_name = alnum+ >save_fpc (alnum | '_' )+; + func_name = (alnum >save_fpc (alnum | '_')+ (ws (alnum | '_')+)?); }%% %%{ @@ -1374,6 +1399,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(kls->properties, l, prop) { Eolian_Function foo_id = database_function_new(prop->name, EOLIAN_UNRESOLVED); + database_function_scope_set(foo_id, prop->scope); EINA_LIST_FOREACH(prop->keys, m, param) { Eolian_Function_Parameter p = database_property_key_add( @@ -1437,6 +1463,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(kls->methods, l, meth) { Eolian_Function foo_id = database_function_new(meth->name, EOLIAN_METHOD); + database_function_scope_set(foo_id, meth->scope); database_class_function_add(kls->name, foo_id); if (meth->ret) { diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 1dcebcb..92ca668 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -44,6 +44,7 @@ typedef struct Eina_List *keys; /* list of _Parameter_Desc */ Eina_List *params; /* list of _Parameter_Desc */ Eolian_Function_Type type; + Eolian_Function_Scope scope; Eina_Hash *data; Eina_Bool obj_is_const :1; /* True if the object has to be const. Useful for a few methods. */ Eina_Bool get_virtual_pure :1; @@ -379,6 +380,22 @@ database_function_new(const char *function_name, Eolian_Function_Type foo_type) return (Eolian_Function) fid; } +EAPI Eolian_Function_Scope +eolian_function_scope_get(Eolian_Function function_id) +{ + _Function_Id *fid = (_Function_Id *)function_id; + EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EOLIAN_SCOPE_PUBLIC); + return fid->scope; +} + +void +database_function_scope_set(Eolian_Function function_id, Eolian_Function_Scope scope) +{ + _Function_Id *fid = (_Function_Id *)function_id; + EINA_SAFETY_ON_NULL_RETURN(fid); + fid->scope = scope; +} + void database_function_type_set(Eolian_Function function_id, Eolian_Function_Type foo_type) { diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 30e15b4..450ba21 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -109,6 +109,9 @@ void database_function_object_set_as_const(Eolian_Function foo_id, Eina_Bool is_ Eina_Bool database_function_set_as_virtual_pure(Eolian_Function function_id, Eolian_Function_Type type); +void +database_function_scope_set(Eolian_Function function_id, Eolian_Function_Scope scope); + /* Need to add API for callbacks and implements */ Eolian_Implement -- 2.7.4