diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index fcc858122a..f028f915f7 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -15,7 +15,7 @@ tmpl_eapi_funcdef[] = "\n\ *\n\ @#list_desc_param\ */\n\ -EAPI @#type_return @#class_@#func(@#is_constEvas_Object *obj@#params);\n\ +EAPI @#type_return @#class_@#func(@#is_constEvas_Object *obj@#params);@#flags\n\ "; /*@#CLASS_CHECK(obj) @#check_ret;\n\*/ @@ -127,6 +127,7 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F eina_strbuf_replace_all(fbody, "@#list_desc_param", eina_strbuf_string_get(descparam)); eina_strbuf_replace_all(fbody, "@#type_return", (rettype) ? rettype : "void"); eina_strbuf_replace_all(fbody, "@#is_const", (ftype == GET || eolian_function_object_is_const(funcid)) ? "const " : ""); + eina_strbuf_replace_all(fbody, "@#flags", (eolian_function_return_is_warn_unused(funcid, ftype)) ? " EINA_WARN_UNUSED_RESULT" : ""); eina_strbuf_append(buf, eina_strbuf_string_get(fbody)); eina_strbuf_free(fbody); @@ -288,7 +289,7 @@ legacy_header_generate(const char *classname, int eo_version, Eina_Strbuf *buf) if (!prop_read && !prop_write) { - _eapi_decl_func_generate(classname, (Eolian_Function)data, UNRESOLVED, buf); + _eapi_decl_func_generate(classname, (Eolian_Function)data, METHOD_FUNC, buf); } if (prop_read) { diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 5402b145b5..2c589645eb 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -50,7 +50,9 @@ typedef struct _Event_Desc* Eolian_Event; #define EOLIAN_METHOD_RETURN_TYPE "method_return_type" #define EOLIAN_PROP_GET_RETURN_TYPE "property_get_return_type" #define EOLIAN_PROP_SET_RETURN_TYPE "property_set_return_type" -#define EOLIAN_RETURN_COMMENT "return_comment" +#define EOLIAN_RETURN_COMMENT "method_return_comment" +#define EOLIAN_PROP_GET_RETURN_COMMENT "property_get_return_comment" +#define EOLIAN_PROP_SET_RETURN_COMMENT "property_set_return_comment" #define EOLIAN_LEGACY "legacy" #define EOLIAN_LEGACY_GET "legacy_get" #define EOLIAN_LEGACY_SET "legacy_set" @@ -395,6 +397,20 @@ EAPI Eina_Bool eolian_parameter_get_const_attribute_get(Eolian_Function_Paramete */ EAPI const char *eolian_function_return_type_get(Eolian_Function function_id, Eolian_Function_Type ftype); +/* + * @brief Indicates if a function return is warn-unused. + * + * @param[in] function_id id of the function + * @param[in] ftype type of the function + * @return EINA_TRUE is warn-unused, EINA_FALSE otherwise. + * + * 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_is_warn_unused(Eolian_Function foo_id, Eolian_Function_Type ftype); + /* * @brief Indicates if a function object is const. * @@ -451,8 +467,26 @@ EAPI const Eina_List *eolian_class_events_list_get(const char *class_name); */ EAPI Eina_Bool eolian_class_event_information_get(Eolian_Event event, const char **event_name, const char **event_desc); +/* + * @brief Indicates if the class constructor has to invoke + * a non-generated class constructor function. + * + * @param[in] class_name name of the class. + * @return EINA_TRUE if the invocation is needed, EINA_FALSE otherwise. + * + * @ingroup Eolian + */ EAPI Eina_Bool eolian_class_ctor_enable_get(const char *class_name); +/* + * @brief Indicates if the class destructor has to invoke + * a non-generated class destructor function. + * + * @param[in] class_name name of the class. + * @return EINA_TRUE if the invocation is needed, EINA_FALSE otherwise. + * + * @ingroup Eolian + */ EAPI Eina_Bool eolian_class_dtor_enable_get(const char *class_name); #endif diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index 61537b177a..54cf6e0edd 100644 --- a/src/lib/eolian/eo_definitions.h +++ b/src/lib/eolian/eo_definitions.h @@ -10,6 +10,7 @@ typedef struct _eo_ret_def { const char *type; const char *comment; + Eina_Bool warn_unused:1; } Eo_Ret_Def; /* PARAM */ diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 206180d267..6e7560ee4b 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -274,14 +274,14 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) #line 276 "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, + 0, 1, 0, 1, 2, 1, 3, 1, + 7, 1, 11, 1, 12, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, - 38, 1, 41, 1, 42, 1, 43, 1, + 38, 1, 39, 1, 40, 1, 43, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48, 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, @@ -291,7 +291,7 @@ static const char _eo_tokenizer_actions[] = { 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 1, 79, 1, - 82, 1, 83, 1, 84, 1, 85, 1, + 80, 1, 81, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, 94, 1, 95, 1, 96, 1, 97, 1, @@ -300,22 +300,23 @@ static const char _eo_tokenizer_actions[] = { 106, 1, 107, 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, - 118, 1, 119, 1, 120, 2, 0, 38, - 2, 0, 49, 2, 0, 58, 2, 0, - 69, 2, 0, 78, 2, 0, 90, 2, - 0, 99, 2, 0, 115, 2, 4, 44, - 2, 5, 39, 2, 6, 2, 2, 7, - 40, 2, 8, 53, 2, 10, 0, 2, - 10, 70, 2, 12, 85, 2, 13, 80, - 2, 14, 81, 2, 15, 0, 2, 15, - 91, 2, 16, 0, 2, 17, 0, 2, - 17, 116, 2, 18, 0, 2, 19, 0, - 2, 19, 2, 2, 21, 0, 2, 22, - 0, 2, 22, 2, 2, 23, 0, 2, - 25, 0, 2, 26, 0, 2, 26, 2, - 2, 33, 0, 2, 33, 116, 2, 36, - 1, 2, 36, 2, 2, 36, 3, 2, - 36, 9, 2, 36, 11 + 118, 1, 119, 1, 120, 1, 121, 1, + 122, 2, 0, 40, 2, 0, 51, 2, + 0, 60, 2, 0, 71, 2, 0, 80, + 2, 0, 92, 2, 0, 101, 2, 0, + 117, 2, 4, 46, 2, 6, 41, 2, + 7, 2, 2, 8, 42, 2, 9, 55, + 2, 11, 0, 2, 11, 72, 2, 13, + 87, 2, 15, 82, 2, 16, 83, 2, + 17, 0, 2, 17, 93, 2, 18, 0, + 2, 19, 0, 2, 19, 118, 2, 20, + 0, 2, 21, 0, 2, 21, 2, 2, + 23, 0, 2, 24, 0, 2, 24, 2, + 2, 25, 0, 2, 27, 0, 2, 28, + 0, 2, 28, 2, 2, 35, 0, 2, + 35, 118, 2, 38, 1, 2, 38, 2, + 2, 38, 3, 2, 38, 5, 2, 38, + 10, 2, 38, 12, 2, 38, 14 }; static const short _eo_tokenizer_key_offsets[] = { @@ -327,42 +328,45 @@ static const short _eo_tokenizer_key_offsets[] = { 126, 137, 139, 142, 143, 154, 158, 165, 172, 184, 196, 208, 220, 232, 243, 251, 258, 266, 278, 290, 302, 314, 325, 333, - 344, 356, 360, 361, 362, 372, 374, 377, - 379, 382, 383, 395, 399, 400, 401, 411, - 413, 416, 418, 421, 422, 423, 427, 428, - 429, 433, 434, 438, 439, 440, 441, 442, - 446, 448, 451, 452, 463, 467, 470, 472, - 475, 486, 488, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 503, 510, 517, - 525, 526, 527, 528, 529, 533, 534, 535, - 536, 537, 540, 547, 558, 570, 574, 575, - 576, 586, 588, 591, 593, 596, 597, 608, - 612, 615, 617, 620, 631, 633, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 664, 665, 666, 667, - 668, 672, 680, 688, 700, 704, 716, 717, - 718, 728, 730, 733, 741, 742, 743, 744, - 745, 746, 747, 748, 749, 753, 761, 769, - 782, 787, 791, 792, 793, 794, 795, 796, - 808, 813, 817, 826, 830, 831, 832, 833, - 834, 835, 839, 848, 855, 862, 873, 877, - 891, 901, 908, 920, 925, 931, 936, 937, - 938, 939, 940, 941, 944, 951, 958, 966, - 967, 971, 978, 986, 990, 995, 996, 997, - 1007, 1009, 1012, 1022, 1034, 1041, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1069, 1076, 1083, 1091, 1092, - 1093, 1094, 1095, 1096, 1100, 1101, 1102, 1103, - 1104, 1105, 1106, 1107, 1108, 1112, 1120, 1123, - 1125, 1126, 1127, 1128, 1129, 1140, 1143, 1145, - 1152, 1160, 1168, 1172, 1172, 1173, 1182, 1185, - 1187, 1198, 1202, 1202, 1203, 1212, 1215, 1217, - 1218, 1219, 1220, 1221, 1222, 1231, 1234, 1236, - 1243, 1244, 1253, 1256, 1258, 1259, 1260, 1261, - 1262, 1266, 1266, 1267, 1276, 1279, 1281, 1288, - 1289, 1301, 1304, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1316, 1317, 1318 + 344, 357, 361, 362, 363, 373, 375, 378, + 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 392, 395, 396, 408, + 412, 413, 414, 424, 426, 429, 431, 434, + 435, 436, 440, 441, 442, 446, 447, 451, + 452, 453, 454, 455, 459, 461, 464, 465, + 476, 480, 483, 485, 488, 499, 501, 504, + 505, 506, 507, 508, 509, 510, 511, 512, + 513, 516, 523, 530, 538, 539, 540, 541, + 542, 546, 547, 548, 549, 550, 553, 560, + 571, 584, 588, 589, 590, 600, 602, 605, + 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 619, 622, 623, 634, + 638, 641, 643, 646, 657, 659, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, + 672, 673, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 690, 691, 692, 693, + 694, 698, 706, 714, 726, 730, 742, 743, + 744, 754, 756, 759, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 779, 787, 795, + 808, 813, 817, 818, 819, 820, 821, 822, + 834, 839, 843, 852, 856, 857, 858, 859, + 860, 861, 865, 874, 881, 888, 899, 903, + 917, 927, 934, 946, 951, 957, 962, 963, + 964, 965, 966, 967, 970, 977, 984, 992, + 993, 997, 1004, 1012, 1016, 1021, 1022, 1023, + 1033, 1035, 1038, 1048, 1060, 1067, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, + 1089, 1090, 1091, 1095, 1102, 1109, 1117, 1118, + 1119, 1120, 1121, 1122, 1126, 1127, 1128, 1129, + 1130, 1131, 1132, 1133, 1134, 1138, 1146, 1149, + 1151, 1152, 1153, 1154, 1155, 1166, 1169, 1171, + 1178, 1186, 1194, 1198, 1198, 1199, 1208, 1211, + 1213, 1224, 1228, 1228, 1229, 1238, 1241, 1243, + 1244, 1245, 1246, 1247, 1248, 1257, 1260, 1262, + 1269, 1270, 1279, 1282, 1284, 1285, 1286, 1287, + 1288, 1292, 1292, 1293, 1302, 1305, 1307, 1314, + 1315, 1327, 1330, 1332, 1333, 1334, 1335, 1336, + 1337, 1338, 1339, 1342, 1343, 1344 }; static const char _eo_tokenizer_trans_keys[] = { @@ -409,128 +413,132 @@ static const char _eo_tokenizer_trans_keys[] = { 57, 65, 90, 97, 122, 9, 13, 32, 58, 65, 90, 97, 122, 9, 13, 32, 42, 95, 48, 57, 65, 90, 97, 122, - 9, 13, 32, 42, 59, 95, 48, 57, - 65, 90, 97, 122, 9, 13, 32, 47, - 42, 64, 10, 95, 0, 32, 48, 57, - 65, 90, 97, 122, 10, 42, 10, 42, - 47, 10, 42, 10, 42, 47, 10, 9, - 13, 32, 42, 59, 95, 48, 57, 65, - 90, 97, 122, 9, 13, 32, 47, 42, - 64, 10, 95, 0, 32, 48, 57, 65, - 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, 10, 95, 123, 0, - 32, 48, 57, 65, 90, 97, 122, 10, - 123, 0, 32, 10, 42, 64, 10, 42, - 10, 42, 47, 10, 42, 95, 0, 32, - 48, 57, 65, 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, 95, 48, - 57, 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, 42, 95, - 48, 57, 65, 90, 97, 122, 9, 13, - 32, 42, 59, 95, 48, 57, 65, 90, - 97, 122, 9, 13, 32, 47, 42, 64, - 10, 95, 0, 32, 48, 57, 65, 90, - 97, 122, 10, 42, 10, 42, 47, 10, - 42, 10, 42, 47, 10, 10, 95, 123, - 0, 32, 48, 57, 65, 90, 97, 122, - 10, 123, 0, 32, 10, 42, 64, 10, - 42, 10, 42, 47, 10, 42, 95, 0, - 32, 48, 57, 65, 90, 97, 122, 10, - 42, 10, 42, 47, 10, 110, 115, 116, - 114, 117, 99, 116, 111, 114, 115, 10, - 123, 0, 32, 115, 116, 114, 117, 99, - 116, 111, 114, 115, 10, 123, 0, 32, - 101, 110, 116, 115, 10, 123, 0, 32, - 10, 125, 0, 32, 65, 90, 97, 122, - 44, 95, 48, 57, 65, 90, 97, 122, - 10, 44, 59, 95, 0, 32, 48, 57, - 65, 90, 97, 122, 10, 59, 0, 32, - 9, 10, 13, 32, 47, 125, 0, 31, - 65, 90, 97, 122, 42, 64, 10, 95, - 0, 32, 48, 57, 65, 90, 97, 122, - 10, 42, 10, 42, 47, 10, 125, 0, - 32, 65, 90, 97, 122, 112, 108, 101, - 109, 101, 110, 116, 115, 10, 123, 0, - 32, 10, 125, 0, 32, 65, 90, 97, - 122, 58, 95, 48, 57, 65, 90, 97, - 122, 10, 58, 59, 95, 123, 0, 32, - 48, 57, 65, 90, 97, 122, 10, 59, - 123, 0, 32, 10, 108, 0, 32, 101, - 103, 97, 99, 121, 9, 10, 13, 32, - 59, 123, 0, 31, 65, 90, 97, 122, - 10, 59, 123, 0, 32, 10, 125, 0, - 32, 10, 59, 125, 0, 32, 65, 90, - 97, 122, 10, 112, 0, 32, 97, 114, - 97, 109, 115, 10, 123, 0, 32, 10, - 58, 59, 0, 32, 65, 90, 97, 122, - 9, 13, 32, 65, 90, 97, 122, 95, - 48, 57, 65, 90, 97, 122, 10, 59, - 95, 0, 32, 48, 57, 65, 90, 97, - 122, 10, 59, 0, 32, 9, 10, 13, - 32, 47, 58, 59, 125, 0, 31, 65, - 90, 97, 122, 10, 58, 59, 125, 0, - 32, 65, 90, 97, 122, 95, 48, 57, - 65, 90, 97, 122, 9, 13, 32, 58, + 9, 13, 32, 42, 59, 64, 95, 48, + 57, 65, 90, 97, 122, 9, 13, 32, + 47, 42, 64, 10, 95, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 42, 10, + 42, 47, 119, 97, 114, 110, 95, 117, + 110, 117, 115, 101, 100, 59, 10, 42, + 10, 42, 47, 10, 9, 13, 32, 42, 59, 95, 48, 57, 65, 90, 97, 122, - 9, 13, 32, 58, 59, 10, 59, 114, - 125, 0, 32, 10, 114, 125, 0, 32, - 101, 116, 117, 114, 110, 9, 13, 32, - 9, 13, 32, 65, 90, 97, 122, 95, - 48, 57, 65, 90, 97, 122, 58, 95, - 48, 57, 65, 90, 97, 122, 58, 65, + 9, 13, 32, 47, 42, 64, 10, 95, + 0, 32, 48, 57, 65, 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, 10, 95, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 123, 0, 32, + 10, 42, 64, 10, 42, 10, 42, 47, + 10, 42, 95, 0, 32, 48, 57, 65, + 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, 95, 48, 57, 65, 90, 97, 122, 59, 95, 48, 57, 65, 90, - 97, 122, 10, 125, 0, 32, 10, 59, - 125, 0, 32, 42, 64, 10, 95, 0, - 32, 48, 57, 65, 90, 97, 122, 10, - 42, 10, 42, 47, 10, 58, 59, 125, - 0, 32, 65, 90, 97, 122, 9, 10, + 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, 42, 95, 48, 57, 65, + 90, 97, 122, 9, 13, 32, 42, 59, + 64, 95, 48, 57, 65, 90, 97, 122, + 9, 13, 32, 47, 42, 64, 10, 95, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 42, 10, 42, 47, 119, 97, 114, + 110, 95, 117, 110, 117, 115, 101, 100, + 59, 10, 42, 10, 42, 47, 10, 10, + 95, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 123, 0, 32, 10, 42, + 64, 10, 42, 10, 42, 47, 10, 42, + 95, 0, 32, 48, 57, 65, 90, 97, + 122, 10, 42, 10, 42, 47, 10, 110, + 115, 116, 114, 117, 99, 116, 111, 114, + 115, 10, 123, 0, 32, 115, 116, 114, + 117, 99, 116, 111, 114, 115, 10, 123, + 0, 32, 101, 110, 116, 115, 10, 123, + 0, 32, 10, 125, 0, 32, 65, 90, + 97, 122, 44, 95, 48, 57, 65, 90, + 97, 122, 10, 44, 59, 95, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 59, + 0, 32, 9, 10, 13, 32, 47, 125, + 0, 31, 65, 90, 97, 122, 42, 64, + 10, 95, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 42, 10, 42, 47, 10, + 125, 0, 32, 65, 90, 97, 122, 112, + 108, 101, 109, 101, 110, 116, 115, 10, + 123, 0, 32, 10, 125, 0, 32, 65, + 90, 97, 122, 58, 95, 48, 57, 65, + 90, 97, 122, 10, 58, 59, 95, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 59, 123, 0, 32, 10, 108, 0, + 32, 101, 103, 97, 99, 121, 9, 10, 13, 32, 59, 123, 0, 31, 65, 90, - 97, 122, 95, 48, 57, 65, 90, 97, - 122, 10, 59, 95, 123, 0, 32, 48, - 57, 65, 90, 97, 122, 58, 103, 97, - 99, 121, 95, 112, 114, 101, 102, 105, - 120, 10, 58, 0, 32, 10, 0, 32, - 65, 90, 97, 122, 95, 48, 57, 65, - 90, 97, 122, 59, 95, 48, 57, 65, - 90, 97, 122, 116, 104, 111, 100, 115, - 10, 123, 0, 32, 111, 112, 101, 114, - 116, 105, 101, 115, 10, 123, 0, 32, - 10, 47, 97, 99, 105, 109, 0, 32, - 10, 0, 32, 42, 47, 98, 108, 110, - 105, 10, 47, 108, 114, 125, 0, 32, - 65, 90, 97, 122, 10, 0, 32, 42, - 47, 95, 48, 57, 65, 90, 97, 122, - 95, 101, 48, 57, 65, 90, 97, 122, - 95, 101, 48, 57, 65, 90, 97, 122, - 9, 13, 32, 47, 59, 10, 47, 125, - 0, 32, 64, 90, 97, 122, 10, 0, - 32, 42, 47, 9, 13, 32, 42, 95, + 97, 122, 10, 59, 123, 0, 32, 10, + 125, 0, 32, 10, 59, 125, 0, 32, + 65, 90, 97, 122, 10, 112, 0, 32, + 97, 114, 97, 109, 115, 10, 123, 0, + 32, 10, 58, 59, 0, 32, 65, 90, + 97, 122, 9, 13, 32, 65, 90, 97, + 122, 95, 48, 57, 65, 90, 97, 122, + 10, 59, 95, 0, 32, 48, 57, 65, + 90, 97, 122, 10, 59, 0, 32, 9, + 10, 13, 32, 47, 58, 59, 125, 0, + 31, 65, 90, 97, 122, 10, 58, 59, + 125, 0, 32, 65, 90, 97, 122, 95, 48, 57, 65, 90, 97, 122, 9, 13, - 32, 47, 59, 10, 47, 103, 107, 115, - 118, 125, 0, 32, 10, 0, 32, 42, - 47, 101, 101, 101, 97, 59, 10, 47, - 125, 0, 32, 65, 90, 97, 122, 10, - 0, 32, 42, 47, 95, 48, 57, 65, - 90, 97, 122, 59, 10, 47, 99, 108, - 112, 114, 125, 0, 32, 10, 0, 32, - 42, 47, 111, 101, 97, 101, 9, 13, - 32, 47, 59, 10, 47, 125, 0, 32, - 65, 90, 97, 122, 10, 0, 32, 42, - 47, 95, 48, 57, 65, 90, 97, 122, - 59, 10, 47, 99, 100, 101, 105, 108, - 109, 112, 125, 0, 32, 10, 0, 32, - 42, 47, 111, 101, 118, 59, 109, 59, - 101, 10, 0, 32, 101, 114, 59, 0 + 32, 58, 59, 95, 48, 57, 65, 90, + 97, 122, 9, 13, 32, 58, 59, 10, + 59, 114, 125, 0, 32, 10, 114, 125, + 0, 32, 101, 116, 117, 114, 110, 9, + 13, 32, 9, 13, 32, 65, 90, 97, + 122, 95, 48, 57, 65, 90, 97, 122, + 58, 95, 48, 57, 65, 90, 97, 122, + 58, 65, 90, 97, 122, 95, 48, 57, + 65, 90, 97, 122, 59, 95, 48, 57, + 65, 90, 97, 122, 10, 125, 0, 32, + 10, 59, 125, 0, 32, 42, 64, 10, + 95, 0, 32, 48, 57, 65, 90, 97, + 122, 10, 42, 10, 42, 47, 10, 58, + 59, 125, 0, 32, 65, 90, 97, 122, + 9, 10, 13, 32, 59, 123, 0, 31, + 65, 90, 97, 122, 95, 48, 57, 65, + 90, 97, 122, 10, 59, 95, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 58, + 103, 97, 99, 121, 95, 112, 114, 101, + 102, 105, 120, 10, 58, 0, 32, 10, + 0, 32, 65, 90, 97, 122, 95, 48, + 57, 65, 90, 97, 122, 59, 95, 48, + 57, 65, 90, 97, 122, 116, 104, 111, + 100, 115, 10, 123, 0, 32, 111, 112, + 101, 114, 116, 105, 101, 115, 10, 123, + 0, 32, 10, 47, 97, 99, 105, 109, + 0, 32, 10, 0, 32, 42, 47, 98, + 108, 110, 105, 10, 47, 108, 114, 125, + 0, 32, 65, 90, 97, 122, 10, 0, + 32, 42, 47, 95, 48, 57, 65, 90, + 97, 122, 95, 101, 48, 57, 65, 90, + 97, 122, 95, 101, 48, 57, 65, 90, + 97, 122, 9, 13, 32, 47, 59, 10, + 47, 125, 0, 32, 64, 90, 97, 122, + 10, 0, 32, 42, 47, 9, 13, 32, + 42, 95, 48, 57, 65, 90, 97, 122, + 9, 13, 32, 47, 59, 10, 47, 103, + 107, 115, 118, 125, 0, 32, 10, 0, + 32, 42, 47, 101, 101, 101, 97, 59, + 10, 47, 125, 0, 32, 65, 90, 97, + 122, 10, 0, 32, 42, 47, 95, 48, + 57, 65, 90, 97, 122, 59, 10, 47, + 99, 108, 112, 114, 125, 0, 32, 10, + 0, 32, 42, 47, 111, 101, 97, 101, + 9, 13, 32, 47, 59, 10, 47, 125, + 0, 32, 65, 90, 97, 122, 10, 0, + 32, 42, 47, 95, 48, 57, 65, 90, + 97, 122, 59, 10, 47, 99, 100, 101, + 105, 108, 109, 112, 125, 0, 32, 10, + 0, 32, 42, 47, 111, 101, 118, 59, + 109, 59, 101, 10, 0, 32, 101, 114, + 59, 0 }; static const char _eo_tokenizer_single_lengths[] = { @@ -542,16 +550,19 @@ static const char _eo_tokenizer_single_lengths[] = { 3, 2, 3, 1, 5, 4, 3, 3, 6, 6, 6, 6, 6, 5, 4, 1, 2, 6, 6, 6, 6, 5, 4, 5, - 6, 4, 1, 1, 2, 2, 3, 2, - 3, 1, 6, 4, 1, 1, 2, 2, - 3, 2, 3, 1, 1, 2, 1, 1, - 2, 1, 2, 1, 1, 1, 1, 2, - 2, 3, 1, 3, 2, 3, 2, 3, - 3, 2, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 3, 1, 2, - 1, 1, 1, 1, 2, 1, 1, 1, - 1, 3, 3, 5, 6, 4, 1, 1, - 2, 2, 3, 2, 3, 1, 3, 2, + 7, 4, 1, 1, 2, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 3, 1, 6, 4, + 1, 1, 2, 2, 3, 2, 3, 1, + 1, 2, 1, 1, 2, 1, 2, 1, + 1, 1, 1, 2, 2, 3, 1, 3, + 2, 3, 2, 3, 3, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 1, 2, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 3, 3, 5, + 7, 4, 1, 1, 2, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 3, 1, 3, 2, 3, 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, @@ -590,15 +601,18 @@ static const char _eo_tokenizer_range_lengths[] = { 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 1, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 1, - 0, 0, 0, 4, 1, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 3, 3, - 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 2, 3, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 4, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 1, 0, 0, 0, 4, + 1, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 2, 3, + 3, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, @@ -636,42 +650,45 @@ static const short _eo_tokenizer_index_offsets[] = { 141, 149, 152, 156, 158, 167, 172, 178, 184, 194, 204, 214, 224, 234, 243, 250, 255, 261, 271, 281, 291, 301, 310, 317, - 326, 336, 341, 343, 345, 352, 355, 359, - 362, 366, 368, 378, 383, 385, 387, 394, - 397, 401, 404, 408, 410, 412, 416, 418, - 420, 424, 426, 430, 432, 434, 436, 438, - 442, 445, 449, 451, 459, 463, 467, 470, - 474, 482, 485, 489, 491, 493, 495, 497, - 499, 501, 503, 505, 507, 511, 517, 522, - 528, 530, 532, 534, 536, 540, 542, 544, - 546, 548, 552, 558, 567, 577, 582, 584, - 586, 593, 596, 600, 603, 607, 609, 617, - 621, 625, 628, 632, 640, 643, 647, 649, - 651, 653, 655, 657, 659, 661, 663, 665, - 667, 669, 673, 675, 677, 679, 681, 683, - 685, 687, 689, 691, 695, 697, 699, 701, - 703, 707, 713, 719, 728, 732, 742, 744, - 746, 753, 756, 760, 766, 768, 770, 772, - 774, 776, 778, 780, 782, 786, 792, 798, - 808, 813, 817, 819, 821, 823, 825, 827, - 837, 842, 846, 853, 857, 859, 861, 863, - 865, 867, 871, 878, 884, 889, 897, 901, - 913, 921, 926, 936, 942, 948, 953, 955, - 957, 959, 961, 963, 967, 973, 978, 984, - 986, 989, 994, 1000, 1004, 1009, 1011, 1013, - 1020, 1023, 1027, 1035, 1045, 1050, 1059, 1061, - 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077, - 1079, 1081, 1083, 1087, 1092, 1097, 1103, 1105, - 1107, 1109, 1111, 1113, 1117, 1119, 1121, 1123, - 1125, 1127, 1129, 1131, 1133, 1137, 1145, 1148, - 1151, 1153, 1155, 1157, 1159, 1168, 1171, 1174, - 1179, 1185, 1191, 1196, 1197, 1199, 1206, 1209, - 1212, 1221, 1226, 1227, 1229, 1238, 1241, 1244, - 1246, 1248, 1250, 1252, 1254, 1261, 1264, 1267, - 1272, 1274, 1283, 1286, 1289, 1291, 1293, 1295, - 1297, 1302, 1303, 1305, 1312, 1315, 1318, 1323, - 1325, 1337, 1340, 1343, 1345, 1347, 1349, 1351, - 1353, 1355, 1357, 1360, 1362, 1364 + 326, 337, 342, 344, 346, 353, 356, 360, + 362, 364, 366, 368, 370, 372, 374, 376, + 378, 380, 382, 384, 387, 391, 393, 403, + 408, 410, 412, 419, 422, 426, 429, 433, + 435, 437, 441, 443, 445, 449, 451, 455, + 457, 459, 461, 463, 467, 470, 474, 476, + 484, 488, 492, 495, 499, 507, 510, 514, + 516, 518, 520, 522, 524, 526, 528, 530, + 532, 536, 542, 547, 553, 555, 557, 559, + 561, 565, 567, 569, 571, 573, 577, 583, + 592, 603, 608, 610, 612, 619, 622, 626, + 628, 630, 632, 634, 636, 638, 640, 642, + 644, 646, 648, 650, 653, 657, 659, 667, + 671, 675, 678, 682, 690, 693, 697, 699, + 701, 703, 705, 707, 709, 711, 713, 715, + 717, 719, 723, 725, 727, 729, 731, 733, + 735, 737, 739, 741, 745, 747, 749, 751, + 753, 757, 763, 769, 778, 782, 792, 794, + 796, 803, 806, 810, 816, 818, 820, 822, + 824, 826, 828, 830, 832, 836, 842, 848, + 858, 863, 867, 869, 871, 873, 875, 877, + 887, 892, 896, 903, 907, 909, 911, 913, + 915, 917, 921, 928, 934, 939, 947, 951, + 963, 971, 976, 986, 992, 998, 1003, 1005, + 1007, 1009, 1011, 1013, 1017, 1023, 1028, 1034, + 1036, 1039, 1044, 1050, 1054, 1059, 1061, 1063, + 1070, 1073, 1077, 1085, 1095, 1100, 1109, 1111, + 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, + 1129, 1131, 1133, 1137, 1142, 1147, 1153, 1155, + 1157, 1159, 1161, 1163, 1167, 1169, 1171, 1173, + 1175, 1177, 1179, 1181, 1183, 1187, 1195, 1198, + 1201, 1203, 1205, 1207, 1209, 1218, 1221, 1224, + 1229, 1235, 1241, 1246, 1247, 1249, 1256, 1259, + 1262, 1271, 1276, 1277, 1279, 1288, 1291, 1294, + 1296, 1298, 1300, 1302, 1304, 1311, 1314, 1317, + 1322, 1324, 1333, 1336, 1339, 1341, 1343, 1345, + 1347, 1352, 1353, 1355, 1362, 1365, 1368, 1373, + 1375, 1387, 1390, 1393, 1395, 1397, 1399, 1401, + 1403, 1405, 1407, 1410, 1412, 1414 }; static const short _eo_tokenizer_indicies[] = { @@ -716,286 +733,299 @@ static const short _eo_tokenizer_indicies[] = { 73, 72, 72, 72, 72, 57, 92, 92, 92, 73, 93, 93, 57, 94, 94, 94, 94, 94, 94, 94, 94, 57, 94, 94, - 94, 94, 95, 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, 160, 157, 159, - 159, 159, 150, 162, 163, 161, 150, 166, - 167, 168, 165, 166, 167, 165, 166, 167, - 169, 165, 170, 167, 171, 168, 171, 171, - 171, 165, 173, 174, 172, 173, 174, 175, - 172, 177, 176, 178, 164, 179, 164, 180, - 164, 181, 164, 182, 164, 183, 164, 184, - 164, 185, 164, 186, 186, 186, 164, 186, - 186, 186, 187, 187, 164, 188, 188, 188, - 188, 164, 189, 188, 188, 188, 188, 164, - 190, 164, 191, 164, 192, 164, 193, 164, - 194, 195, 193, 164, 196, 164, 197, 164, - 198, 164, 199, 164, 200, 200, 200, 164, - 200, 200, 200, 201, 201, 164, 202, 202, - 202, 202, 202, 202, 202, 202, 164, 202, - 202, 202, 202, 203, 202, 202, 202, 202, - 164, 205, 205, 205, 206, 204, 207, 204, - 208, 204, 209, 210, 208, 210, 210, 210, - 204, 212, 213, 211, 212, 213, 214, 211, - 217, 218, 216, 217, 218, 219, 216, 221, - 220, 223, 224, 225, 222, 224, 224, 224, - 215, 227, 228, 226, 215, 231, 232, 233, - 230, 231, 232, 230, 231, 232, 234, 230, - 235, 232, 236, 233, 236, 236, 236, 230, - 238, 239, 237, 238, 239, 240, 237, 242, - 241, 243, 229, 244, 229, 245, 229, 246, - 229, 247, 229, 248, 229, 249, 229, 250, - 229, 251, 229, 252, 229, 253, 254, 252, - 229, 255, 229, 256, 229, 257, 229, 258, - 229, 259, 229, 260, 229, 261, 229, 262, - 229, 263, 229, 264, 265, 263, 229, 266, - 229, 267, 229, 268, 229, 269, 229, 270, - 271, 269, 229, 272, 274, 271, 273, 273, - 229, 275, 275, 275, 275, 275, 229, 277, - 275, 278, 275, 276, 275, 275, 275, 229, - 280, 281, 279, 229, 281, 272, 281, 281, - 282, 274, 271, 273, 273, 229, 283, 229, - 284, 229, 285, 286, 284, 286, 286, 286, - 229, 288, 289, 287, 288, 289, 290, 287, - 292, 294, 291, 293, 293, 229, 295, 229, - 296, 229, 297, 229, 298, 229, 299, 229, - 300, 229, 301, 229, 302, 229, 303, 304, - 302, 229, 305, 307, 304, 306, 306, 229, - 309, 308, 308, 308, 308, 229, 311, 309, - 312, 308, 313, 310, 308, 308, 308, 229, - 315, 304, 316, 314, 229, 317, 318, 316, - 229, 319, 229, 320, 229, 321, 229, 322, - 229, 323, 229, 325, 326, 325, 325, 327, - 329, 324, 328, 328, 229, 331, 332, 333, - 330, 229, 334, 335, 332, 229, 305, 304, - 307, 304, 306, 306, 229, 336, 337, 333, - 229, 338, 229, 339, 229, 340, 229, 341, - 229, 342, 229, 343, 344, 342, 229, 345, - 346, 347, 344, 348, 348, 229, 346, 346, - 346, 349, 349, 229, 350, 350, 350, 350, - 229, 352, 353, 350, 351, 350, 350, 350, - 229, 355, 347, 354, 229, 347, 357, 347, - 347, 358, 346, 347, 359, 356, 348, 348, - 229, 357, 346, 347, 359, 356, 348, 348, - 229, 360, 360, 360, 360, 229, 361, 361, - 361, 362, 363, 360, 360, 360, 360, 229, - 364, 364, 364, 346, 347, 229, 366, 365, - 367, 368, 365, 229, 366, 367, 368, 365, - 229, 369, 229, 370, 229, 371, 229, 372, - 229, 373, 229, 374, 374, 374, 229, 374, - 374, 374, 375, 375, 229, 376, 376, 376, - 376, 229, 377, 376, 376, 376, 376, 229, - 378, 229, 379, 379, 229, 380, 380, 380, - 380, 229, 381, 380, 380, 380, 380, 229, - 383, 368, 382, 229, 334, 332, 335, 332, - 229, 384, 229, 385, 229, 386, 387, 385, - 387, 387, 387, 229, 389, 390, 388, 389, - 390, 391, 388, 393, 394, 395, 397, 392, - 396, 396, 229, 398, 331, 398, 398, 332, - 333, 330, 399, 399, 229, 400, 400, 400, - 400, 229, 402, 403, 400, 404, 401, 400, - 400, 400, 229, 308, 229, 405, 229, 406, - 229, 407, 229, 408, 229, 409, 229, 410, - 229, 411, 229, 412, 229, 413, 229, 414, - 229, 415, 229, 416, 417, 415, 229, 418, - 417, 419, 419, 229, 420, 420, 420, 420, - 229, 421, 420, 420, 420, 420, 229, 422, - 229, 423, 229, 424, 229, 425, 229, 426, - 229, 427, 428, 426, 229, 429, 229, 430, - 229, 431, 229, 432, 229, 433, 229, 434, - 229, 435, 229, 436, 229, 437, 438, 436, - 229, 441, 442, 443, 444, 445, 446, 440, - 439, 441, 440, 447, 1, 5, 448, 449, - 448, 450, 448, 451, 448, 452, 448, 455, - 456, 458, 459, 460, 454, 457, 457, 453, - 455, 454, 461, 463, 69, 462, 72, 72, - 72, 72, 462, 72, 464, 72, 72, 72, - 462, 72, 465, 72, 72, 72, 462, 97, - 97, 97, 98, 466, 467, 469, 468, 472, - 473, 475, 471, 474, 474, 470, 472, 471, - 476, 108, 112, 477, 114, 114, 114, 114, - 114, 114, 114, 114, 477, 117, 117, 117, - 118, 478, 479, 481, 480, 484, 485, 486, - 487, 488, 489, 490, 483, 482, 484, 483, - 491, 128, 132, 492, 493, 492, 494, 492, - 495, 492, 496, 492, 498, 497, 501, 502, - 504, 500, 503, 503, 499, 501, 500, 505, - 151, 155, 506, 159, 159, 159, 159, 506, - 508, 507, 511, 512, 513, 514, 515, 516, - 517, 510, 509, 511, 510, 518, 520, 176, - 519, 521, 519, 522, 519, 523, 519, 524, - 519, 205, 205, 205, 206, 525, 526, 528, - 527, 531, 532, 534, 530, 533, 533, 529, - 531, 530, 535, 216, 220, 536, 224, 224, - 224, 224, 536, 538, 537, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 540, - 539, 541, 540, 551, 553, 241, 552, 554, - 552, 555, 552, 556, 552, 558, 557, 559, - 552, 561, 560, 562, 552, 565, 564, 563, - 566, 552, 567, 552, 569, 568, 0 + 94, 94, 95, 96, 94, 94, 94, 94, + 57, 98, 98, 98, 99, 97, 100, 97, + 101, 97, 102, 103, 101, 103, 103, 103, + 97, 105, 106, 104, 105, 106, 107, 104, + 108, 57, 109, 57, 110, 57, 111, 57, + 112, 57, 113, 57, 114, 57, 115, 57, + 116, 57, 117, 57, 118, 57, 119, 57, + 122, 123, 121, 122, 123, 124, 121, 126, + 125, 127, 127, 127, 127, 128, 127, 127, + 127, 127, 120, 130, 130, 130, 131, 129, + 132, 129, 133, 129, 134, 135, 133, 135, + 135, 135, 129, 137, 138, 136, 137, 138, + 139, 136, 142, 143, 141, 142, 143, 144, + 141, 146, 145, 147, 140, 148, 149, 147, + 140, 150, 140, 151, 140, 152, 153, 151, + 140, 154, 140, 155, 156, 154, 140, 157, + 140, 158, 140, 159, 140, 160, 140, 161, + 162, 160, 140, 165, 166, 164, 165, 166, + 167, 164, 169, 168, 171, 172, 173, 170, + 172, 172, 172, 163, 175, 176, 174, 163, + 179, 180, 181, 178, 179, 180, 178, 179, + 180, 182, 178, 183, 180, 184, 181, 184, + 184, 184, 178, 186, 187, 185, 186, 187, + 188, 185, 190, 189, 191, 177, 192, 177, + 193, 177, 194, 177, 195, 177, 196, 177, + 197, 177, 198, 177, 199, 199, 199, 177, + 199, 199, 199, 200, 200, 177, 201, 201, + 201, 201, 177, 202, 201, 201, 201, 201, + 177, 203, 177, 204, 177, 205, 177, 206, + 177, 207, 208, 206, 177, 209, 177, 210, + 177, 211, 177, 212, 177, 213, 213, 213, + 177, 213, 213, 213, 214, 214, 177, 215, + 215, 215, 215, 215, 215, 215, 215, 177, + 215, 215, 215, 215, 216, 217, 215, 215, + 215, 215, 177, 219, 219, 219, 220, 218, + 221, 218, 222, 218, 223, 224, 222, 224, + 224, 224, 218, 226, 227, 225, 226, 227, + 228, 225, 229, 177, 230, 177, 231, 177, + 232, 177, 233, 177, 234, 177, 235, 177, + 236, 177, 237, 177, 238, 177, 239, 177, + 240, 177, 243, 244, 242, 243, 244, 245, + 242, 247, 246, 249, 250, 251, 248, 250, + 250, 250, 241, 253, 254, 252, 241, 257, + 258, 259, 256, 257, 258, 256, 257, 258, + 260, 256, 261, 258, 262, 259, 262, 262, + 262, 256, 264, 265, 263, 264, 265, 266, + 263, 268, 267, 269, 255, 270, 255, 271, + 255, 272, 255, 273, 255, 274, 255, 275, + 255, 276, 255, 277, 255, 278, 255, 279, + 280, 278, 255, 281, 255, 282, 255, 283, + 255, 284, 255, 285, 255, 286, 255, 287, + 255, 288, 255, 289, 255, 290, 291, 289, + 255, 292, 255, 293, 255, 294, 255, 295, + 255, 296, 297, 295, 255, 298, 300, 297, + 299, 299, 255, 301, 301, 301, 301, 301, + 255, 303, 301, 304, 301, 302, 301, 301, + 301, 255, 306, 307, 305, 255, 307, 298, + 307, 307, 308, 300, 297, 299, 299, 255, + 309, 255, 310, 255, 311, 312, 310, 312, + 312, 312, 255, 314, 315, 313, 314, 315, + 316, 313, 318, 320, 317, 319, 319, 255, + 321, 255, 322, 255, 323, 255, 324, 255, + 325, 255, 326, 255, 327, 255, 328, 255, + 329, 330, 328, 255, 331, 333, 330, 332, + 332, 255, 335, 334, 334, 334, 334, 255, + 337, 335, 338, 334, 339, 336, 334, 334, + 334, 255, 341, 330, 342, 340, 255, 343, + 344, 342, 255, 345, 255, 346, 255, 347, + 255, 348, 255, 349, 255, 351, 352, 351, + 351, 353, 355, 350, 354, 354, 255, 357, + 358, 359, 356, 255, 360, 361, 358, 255, + 331, 330, 333, 330, 332, 332, 255, 362, + 363, 359, 255, 364, 255, 365, 255, 366, + 255, 367, 255, 368, 255, 369, 370, 368, + 255, 371, 372, 373, 370, 374, 374, 255, + 372, 372, 372, 375, 375, 255, 376, 376, + 376, 376, 255, 378, 379, 376, 377, 376, + 376, 376, 255, 381, 373, 380, 255, 373, + 383, 373, 373, 384, 372, 373, 385, 382, + 374, 374, 255, 383, 372, 373, 385, 382, + 374, 374, 255, 386, 386, 386, 386, 255, + 387, 387, 387, 388, 389, 386, 386, 386, + 386, 255, 390, 390, 390, 372, 373, 255, + 392, 391, 393, 394, 391, 255, 392, 393, + 394, 391, 255, 395, 255, 396, 255, 397, + 255, 398, 255, 399, 255, 400, 400, 400, + 255, 400, 400, 400, 401, 401, 255, 402, + 402, 402, 402, 255, 403, 402, 402, 402, + 402, 255, 404, 255, 405, 405, 255, 406, + 406, 406, 406, 255, 407, 406, 406, 406, + 406, 255, 409, 394, 408, 255, 360, 358, + 361, 358, 255, 410, 255, 411, 255, 412, + 413, 411, 413, 413, 413, 255, 415, 416, + 414, 415, 416, 417, 414, 419, 420, 421, + 423, 418, 422, 422, 255, 424, 357, 424, + 424, 358, 359, 356, 425, 425, 255, 426, + 426, 426, 426, 255, 428, 429, 426, 430, + 427, 426, 426, 426, 255, 334, 255, 431, + 255, 432, 255, 433, 255, 434, 255, 435, + 255, 436, 255, 437, 255, 438, 255, 439, + 255, 440, 255, 441, 255, 442, 443, 441, + 255, 444, 443, 445, 445, 255, 446, 446, + 446, 446, 255, 447, 446, 446, 446, 446, + 255, 448, 255, 449, 255, 450, 255, 451, + 255, 452, 255, 453, 454, 452, 255, 455, + 255, 456, 255, 457, 255, 458, 255, 459, + 255, 460, 255, 461, 255, 462, 255, 463, + 464, 462, 255, 467, 468, 469, 470, 471, + 472, 466, 465, 467, 466, 473, 1, 5, + 474, 475, 474, 476, 474, 477, 474, 478, + 474, 481, 482, 484, 485, 486, 480, 483, + 483, 479, 481, 480, 487, 489, 69, 488, + 72, 72, 72, 72, 488, 72, 490, 72, + 72, 72, 488, 72, 491, 72, 72, 72, + 488, 98, 98, 98, 99, 492, 493, 495, + 494, 498, 499, 501, 497, 500, 500, 496, + 498, 497, 502, 121, 125, 503, 127, 127, + 127, 127, 127, 127, 127, 127, 503, 130, + 130, 130, 131, 504, 505, 507, 506, 510, + 511, 512, 513, 514, 515, 516, 509, 508, + 510, 509, 517, 141, 145, 518, 519, 518, + 520, 518, 521, 518, 522, 518, 524, 523, + 527, 528, 530, 526, 529, 529, 525, 527, + 526, 531, 164, 168, 532, 172, 172, 172, + 172, 532, 534, 533, 537, 538, 539, 540, + 541, 542, 543, 536, 535, 537, 536, 544, + 546, 189, 545, 547, 545, 548, 545, 549, + 545, 550, 545, 219, 219, 219, 220, 551, + 552, 554, 553, 557, 558, 560, 556, 559, + 559, 555, 557, 556, 561, 242, 246, 562, + 250, 250, 250, 250, 562, 564, 563, 567, + 568, 569, 570, 571, 572, 573, 574, 575, + 576, 566, 565, 567, 566, 577, 579, 267, + 578, 580, 578, 581, 578, 582, 578, 584, + 583, 585, 578, 587, 586, 588, 578, 591, + 590, 589, 592, 578, 593, 578, 595, 594, + 0 }; static const short _eo_tokenizer_trans_targs[] = { - 285, 0, 0, 1, 285, 2, 285, 4, + 309, 0, 0, 1, 309, 2, 309, 4, 5, 6, 7, 8, 9, 10, 10, 11, - 12, 13, 14, 13, 15, 285, 13, 13, - 285, 14, 15, 16, 17, 13, 13, 285, + 12, 13, 14, 13, 15, 309, 13, 13, + 309, 14, 15, 16, 17, 13, 13, 309, 18, 19, 19, 16, 20, 19, 19, 20, 20, 22, 23, 24, 10, 26, 27, 28, 29, 30, 31, 32, 10, 34, 35, 36, - 10, 292, 38, 38, 39, 40, 292, 40, - 41, 41, 41, 42, 292, 43, 292, 45, - 44, 46, 47, 48, 47, 48, 48, 292, - 50, 51, 52, 53, 54, 55, 56, 292, - 58, 59, 60, 61, 62, 63, 64, 298, - 292, 65, 66, 67, 68, 68, 69, 69, - 69, 70, 299, 301, 71, 71, 72, 301, - 73, 301, 74, 305, 301, 75, 76, 77, - 78, 78, 79, 79, 79, 80, 306, 308, - 81, 81, 82, 308, 83, 308, 85, 85, - 308, 87, 88, 88, 308, 90, 90, 308, - 92, 93, 94, 95, 95, 308, 316, 96, - 96, 97, 316, 98, 316, 100, 100, 99, - 316, 100, 100, 316, 321, 102, 102, 103, - 104, 321, 104, 105, 105, 105, 106, 321, - 107, 321, 109, 110, 111, 321, 113, 114, - 115, 116, 117, 118, 119, 321, 121, 122, - 123, 124, 124, 321, 126, 127, 128, 129, - 130, 131, 132, 328, 321, 133, 134, 135, - 136, 136, 137, 137, 137, 138, 329, 331, - 139, 139, 140, 331, 141, 331, 143, 143, - 142, 331, 143, 143, 331, 336, 145, 145, - 146, 147, 336, 147, 148, 148, 148, 149, - 336, 150, 336, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 161, 336, 163, - 164, 165, 166, 167, 168, 169, 170, 171, - 171, 336, 173, 174, 175, 176, 176, 177, - 177, 178, 342, 179, 180, 180, 181, 180, - 180, 181, 182, 183, 184, 184, 185, 185, - 185, 186, 187, 177, 177, 178, 342, 189, - 190, 191, 192, 193, 194, 195, 196, 196, - 197, 197, 198, 344, 199, 254, 200, 200, - 197, 201, 200, 200, 201, 201, 202, 203, - 204, 205, 206, 207, 208, 251, 208, 209, - 252, 211, 208, 208, 209, 211, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 217, - 218, 218, 219, 223, 225, 220, 221, 222, - 222, 223, 222, 222, 224, 224, 245, 228, - 226, 227, 219, 223, 227, 229, 229, 230, - 244, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 243, 243, - 246, 247, 247, 248, 248, 248, 249, 250, - 224, 224, 219, 223, 225, 228, 251, 252, - 253, 208, 208, 209, 211, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, - 266, 267, 267, 268, 269, 346, 271, 272, - 273, 274, 275, 275, 336, 277, 278, 279, - 280, 281, 282, 283, 284, 284, 336, 285, - 286, 286, 287, 288, 289, 290, 291, 285, - 285, 3, 21, 25, 33, 292, 293, 293, - 294, 295, 296, 297, 300, 292, 292, 37, - 49, 57, 292, 292, 292, 292, 301, 302, - 302, 303, 304, 307, 301, 301, 301, 301, - 301, 301, 308, 309, 309, 310, 311, 312, - 313, 314, 315, 308, 308, 84, 86, 89, - 91, 308, 308, 316, 317, 317, 318, 319, - 320, 316, 316, 316, 316, 321, 322, 322, - 323, 324, 325, 326, 327, 330, 321, 321, - 101, 108, 112, 120, 125, 321, 321, 321, - 321, 331, 332, 332, 333, 334, 335, 331, - 331, 331, 331, 336, 337, 337, 338, 339, - 340, 341, 343, 345, 347, 348, 349, 336, - 336, 144, 151, 162, 172, 336, 336, 188, - 336, 336, 255, 336, 346, 346, 270, 276, - 336, 336 + 10, 316, 38, 38, 39, 40, 316, 40, + 41, 41, 41, 42, 316, 43, 316, 45, + 44, 46, 47, 48, 47, 48, 48, 316, + 50, 51, 52, 53, 54, 55, 56, 316, + 58, 59, 60, 61, 62, 63, 64, 322, + 71, 316, 65, 66, 67, 68, 68, 69, + 69, 69, 70, 323, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 322, + 325, 83, 83, 84, 325, 85, 325, 86, + 329, 325, 87, 88, 89, 90, 90, 91, + 91, 91, 92, 330, 332, 93, 93, 94, + 332, 95, 332, 97, 97, 332, 99, 100, + 100, 332, 102, 102, 332, 104, 105, 106, + 107, 107, 332, 340, 108, 108, 109, 340, + 110, 340, 112, 112, 111, 340, 112, 112, + 340, 345, 114, 114, 115, 116, 345, 116, + 117, 117, 117, 118, 345, 119, 345, 121, + 122, 123, 345, 125, 126, 127, 128, 129, + 130, 131, 345, 133, 134, 135, 136, 136, + 345, 138, 139, 140, 141, 142, 143, 144, + 352, 151, 345, 145, 146, 147, 148, 148, + 149, 149, 149, 150, 353, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, + 352, 355, 163, 163, 164, 355, 165, 355, + 167, 167, 166, 355, 167, 167, 355, 360, + 169, 169, 170, 171, 360, 171, 172, 172, + 172, 173, 360, 174, 360, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 185, + 360, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 195, 360, 197, 198, 199, 200, + 200, 201, 201, 202, 366, 203, 204, 204, + 205, 204, 204, 205, 206, 207, 208, 208, + 209, 209, 209, 210, 211, 201, 201, 202, + 366, 213, 214, 215, 216, 217, 218, 219, + 220, 220, 221, 221, 222, 368, 223, 278, + 224, 224, 221, 225, 224, 224, 225, 225, + 226, 227, 228, 229, 230, 231, 232, 275, + 232, 233, 276, 235, 232, 232, 233, 235, + 233, 234, 235, 236, 237, 238, 239, 240, + 241, 241, 242, 242, 243, 247, 249, 244, + 245, 246, 246, 247, 246, 246, 248, 248, + 269, 252, 250, 251, 243, 247, 251, 253, + 253, 254, 268, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, + 267, 267, 270, 271, 271, 272, 272, 272, + 273, 274, 248, 248, 243, 247, 249, 252, + 275, 276, 277, 232, 232, 233, 235, 280, + 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 290, 291, 291, 292, 293, 370, + 295, 296, 297, 298, 299, 299, 360, 301, + 302, 303, 304, 305, 306, 307, 308, 308, + 360, 309, 310, 310, 311, 312, 313, 314, + 315, 309, 309, 3, 21, 25, 33, 316, + 317, 317, 318, 319, 320, 321, 324, 316, + 316, 37, 49, 57, 316, 316, 316, 316, + 325, 326, 326, 327, 328, 331, 325, 325, + 325, 325, 325, 325, 332, 333, 333, 334, + 335, 336, 337, 338, 339, 332, 332, 96, + 98, 101, 103, 332, 332, 340, 341, 341, + 342, 343, 344, 340, 340, 340, 340, 345, + 346, 346, 347, 348, 349, 350, 351, 354, + 345, 345, 113, 120, 124, 132, 137, 345, + 345, 345, 345, 355, 356, 356, 357, 358, + 359, 355, 355, 355, 355, 360, 361, 361, + 362, 363, 364, 365, 367, 369, 371, 372, + 373, 360, 360, 168, 175, 186, 196, 360, + 360, 212, 360, 360, 279, 360, 370, 370, + 294, 300, 360, 360 }; static const short _eo_tokenizer_trans_actions[] = { - 211, 0, 1, 0, 201, 0, 234, 0, - 0, 0, 0, 0, 0, 39, 0, 3, - 0, 45, 45, 312, 45, 315, 0, 1, - 203, 0, 0, 0, 3, 13, 276, 279, - 0, 11, 273, 11, 11, 0, 1, 0, - 1, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 0, 43, 0, 0, 0, - 41, 71, 0, 1, 0, 0, 55, 1, - 3, 0, 1, 0, 53, 0, 213, 0, - 0, 0, 5, 243, 0, 3, 0, 246, - 0, 0, 0, 0, 0, 3, 0, 240, - 0, 0, 0, 0, 0, 3, 0, 324, - 69, 0, 0, 0, 0, 1, 3, 0, - 1, 0, 0, 89, 0, 1, 0, 73, - 0, 216, 0, 327, 87, 0, 0, 0, - 0, 1, 3, 0, 1, 0, 0, 111, - 0, 1, 0, 91, 0, 219, 0, 1, - 93, 0, 0, 1, 97, 0, 1, 95, - 0, 0, 0, 0, 1, 99, 127, 0, - 1, 0, 113, 0, 222, 7, 252, 0, - 255, 0, 1, 115, 149, 0, 1, 0, - 0, 131, 1, 3, 0, 1, 0, 129, - 0, 225, 0, 0, 0, 264, 0, 0, - 0, 0, 0, 3, 0, 261, 0, 0, - 0, 0, 1, 133, 0, 0, 0, 0, - 0, 3, 0, 330, 147, 0, 0, 0, - 0, 1, 3, 0, 1, 0, 0, 165, - 0, 1, 0, 151, 0, 228, 9, 267, - 0, 270, 0, 1, 153, 199, 0, 1, - 0, 0, 169, 1, 3, 0, 1, 0, - 167, 0, 231, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 175, 0, + 215, 0, 1, 0, 205, 0, 238, 0, + 0, 0, 0, 0, 0, 43, 0, 3, + 0, 49, 49, 316, 49, 319, 0, 1, + 207, 0, 0, 0, 3, 17, 280, 283, + 0, 15, 277, 15, 15, 0, 1, 0, + 1, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 47, 0, 0, 0, + 45, 75, 0, 1, 0, 0, 59, 1, + 3, 0, 1, 0, 57, 0, 217, 0, + 0, 0, 7, 247, 0, 3, 0, 250, + 0, 0, 0, 0, 0, 3, 0, 244, + 0, 0, 0, 0, 0, 3, 0, 328, + 5, 73, 0, 0, 0, 0, 1, 3, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 331, + 93, 0, 1, 0, 77, 0, 220, 0, + 334, 91, 0, 0, 0, 0, 1, 3, + 0, 1, 0, 0, 115, 0, 1, 0, + 95, 0, 223, 0, 1, 97, 0, 0, + 1, 101, 0, 1, 99, 0, 0, 0, + 0, 1, 103, 131, 0, 1, 0, 117, + 0, 226, 9, 256, 0, 259, 0, 1, + 119, 153, 0, 1, 0, 0, 135, 1, + 3, 0, 1, 0, 133, 0, 229, 0, + 0, 0, 268, 0, 0, 0, 0, 0, + 3, 0, 265, 0, 0, 0, 0, 1, + 137, 0, 0, 0, 0, 0, 3, 0, + 337, 11, 151, 0, 0, 0, 0, 1, + 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 177, 0, 0, 0, 0, 1, 0, - 1, 3, 0, 0, 15, 282, 15, 0, - 1, 0, 0, 0, 0, 1, 3, 0, - 1, 0, 0, 17, 285, 288, 17, 0, + 340, 169, 0, 1, 0, 155, 0, 232, + 13, 271, 0, 274, 0, 1, 157, 203, + 0, 1, 0, 0, 173, 1, 3, 0, + 1, 0, 171, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 3, 0, 0, 0, 21, 291, - 21, 21, 0, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 23, 23, 294, 23, - 297, 23, 0, 1, 0, 0, 1, 0, - 1, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 0, 0, 3, 3, 0, 29, - 303, 29, 0, 1, 0, 1, 0, 0, - 0, 27, 27, 27, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 0, 33, 0, 3, 0, 35, 0, 1, - 0, 0, 1, 3, 0, 1, 0, 0, - 31, 306, 31, 31, 309, 31, 0, 3, - 0, 25, 300, 25, 25, 0, 0, 0, + 179, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 181, 0, 0, 0, 0, + 1, 0, 1, 3, 0, 0, 19, 286, + 19, 0, 1, 0, 0, 0, 0, 1, + 3, 0, 1, 0, 0, 21, 289, 292, + 21, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 3, 0, 0, 0, + 25, 295, 25, 25, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 27, 27, + 298, 27, 301, 27, 0, 1, 0, 0, + 1, 0, 1, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 0, 3, 3, + 0, 33, 307, 33, 0, 1, 0, 1, + 0, 0, 0, 31, 31, 31, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 37, 0, 3, 0, 39, + 0, 1, 0, 0, 1, 3, 0, 1, + 0, 0, 35, 310, 35, 35, 313, 35, + 0, 3, 0, 29, 304, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 3, 0, 19, 0, 0, - 0, 0, 0, 1, 181, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 179, 205, - 0, 1, 318, 51, 51, 51, 51, 207, - 209, 0, 0, 0, 0, 59, 0, 1, - 318, 321, 321, 321, 0, 61, 67, 0, - 0, 0, 63, 237, 65, 57, 77, 0, - 1, 318, 321, 0, 79, 85, 81, 249, - 83, 75, 103, 0, 1, 318, 51, 51, - 51, 51, 0, 105, 109, 0, 0, 0, - 0, 107, 101, 119, 0, 1, 318, 321, - 0, 121, 125, 123, 117, 137, 0, 1, - 318, 51, 51, 51, 51, 0, 139, 145, - 0, 0, 0, 0, 0, 141, 258, 143, - 135, 157, 0, 1, 318, 321, 0, 159, - 163, 161, 155, 185, 0, 1, 318, 51, - 51, 51, 51, 51, 51, 51, 0, 187, - 197, 0, 0, 0, 0, 193, 173, 0, - 191, 171, 0, 189, 0, 1, 0, 0, - 195, 183 + 0, 0, 1, 0, 1, 3, 0, 23, + 0, 0, 0, 0, 0, 1, 185, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 183, 209, 0, 1, 322, 55, 55, 55, + 55, 211, 213, 0, 0, 0, 0, 63, + 0, 1, 322, 325, 325, 325, 0, 65, + 71, 0, 0, 0, 67, 241, 69, 61, + 81, 0, 1, 322, 325, 0, 83, 89, + 85, 253, 87, 79, 107, 0, 1, 322, + 55, 55, 55, 55, 0, 109, 113, 0, + 0, 0, 0, 111, 105, 123, 0, 1, + 322, 325, 0, 125, 129, 127, 121, 141, + 0, 1, 322, 55, 55, 55, 55, 0, + 143, 149, 0, 0, 0, 0, 0, 145, + 262, 147, 139, 161, 0, 1, 322, 325, + 0, 163, 167, 165, 159, 189, 0, 1, + 322, 55, 55, 55, 55, 55, 55, 55, + 0, 191, 201, 0, 0, 0, 0, 197, + 177, 0, 195, 175, 0, 193, 0, 1, + 0, 0, 199, 187 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1034,14 +1064,17 @@ static const short _eo_tokenizer_to_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, + 0, 0, 0, 0, 51, 0, 0, 0, + 0, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 51, 0, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -1081,14 +1114,17 @@ static const short _eo_tokenizer_from_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 0, 0, + 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -1101,59 +1137,62 @@ static const short _eo_tokenizer_eof_trans[] = { 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 97, 97, 97, 97, 97, 97, 108, - 108, 108, 108, 117, 117, 117, 117, 117, - 117, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 151, 151, 151, 151, 151, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 205, 205, 205, - 205, 205, 205, 216, 216, 216, 216, 216, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 0, 448, 449, - 449, 449, 449, 449, 0, 462, 463, 463, - 463, 463, 467, 468, 469, 0, 477, 478, - 478, 479, 480, 481, 0, 492, 493, 493, - 493, 493, 493, 498, 0, 506, 507, 507, - 508, 0, 519, 520, 520, 520, 520, 520, - 526, 527, 528, 0, 536, 537, 537, 538, - 0, 552, 553, 553, 553, 553, 558, 553, - 561, 553, 564, 553, 553, 569 + 58, 98, 98, 98, 98, 98, 98, 58, + 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 121, 121, 121, 121, 130, + 130, 130, 130, 130, 130, 141, 141, 141, + 141, 141, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 141, 164, 164, 164, 164, + 164, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, + 178, 219, 219, 219, 219, 219, 219, 178, + 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 242, 242, 242, 242, 242, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 0, 474, 475, + 475, 475, 475, 475, 0, 488, 489, 489, + 489, 489, 493, 494, 495, 0, 503, 504, + 504, 505, 506, 507, 0, 518, 519, 519, + 519, 519, 519, 524, 0, 532, 533, 533, + 534, 0, 545, 546, 546, 546, 546, 546, + 552, 553, 554, 0, 562, 563, 563, 564, + 0, 578, 579, 579, 579, 579, 584, 579, + 587, 579, 590, 579, 579, 595 }; -static const int eo_tokenizer_start = 285; -static const int eo_tokenizer_first_final = 285; +static const int eo_tokenizer_start = 309; +static const int eo_tokenizer_first_final = 309; static const int eo_tokenizer_error = -1; -static const int eo_tokenizer_en_tokenize_accessor = 292; -static const int eo_tokenizer_en_tokenize_params = 301; -static const int eo_tokenizer_en_tokenize_property = 308; -static const int eo_tokenizer_en_tokenize_properties = 316; -static const int eo_tokenizer_en_tokenize_method = 321; -static const int eo_tokenizer_en_tokenize_methods = 331; -static const int eo_tokenizer_en_tokenize_class = 336; -static const int eo_tokenizer_en_main = 285; +static const int eo_tokenizer_en_tokenize_accessor = 316; +static const int eo_tokenizer_en_tokenize_params = 325; +static const int eo_tokenizer_en_tokenize_property = 332; +static const int eo_tokenizer_en_tokenize_properties = 340; +static const int eo_tokenizer_en_tokenize_method = 345; +static const int eo_tokenizer_en_tokenize_methods = 355; +static const int eo_tokenizer_en_tokenize_class = 360; +static const int eo_tokenizer_en_main = 309; -#line 879 "eo_lexer.rl" +#line 894 "eo_lexer.rl" Eina_Bool @@ -1163,6 +1202,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->source = eina_stringshare_add(source); FILE *stream; + Eina_Bool ret = EINA_TRUE; int done = 0; int have = 0; @@ -1176,7 +1216,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1180 "eo_lexer.c" +#line 1220 "eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1184,7 +1224,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 901 "eo_lexer.rl" +#line 917 "eo_lexer.rl" while (!done) { @@ -1211,7 +1251,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1215 "eo_lexer.c" +#line 1255 "eo_lexer.c" { int _klen; unsigned int _trans; @@ -1226,11 +1266,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 35: + case 37: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1234 "eo_lexer.c" +#line 1274 "eo_lexer.c" } } @@ -1338,17 +1378,24 @@ _eof_trans: case 5: #line 373 "eo_lexer.rl" { - toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); + toknz->tmp.accessor->ret.warn_unused = EINA_TRUE; + INF(" WARN_UNUSED"); } break; case 6: -#line 385 "eo_lexer.rl" +#line 378 "eo_lexer.rl" + { + toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); + } + break; + case 7: +#line 390 "eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; - case 7: -#line 389 "eo_lexer.rl" + case 8: +#line 394 "eo_lexer.rl" { toknz->tmp.accessor_param->attrs = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.accessor->params = @@ -1356,8 +1403,8 @@ _eof_trans: toknz->tmp.accessor_param = NULL; } break; - case 8: -#line 416 "eo_lexer.rl" + case 9: +#line 422 "eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -1366,8 +1413,8 @@ _eof_trans: toknz->tmp.param = NULL; } break; - case 9: -#line 424 "eo_lexer.rl" + case 10: +#line 430 "eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -1377,16 +1424,16 @@ _eof_trans: INF(" %s : %s", toknz->tmp.param->name, toknz->tmp.param->type); } break; - case 10: -#line 522 "eo_lexer.rl" + case 11: +#line 528 "eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); toknz->tmp.prop = _eo_tokenizer_property_get(toknz, ( toknz->p)); } break; - case 11: -#line 560 "eo_lexer.rl" + case 12: +#line 566 "eo_lexer.rl" { if (toknz->tmp.meth->ret.type != NULL) ABORT(toknz, "method '%s' has already a return type", toknz->tmp.meth->name); @@ -1394,8 +1441,8 @@ _eof_trans: INF(" %s", toknz->tmp.meth->ret.type); } break; - case 12: -#line 567 "eo_lexer.rl" + case 13: +#line 573 "eo_lexer.rl" { if (toknz->tmp.meth->ret.comment != NULL) ABORT(toknz, "method '%s' return type has already a comment", toknz->tmp.meth->name); @@ -1403,50 +1450,57 @@ _eof_trans: INF(" %s", toknz->tmp.meth->ret.comment); } break; - case 13: -#line 574 "eo_lexer.rl" + case 14: +#line 580 "eo_lexer.rl" + { + toknz->tmp.meth->ret.warn_unused = EINA_TRUE; + INF(" WARN_UNUSED"); + } + break; + case 15: +#line 585 "eo_lexer.rl" { toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 14: -#line 578 "eo_lexer.rl" + case 16: +#line 589 "eo_lexer.rl" { toknz->tmp.meth->obj_const = EINA_TRUE; INF(" obj const"); } break; - case 15: -#line 634 "eo_lexer.rl" + case 17: +#line 649 "eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); toknz->tmp.meth = _eo_tokenizer_method_get(toknz, ( toknz->p)); } break; - case 16: -#line 665 "eo_lexer.rl" + case 18: +#line 680 "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 670 "eo_lexer.rl" + case 19: +#line 685 "eo_lexer.rl" { toknz->tmp.kls->inherits = toknz->tmp.str_items; toknz->tmp.str_items = NULL; } break; - case 18: -#line 716 "eo_lexer.rl" + case 20: +#line 731 "eo_lexer.rl" { toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); toknz->tmp.kls->events = eina_list_append(toknz->tmp.kls->events, toknz->tmp.event); } break; - case 19: -#line 721 "eo_lexer.rl" + case 21: +#line 736 "eo_lexer.rl" { if (toknz->tmp.event->comment != NULL) ABORT(toknz, "event %s has already a comment", toknz->tmp.event->name); @@ -1454,39 +1508,39 @@ _eof_trans: toknz->tmp.event = NULL; } break; - case 20: -#line 728 "eo_lexer.rl" + case 22: +#line 743 "eo_lexer.rl" { if (toknz->tmp.kls->legacy_prefix != NULL) ABORT(toknz, "A legacy prefix has already been given"); toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 21: -#line 740 "eo_lexer.rl" + case 23: +#line 755 "eo_lexer.rl" { toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 22: -#line 745 "eo_lexer.rl" + case 24: +#line 760 "eo_lexer.rl" { if (toknz->tmp.impl->legacy) ABORT(toknz, "Legacy section already allocated for implement item"); toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 23: -#line 751 "eo_lexer.rl" + case 25: +#line 766 "eo_lexer.rl" { if (!toknz->tmp.impl->legacy) ABORT(toknz, "No legacy section"); toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 24: -#line 757 "eo_lexer.rl" + case 26: +#line 772 "eo_lexer.rl" { toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); toknz->tmp.impl->legacy->params = eina_list_append( @@ -1495,60 +1549,60 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 25: -#line 765 "eo_lexer.rl" + case 27: +#line 780 "eo_lexer.rl" { toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 26: -#line 769 "eo_lexer.rl" + case 28: +#line 784 "eo_lexer.rl" { toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 27: -#line 773 "eo_lexer.rl" + case 29: +#line 788 "eo_lexer.rl" { if (!toknz->tmp.impl->legacy) ABORT(toknz, "No legacy section"); toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 779 "eo_lexer.rl" + case 30: +#line 794 "eo_lexer.rl" { if (!toknz->tmp.impl->legacy) ABORT(toknz, "No legacy section"); toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 29: -#line 845 "eo_lexer.rl" + case 31: +#line 860 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 30: -#line 848 "eo_lexer.rl" + case 32: +#line 863 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 31: -#line 851 "eo_lexer.rl" + case 33: +#line 866 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 32: -#line 854 "eo_lexer.rl" + case 34: +#line 869 "eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 33: -#line 858 "eo_lexer.rl" + case 35: +#line 873 "eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1556,11 +1610,11 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 36: + case 38: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 37: + case 39: #line 352 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.accessor->comment != NULL) @@ -1569,32 +1623,32 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 38: + case 40: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} - break; - case 39: -#line 408 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 40: -#line 409 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} break; case 41: -#line 377 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); - toknz->tmp.accessor = NULL; - toknz->current_nesting--; - { toknz->cs = 308; goto _again;} - }} +#line 414 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} break; case 42: +#line 415 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 43: +#line 382 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); + toknz->tmp.accessor = NULL; + toknz->current_nesting--; + { toknz->cs = 332; goto _again;} + }} + break; + case 44: #line 300 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1612,51 +1666,28 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} - break; - case 43: -#line 404 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 44: -#line 407 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 45: -#line 377 "eo_lexer.rl" +#line 410 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 46: +#line 413 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 47: +#line 382 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 308; goto _again;} + { toknz->cs = 332; goto _again;} }} - break; - case 46: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 47: -#line 407 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 48: #line 300 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1674,70 +1705,52 @@ _eof_trans: }} break; case 49: +#line 413 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} + break; + case 50: +#line 300 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 51: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 50: -#line 433 "eo_lexer.rl" + case 52: +#line 439 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 308; goto _again;} + { toknz->cs = 332; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 321; goto _again;} + { toknz->cs = 345; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} - break; - case 51: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 52: -#line 449 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 53: -#line 451 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 54: -#line 433 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - INF(" }"); - toknz->tmp.param = NULL; - toknz->current_nesting--; - if (toknz->tmp.prop) - { toknz->cs = 308; goto _again;} - else if (toknz->tmp.meth) - { toknz->cs = 321; goto _again;} - else - ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); - }} - break; - case 55: #line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1753,14 +1766,32 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} + break; + case 54: +#line 455 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 55: +#line 457 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 451 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} +#line 439 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->tmp.param = NULL; + toknz->current_nesting--; + if (toknz->tmp.prop) + { toknz->cs = 332; goto _again;} + else if (toknz->tmp.meth) + { toknz->cs = 345; goto _again;} + else + ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); + }} break; case 57: #line 300 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1778,87 +1809,110 @@ _eof_trans: }} break; case 58: +#line 457 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} + break; + case 59: +#line 300 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 60: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 59: -#line 458 "eo_lexer.rl" + case 61: +#line 464 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 292; goto _again;} + { toknz->cs = 316; goto _again;} }} break; - case 60: -#line 465 "eo_lexer.rl" + case 62: +#line 471 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 292; goto _again;} + { toknz->cs = 316; goto _again;} }} break; - case 61: -#line 472 "eo_lexer.rl" + case 63: +#line 478 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 301; goto _again;} + { toknz->cs = 325; goto _again;} }} break; - case 62: -#line 479 "eo_lexer.rl" + case 64: +#line 485 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 301; goto _again;} - }} - break; - case 63: -#line 486 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (eina_list_count(toknz->tmp.prop->values) == 0) - WRN("property '%s' has no values.", toknz->tmp.prop->name); - if (eina_list_count(toknz->tmp.prop->accessors) == 0) - WRN("property '%s' has no accessors.", toknz->tmp.prop->name); - INF(" }"); - toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); - toknz->tmp.prop = NULL; - toknz->current_nesting--; - { toknz->cs = 316; goto _again;} - }} - break; - case 64: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 325; goto _again;} }} break; case 65: -#line 504 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} +#line 492 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (eina_list_count(toknz->tmp.prop->values) == 0) + WRN("property '%s' has no values.", toknz->tmp.prop->name); + if (eina_list_count(toknz->tmp.prop->accessors) == 0) + WRN("property '%s' has no accessors.", toknz->tmp.prop->name); + INF(" }"); + toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); + toknz->tmp.prop = NULL; + toknz->current_nesting--; + { toknz->cs = 340; goto _again;} + }} break; case 66: -#line 486 "eo_lexer.rl" +#line 300 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 67: +#line 510 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 68: +#line 492 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (eina_list_count(toknz->tmp.prop->values) == 0) WRN("property '%s' has no values.", toknz->tmp.prop->name); @@ -1868,10 +1922,10 @@ _eof_trans: toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); toknz->tmp.prop = NULL; toknz->current_nesting--; - { toknz->cs = 316; goto _again;} + { toknz->cs = 340; goto _again;} }} break; - case 67: + case 69: #line 300 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1890,7 +1944,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 68: + case 70: #line 300 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -1909,61 +1963,61 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 69: + case 71: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 70: -#line 516 "eo_lexer.rl" + case 72: +#line 522 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 308; goto _again;} - }} - break; - case 71: -#line 528 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_nesting--; - { toknz->cs = 336; goto _again;} - }} - break; - case 72: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 332; goto _again;} }} break; case 73: -#line 537 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 74: -#line 528 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 534 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 336; goto _again;} + { toknz->cs = 360; goto _again;} + }} + break; + case 74: +#line 300 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; case 75: +#line 543 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 76: +#line 534 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 360; goto _again;} + }} + break; + case 77: #line 300 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1982,7 +2036,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 76: + case 78: #line 300 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2001,8 +2055,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 77: -#line 546 "eo_lexer.rl" + case 79: +#line 552 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.meth->comment != NULL) ABORT(toknz, "method has already a comment"); @@ -2010,58 +2064,58 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 78: + case 80: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 79: -#line 553 "eo_lexer.rl" + case 81: +#line 559 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 301; goto _again;} + { toknz->cs = 325; goto _again;} }} - break; - case 80: -#line 620 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 81: -#line 621 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} break; case 82: -#line 583 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - Eina_List **l; - if (eina_list_count(toknz->tmp.meth->params) == 0) - WRN("method '%s' has no parameters.", toknz->tmp.meth->name); - INF(" }"); - switch (toknz->current_methods_type) { - case METH_CONSTRUCTOR: - l = &toknz->tmp.kls->constructors; - break; - case METH_DESTRUCTOR: - l = &toknz->tmp.kls->destructors; - break; - case METH_REGULAR: - l = &toknz->tmp.kls->methods; - break; - default: - ABORT(toknz, "unknown method type %d", toknz->current_methods_type); - } - toknz->tmp.meth->type = toknz->current_methods_type; - *l = eina_list_append(*l, toknz->tmp.meth); - toknz->tmp.meth = NULL; - toknz->current_nesting--; - { toknz->cs = 331; goto _again;} - }} +#line 635 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} break; case 83: +#line 636 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 84: +#line 594 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + Eina_List **l; + if (eina_list_count(toknz->tmp.meth->params) == 0) + WRN("method '%s' has no parameters.", toknz->tmp.meth->name); + INF(" }"); + switch (toknz->current_methods_type) { + case METH_CONSTRUCTOR: + l = &toknz->tmp.kls->constructors; + break; + case METH_DESTRUCTOR: + l = &toknz->tmp.kls->destructors; + break; + case METH_REGULAR: + l = &toknz->tmp.kls->methods; + break; + default: + ABORT(toknz, "unknown method type %d", toknz->current_methods_type); + } + toknz->tmp.meth->type = toknz->current_methods_type; + *l = eina_list_append(*l, toknz->tmp.meth); + toknz->tmp.meth = NULL; + toknz->current_nesting--; + { toknz->cs = 355; goto _again;} + }} + break; + case 85: #line 300 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2079,17 +2133,17 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} - break; - case 84: -#line 615 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 85: -#line 619 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 86: -#line 583 "eo_lexer.rl" +#line 630 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 87: +#line 634 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 88: +#line 594 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l; if (eina_list_count(toknz->tmp.meth->params) == 0) @@ -2112,35 +2166,12 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 331; goto _again;} + { toknz->cs = 355; goto _again;} }} - break; - case 87: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 88: -#line 619 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 89: #line 300 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2158,81 +2189,10 @@ _eof_trans: }} break; case 90: -#line 291 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} +#line 634 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} break; case 91: -#line 628 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" %s {", toknz->tmp.meth->name); - toknz->current_nesting++; - { toknz->cs = 321; goto _again;} - }} - break; - case 92: -#line 640 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 336; goto _again;} - }} - break; - case 93: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 94: -#line 650 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 95: -#line 640 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 336; goto _again;} - }} - break; - case 96: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 97: #line 300 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2249,126 +2209,220 @@ _eof_trans: toknz->current_nesting, toknz->current_line, *( toknz->p), buf); toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 92: +#line 291 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 93: +#line 643 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" %s {", toknz->tmp.meth->name); + toknz->current_nesting++; + { toknz->cs = 345; goto _again;} + }} + break; + case 94: +#line 655 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 360; goto _again;} + }} + break; + case 95: +#line 300 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 96: +#line 665 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 97: +#line 655 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 360; goto _again;} }} break; case 98: -#line 659 "eo_lexer.rl" +#line 300 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 99: +#line 300 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 100: +#line 674 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.kls->comment != NULL) ABORT(toknz, "class %s has already a comment", toknz->tmp.kls->name); toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 99: + case 101: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); - }} - break; - case 100: -#line 675 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - }} - break; - case 101: -#line 678 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ }} break; case 102: -#line 681 "eo_lexer.rl" +#line 690 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + }} + break; + case 103: +#line 693 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + }} + break; + case 104: +#line 696 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 331; goto _again;} + { toknz->cs = 355; goto _again;} }} break; - case 103: -#line 688 "eo_lexer.rl" + case 105: +#line 703 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 331; goto _again;} + { toknz->cs = 355; goto _again;} }} break; - case 104: -#line 695 "eo_lexer.rl" + case 106: +#line 710 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 316; goto _again;} + { toknz->cs = 340; goto _again;} }} break; - case 105: -#line 701 "eo_lexer.rl" + case 107: +#line 716 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 331; goto _again;} - }} - break; - case 106: -#line 708 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF("end class: %s", toknz->tmp.kls->name); - toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); - toknz->tmp.kls = NULL; - toknz->current_nesting--; - { toknz->cs = 285; goto _again;} - }} - break; - case 107: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + { toknz->cs = 355; goto _again;} }} break; case 108: -#line 823 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} +#line 723 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF("end class: %s", toknz->tmp.kls->name); + toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); + toknz->tmp.kls = NULL; + toknz->current_nesting--; + { toknz->cs = 309; goto _again;} + }} break; case 109: -#line 826 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} +#line 300 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} break; case 110: -#line 675 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - }} +#line 838 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} break; case 111: -#line 678 "eo_lexer.rl" +#line 841 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 112: +#line 690 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 112: -#line 708 "eo_lexer.rl" + case 113: +#line 693 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + }} + break; + case 114: +#line 723 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 285; goto _again;} + { toknz->cs = 309; goto _again;} }} break; - case 113: + case 115: #line 300 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2387,7 +2441,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 114: + case 116: #line 300 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2406,47 +2460,24 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 115: + case 117: #line 291 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 116: -#line 839 "eo_lexer.rl" + case 118: +#line 854 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF("begin class: %s", toknz->tmp.kls->name); toknz->current_nesting++; - { toknz->cs = 336; goto _again;} + { toknz->cs = 360; goto _again;} }} - break; - case 117: -#line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 118: -#line 873 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 119: #line 300 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2464,6 +2495,29 @@ _eof_trans: }} break; case 120: +#line 888 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 121: +#line 300 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 122: #line 300 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2482,7 +2536,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2486 "eo_lexer.c" +#line 2540 "eo_lexer.c" } } @@ -2491,11 +2545,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 34: + case 36: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2499 "eo_lexer.c" +#line 2553 "eo_lexer.c" } } @@ -2513,15 +2567,16 @@ _again: _out: {} } -#line 927 "eo_lexer.rl" +#line 943 "eo_lexer.rl" if ( toknz->cs == -#line 2520 "eo_lexer.c" +#line 2574 "eo_lexer.c" -1 -#line 928 "eo_lexer.rl" +#line 944 "eo_lexer.rl" ) { - ERR("wrong termination"); + ERR("%s: wrong termination", source); + ret = EINA_FALSE; break; } @@ -2551,7 +2606,7 @@ _again: fclose(stream); - return EINA_TRUE; + return ret; } Eo_Tokenizer* @@ -2701,7 +2756,7 @@ eo_tokenizer_database_fill(const char *filename) ERR("error accessing file %s : %s", filename, strerror(errno)); return EINA_FALSE; } - eo_tokenizer_walk(toknz, filename); + if (!eo_tokenizer_walk(toknz, filename)) return EINA_FALSE; EINA_LIST_FOREACH(toknz->classes, k, kls) { @@ -2752,9 +2807,15 @@ eo_tokenizer_database_fill(const char *filename) { database_function_type_set(foo_id, (accessor->type == SETTER?SET:GET)); if (accessor->ret.type) - database_function_data_set(foo_id, - (accessor->type == SETTER?EOLIAN_PROP_SET_RETURN_TYPE:EOLIAN_PROP_GET_RETURN_TYPE), - accessor->ret.type); + { + database_function_return_type_set(foo_id, + accessor->type == SETTER?SET:GET, accessor->ret.type); + database_function_data_set(foo_id, + (accessor->type == SETTER?EOLIAN_PROP_SET_RETURN_COMMENT:EOLIAN_PROP_GET_RETURN_COMMENT), + accessor->ret.comment); + database_function_return_flag_set_as_warn_unused(foo_id, + accessor->type == SETTER?SET:GET, accessor->ret.warn_unused); + } database_function_description_set(foo_id, (accessor->type == SETTER?EOLIAN_COMMENT_SET:EOLIAN_COMMENT_GET), accessor->comment); @@ -2787,6 +2848,7 @@ eo_tokenizer_database_fill(const char *filename) database_class_function_add(kls->name, foo_id); database_function_data_set(foo_id, EOLIAN_METHOD_RETURN_TYPE, meth->ret.type); database_function_description_set(foo_id, EOLIAN_RETURN_COMMENT, meth->ret.comment); + database_function_return_flag_set_as_warn_unused(foo_id, METHOD_FUNC, meth->ret.warn_unused); database_function_description_set(foo_id, EOLIAN_COMMENT, meth->comment); database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); database_function_object_set_as_const(foo_id, meth->obj_const); diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index 3b7adb76f8..dd4868f845 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -370,6 +370,11 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) INF(" %s", toknz->tmp.accessor->ret.comment); } + action end_accessor_rettype_unused_flag { + toknz->tmp.accessor->ret.warn_unused = EINA_TRUE; + INF(" WARN_UNUSED"); + } + action end_accessor_legacy { toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, fpc); } @@ -393,8 +398,9 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) toknz->tmp.accessor_param = NULL; } + rettype_flag = "@warn_unused" %end_accessor_rettype_unused_flag; rettype_comment = ws* eo_comment %end_accessor_rettype_comment; - rettype = 'return' ws+ alpha+ >save_fpc (alnum_u | '*' | ws )+ %end_accessor_rettype end_statement rettype_comment?; + rettype = 'return' ws+ alpha+ >save_fpc (alnum_u | '*' | ws )+ %end_accessor_rettype rettype_flag? end_statement rettype_comment?; legacy = 'legacy' ws+ ident %end_accessor_legacy end_statement; @@ -571,6 +577,11 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) INF(" %s", toknz->tmp.meth->ret.comment); } + action end_method_rettype_unused_flag{ + toknz->tmp.meth->ret.warn_unused = EINA_TRUE; + INF(" WARN_UNUSED"); + } + action end_method_legacy { toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, fpc); } @@ -605,10 +616,14 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) fgoto tokenize_methods; } + meth_params = 'params' ignore* begin_def; meth_legacy = 'legacy' ws+ ident %end_method_legacy end_statement; + + meth_rettype_flag = "@warn_unused" %end_method_rettype_unused_flag; meth_rettype_comment = ws* eo_comment %end_method_rettype_comment; - meth_rettype = 'return' ws+ alpha+ >save_fpc (alnum_u | '*' | ws )+ %end_method_rettype end_statement meth_rettype_comment?; + meth_rettype = 'return' ws+ alpha+ >save_fpc (alnum_u | '*' | ws )+ %end_method_rettype meth_rettype_flag? end_statement meth_rettype_comment?; + meth_obj_const = 'const' %end_method_obj_const end_statement; tokenize_method := |* @@ -885,6 +900,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->source = eina_stringshare_add(source); FILE *stream; + Eina_Bool ret = EINA_TRUE; int done = 0; int have = 0; @@ -927,7 +943,8 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) if ( toknz->cs == %%{ write error; }%% ) { - ERR("wrong termination"); + ERR("%s: wrong termination", source); + ret = EINA_FALSE; break; } @@ -957,7 +974,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) fclose(stream); - return EINA_TRUE; + return ret; } Eo_Tokenizer* @@ -1107,7 +1124,7 @@ eo_tokenizer_database_fill(const char *filename) ERR("error accessing file %s : %s", filename, strerror(errno)); return EINA_FALSE; } - eo_tokenizer_walk(toknz, filename); + if (!eo_tokenizer_walk(toknz, filename)) return EINA_FALSE; EINA_LIST_FOREACH(toknz->classes, k, kls) { @@ -1158,9 +1175,15 @@ eo_tokenizer_database_fill(const char *filename) { database_function_type_set(foo_id, (accessor->type == SETTER?SET:GET)); if (accessor->ret.type) - database_function_data_set(foo_id, - (accessor->type == SETTER?EOLIAN_PROP_SET_RETURN_TYPE:EOLIAN_PROP_GET_RETURN_TYPE), - accessor->ret.type); + { + database_function_return_type_set(foo_id, + accessor->type == SETTER?SET:GET, accessor->ret.type); + database_function_data_set(foo_id, + (accessor->type == SETTER?EOLIAN_PROP_SET_RETURN_COMMENT:EOLIAN_PROP_GET_RETURN_COMMENT), + accessor->ret.comment); + database_function_return_flag_set_as_warn_unused(foo_id, + accessor->type == SETTER?SET:GET, accessor->ret.warn_unused); + } database_function_description_set(foo_id, (accessor->type == SETTER?EOLIAN_COMMENT_SET:EOLIAN_COMMENT_GET), accessor->comment); @@ -1193,6 +1216,7 @@ eo_tokenizer_database_fill(const char *filename) database_class_function_add(kls->name, foo_id); database_function_data_set(foo_id, EOLIAN_METHOD_RETURN_TYPE, meth->ret.type); database_function_description_set(foo_id, EOLIAN_RETURN_COMMENT, meth->ret.comment); + database_function_return_flag_set_as_warn_unused(foo_id, METHOD_FUNC, meth->ret.warn_unused); database_function_description_set(foo_id, EOLIAN_COMMENT, meth->comment); database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); database_function_object_set_as_const(foo_id, meth->obj_const); diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 07881efce4..04078c6a74 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -33,6 +33,8 @@ typedef struct Eina_Hash *data; Eina_Bool obj_is_const :1; /* True if the object has to be const. Useful for a few methods. */ Eina_Bool virtual_pure :1; + Eina_Bool get_return_warn_unused :1; /* also used for methods */ + Eina_Bool set_return_warn_unused :1; } _Function_Id; typedef struct @@ -752,7 +754,7 @@ void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_T const char *key = NULL; switch (ftype) { - case SET: key= EOLIAN_PROP_SET_RETURN_TYPE; break; + case SET: key = EOLIAN_PROP_SET_RETURN_TYPE; break; case GET: key = EOLIAN_PROP_GET_RETURN_TYPE; break; case METHOD_FUNC: key = EOLIAN_METHOD_RETURN_TYPE; break; default: return; @@ -765,7 +767,7 @@ EAPI const char *eolian_function_return_type_get(Eolian_Function foo_id, Eolian_ const char *key = NULL; switch (ftype) { - case SET: key= EOLIAN_PROP_SET_RETURN_TYPE; break; + case SET: key = EOLIAN_PROP_SET_RETURN_TYPE; break; case GET: key = EOLIAN_PROP_GET_RETURN_TYPE; break; case UNRESOLVED: case METHOD_FUNC: key = EOLIAN_METHOD_RETURN_TYPE; break; default: return NULL; @@ -775,6 +777,32 @@ EAPI const char *eolian_function_return_type_get(Eolian_Function foo_id, Eolian_ return ret; } +void database_function_return_flag_set_as_warn_unused(Eolian_Function foo_id, + Eolian_Function_Type ftype, Eina_Bool warn_unused) +{ + _Function_Id *fid = (_Function_Id *)foo_id; + EINA_SAFETY_ON_NULL_RETURN(fid); + switch (ftype) + { + case METHOD_FUNC: case GET: fid->get_return_warn_unused = warn_unused; break; + case SET: fid->set_return_warn_unused = warn_unused; break; + default: return; + } +} + +EAPI Eina_Bool eolian_function_return_is_warn_unused(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 METHOD_FUNC: case GET: return fid->get_return_warn_unused; + case SET: return fid->set_return_warn_unused; + default: return EINA_FALSE; + } +} + void database_function_object_set_as_const(Eolian_Function foo_id, Eina_Bool is_const) { diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 541aec53e7..0162f63f84 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -82,6 +82,9 @@ void database_parameter_get_const_attribute_set(Eolian_Function_Parameter param_ void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_type); +void database_function_return_flag_set_as_warn_unused(Eolian_Function foo_id, + Eolian_Function_Type ftype, Eina_Bool warn_unused); + void database_function_object_set_as_const(Eolian_Function foo_id, Eina_Bool is_const); Eina_Bool