diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 180e9a4ae3..6bdef88fb9 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -44,6 +44,12 @@ extern "C" { */ typedef struct _Function_Id* Eolian_Function; +/* Parameter/return type. + * + * @ingroup Eolian + */ +typedef Eina_Inlist* Eolian_Type; + /* Class function parameter information * * @ingroup Eolian @@ -403,7 +409,21 @@ EAPI const Eina_List *eolian_parameters_list_get(Eolian_Function function_id); * * @ingroup Eolian */ -EAPI void eolian_parameter_information_get(Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, const char **type, const char **name, const char **description); +EAPI void eolian_parameter_information_get(const Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, const char **type, const char **name, const char **description); + +/* + * @brief Get information on given type. + * + * An Eolian type is an inlist of basic C types. For example: + * Eina_List * contains two basic types. + * The first Eolian type of the list stores Eina_List *, the next one Eo *. + * + * @param[in] etype Eolian type + * @param[out] type C type + * @param[out] own indicates if the ownership has to pass to the caller/callee. + * @return the next type of the list. + */ +EAPI Eolian_Type eolian_type_information_get(Eolian_Type etype, const char **type, Eina_Bool *own); /* * @brief Get type of a parameter @@ -415,6 +435,16 @@ EAPI void eolian_parameter_information_get(Eolian_Function_Parameter param_desc, */ EAPI Eina_Stringshare *eolian_parameter_type_get(const Eolian_Function_Parameter param); +/* + * @brief Get a list of all the types of a parameter + * + * @param[in] param_desc parameter handle + * @return the types of the parameter + * + * @ingroup Eolian + */ +EAPI Eolian_Type eolian_parameter_types_list_get(const Eolian_Function_Parameter param); + /* * @brief Get name of a parameter * @@ -449,16 +479,6 @@ EAPI Eina_Bool eolian_parameter_const_attribute_get(Eolian_Function_Parameter pa */ EAPI Eina_Bool eolian_parameter_is_nonull(Eolian_Function_Parameter param_desc); -/* - * @brief Indicates if the ownership of tha parameter passes to the caller/callee.. - * - * @param[in] param_desc parameter handle - * @return EINA_TRUE if cannot be NULL, EINA_FALSE otherwise - * - * @ingroup Eolian - */ -EAPI Eina_Bool eolian_parameter_is_own(Eolian_Function_Parameter param_desc); - /* * @brief Get the return type of a function. * @@ -473,6 +493,18 @@ EAPI Eina_Bool eolian_parameter_is_own(Eolian_Function_Parameter param_desc); */ EAPI const char *eolian_function_return_type_get(Eolian_Function function_id, Eolian_Function_Type ftype); +/* + * @brief Get a list of all the types of a function return + * + * @param[in] foo_id Function Id + * @param[in] ftype Function Type + * @return the types of the function return + * + * @ingroup Eolian + */ +EAPI Eolian_Type +eolian_function_return_types_list_get(Eolian_Function foo_id, Eolian_Function_Type ftype); + /* * @brief Get the return default value of a function. * @@ -518,21 +550,6 @@ eolian_function_return_comment_get(Eolian_Function foo_id, Eolian_Function_Type */ EAPI Eina_Bool eolian_function_return_is_warn_unused(Eolian_Function foo_id, Eolian_Function_Type ftype); -/* - * @brief returns the own flag of a function - * - * @param[in] function_id id of the function - * @param[in] ftype type of the function - * @return the own flag. - * - * The type of the function is needed because a given function can represent a - * property, that can be set and get functions. - * - * @ingroup Eolian - */ -EAPI Eina_Bool -eolian_function_return_own_get(Eolian_Function foo_id, Eolian_Function_Type ftype); - /* * @brief Indicates if a function object is const. * diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index d5a8a94b3a..2b243f1d19 100644 --- a/src/lib/eolian/eo_definitions.h +++ b/src/lib/eolian/eo_definitions.h @@ -12,7 +12,6 @@ typedef struct _eo_ret_def const char *comment; char *dflt_ret_val; Eina_Bool warn_unused:1; - Eina_Bool own:1; } Eo_Ret_Def; /* PARAM */ @@ -32,7 +31,6 @@ typedef struct _eo_param_def const char *name; const char *comment; Eina_Bool nonull:1; - Eina_Bool own:1; } Eo_Param_Def; /* ACCESSOR */ diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 395fe2f431..f67e30e451 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -224,12 +224,6 @@ _eo_tokenizer_param_get(Eo_Tokenizer *toknz, char *p) param->nonull = EINA_TRUE; memset(s, ' ', 7); } - s = strstr(toknz->saved.tok, "@own"); - if (s) - { - param->own = EINA_TRUE; - memset(s, ' ', 4); - } *p = ';'; s = p - 1; /* Don't look at the character ';' */ /* Remove any space between the param name and ';'/@nonull @@ -286,12 +280,6 @@ _eo_tokenizer_return_get(Eo_Tokenizer *toknz, char *p) ret->warn_unused = EINA_TRUE; memset(s, ' ', 12); } - s = strstr(toknz->saved.tok, "@own"); - if (s) - { - ret->own = EINA_TRUE; - memset(s, ' ', 4); - } s = strchr(toknz->saved.tok, '('); if (s) { @@ -378,11 +366,11 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) } -#line 455 "lib/eolian/eo_lexer.rl" +#line 443 "lib/eolian/eo_lexer.rl" -#line 386 "lib/eolian/eo_lexer.c" +#line 374 "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, @@ -438,45 +426,45 @@ static const short _eo_tokenizer_key_offsets[] = { 99, 100, 101, 104, 107, 109, 112, 123, 125, 128, 129, 133, 140, 147, 159, 170, 182, 194, 206, 218, 229, 237, 245, 257, - 269, 281, 293, 304, 312, 326, 341, 345, - 346, 347, 357, 359, 362, 364, 367, 368, - 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, 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 + 269, 281, 293, 304, 312, 328, 345, 349, + 350, 351, 361, 363, 366, 368, 371, 372, + 386, 390, 391, 392, 402, 404, 407, 409, + 412, 413, 414, 418, 419, 420, 424, 425, + 429, 430, 431, 432, 433, 437, 439, 442, + 443, 457, 461, 472, 483, 486, 488, 491, + 502, 504, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 519, 526, 534, 535, + 536, 537, 538, 542, 543, 544, 545, 546, + 549, 556, 572, 589, 593, 594, 595, 605, + 607, 610, 612, 615, 616, 630, 634, 645, + 656, 659, 661, 664, 675, 677, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 695, 696, 697, 701, 708, 716, + 717, 718, 719, 720, 721, 722, 723, 724, + 725, 729, 730, 731, 732, 733, 734, 735, + 736, 740, 747, 755, 756, 757, 758, 759, + 763, 771, 787, 791, 803, 804, 805, 815, + 817, 820, 828, 836, 844, 856, 860, 861, + 862, 863, 864, 865, 866, 867, 868, 872, + 880, 893, 898, 902, 903, 904, 905, 906, + 907, 919, 924, 928, 937, 941, 942, 943, + 944, 945, 946, 950, 959, 966, 977, 981, + 995, 1005, 1017, 1022, 1028, 1033, 1034, 1035, + 1036, 1037, 1038, 1041, 1048, 1056, 1057, 1061, + 1069, 1073, 1078, 1079, 1080, 1090, 1092, 1095, + 1105, 1117, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1145, + 1152, 1160, 1161, 1162, 1163, 1164, 1165, 1169, + 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1181, 1189, 1192, 1194, 1195, 1196, 1197, 1198, + 1209, 1212, 1214, 1225, 1237, 1249, 1253, 1253, + 1254, 1263, 1266, 1268, 1281, 1285, 1285, 1286, + 1295, 1298, 1300, 1301, 1302, 1303, 1304, 1305, + 1316, 1319, 1321, 1328, 1329, 1338, 1341, 1343, + 1344, 1345, 1346, 1347, 1351, 1351, 1352, 1363, + 1366, 1368, 1375, 1376, 1388, 1391, 1393, 1394, + 1396, 1399, 1401, 1404, 1405, 1406, 1407, 1408, + 1411, 1412, 1413 }; static const char _eo_tokenizer_trans_keys[] = { @@ -519,143 +507,144 @@ static const char _eo_tokenizer_trans_keys[] = { 57, 65, 90, 97, 122, 9, 13, 32, 58, 95, 48, 57, 65, 90, 97, 122, 9, 13, 32, 58, 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, + 9, 13, 32, 60, 62, 95, 40, 42, + 45, 46, 48, 57, 64, 90, 97, 122, + 9, 13, 32, 59, 60, 62, 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, 9, 13, 32, 42, + 59, 60, 62, 95, 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, 116, 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, 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, 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, 60, + 62, 95, 40, 42, 45, 46, 48, 57, + 64, 90, 97, 122, 9, 13, 32, 59, + 60, 62, 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, - 9, 13, 32, 42, 59, 95, 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, 116, - 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, 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, - 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, 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, 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, + 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, 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 + 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, 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, + 60, 62, 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[] = { @@ -666,8 +655,8 @@ static const char _eo_tokenizer_single_lengths[] = { 1, 1, 3, 3, 2, 3, 3, 2, 3, 1, 4, 3, 3, 6, 5, 6, 6, 6, 6, 5, 4, 2, 6, 6, - 6, 6, 5, 4, 4, 5, 4, 1, - 1, 2, 2, 3, 2, 3, 1, 6, + 6, 6, 5, 4, 6, 7, 4, 1, + 1, 2, 2, 3, 2, 3, 1, 8, 4, 1, 1, 2, 2, 3, 2, 3, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 3, 1, @@ -675,7 +664,7 @@ static const char _eo_tokenizer_single_lengths[] = { 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, 6, 7, 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, @@ -698,7 +687,7 @@ static const char _eo_tokenizer_single_lengths[] = { 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, + 3, 1, 2, 7, 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, @@ -764,45 +753,45 @@ static const short _eo_tokenizer_index_offsets[] = { 112, 114, 116, 120, 124, 127, 131, 139, 142, 146, 148, 153, 159, 165, 175, 184, 194, 204, 214, 224, 233, 240, 246, 256, - 266, 276, 286, 295, 302, 312, 323, 328, - 330, 332, 339, 342, 346, 349, 353, 355, - 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, 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 + 266, 276, 286, 295, 302, 314, 327, 332, + 334, 336, 343, 346, 350, 353, 357, 359, + 371, 376, 378, 380, 387, 390, 394, 397, + 401, 403, 405, 409, 411, 413, 417, 419, + 423, 425, 427, 429, 431, 435, 438, 442, + 444, 455, 459, 467, 475, 479, 482, 486, + 494, 497, 501, 503, 505, 507, 509, 511, + 513, 515, 517, 519, 523, 529, 535, 537, + 539, 541, 543, 547, 549, 551, 553, 555, + 559, 565, 577, 590, 595, 597, 599, 606, + 609, 613, 616, 620, 622, 633, 637, 645, + 653, 657, 660, 664, 672, 675, 679, 681, + 683, 685, 687, 689, 691, 693, 695, 697, + 699, 701, 705, 707, 709, 713, 718, 724, + 726, 728, 730, 732, 734, 736, 738, 740, + 742, 746, 748, 750, 752, 754, 756, 758, + 760, 764, 769, 775, 777, 779, 781, 783, + 787, 793, 806, 810, 820, 822, 824, 831, + 834, 838, 844, 852, 859, 869, 873, 875, + 877, 879, 881, 883, 885, 887, 889, 893, + 899, 909, 914, 918, 920, 922, 924, 926, + 928, 938, 943, 947, 954, 958, 960, 962, + 964, 966, 968, 972, 979, 985, 993, 997, + 1009, 1017, 1027, 1033, 1039, 1044, 1046, 1048, + 1050, 1052, 1054, 1058, 1064, 1070, 1072, 1075, + 1081, 1085, 1090, 1092, 1094, 1101, 1104, 1108, + 1116, 1126, 1135, 1137, 1139, 1141, 1143, 1145, + 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1163, + 1168, 1174, 1176, 1178, 1180, 1182, 1184, 1188, + 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, + 1208, 1216, 1219, 1222, 1224, 1226, 1228, 1230, + 1239, 1242, 1245, 1254, 1264, 1274, 1279, 1280, + 1282, 1289, 1292, 1295, 1306, 1311, 1312, 1314, + 1323, 1326, 1329, 1331, 1333, 1335, 1337, 1339, + 1347, 1350, 1353, 1358, 1360, 1369, 1372, 1375, + 1377, 1379, 1381, 1383, 1388, 1389, 1391, 1399, + 1402, 1405, 1410, 1412, 1424, 1427, 1430, 1432, + 1435, 1438, 1441, 1444, 1446, 1448, 1450, 1452, + 1455, 1457, 1459 }; static const short _eo_tokenizer_indicies[] = { @@ -844,150 +833,151 @@ static const short _eo_tokenizer_indicies[] = { 79, 91, 79, 79, 79, 57, 92, 92, 92, 72, 79, 79, 79, 79, 57, 92, 92, 92, 72, 93, 93, 57, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 57, - 94, 94, 94, 95, 94, 94, 94, 94, - 94, 94, 57, 97, 97, 97, 98, 96, - 99, 96, 100, 96, 101, 102, 100, 102, - 102, 102, 96, 104, 105, 103, 104, 105, - 106, 103, 109, 110, 108, 109, 110, 111, - 108, 113, 112, 114, 114, 114, 114, 115, - 114, 114, 114, 114, 107, 117, 117, 117, - 118, 116, 119, 116, 120, 116, 121, 122, - 120, 122, 122, 122, 116, 124, 125, 123, - 124, 125, 126, 123, 129, 130, 128, 129, - 130, 131, 128, 133, 132, 134, 127, 135, - 136, 134, 127, 137, 127, 138, 127, 139, - 140, 138, 127, 141, 127, 142, 143, 141, - 127, 144, 127, 145, 127, 146, 127, 147, - 127, 148, 149, 147, 127, 152, 153, 151, - 152, 153, 154, 151, 156, 155, 158, 159, - 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, + 94, 94, 94, 94, 94, 94, 94, 94, + 94, 57, 94, 94, 94, 95, 94, 94, + 94, 94, 94, 94, 94, 94, 57, 97, + 97, 97, 98, 96, 99, 96, 100, 96, + 101, 102, 100, 102, 102, 102, 96, 104, + 105, 103, 104, 105, 106, 103, 109, 110, + 108, 109, 110, 111, 108, 113, 112, 114, + 114, 114, 114, 115, 114, 114, 114, 114, + 114, 114, 107, 117, 117, 117, 118, 116, + 119, 116, 120, 116, 121, 122, 120, 122, + 122, 122, 116, 124, 125, 123, 124, 125, + 126, 123, 129, 130, 128, 129, 130, 131, + 128, 133, 132, 134, 127, 135, 136, 134, + 127, 137, 127, 138, 127, 139, 140, 138, + 127, 141, 127, 142, 143, 141, 127, 144, + 127, 145, 127, 146, 127, 147, 127, 148, + 149, 147, 127, 152, 153, 151, 152, 153, + 154, 151, 156, 155, 158, 159, 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, 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 + 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, 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[] = { @@ -1311,7 +1301,7 @@ static const int eo_tokenizer_en_tokenize_class = 347; static const int eo_tokenizer_en_main = 296; -#line 1053 "lib/eolian/eo_lexer.rl" +#line 1041 "lib/eolian/eo_lexer.rl" Eina_Bool @@ -1335,7 +1325,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1339 "lib/eolian/eo_lexer.c" +#line 1329 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1343,7 +1333,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 1076 "lib/eolian/eo_lexer.rl" +#line 1064 "lib/eolian/eo_lexer.rl" while (!done) { @@ -1370,7 +1360,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1374 "lib/eolian/eo_lexer.c" +#line 1364 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -1389,7 +1379,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1393 "lib/eolian/eo_lexer.c" +#line 1383 "lib/eolian/eo_lexer.c" } } @@ -1456,28 +1446,28 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 386 "lib/eolian/eo_lexer.rl" +#line 374 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 391 "lib/eolian/eo_lexer.rl" +#line 379 "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 396 "lib/eolian/eo_lexer.rl" +#line 384 "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 473 "lib/eolian/eo_lexer.rl" +#line 461 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -1486,7 +1476,7 @@ _eof_trans: } break; case 4: -#line 480 "lib/eolian/eo_lexer.rl" +#line 468 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -1497,20 +1487,20 @@ _eof_trans: } break; case 5: -#line 489 "lib/eolian/eo_lexer.rl" +#line 477 "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 503 "lib/eolian/eo_lexer.rl" +#line 491 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; case 7: -#line 507 "lib/eolian/eo_lexer.rl" +#line 495 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -1521,7 +1511,7 @@ _eof_trans: } break; case 8: -#line 536 "lib/eolian/eo_lexer.rl" +#line 524 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -1531,7 +1521,7 @@ _eof_trans: } break; case 9: -#line 544 "lib/eolian/eo_lexer.rl" +#line 532 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -1542,7 +1532,7 @@ _eof_trans: } break; case 10: -#line 642 "lib/eolian/eo_lexer.rl" +#line 630 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); @@ -1550,7 +1540,7 @@ _eof_trans: } break; case 11: -#line 682 "lib/eolian/eo_lexer.rl" +#line 670 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -1559,7 +1549,7 @@ _eof_trans: } break; case 12: -#line 689 "lib/eolian/eo_lexer.rl" +#line 677 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -1570,14 +1560,14 @@ _eof_trans: } break; case 13: -#line 698 "lib/eolian/eo_lexer.rl" +#line 686 "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 703 "lib/eolian/eo_lexer.rl" +#line 691 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; @@ -1585,7 +1575,7 @@ _eof_trans: } break; case 15: -#line 763 "lib/eolian/eo_lexer.rl" +#line 751 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); @@ -1593,14 +1583,14 @@ _eof_trans: } break; case 16: -#line 795 "lib/eolian/eo_lexer.rl" +#line 783 "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 800 "lib/eolian/eo_lexer.rl" +#line 788 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; @@ -1608,7 +1598,7 @@ _eof_trans: } break; case 18: -#line 848 "lib/eolian/eo_lexer.rl" +#line 836 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); @@ -1616,7 +1606,7 @@ _eof_trans: } break; case 19: -#line 854 "lib/eolian/eo_lexer.rl" +#line 842 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->type != NULL) @@ -1625,7 +1615,7 @@ _eof_trans: } break; case 20: -#line 861 "lib/eolian/eo_lexer.rl" +#line 849 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -1635,7 +1625,7 @@ _eof_trans: } break; case 21: -#line 869 "lib/eolian/eo_lexer.rl" +#line 857 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -1644,7 +1634,7 @@ _eof_trans: } break; case 22: -#line 878 "lib/eolian/eo_lexer.rl" +#line 866 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -1653,7 +1643,7 @@ _eof_trans: } break; case 23: -#line 887 "lib/eolian/eo_lexer.rl" +#line 875 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -1662,7 +1652,7 @@ _eof_trans: } break; case 24: -#line 900 "lib/eolian/eo_lexer.rl" +#line 888 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); @@ -1670,7 +1660,7 @@ _eof_trans: } break; case 25: -#line 906 "lib/eolian/eo_lexer.rl" +#line 894 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -1679,7 +1669,7 @@ _eof_trans: } break; case 26: -#line 913 "lib/eolian/eo_lexer.rl" +#line 901 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1688,7 +1678,7 @@ _eof_trans: } break; case 27: -#line 920 "lib/eolian/eo_lexer.rl" +#line 908 "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)); @@ -1699,7 +1689,7 @@ _eof_trans: } break; case 28: -#line 929 "lib/eolian/eo_lexer.rl" +#line 917 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -1707,7 +1697,7 @@ _eof_trans: } break; case 29: -#line 935 "lib/eolian/eo_lexer.rl" +#line 923 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -1715,7 +1705,7 @@ _eof_trans: } break; case 30: -#line 941 "lib/eolian/eo_lexer.rl" +#line 929 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1724,7 +1714,7 @@ _eof_trans: } break; case 31: -#line 948 "lib/eolian/eo_lexer.rl" +#line 936 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1733,31 +1723,31 @@ _eof_trans: } break; case 32: -#line 1019 "lib/eolian/eo_lexer.rl" +#line 1007 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 33: -#line 1022 "lib/eolian/eo_lexer.rl" +#line 1010 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; case 34: -#line 1025 "lib/eolian/eo_lexer.rl" +#line 1013 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; case 35: -#line 1028 "lib/eolian/eo_lexer.rl" +#line 1016 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 36: -#line 1032 "lib/eolian/eo_lexer.rl" +#line 1020 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1770,7 +1760,7 @@ _eof_trans: { toknz->te = ( toknz->p)+1;} break; case 40: -#line 465 "lib/eolian/eo_lexer.rl" +#line 453 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -1780,22 +1770,22 @@ _eof_trans: }} break; case 41: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 528 "lib/eolian/eo_lexer.rl" +#line 516 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 43: -#line 529 "lib/eolian/eo_lexer.rl" +#line 517 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 44: -#line 494 "lib/eolian/eo_lexer.rl" +#line 482 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -1806,7 +1796,7 @@ _eof_trans: }} break; case 45: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1825,15 +1815,15 @@ _eof_trans: }} break; case 46: -#line 524 "lib/eolian/eo_lexer.rl" +#line 512 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 47: -#line 527 "lib/eolian/eo_lexer.rl" +#line 515 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 48: -#line 494 "lib/eolian/eo_lexer.rl" +#line 482 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -1844,7 +1834,7 @@ _eof_trans: }} break; case 49: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1863,11 +1853,11 @@ _eof_trans: }} break; case 50: -#line 527 "lib/eolian/eo_lexer.rl" +#line 515 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 51: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1886,14 +1876,14 @@ _eof_trans: }} break; case 52: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 553 "lib/eolian/eo_lexer.rl" +#line 541 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; @@ -1907,7 +1897,7 @@ _eof_trans: }} break; case 54: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1926,15 +1916,15 @@ _eof_trans: }} break; case 55: -#line 569 "lib/eolian/eo_lexer.rl" +#line 557 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 571 "lib/eolian/eo_lexer.rl" +#line 559 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 57: -#line 553 "lib/eolian/eo_lexer.rl" +#line 541 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; @@ -1948,7 +1938,7 @@ _eof_trans: }} break; case 58: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1967,11 +1957,11 @@ _eof_trans: }} break; case 59: -#line 571 "lib/eolian/eo_lexer.rl" +#line 559 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 60: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1990,14 +1980,14 @@ _eof_trans: }} break; case 61: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 578 "lib/eolian/eo_lexer.rl" +#line 566 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); @@ -2006,7 +1996,7 @@ _eof_trans: }} break; case 63: -#line 585 "lib/eolian/eo_lexer.rl" +#line 573 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); @@ -2015,7 +2005,7 @@ _eof_trans: }} break; case 64: -#line 592 "lib/eolian/eo_lexer.rl" +#line 580 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; @@ -2024,7 +2014,7 @@ _eof_trans: }} break; case 65: -#line 599 "lib/eolian/eo_lexer.rl" +#line 587 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; @@ -2033,7 +2023,7 @@ _eof_trans: }} break; case 66: -#line 606 "lib/eolian/eo_lexer.rl" +#line 594 "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->accessors) == 0) @@ -2046,7 +2036,7 @@ _eof_trans: }} break; case 67: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2065,11 +2055,11 @@ _eof_trans: }} break; case 68: -#line 623 "lib/eolian/eo_lexer.rl" +#line 611 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 69: -#line 606 "lib/eolian/eo_lexer.rl" +#line 594 "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->accessors) == 0) @@ -2082,7 +2072,7 @@ _eof_trans: }} break; case 70: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2101,7 +2091,7 @@ _eof_trans: }} break; case 71: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2120,14 +2110,14 @@ _eof_trans: }} break; case 72: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 635 "lib/eolian/eo_lexer.rl" +#line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); @@ -2136,7 +2126,7 @@ _eof_trans: }} break; case 74: -#line 648 "lib/eolian/eo_lexer.rl" +#line 636 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; @@ -2144,7 +2134,7 @@ _eof_trans: }} break; case 75: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2163,11 +2153,11 @@ _eof_trans: }} break; case 76: -#line 657 "lib/eolian/eo_lexer.rl" +#line 645 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 77: -#line 648 "lib/eolian/eo_lexer.rl" +#line 636 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; @@ -2175,7 +2165,7 @@ _eof_trans: }} break; case 78: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2194,7 +2184,7 @@ _eof_trans: }} break; case 79: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2213,7 +2203,7 @@ _eof_trans: }} break; case 80: -#line 666 "lib/eolian/eo_lexer.rl" +#line 654 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -2223,14 +2213,14 @@ _eof_trans: }} break; case 81: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 674 "lib/eolian/eo_lexer.rl" +#line 662 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); @@ -2240,15 +2230,15 @@ _eof_trans: }} break; case 83: -#line 748 "lib/eolian/eo_lexer.rl" +#line 736 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 84: -#line 749 "lib/eolian/eo_lexer.rl" +#line 737 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 85: -#line 709 "lib/eolian/eo_lexer.rl" +#line 697 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2274,7 +2264,7 @@ _eof_trans: }} break; case 86: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2293,15 +2283,15 @@ _eof_trans: }} break; case 87: -#line 743 "lib/eolian/eo_lexer.rl" +#line 731 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 88: -#line 747 "lib/eolian/eo_lexer.rl" +#line 735 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 89: -#line 709 "lib/eolian/eo_lexer.rl" +#line 697 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2327,7 +2317,7 @@ _eof_trans: }} break; case 90: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2346,11 +2336,11 @@ _eof_trans: }} break; case 91: -#line 747 "lib/eolian/eo_lexer.rl" +#line 735 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 92: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2369,14 +2359,14 @@ _eof_trans: }} break; case 93: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 756 "lib/eolian/eo_lexer.rl" +#line 744 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); @@ -2385,7 +2375,7 @@ _eof_trans: }} break; case 95: -#line 769 "lib/eolian/eo_lexer.rl" +#line 757 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -2394,7 +2384,7 @@ _eof_trans: }} break; case 96: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2413,11 +2403,11 @@ _eof_trans: }} break; case 97: -#line 779 "lib/eolian/eo_lexer.rl" +#line 767 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 98: -#line 769 "lib/eolian/eo_lexer.rl" +#line 757 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -2426,7 +2416,7 @@ _eof_trans: }} break; case 99: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2445,7 +2435,7 @@ _eof_trans: }} break; case 100: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2464,7 +2454,7 @@ _eof_trans: }} break; case 101: -#line 788 "lib/eolian/eo_lexer.rl" +#line 776 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -2473,24 +2463,24 @@ _eof_trans: }} break; case 102: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 806 "lib/eolian/eo_lexer.rl" +#line 794 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 104: -#line 809 "lib/eolian/eo_lexer.rl" +#line 797 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 105: -#line 812 "lib/eolian/eo_lexer.rl" +#line 800 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; @@ -2499,7 +2489,7 @@ _eof_trans: }} break; case 106: -#line 819 "lib/eolian/eo_lexer.rl" +#line 807 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; @@ -2508,7 +2498,7 @@ _eof_trans: }} break; case 107: -#line 826 "lib/eolian/eo_lexer.rl" +#line 814 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; @@ -2516,7 +2506,7 @@ _eof_trans: }} break; case 108: -#line 832 "lib/eolian/eo_lexer.rl" +#line 820 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; @@ -2525,7 +2515,7 @@ _eof_trans: }} break; case 109: -#line 839 "lib/eolian/eo_lexer.rl" +#line 827 "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); @@ -2536,7 +2526,7 @@ _eof_trans: }} break; case 110: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2555,33 +2545,33 @@ _eof_trans: }} break; case 111: -#line 994 "lib/eolian/eo_lexer.rl" +#line 982 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 997 "lib/eolian/eo_lexer.rl" +#line 985 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 998 "lib/eolian/eo_lexer.rl" +#line 986 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 999 "lib/eolian/eo_lexer.rl" +#line 987 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 115: -#line 806 "lib/eolian/eo_lexer.rl" +#line 794 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 116: -#line 809 "lib/eolian/eo_lexer.rl" +#line 797 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 117: -#line 839 "lib/eolian/eo_lexer.rl" +#line 827 "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); @@ -2592,7 +2582,7 @@ _eof_trans: }} break; case 118: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2611,7 +2601,7 @@ _eof_trans: }} break; case 119: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2630,14 +2620,14 @@ _eof_trans: }} break; case 120: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 1012 "lib/eolian/eo_lexer.rl" +#line 1000 "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); @@ -2646,7 +2636,7 @@ _eof_trans: }} break; case 122: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2665,11 +2655,11 @@ _eof_trans: }} break; case 123: -#line 1047 "lib/eolian/eo_lexer.rl" +#line 1035 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 124: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2688,7 +2678,7 @@ _eof_trans: }} break; case 125: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2706,7 +2696,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2710 "lib/eolian/eo_lexer.c" +#line 2700 "lib/eolian/eo_lexer.c" } } @@ -2719,7 +2709,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2723 "lib/eolian/eo_lexer.c" +#line 2713 "lib/eolian/eo_lexer.c" } } @@ -2737,12 +2727,12 @@ _again: _out: {} } -#line 1102 "lib/eolian/eo_lexer.rl" +#line 1090 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 2744 "lib/eolian/eo_lexer.c" +#line 2734 "lib/eolian/eo_lexer.c" -1 -#line 1103 "lib/eolian/eo_lexer.rl" +#line 1091 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -2788,7 +2778,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns Eina_Bool ret = EINA_TRUE; -#line 2792 "lib/eolian/eo_lexer.c" +#line 2782 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -2796,7 +2786,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->act = 0; } -#line 1148 "lib/eolian/eo_lexer.rl" +#line 1136 "lib/eolian/eo_lexer.rl" toknz->p = buffer; @@ -2805,7 +2795,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->eof = toknz->pe; -#line 2809 "lib/eolian/eo_lexer.c" +#line 2799 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -2824,7 +2814,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 2828 "lib/eolian/eo_lexer.c" +#line 2818 "lib/eolian/eo_lexer.c" } } @@ -2891,28 +2881,28 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 386 "lib/eolian/eo_lexer.rl" +#line 374 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 391 "lib/eolian/eo_lexer.rl" +#line 379 "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 396 "lib/eolian/eo_lexer.rl" +#line 384 "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 473 "lib/eolian/eo_lexer.rl" +#line 461 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -2921,7 +2911,7 @@ _eof_trans: } break; case 4: -#line 480 "lib/eolian/eo_lexer.rl" +#line 468 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -2932,20 +2922,20 @@ _eof_trans: } break; case 5: -#line 489 "lib/eolian/eo_lexer.rl" +#line 477 "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 503 "lib/eolian/eo_lexer.rl" +#line 491 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; case 7: -#line 507 "lib/eolian/eo_lexer.rl" +#line 495 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -2956,7 +2946,7 @@ _eof_trans: } break; case 8: -#line 536 "lib/eolian/eo_lexer.rl" +#line 524 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -2966,7 +2956,7 @@ _eof_trans: } break; case 9: -#line 544 "lib/eolian/eo_lexer.rl" +#line 532 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -2977,7 +2967,7 @@ _eof_trans: } break; case 10: -#line 642 "lib/eolian/eo_lexer.rl" +#line 630 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); @@ -2985,7 +2975,7 @@ _eof_trans: } break; case 11: -#line 682 "lib/eolian/eo_lexer.rl" +#line 670 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -2994,7 +2984,7 @@ _eof_trans: } break; case 12: -#line 689 "lib/eolian/eo_lexer.rl" +#line 677 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -3005,14 +2995,14 @@ _eof_trans: } break; case 13: -#line 698 "lib/eolian/eo_lexer.rl" +#line 686 "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 703 "lib/eolian/eo_lexer.rl" +#line 691 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; @@ -3020,7 +3010,7 @@ _eof_trans: } break; case 15: -#line 763 "lib/eolian/eo_lexer.rl" +#line 751 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); @@ -3028,14 +3018,14 @@ _eof_trans: } break; case 16: -#line 795 "lib/eolian/eo_lexer.rl" +#line 783 "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 800 "lib/eolian/eo_lexer.rl" +#line 788 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; @@ -3043,7 +3033,7 @@ _eof_trans: } break; case 18: -#line 848 "lib/eolian/eo_lexer.rl" +#line 836 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); @@ -3051,7 +3041,7 @@ _eof_trans: } break; case 19: -#line 854 "lib/eolian/eo_lexer.rl" +#line 842 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->type != NULL) @@ -3060,7 +3050,7 @@ _eof_trans: } break; case 20: -#line 861 "lib/eolian/eo_lexer.rl" +#line 849 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -3070,7 +3060,7 @@ _eof_trans: } break; case 21: -#line 869 "lib/eolian/eo_lexer.rl" +#line 857 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -3079,7 +3069,7 @@ _eof_trans: } break; case 22: -#line 878 "lib/eolian/eo_lexer.rl" +#line 866 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -3088,7 +3078,7 @@ _eof_trans: } break; case 23: -#line 887 "lib/eolian/eo_lexer.rl" +#line 875 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -3097,7 +3087,7 @@ _eof_trans: } break; case 24: -#line 900 "lib/eolian/eo_lexer.rl" +#line 888 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); @@ -3105,7 +3095,7 @@ _eof_trans: } break; case 25: -#line 906 "lib/eolian/eo_lexer.rl" +#line 894 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -3114,7 +3104,7 @@ _eof_trans: } break; case 26: -#line 913 "lib/eolian/eo_lexer.rl" +#line 901 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3123,7 +3113,7 @@ _eof_trans: } break; case 27: -#line 920 "lib/eolian/eo_lexer.rl" +#line 908 "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)); @@ -3134,7 +3124,7 @@ _eof_trans: } break; case 28: -#line 929 "lib/eolian/eo_lexer.rl" +#line 917 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -3142,7 +3132,7 @@ _eof_trans: } break; case 29: -#line 935 "lib/eolian/eo_lexer.rl" +#line 923 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -3150,7 +3140,7 @@ _eof_trans: } break; case 30: -#line 941 "lib/eolian/eo_lexer.rl" +#line 929 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3159,7 +3149,7 @@ _eof_trans: } break; case 31: -#line 948 "lib/eolian/eo_lexer.rl" +#line 936 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3168,31 +3158,31 @@ _eof_trans: } break; case 32: -#line 1019 "lib/eolian/eo_lexer.rl" +#line 1007 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 33: -#line 1022 "lib/eolian/eo_lexer.rl" +#line 1010 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; case 34: -#line 1025 "lib/eolian/eo_lexer.rl" +#line 1013 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; case 35: -#line 1028 "lib/eolian/eo_lexer.rl" +#line 1016 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 36: -#line 1032 "lib/eolian/eo_lexer.rl" +#line 1020 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -3205,7 +3195,7 @@ _eof_trans: { toknz->te = ( toknz->p)+1;} break; case 40: -#line 465 "lib/eolian/eo_lexer.rl" +#line 453 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -3215,22 +3205,22 @@ _eof_trans: }} break; case 41: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 528 "lib/eolian/eo_lexer.rl" +#line 516 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 43: -#line 529 "lib/eolian/eo_lexer.rl" +#line 517 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 44: -#line 494 "lib/eolian/eo_lexer.rl" +#line 482 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -3241,7 +3231,7 @@ _eof_trans: }} break; case 45: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3260,15 +3250,15 @@ _eof_trans: }} break; case 46: -#line 524 "lib/eolian/eo_lexer.rl" +#line 512 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 47: -#line 527 "lib/eolian/eo_lexer.rl" +#line 515 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 48: -#line 494 "lib/eolian/eo_lexer.rl" +#line 482 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -3279,7 +3269,7 @@ _eof_trans: }} break; case 49: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3298,11 +3288,11 @@ _eof_trans: }} break; case 50: -#line 527 "lib/eolian/eo_lexer.rl" +#line 515 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 51: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3321,14 +3311,14 @@ _eof_trans: }} break; case 52: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 553 "lib/eolian/eo_lexer.rl" +#line 541 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; @@ -3342,7 +3332,7 @@ _eof_trans: }} break; case 54: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3361,15 +3351,15 @@ _eof_trans: }} break; case 55: -#line 569 "lib/eolian/eo_lexer.rl" +#line 557 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 571 "lib/eolian/eo_lexer.rl" +#line 559 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 57: -#line 553 "lib/eolian/eo_lexer.rl" +#line 541 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; @@ -3383,7 +3373,7 @@ _eof_trans: }} break; case 58: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3402,11 +3392,11 @@ _eof_trans: }} break; case 59: -#line 571 "lib/eolian/eo_lexer.rl" +#line 559 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 60: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3425,14 +3415,14 @@ _eof_trans: }} break; case 61: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 578 "lib/eolian/eo_lexer.rl" +#line 566 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); @@ -3441,7 +3431,7 @@ _eof_trans: }} break; case 63: -#line 585 "lib/eolian/eo_lexer.rl" +#line 573 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); @@ -3450,7 +3440,7 @@ _eof_trans: }} break; case 64: -#line 592 "lib/eolian/eo_lexer.rl" +#line 580 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; @@ -3459,7 +3449,7 @@ _eof_trans: }} break; case 65: -#line 599 "lib/eolian/eo_lexer.rl" +#line 587 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; @@ -3468,7 +3458,7 @@ _eof_trans: }} break; case 66: -#line 606 "lib/eolian/eo_lexer.rl" +#line 594 "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->accessors) == 0) @@ -3481,7 +3471,7 @@ _eof_trans: }} break; case 67: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3500,11 +3490,11 @@ _eof_trans: }} break; case 68: -#line 623 "lib/eolian/eo_lexer.rl" +#line 611 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 69: -#line 606 "lib/eolian/eo_lexer.rl" +#line 594 "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->accessors) == 0) @@ -3517,7 +3507,7 @@ _eof_trans: }} break; case 70: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3536,7 +3526,7 @@ _eof_trans: }} break; case 71: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3555,14 +3545,14 @@ _eof_trans: }} break; case 72: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 635 "lib/eolian/eo_lexer.rl" +#line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); @@ -3571,7 +3561,7 @@ _eof_trans: }} break; case 74: -#line 648 "lib/eolian/eo_lexer.rl" +#line 636 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; @@ -3579,7 +3569,7 @@ _eof_trans: }} break; case 75: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3598,11 +3588,11 @@ _eof_trans: }} break; case 76: -#line 657 "lib/eolian/eo_lexer.rl" +#line 645 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 77: -#line 648 "lib/eolian/eo_lexer.rl" +#line 636 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; @@ -3610,7 +3600,7 @@ _eof_trans: }} break; case 78: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3629,7 +3619,7 @@ _eof_trans: }} break; case 79: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3648,7 +3638,7 @@ _eof_trans: }} break; case 80: -#line 666 "lib/eolian/eo_lexer.rl" +#line 654 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -3658,14 +3648,14 @@ _eof_trans: }} break; case 81: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 674 "lib/eolian/eo_lexer.rl" +#line 662 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); @@ -3675,15 +3665,15 @@ _eof_trans: }} break; case 83: -#line 748 "lib/eolian/eo_lexer.rl" +#line 736 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 84: -#line 749 "lib/eolian/eo_lexer.rl" +#line 737 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 85: -#line 709 "lib/eolian/eo_lexer.rl" +#line 697 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3709,7 +3699,7 @@ _eof_trans: }} break; case 86: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3728,15 +3718,15 @@ _eof_trans: }} break; case 87: -#line 743 "lib/eolian/eo_lexer.rl" +#line 731 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 88: -#line 747 "lib/eolian/eo_lexer.rl" +#line 735 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 89: -#line 709 "lib/eolian/eo_lexer.rl" +#line 697 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3762,7 +3752,7 @@ _eof_trans: }} break; case 90: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3781,11 +3771,11 @@ _eof_trans: }} break; case 91: -#line 747 "lib/eolian/eo_lexer.rl" +#line 735 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 92: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3804,14 +3794,14 @@ _eof_trans: }} break; case 93: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 756 "lib/eolian/eo_lexer.rl" +#line 744 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); @@ -3820,7 +3810,7 @@ _eof_trans: }} break; case 95: -#line 769 "lib/eolian/eo_lexer.rl" +#line 757 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -3829,7 +3819,7 @@ _eof_trans: }} break; case 96: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3848,11 +3838,11 @@ _eof_trans: }} break; case 97: -#line 779 "lib/eolian/eo_lexer.rl" +#line 767 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 98: -#line 769 "lib/eolian/eo_lexer.rl" +#line 757 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -3861,7 +3851,7 @@ _eof_trans: }} break; case 99: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3880,7 +3870,7 @@ _eof_trans: }} break; case 100: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3899,7 +3889,7 @@ _eof_trans: }} break; case 101: -#line 788 "lib/eolian/eo_lexer.rl" +#line 776 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -3908,24 +3898,24 @@ _eof_trans: }} break; case 102: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 806 "lib/eolian/eo_lexer.rl" +#line 794 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 104: -#line 809 "lib/eolian/eo_lexer.rl" +#line 797 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 105: -#line 812 "lib/eolian/eo_lexer.rl" +#line 800 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; @@ -3934,7 +3924,7 @@ _eof_trans: }} break; case 106: -#line 819 "lib/eolian/eo_lexer.rl" +#line 807 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; @@ -3943,7 +3933,7 @@ _eof_trans: }} break; case 107: -#line 826 "lib/eolian/eo_lexer.rl" +#line 814 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; @@ -3951,7 +3941,7 @@ _eof_trans: }} break; case 108: -#line 832 "lib/eolian/eo_lexer.rl" +#line 820 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; @@ -3960,7 +3950,7 @@ _eof_trans: }} break; case 109: -#line 839 "lib/eolian/eo_lexer.rl" +#line 827 "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); @@ -3971,7 +3961,7 @@ _eof_trans: }} break; case 110: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3990,33 +3980,33 @@ _eof_trans: }} break; case 111: -#line 994 "lib/eolian/eo_lexer.rl" +#line 982 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 997 "lib/eolian/eo_lexer.rl" +#line 985 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 998 "lib/eolian/eo_lexer.rl" +#line 986 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 999 "lib/eolian/eo_lexer.rl" +#line 987 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 115: -#line 806 "lib/eolian/eo_lexer.rl" +#line 794 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 116: -#line 809 "lib/eolian/eo_lexer.rl" +#line 797 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 117: -#line 839 "lib/eolian/eo_lexer.rl" +#line 827 "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); @@ -4027,7 +4017,7 @@ _eof_trans: }} break; case 118: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4046,7 +4036,7 @@ _eof_trans: }} break; case 119: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4065,14 +4055,14 @@ _eof_trans: }} break; case 120: -#line 401 "lib/eolian/eo_lexer.rl" +#line 389 "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 1012 "lib/eolian/eo_lexer.rl" +#line 1000 "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); @@ -4081,7 +4071,7 @@ _eof_trans: }} break; case 122: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4100,11 +4090,11 @@ _eof_trans: }} break; case 123: -#line 1047 "lib/eolian/eo_lexer.rl" +#line 1035 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 124: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4123,7 +4113,7 @@ _eof_trans: }} break; case 125: -#line 410 "lib/eolian/eo_lexer.rl" +#line 398 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4141,7 +4131,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 4145 "lib/eolian/eo_lexer.c" +#line 4135 "lib/eolian/eo_lexer.c" } } @@ -4154,7 +4144,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 4158 "lib/eolian/eo_lexer.c" +#line 4148 "lib/eolian/eo_lexer.c" } } @@ -4172,12 +4162,12 @@ _again: _out: {} } -#line 1156 "lib/eolian/eo_lexer.rl" +#line 1144 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 4179 "lib/eolian/eo_lexer.c" +#line 4169 "lib/eolian/eo_lexer.c" -1 -#line 1157 "lib/eolian/eo_lexer.rl" +#line 1145 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -4311,6 +4301,108 @@ eo_tokenizer_dump(Eo_Tokenizer *toknz) } +static Eina_Inlist * +_types_extract(const char *buf, int len) +{ + const char *save_buf = buf; + Eolian_Type types = NULL; + long depth = 0; + char *tmp_type = malloc(2 * len + 1); + + while (len > 0) + { + char *d = tmp_type; + Eina_Bool end_type = EINA_FALSE; + Eina_Bool is_own = EINA_FALSE; + char c; + Eina_Bool in_spaces = EINA_TRUE, in_stars = EINA_FALSE; + while (len > 0 && !end_type) + { + switch (c = *buf++) + { + /* @own */ + case '@': + { + if (!strncmp(buf, "own", 3)) + { + is_own = EINA_TRUE; + buf += 3; len -= 3; + } + break; + } + /* if '*', we have to add a space. We set in_spaces to true in + * case spaces are between stars, to be sure we remove them. + */ + case '*': + { + if (!in_stars && !in_spaces) + { + *d++ = ' '; + in_stars = EINA_TRUE; + in_spaces = EINA_TRUE; + } + *d++ = c; + break; + } + /* Only the first space is inserted. */ + case ' ': + { + if (!in_spaces) *d++ = c; + in_spaces = EINA_TRUE; + break; + } + case '<': + { + if (depth < 0) + { + ERR("%s: Cannot reopen < after >", save_buf); + return NULL; + } + depth++; + end_type = EINA_TRUE; + break; + } + case '>': + { + if (depth == 0) + { + ERR("%s: Too much >", save_buf); + return NULL; + } + if (d == tmp_type) + { + ERR("%s: empty type inside <>", save_buf); + return NULL; + } + if (depth > 0) depth *= -1; + depth++; + end_type = EINA_TRUE; + break; + } + default: + { + *d++ = c; + in_spaces = EINA_FALSE; + in_stars = EINA_FALSE; + } + } + len--; + } + if (d != tmp_type) + { + *d = '\0'; + types = database_type_append(types, tmp_type, is_own); + } + } + if (depth) + { + types = NULL; + ERR("%s: < and > are not well used.", save_buf); + } + free(tmp_type); + return types; +} + Eina_Bool eo_tokenizer_database_fill(const char *filename) { @@ -4402,7 +4494,8 @@ eo_tokenizer_database_fill(const char *filename) database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); EINA_LIST_FOREACH(meth->params, m, param) { - database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment); + Eolian_Type type = _types_extract(param->type, strlen(param->type)); + database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, type, param->name, param->comment); } } @@ -4414,7 +4507,8 @@ eo_tokenizer_database_fill(const char *filename) database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); EINA_LIST_FOREACH(meth->params, m, param) { - database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment); + Eolian_Type type = _types_extract(param->type, strlen(param->type)); + database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, type, param->name, param->comment); } } @@ -4424,17 +4518,17 @@ eo_tokenizer_database_fill(const char *filename) database_function_scope_set(foo_id, prop->scope); EINA_LIST_FOREACH(prop->keys, m, param) { + Eolian_Type type = _types_extract(param->type, strlen(param->type)); Eolian_Function_Parameter p = database_property_key_add( - foo_id, param->type, param->name, param->comment); + foo_id, type, param->name, param->comment); database_parameter_nonull_set(p, param->nonull); - database_parameter_own_set(p, param->own); } EINA_LIST_FOREACH(prop->values, m, param) { + Eolian_Type type = _types_extract(param->type, strlen(param->type)); Eolian_Function_Parameter p = database_property_value_add( - foo_id, param->type, param->name, param->comment); + foo_id, type, param->name, param->comment); database_parameter_nonull_set(p, param->nonull); - database_parameter_own_set(p, param->own); } EINA_LIST_FOREACH(prop->accessors, m, accessor) { @@ -4443,14 +4537,12 @@ eo_tokenizer_database_fill(const char *filename) { Eolian_Function_Type ftype = accessor->type == SETTER?EOLIAN_PROP_SET:EOLIAN_PROP_GET; - database_function_return_type_set(foo_id, - ftype, accessor->ret->type); + Eolian_Type types = _types_extract(accessor->ret->type, strlen(accessor->ret->type)); + database_function_return_type_set(foo_id, ftype, types); database_function_return_comment_set(foo_id, ftype, accessor->ret->comment); database_function_return_flag_set_as_warn_unused(foo_id, ftype, accessor->ret->warn_unused); - database_function_return_flag_set_own(foo_id, - ftype, accessor->ret->own); database_function_return_dflt_val_set(foo_id, ftype, accessor->ret->dflt_ret_val); } @@ -4489,11 +4581,11 @@ eo_tokenizer_database_fill(const char *filename) database_class_function_add(kls->name, foo_id); if (meth->ret) { - database_function_return_type_set(foo_id, EOLIAN_METHOD, meth->ret->type); + Eolian_Type types = _types_extract(meth->ret->type, strlen(meth->ret->type)); + database_function_return_type_set(foo_id, EOLIAN_METHOD, types); database_function_return_comment_set(foo_id, EOLIAN_METHOD, meth->ret->comment); database_function_return_flag_set_as_warn_unused(foo_id, EOLIAN_METHOD, meth->ret->warn_unused); - database_function_return_flag_set_own(foo_id, EOLIAN_METHOD, meth->ret->own); database_function_return_dflt_val_set(foo_id, EOLIAN_METHOD, meth->ret->dflt_ret_val); } @@ -4502,10 +4594,10 @@ eo_tokenizer_database_fill(const char *filename) database_function_object_set_as_const(foo_id, meth->obj_const); EINA_LIST_FOREACH(meth->params, m, param) { + Eolian_Type type = _types_extract(param->type, strlen(param->type)); Eolian_Function_Parameter p = database_method_parameter_add(foo_id, - (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment); + (Eolian_Parameter_Dir)param->way, type, param->name, param->comment); database_parameter_nonull_set(p, param->nonull); - database_parameter_own_set(p, param->own); } } diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index b17c4729c4..43e4a21e54 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -222,12 +222,6 @@ _eo_tokenizer_param_get(Eo_Tokenizer *toknz, char *p) param->nonull = EINA_TRUE; memset(s, ' ', 7); } - s = strstr(toknz->saved.tok, "@own"); - if (s) - { - param->own = EINA_TRUE; - memset(s, ' ', 4); - } *p = ';'; s = p - 1; /* Don't look at the character ';' */ /* Remove any space between the param name and ';'/@nonull @@ -284,12 +278,6 @@ _eo_tokenizer_return_get(Eo_Tokenizer *toknz, char *p) ret->warn_unused = EINA_TRUE; memset(s, ' ', 12); } - s = strstr(toknz->saved.tok, "@own"); - if (s) - { - ret->own = EINA_TRUE; - memset(s, ' ', 4); - } s = strchr(toknz->saved.tok, '('); if (s) { @@ -450,7 +438,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) colon = ':'; # chars allowed on the return line. - return_char = (alnum_u | '*' | ws | '@' | '(' | ')' | '.' | '-'); + return_char = (alnum_u | '*' | ws | '@' | '(' | ')' | '.' | '-' | '<' | '>'); func_name = (alnum >save_fpc (alnum | '_')+ (ws (alnum | '_')+)?); }%% @@ -563,7 +551,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) } param_comment = ws* eo_comment %end_param_comment; - param = ('@'|alpha+) >save_fpc (alnum_u | '*' | '@' | ws )+ %end_param end_statement param_comment?; + param = ('@'|alpha+) >save_fpc (alnum_u | '*' | '@' | '<' | '>' | ws )+ %end_param end_statement param_comment?; tokenize_params := |* ignore+; #=> show_ignore; @@ -1287,6 +1275,108 @@ eo_tokenizer_dump(Eo_Tokenizer *toknz) } +static Eina_Inlist * +_types_extract(const char *buf, int len) +{ + const char *save_buf = buf; + Eolian_Type types = NULL; + long depth = 0; + char *tmp_type = malloc(2 * len + 1); + + while (len > 0) + { + char *d = tmp_type; + Eina_Bool end_type = EINA_FALSE; + Eina_Bool is_own = EINA_FALSE; + char c; + Eina_Bool in_spaces = EINA_TRUE, in_stars = EINA_FALSE; + while (len > 0 && !end_type) + { + switch (c = *buf++) + { + /* @own */ + case '@': + { + if (!strncmp(buf, "own", 3)) + { + is_own = EINA_TRUE; + buf += 3; len -= 3; + } + break; + } + /* if '*', we have to add a space. We set in_spaces to true in + * case spaces are between stars, to be sure we remove them. + */ + case '*': + { + if (!in_stars && !in_spaces) + { + *d++ = ' '; + in_stars = EINA_TRUE; + in_spaces = EINA_TRUE; + } + *d++ = c; + break; + } + /* Only the first space is inserted. */ + case ' ': + { + if (!in_spaces) *d++ = c; + in_spaces = EINA_TRUE; + break; + } + case '<': + { + if (depth < 0) + { + ERR("%s: Cannot reopen < after >", save_buf); + return NULL; + } + depth++; + end_type = EINA_TRUE; + break; + } + case '>': + { + if (depth == 0) + { + ERR("%s: Too much >", save_buf); + return NULL; + } + if (d == tmp_type) + { + ERR("%s: empty type inside <>", save_buf); + return NULL; + } + if (depth > 0) depth *= -1; + depth++; + end_type = EINA_TRUE; + break; + } + default: + { + *d++ = c; + in_spaces = EINA_FALSE; + in_stars = EINA_FALSE; + } + } + len--; + } + if (d != tmp_type) + { + *d = '\0'; + types = database_type_append(types, tmp_type, is_own); + } + } + if (depth) + { + types = NULL; + ERR("%s: < and > are not well used.", save_buf); + } + free(tmp_type); + return types; +} + Eina_Bool eo_tokenizer_database_fill(const char *filename) { @@ -1378,7 +1468,8 @@ eo_tokenizer_database_fill(const char *filename) database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); EINA_LIST_FOREACH(meth->params, m, param) { - database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment); + Eolian_Type type = _types_extract(param->type, strlen(param->type)); + database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, type, param->name, param->comment); } } @@ -1390,7 +1481,8 @@ eo_tokenizer_database_fill(const char *filename) database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); EINA_LIST_FOREACH(meth->params, m, param) { - database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment); + Eolian_Type type = _types_extract(param->type, strlen(param->type)); + database_method_parameter_add(foo_id, (Eolian_Parameter_Dir)param->way, type, param->name, param->comment); } } @@ -1400,17 +1492,17 @@ eo_tokenizer_database_fill(const char *filename) database_function_scope_set(foo_id, prop->scope); EINA_LIST_FOREACH(prop->keys, m, param) { + Eolian_Type type = _types_extract(param->type, strlen(param->type)); Eolian_Function_Parameter p = database_property_key_add( - foo_id, param->type, param->name, param->comment); + foo_id, type, param->name, param->comment); database_parameter_nonull_set(p, param->nonull); - database_parameter_own_set(p, param->own); } EINA_LIST_FOREACH(prop->values, m, param) { + Eolian_Type type = _types_extract(param->type, strlen(param->type)); Eolian_Function_Parameter p = database_property_value_add( - foo_id, param->type, param->name, param->comment); + foo_id, type, param->name, param->comment); database_parameter_nonull_set(p, param->nonull); - database_parameter_own_set(p, param->own); } EINA_LIST_FOREACH(prop->accessors, m, accessor) { @@ -1419,14 +1511,12 @@ eo_tokenizer_database_fill(const char *filename) { Eolian_Function_Type ftype = accessor->type == SETTER?EOLIAN_PROP_SET:EOLIAN_PROP_GET; - database_function_return_type_set(foo_id, - ftype, accessor->ret->type); + Eolian_Type types = _types_extract(accessor->ret->type, strlen(accessor->ret->type)); + database_function_return_type_set(foo_id, ftype, types); database_function_return_comment_set(foo_id, ftype, accessor->ret->comment); database_function_return_flag_set_as_warn_unused(foo_id, ftype, accessor->ret->warn_unused); - database_function_return_flag_set_own(foo_id, - ftype, accessor->ret->own); database_function_return_dflt_val_set(foo_id, ftype, accessor->ret->dflt_ret_val); } @@ -1465,11 +1555,11 @@ eo_tokenizer_database_fill(const char *filename) database_class_function_add(kls->name, foo_id); if (meth->ret) { - database_function_return_type_set(foo_id, EOLIAN_METHOD, meth->ret->type); + Eolian_Type types = _types_extract(meth->ret->type, strlen(meth->ret->type)); + database_function_return_type_set(foo_id, EOLIAN_METHOD, types); database_function_return_comment_set(foo_id, EOLIAN_METHOD, meth->ret->comment); database_function_return_flag_set_as_warn_unused(foo_id, EOLIAN_METHOD, meth->ret->warn_unused); - database_function_return_flag_set_own(foo_id, EOLIAN_METHOD, meth->ret->own); database_function_return_dflt_val_set(foo_id, EOLIAN_METHOD, meth->ret->dflt_ret_val); } @@ -1478,10 +1568,10 @@ eo_tokenizer_database_fill(const char *filename) database_function_object_set_as_const(foo_id, meth->obj_const); EINA_LIST_FOREACH(meth->params, m, param) { + Eolian_Type type = _types_extract(param->type, strlen(param->type)); Eolian_Function_Parameter p = database_method_parameter_add(foo_id, - (Eolian_Parameter_Dir)param->way, param->type, param->name, param->comment); + (Eolian_Parameter_Dir)param->way, type, param->name, param->comment); database_parameter_nonull_set(p, param->nonull); - database_parameter_own_set(p, param->own); } } diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 92ca668198..30ac8db55b 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -45,28 +45,34 @@ typedef struct Eina_List *params; /* list of _Parameter_Desc */ Eolian_Function_Type type; Eolian_Function_Scope scope; + Eolian_Type get_ret_type; + Eolian_Type set_ret_type; 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; Eina_Bool set_virtual_pure :1; Eina_Bool get_return_warn_unused :1; /* also used for methods */ Eina_Bool set_return_warn_unused :1; - Eina_Bool get_return_own :1; /* also used for methods */ - Eina_Bool set_return_own :1; } _Function_Id; typedef struct { Eina_Stringshare *name; - Eina_Stringshare *type; + Eolian_Type type; Eina_Stringshare *description; Eolian_Parameter_Dir param_dir; Eina_Bool is_const_on_get :1; /* True if const in this the get property */ Eina_Bool is_const_on_set :1; /* True if const in this the set property */ Eina_Bool nonull :1; /* True if this argument cannot be NULL */ - Eina_Bool own :1; /* True if the ownership of this argument passes to the caller/callee */ } _Parameter_Desc; +typedef struct +{ + EINA_INLIST; + Eina_Stringshare *name; + Eina_Bool is_own :1; /* True if the ownership of this argument passes to the caller/callee */ +} _Parameter_Type; + typedef struct { Eina_Stringshare *eo_param; @@ -101,7 +107,13 @@ static void _param_del(_Parameter_Desc *pdesc) { eina_stringshare_del(pdesc->name); - eina_stringshare_del(pdesc->type); + + while (pdesc->type) + { + _Parameter_Type *type = (_Parameter_Type *) pdesc->type; + eina_stringshare_del(type->name); + pdesc->type = eina_inlist_remove(pdesc->type, EINA_INLIST_GET(type)); + } eina_stringshare_del(pdesc->description); free(pdesc); } @@ -711,18 +723,18 @@ eolian_function_data_get(Eolian_Function function_id, const char *key) } static _Parameter_Desc * -_parameter_new(const char *type, const char *name, const char *description) +_parameter_new(Eolian_Type type, const char *name, const char *description) { _Parameter_Desc *param = NULL; param = calloc(1, sizeof(*param)); param->name = eina_stringshare_add(name); - param->type = eina_stringshare_add(type); + param->type = type; param->description = eina_stringshare_add(description); return param; } Eolian_Function_Parameter -database_property_key_add(Eolian_Function foo_id, const char *type, const char *name, const char *description) +database_property_key_add(Eolian_Function foo_id, Eolian_Type type, const char *name, const char *description) { _Function_Id *fid = (_Function_Id *)foo_id; EINA_SAFETY_ON_NULL_RETURN_VAL(fid, NULL); @@ -732,7 +744,7 @@ database_property_key_add(Eolian_Function foo_id, const char *type, const char * } Eolian_Function_Parameter -database_property_value_add(Eolian_Function foo_id, const char *type, const char *name, const char *description) +database_property_value_add(Eolian_Function foo_id, Eolian_Type type, const char *name, const char *description) { _Function_Id *fid = (_Function_Id *)foo_id; EINA_SAFETY_ON_NULL_RETURN_VAL(fid, NULL); @@ -742,7 +754,7 @@ database_property_value_add(Eolian_Function foo_id, const char *type, const char } Eolian_Function_Parameter -database_method_parameter_add(Eolian_Function foo_id, Eolian_Parameter_Dir param_dir, const char *type, const char *name, const char *description) +database_method_parameter_add(Eolian_Function foo_id, Eolian_Parameter_Dir param_dir, Eolian_Type type, const char *name, const char *description) { _Function_Id *fid = (_Function_Id *)foo_id; EINA_SAFETY_ON_NULL_RETURN_VAL(fid, NULL); @@ -766,15 +778,16 @@ eolian_function_parameter_get(const Eolian_Function foo_id, const char *param_na return NULL; } -EAPI Eina_Stringshare* +EAPI Eina_Stringshare * eolian_parameter_type_get(const Eolian_Function_Parameter param) { EINA_SAFETY_ON_NULL_RETURN_VAL(param, NULL); - eina_stringshare_ref(((_Parameter_Desc*)param)->type); - return ((_Parameter_Desc*)param)->type; + _Parameter_Type *type = (_Parameter_Type *)((_Parameter_Desc *)param)->type; + eina_stringshare_ref(type->name); + return type->name; } -EAPI Eina_Stringshare* +EAPI Eina_Stringshare * eolian_parameter_name_get(const Eolian_Function_Parameter param) { EINA_SAFETY_ON_NULL_RETURN_VAL(param, NULL); @@ -806,12 +819,13 @@ eolian_parameters_list_get(Eolian_Function foo_id) /* Get parameter information */ EAPI void -eolian_parameter_information_get(Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, const char **type, const char **name, const char **description) +eolian_parameter_information_get(const Eolian_Function_Parameter param_desc, Eolian_Parameter_Dir *param_dir, const char **type, const char **name, const char **description) { _Parameter_Desc *param = (_Parameter_Desc *)param_desc; EINA_SAFETY_ON_NULL_RETURN(param); + _Parameter_Type *ptype = (_Parameter_Type *)((_Parameter_Desc *)param)->type; if (param_dir) *param_dir = param->param_dir; - if (type) *type = param->type; + if (type) *type = ptype->name; if (name) *name = param->name; if (description) *description = param->description; } @@ -827,6 +841,43 @@ database_parameter_const_attribute_set(Eolian_Function_Parameter param_desc, Ein param->is_const_on_set = is_const; } +EAPI Eolian_Type +eolian_parameter_types_list_get(const Eolian_Function_Parameter param_desc) +{ + _Parameter_Desc *param = (_Parameter_Desc *)param_desc; + EINA_SAFETY_ON_NULL_RETURN_VAL(param, NULL); + return param->type; +} + +EAPI Eolian_Type +eolian_type_information_get(Eolian_Type list, const char **name, Eina_Bool *own) +{ + _Parameter_Type *type = (_Parameter_Type *)list; + if (name) *name = type->name; + if (own) *own = type->is_own; + return list->next; +} + +Eolian_Type +database_type_append(Eolian_Type types, const char *name, Eina_Bool own) +{ + _Parameter_Type *type = calloc(1, sizeof(*type)); + type->name = eina_stringshare_add(name); + type->is_own = own; + if (types) + return eina_inlist_append(types, EINA_INLIST_GET(type)); + else + return EINA_INLIST_GET(type); +} + +void +database_parameter_type_set(Eolian_Function_Parameter param_desc, Eolian_Type types) +{ + _Parameter_Desc *param = (_Parameter_Desc *)param_desc; + EINA_SAFETY_ON_NULL_RETURN(param); + param->type = types; +} + EAPI Eina_Bool eolian_parameter_const_attribute_get(Eolian_Function_Parameter param_desc, Eina_Bool is_get) { @@ -854,47 +905,36 @@ eolian_parameter_is_nonull(Eolian_Function_Parameter param_desc) return param->nonull; } -void -database_parameter_own_set(Eolian_Function_Parameter param_desc, Eina_Bool own) +void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_Type ftype, Eolian_Type ret_type) { - _Parameter_Desc *param = (_Parameter_Desc *)param_desc; - EINA_SAFETY_ON_NULL_RETURN(param); - param->own = own; -} - -EAPI Eina_Bool -eolian_parameter_is_own(Eolian_Function_Parameter param_desc) -{ - _Parameter_Desc *param = (_Parameter_Desc *)param_desc; - EINA_SAFETY_ON_NULL_RETURN_VAL(param, EINA_FALSE); - return param->own; -} - -void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_type) -{ - const char *key = NULL; + _Function_Id *fid = (_Function_Id *)foo_id; switch (ftype) { - case EOLIAN_PROP_SET: key = EOLIAN_PROP_SET_RETURN_TYPE; break; - case EOLIAN_PROP_GET: key = EOLIAN_PROP_GET_RETURN_TYPE; break; - case EOLIAN_METHOD: key = EOLIAN_METHOD_RETURN_TYPE; break; + case EOLIAN_PROP_SET: fid->set_ret_type = ret_type; break; + case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROP_GET: fid->get_ret_type = ret_type; break; default: return; } - database_function_data_set(foo_id, key, ret_type); } EAPI const char * eolian_function_return_type_get(Eolian_Function foo_id, Eolian_Function_Type ftype) { - const char *key = NULL; + Eolian_Type types = eolian_function_return_types_list_get(foo_id, ftype); + _Parameter_Type *type = (_Parameter_Type *)types; + if (type) return type->name; + else return NULL; +} + +EAPI Eolian_Type +eolian_function_return_types_list_get(Eolian_Function foo_id, Eolian_Function_Type ftype) +{ + _Function_Id *fid = (_Function_Id *)foo_id; switch (ftype) { - case EOLIAN_PROP_SET: key = EOLIAN_PROP_SET_RETURN_TYPE; break; - case EOLIAN_PROP_GET: key = EOLIAN_PROP_GET_RETURN_TYPE; break; - case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: key = EOLIAN_METHOD_RETURN_TYPE; break; + case EOLIAN_PROP_SET: return fid->set_ret_type; + case EOLIAN_UNRESOLVED: case EOLIAN_METHOD: case EOLIAN_PROP_GET: return fid->get_ret_type; default: return NULL; } - return eolian_function_data_get(foo_id, key); } void database_function_return_dflt_val_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_dflt_value) @@ -978,33 +1018,6 @@ eolian_function_return_is_warn_unused(Eolian_Function foo_id, } } -void database_function_return_flag_set_own(Eolian_Function foo_id, - Eolian_Function_Type ftype, Eina_Bool own) -{ - _Function_Id *fid = (_Function_Id *)foo_id; - EINA_SAFETY_ON_NULL_RETURN(fid); - switch (ftype) - { - case EOLIAN_METHOD: case EOLIAN_PROP_GET: fid->get_return_own = own; break; - case EOLIAN_PROP_SET: fid->set_return_own = own; break; - default: return; - } -} - -EAPI Eina_Bool -eolian_function_return_own_get(Eolian_Function foo_id, - Eolian_Function_Type ftype) -{ - _Function_Id *fid = (_Function_Id *)foo_id; - EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE); - switch (ftype) - { - case EOLIAN_METHOD: case EOLIAN_PROP_GET: return fid->get_return_own; - case EOLIAN_PROP_SET: return fid->set_return_own; - default: return EINA_FALSE; - } -} - void database_function_object_set_as_const(Eolian_Function foo_id, Eina_Bool is_const) { @@ -1249,7 +1262,22 @@ static Eina_Bool _function_print(const _Function_Id *fid, int nb_spaces) param_dir = "INOUT"; break; } - printf("%*s%s <%s> <%s> <%s>\n", nb_spaces + 5, "", param_dir, param->name, param->type, (param->description?param->description:"")); + Eina_Strbuf *type_buf = eina_strbuf_new(); + Eolian_Type type = param->type; + while (type) + { + const char *type_str = NULL; + Eina_Bool is_own = EINA_FALSE; + type = eolian_type_information_get(type, &type_str, &is_own); + eina_strbuf_append_printf(type_buf, "%s%s%s", + eina_strbuf_length_get(type_buf)?"/":"", + type_str, is_own?"@own":""); + } + printf("%*s%s <%s> <%s> <%s>\n", nb_spaces + 5, "", + param_dir, param->name, + eina_strbuf_string_get(type_buf), + param->description?param->description:""); + eina_strbuf_free(type_buf); } return EINA_TRUE; } diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 450ba21b8e..106ffea36a 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -78,21 +78,21 @@ void database_function_data_set(Eolian_Function function_id, const char *key, co #define database_function_description_set(foo_id, key, desc) database_function_data_set((foo_id), (key), (desc)) /* Add a key to a property */ -Eolian_Function_Parameter database_property_key_add(Eolian_Function foo_id, const char *type, const char *name, const char *description); +Eolian_Function_Parameter database_property_key_add(Eolian_Function foo_id, Eolian_Type type, const char *name, const char *description); /* Add a value to a property */ -Eolian_Function_Parameter database_property_value_add(Eolian_Function foo_id, const char *type, const char *name, const char *description); +Eolian_Function_Parameter database_property_value_add(Eolian_Function foo_id, Eolian_Type type, const char *name, const char *description); /* Add a parameter to a method */ -Eolian_Function_Parameter database_method_parameter_add(Eolian_Function foo_id, Eolian_Parameter_Dir param_dir, const char *type, const char *name, const char *description); +Eolian_Function_Parameter database_method_parameter_add(Eolian_Function foo_id, Eolian_Parameter_Dir param_dir, Eolian_Type type, const char *name, const char *description); + +Eolian_Type database_type_append(Eolian_Type types, const char *name, Eina_Bool own); void database_parameter_const_attribute_set(Eolian_Function_Parameter param_desc, Eina_Bool is_get, Eina_Bool is_const); void database_parameter_nonull_set(Eolian_Function_Parameter, Eina_Bool nonull); -void database_parameter_own_set(Eolian_Function_Parameter, Eina_Bool own); - -void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_type); +void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_Type ftype, Eolian_Type ret_type); void database_function_return_comment_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_comment); @@ -101,9 +101,6 @@ void database_function_return_dflt_val_set(Eolian_Function foo_id, Eolian_Functi void database_function_return_flag_set_as_warn_unused(Eolian_Function foo_id, Eolian_Function_Type ftype, Eina_Bool warn_unused); -void database_function_return_flag_set_own(Eolian_Function foo_id, - Eolian_Function_Type ftype, Eina_Bool own); - void database_function_object_set_as_const(Eolian_Function foo_id, Eina_Bool is_const); Eina_Bool