From c203df0b5d8afae351d4b584a5782c9c21b010a4 Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Sun, 16 Mar 2014 08:33:24 +0200 Subject: [PATCH] Eolian: Support default return values from .eo file. Now, it is possible to assign a default return value for a method/property. It will be used in case the function invocation makes issues, e.g eo_do failing to find the function... --- src/bin/eolian/legacy_generator.c | 7 +- src/lib/eolian/Eolian.h | 16 + src/lib/eolian/eo_definitions.c | 1 + src/lib/eolian/eo_definitions.h | 1 + src/lib/eolian/eo_lexer.c | 1255 +++++++++++++++++++------------------ src/lib/eolian/eo_lexer.rl | 31 +- src/lib/eolian/eolian_database.c | 31 + src/lib/eolian/eolian_database.h | 2 + 8 files changed, 724 insertions(+), 620 deletions(-) diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index 41b3d65..5ef1632 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -298,8 +298,11 @@ _eapi_func_generate(const char *classname, Eolian_Function funcid, Eolian_Functi { if (eina_strbuf_length_get(eoparam)) eina_strbuf_append(eoparam, ", "); Eina_Bool had_star = !!strchr(rettype, '*'); - sprintf (tmpstr, " %s%s%s%s = 0;\n", - ret_const?"const ":"", rettype, had_star?"":" ", retname); + const char *dflt_ret_val = + eolian_function_return_dflt_value_get(funcid, ftype); + sprintf (tmpstr, " %s%s%s%s = %s;\n", + ret_const?"const ":"", rettype, had_star?"":" ", retname, + dflt_ret_val?dflt_ret_val:"0"); eina_strbuf_append_printf(eoparam, "&%s", retname); } diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 212002a..126b60a 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -465,6 +465,22 @@ EAPI Eina_Bool eolian_parameter_is_own(Eolian_Function_Parameter param_desc); EAPI const char *eolian_function_return_type_get(Eolian_Function function_id, Eolian_Function_Type ftype); /* + * @brief Get the return default value of a function. + * + * @param[in] function_id id of the function + * @param[in] ftype type of the function + * @return the return default value of the function + * + * The return default value is needed to return an appropriate + * value if an error occurs (eo_do failure...). + * The default value is not mandatory, so NULL can be returned. + * + * @ingroup Eolian + */ +EAPI const char * +eolian_function_return_dflt_value_get(Eolian_Function foo_id, Eolian_Function_Type ftype); + +/* * @brief Get the return comment of a function. * * @param[in] function_id id of the function diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c index aec0ab5..11d860e 100644 --- a/src/lib/eolian/eo_definitions.c +++ b/src/lib/eolian/eo_definitions.c @@ -8,6 +8,7 @@ eo_definitions_ret_free(Eo_Ret_Def *ret) { if (ret->type) eina_stringshare_del(ret->type); if (ret->comment) eina_stringshare_del(ret->comment); + if (ret->dflt_ret_val) free(ret->dflt_ret_val); free(ret); } diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index 1e8f2a3..fa08aad 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; + const char *dflt_ret_val; Eina_Bool warn_unused:1; Eina_Bool own:1; } Eo_Ret_Def; diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index af94f1b..8d9acb5 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -265,6 +265,24 @@ _eo_tokenizer_return_get(Eo_Tokenizer *toknz, char *p) ret->own = EINA_TRUE; memset(s, ' ', 4); } + s = strchr(toknz->saved.tok, '('); + if (s) + { + char *end = strchr(s, ')'); + if (!end) + ABORT(toknz, "wrong syntax (missing ')'): %s", + _eo_tokenizer_token_get(toknz, p)); + /* Current values in s and end have to be changed to ' ' to not disturb the next steps (type extraction) */ + *s++ = ' '; + while (*s == ' ') s++; + *end-- = ' '; + while (end > s && *end == ' ') end--; + if (end < s) + ABORT(toknz, "empty default return value: %s", + _eo_tokenizer_token_get(toknz, p)); + ret->dflt_ret_val = strndup(s, end - s + 1); + memset(s, ' ', end - s + 1); + } *p = ';'; s = p - 1; /* Don't look at the character ';' */ /* Remove any space between the param name and ';' @@ -329,11 +347,11 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) } -#line 403 "lib/eolian/eo_lexer.rl" +#line 423 "lib/eolian/eo_lexer.rl" -#line 337 "lib/eolian/eo_lexer.c" +#line 355 "lib/eolian/eo_lexer.c" static const char _eo_tokenizer_actions[] = { 0, 1, 0, 1, 2, 1, 6, 1, 10, 1, 15, 1, 16, 1, 17, 1, @@ -389,45 +407,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, 657, 664, 671, - 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 692, 693, 694, 695, 696, 697, - 698, 699, 703, 710, 717, 725, 726, 727, - 728, 729, 733, 741, 749, 761, 765, 777, - 778, 779, 789, 791, 794, 802, 803, 804, - 805, 806, 807, 808, 809, 810, 814, 822, - 830, 843, 848, 852, 853, 854, 855, 856, - 857, 869, 874, 878, 887, 891, 892, 893, - 894, 895, 896, 900, 909, 916, 923, 934, - 938, 952, 962, 969, 981, 986, 992, 997, - 998, 999, 1000, 1001, 1002, 1005, 1012, 1019, - 1027, 1028, 1032, 1039, 1047, 1051, 1056, 1057, - 1058, 1068, 1070, 1073, 1083, 1095, 1102, 1114, - 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, - 1123, 1124, 1125, 1126, 1130, 1137, 1144, 1152, - 1153, 1154, 1155, 1156, 1157, 1161, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 1173, 1181, - 1184, 1186, 1187, 1188, 1189, 1190, 1201, 1204, - 1206, 1213, 1221, 1229, 1233, 1233, 1234, 1243, - 1246, 1248, 1259, 1263, 1263, 1264, 1273, 1276, - 1278, 1279, 1280, 1281, 1282, 1283, 1292, 1295, - 1297, 1304, 1305, 1314, 1317, 1319, 1320, 1321, - 1322, 1323, 1327, 1327, 1328, 1337, 1340, 1342, - 1349, 1350, 1362, 1365, 1367, 1368, 1370, 1373, - 1375, 1378, 1379, 1380, 1381, 1382, 1385, 1386, - 1387 + 347, 362, 366, 367, 368, 378, 380, 383, + 385, 388, 389, 401, 405, 406, 407, 417, + 419, 422, 424, 427, 428, 429, 433, 434, + 435, 439, 440, 444, 445, 446, 447, 448, + 452, 454, 457, 458, 469, 473, 476, 478, + 481, 492, 494, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 509, 516, 523, + 531, 532, 533, 534, 535, 539, 540, 541, + 542, 543, 546, 553, 567, 582, 586, 587, + 588, 598, 600, 603, 605, 608, 609, 620, + 624, 627, 629, 632, 643, 645, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 663, 664, 665, 669, 676, 683, + 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 704, 705, 706, 707, 708, 709, + 710, 711, 715, 722, 729, 737, 738, 739, + 740, 741, 745, 753, 761, 773, 777, 789, + 790, 791, 801, 803, 806, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 826, 834, + 842, 855, 860, 864, 865, 866, 867, 868, + 869, 881, 886, 890, 899, 903, 904, 905, + 906, 907, 908, 912, 921, 928, 935, 946, + 950, 964, 974, 981, 993, 998, 1004, 1009, + 1010, 1011, 1012, 1013, 1014, 1017, 1024, 1031, + 1039, 1040, 1044, 1051, 1059, 1063, 1068, 1069, + 1070, 1080, 1082, 1085, 1095, 1107, 1114, 1126, + 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1142, 1149, 1156, 1164, + 1165, 1166, 1167, 1168, 1169, 1173, 1174, 1175, + 1176, 1177, 1178, 1179, 1180, 1181, 1185, 1193, + 1196, 1198, 1199, 1200, 1201, 1202, 1213, 1216, + 1218, 1225, 1233, 1241, 1245, 1245, 1246, 1255, + 1258, 1260, 1271, 1275, 1275, 1276, 1285, 1288, + 1290, 1291, 1292, 1293, 1294, 1295, 1304, 1307, + 1309, 1316, 1317, 1326, 1329, 1331, 1332, 1333, + 1334, 1335, 1339, 1339, 1340, 1349, 1352, 1354, + 1361, 1362, 1374, 1377, 1379, 1380, 1382, 1385, + 1387, 1390, 1391, 1392, 1393, 1394, 1397, 1398, + 1399 }; static const char _eo_tokenizer_trans_keys[] = { @@ -473,138 +491,140 @@ static const char _eo_tokenizer_trans_keys[] = { 97, 122, 9, 13, 32, 58, 95, 48, 57, 65, 90, 97, 122, 9, 13, 32, 58, 65, 90, 97, 122, 9, 13, 32, - 42, 95, 48, 57, 64, 90, 97, 122, - 9, 13, 32, 42, 59, 95, 48, 57, - 64, 90, 97, 122, 9, 13, 32, 47, - 42, 64, 10, 95, 0, 32, 48, 57, - 64, 90, 97, 122, 10, 42, 10, 42, - 47, 10, 42, 10, 42, 47, 10, 9, - 13, 32, 42, 59, 95, 48, 57, 64, - 90, 97, 122, 9, 13, 32, 47, 42, - 64, 10, 95, 0, 32, 48, 57, 64, - 90, 97, 122, 10, 42, 10, 42, 47, - 10, 42, 10, 42, 47, 10, 116, 10, - 123, 0, 32, 121, 115, 10, 123, 0, - 32, 116, 10, 123, 0, 32, 108, 117, - 101, 115, 10, 123, 0, 32, 10, 42, - 10, 42, 47, 10, 10, 95, 123, 0, - 32, 48, 57, 65, 90, 97, 122, 10, - 123, 0, 32, 10, 42, 64, 10, 42, - 10, 42, 47, 10, 42, 95, 0, 32, - 48, 57, 64, 90, 97, 122, 10, 42, - 10, 42, 47, 10, 110, 115, 116, 59, - 103, 97, 99, 121, 9, 13, 32, 9, - 13, 32, 65, 90, 97, 122, 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, 64, 90, 97, 122, 9, 13, - 32, 42, 59, 95, 48, 57, 64, 90, + 95, 40, 42, 45, 46, 48, 57, 64, + 90, 97, 122, 9, 13, 32, 59, 95, + 40, 42, 45, 46, 48, 57, 64, 90, 97, 122, 9, 13, 32, 47, 42, 64, 10, 95, 0, 32, 48, 57, 64, 90, 97, 122, 10, 42, 10, 42, 47, 10, - 42, 10, 42, 47, 10, 10, 95, 123, - 0, 32, 48, 57, 65, 90, 97, 122, - 10, 123, 0, 32, 10, 42, 64, 10, - 42, 10, 42, 47, 10, 42, 95, 0, - 32, 48, 57, 64, 90, 97, 122, 10, - 42, 10, 42, 47, 10, 110, 115, 116, - 114, 117, 99, 116, 111, 114, 115, 10, - 123, 0, 32, 116, 97, 10, 58, 0, - 32, 10, 0, 32, 65, 90, 97, 122, - 95, 48, 57, 65, 90, 97, 122, 59, - 95, 48, 57, 65, 90, 97, 122, 115, - 116, 114, 117, 99, 116, 111, 114, 115, - 10, 123, 0, 32, 95, 112, 114, 101, - 102, 105, 120, 10, 58, 0, 32, 10, - 0, 32, 65, 90, 97, 122, 95, 48, - 57, 65, 90, 97, 122, 59, 95, 48, - 57, 65, 90, 97, 122, 101, 110, 116, - 115, 10, 123, 0, 32, 10, 125, 0, - 32, 65, 90, 97, 122, 44, 95, 48, - 57, 65, 90, 97, 122, 10, 44, 59, - 95, 0, 32, 48, 57, 65, 90, 97, - 122, 10, 59, 0, 32, 9, 10, 13, - 32, 47, 125, 0, 31, 65, 90, 97, - 122, 42, 64, 10, 95, 0, 32, 48, - 57, 64, 90, 97, 122, 10, 42, 10, - 42, 47, 10, 125, 0, 32, 65, 90, - 97, 122, 112, 108, 101, 109, 101, 110, - 116, 115, 10, 123, 0, 32, 10, 125, - 0, 32, 65, 90, 97, 122, 58, 95, - 48, 57, 65, 90, 97, 122, 10, 58, - 59, 95, 123, 0, 32, 48, 57, 65, - 90, 97, 122, 10, 59, 123, 0, 32, - 10, 108, 0, 32, 101, 103, 97, 99, - 121, 9, 10, 13, 32, 59, 123, 0, - 31, 65, 90, 97, 122, 10, 59, 123, - 0, 32, 10, 125, 0, 32, 10, 59, - 125, 0, 32, 65, 90, 97, 122, 10, - 112, 0, 32, 97, 114, 97, 109, 115, - 10, 123, 0, 32, 10, 58, 59, 0, - 32, 65, 90, 97, 122, 9, 13, 32, + 42, 10, 42, 47, 10, 9, 13, 32, + 42, 59, 95, 48, 57, 64, 90, 97, + 122, 9, 13, 32, 47, 42, 64, 10, + 95, 0, 32, 48, 57, 64, 90, 97, + 122, 10, 42, 10, 42, 47, 10, 42, + 10, 42, 47, 10, 116, 10, 123, 0, + 32, 121, 115, 10, 123, 0, 32, 116, + 10, 123, 0, 32, 108, 117, 101, 115, + 10, 123, 0, 32, 10, 42, 10, 42, + 47, 10, 10, 95, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 123, 0, + 32, 10, 42, 64, 10, 42, 10, 42, + 47, 10, 42, 95, 0, 32, 48, 57, + 64, 90, 97, 122, 10, 42, 10, 42, + 47, 10, 110, 115, 116, 59, 103, 97, + 99, 121, 9, 13, 32, 9, 13, 32, 65, 90, 97, 122, 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, 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, + 90, 97, 122, 59, 95, 48, 57, 65, + 90, 97, 122, 114, 97, 109, 115, 10, + 123, 0, 32, 116, 117, 114, 110, 9, + 13, 32, 9, 13, 32, 65, 90, 97, + 122, 9, 13, 32, 95, 40, 42, 45, + 46, 48, 57, 64, 90, 97, 122, 9, + 13, 32, 59, 95, 40, 42, 45, 46, + 48, 57, 64, 90, 97, 122, 9, 13, + 32, 47, 42, 64, 10, 95, 0, 32, + 48, 57, 64, 90, 97, 122, 10, 42, + 10, 42, 47, 10, 42, 10, 42, 47, + 10, 10, 95, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 123, 0, 32, + 10, 42, 64, 10, 42, 10, 42, 47, + 10, 42, 95, 0, 32, 48, 57, 64, + 90, 97, 122, 10, 42, 10, 42, 47, + 10, 110, 115, 116, 114, 117, 99, 116, + 111, 114, 115, 10, 123, 0, 32, 116, + 97, 10, 58, 0, 32, 10, 0, 32, 65, 90, 97, 122, 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, + 90, 97, 122, 59, 95, 48, 57, 65, + 90, 97, 122, 115, 116, 114, 117, 99, + 116, 111, 114, 115, 10, 123, 0, 32, + 95, 112, 114, 101, 102, 105, 120, 10, + 58, 0, 32, 10, 0, 32, 65, 90, + 97, 122, 95, 48, 57, 65, 90, 97, + 122, 59, 95, 48, 57, 65, 90, 97, + 122, 101, 110, 116, 115, 10, 123, 0, + 32, 10, 125, 0, 32, 65, 90, 97, + 122, 44, 95, 48, 57, 65, 90, 97, + 122, 10, 44, 59, 95, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 59, 0, + 32, 9, 10, 13, 32, 47, 125, 0, + 31, 65, 90, 97, 122, 42, 64, 10, + 95, 0, 32, 48, 57, 64, 90, 97, + 122, 10, 42, 10, 42, 47, 10, 125, + 0, 32, 65, 90, 97, 122, 112, 108, + 101, 109, 101, 110, 116, 115, 10, 123, + 0, 32, 10, 125, 0, 32, 65, 90, + 97, 122, 58, 95, 48, 57, 65, 90, + 97, 122, 10, 58, 59, 95, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 59, 123, 0, 32, 10, 108, 0, 32, + 101, 103, 97, 99, 121, 9, 10, 13, + 32, 59, 123, 0, 31, 65, 90, 97, + 122, 10, 59, 123, 0, 32, 10, 125, + 0, 32, 10, 59, 125, 0, 32, 65, + 90, 97, 122, 10, 112, 0, 32, 97, + 114, 97, 109, 115, 10, 123, 0, 32, + 10, 58, 59, 0, 32, 65, 90, 97, + 122, 9, 13, 32, 65, 90, 97, 122, 95, 48, 57, 65, 90, 97, 122, 10, - 125, 0, 32, 10, 59, 125, 0, 32, - 42, 64, 10, 95, 0, 32, 48, 57, - 64, 90, 97, 122, 10, 42, 10, 42, - 47, 10, 58, 59, 125, 0, 32, 65, - 90, 97, 122, 9, 10, 13, 32, 59, - 123, 0, 31, 65, 90, 97, 122, 95, - 48, 57, 65, 90, 97, 122, 10, 59, - 95, 123, 0, 32, 48, 57, 65, 90, - 97, 122, 58, 103, 97, 99, 121, 95, - 112, 114, 101, 102, 105, 120, 10, 58, - 0, 32, 10, 0, 32, 65, 90, 97, - 122, 95, 48, 57, 65, 90, 97, 122, - 59, 95, 48, 57, 65, 90, 97, 122, - 116, 104, 111, 100, 115, 10, 123, 0, - 32, 111, 112, 101, 114, 116, 105, 101, - 115, 10, 123, 0, 32, 10, 47, 97, - 99, 105, 109, 0, 32, 10, 0, 32, - 42, 47, 98, 108, 110, 105, 10, 47, - 108, 114, 125, 0, 32, 65, 90, 97, - 122, 10, 0, 32, 42, 47, 95, 48, - 57, 65, 90, 97, 122, 95, 101, 48, - 57, 65, 90, 97, 122, 95, 101, 48, + 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, 125, 0, 32, 64, - 90, 97, 122, 10, 0, 32, 42, 47, - 9, 13, 32, 42, 95, 48, 57, 64, - 90, 97, 122, 9, 13, 32, 47, 59, - 10, 47, 103, 107, 115, 118, 125, 0, - 32, 10, 0, 32, 42, 47, 101, 101, - 101, 97, 59, 10, 47, 125, 0, 32, - 65, 90, 97, 122, 10, 0, 32, 42, - 47, 95, 48, 57, 65, 90, 97, 122, - 59, 10, 47, 99, 108, 112, 114, 125, - 0, 32, 10, 0, 32, 42, 47, 111, - 101, 97, 101, 9, 13, 32, 47, 59, - 10, 47, 125, 0, 32, 65, 90, 97, - 122, 10, 0, 32, 42, 47, 95, 48, - 57, 65, 90, 97, 122, 59, 10, 47, - 99, 100, 101, 105, 108, 109, 112, 125, - 0, 32, 10, 0, 32, 42, 47, 111, - 97, 101, 10, 0, 32, 111, 118, 10, - 0, 32, 59, 109, 59, 101, 10, 0, - 32, 101, 114, 59, 0 + 58, 59, 95, 48, 57, 65, 90, 97, + 122, 9, 13, 32, 58, 59, 10, 59, + 114, 125, 0, 32, 10, 114, 125, 0, + 32, 101, 116, 117, 114, 110, 9, 13, + 32, 9, 13, 32, 65, 90, 97, 122, + 95, 48, 57, 65, 90, 97, 122, 58, + 95, 48, 57, 65, 90, 97, 122, 58, + 65, 90, 97, 122, 95, 48, 57, 65, + 90, 97, 122, 59, 95, 48, 57, 65, + 90, 97, 122, 10, 125, 0, 32, 10, + 59, 125, 0, 32, 42, 64, 10, 95, + 0, 32, 48, 57, 64, 90, 97, 122, + 10, 42, 10, 42, 47, 10, 58, 59, + 125, 0, 32, 65, 90, 97, 122, 9, + 10, 13, 32, 59, 123, 0, 31, 65, + 90, 97, 122, 95, 48, 57, 65, 90, + 97, 122, 10, 59, 95, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 58, 103, + 97, 99, 121, 95, 112, 114, 101, 102, + 105, 120, 10, 58, 0, 32, 10, 0, + 32, 65, 90, 97, 122, 95, 48, 57, + 65, 90, 97, 122, 59, 95, 48, 57, + 65, 90, 97, 122, 116, 104, 111, 100, + 115, 10, 123, 0, 32, 111, 112, 101, + 114, 116, 105, 101, 115, 10, 123, 0, + 32, 10, 47, 97, 99, 105, 109, 0, + 32, 10, 0, 32, 42, 47, 98, 108, + 110, 105, 10, 47, 108, 114, 125, 0, + 32, 65, 90, 97, 122, 10, 0, 32, + 42, 47, 95, 48, 57, 65, 90, 97, + 122, 95, 101, 48, 57, 65, 90, 97, + 122, 95, 101, 48, 57, 65, 90, 97, + 122, 9, 13, 32, 47, 59, 10, 47, + 125, 0, 32, 64, 90, 97, 122, 10, + 0, 32, 42, 47, 9, 13, 32, 42, + 95, 48, 57, 64, 90, 97, 122, 9, + 13, 32, 47, 59, 10, 47, 103, 107, + 115, 118, 125, 0, 32, 10, 0, 32, + 42, 47, 101, 101, 101, 97, 59, 10, + 47, 125, 0, 32, 65, 90, 97, 122, + 10, 0, 32, 42, 47, 95, 48, 57, + 65, 90, 97, 122, 59, 10, 47, 99, + 108, 112, 114, 125, 0, 32, 10, 0, + 32, 42, 47, 111, 101, 97, 101, 9, + 13, 32, 47, 59, 10, 47, 125, 0, + 32, 65, 90, 97, 122, 10, 0, 32, + 42, 47, 95, 48, 57, 65, 90, 97, + 122, 59, 10, 47, 99, 100, 101, 105, + 108, 109, 112, 125, 0, 32, 10, 0, + 32, 42, 47, 111, 97, 101, 10, 0, + 32, 111, 118, 10, 0, 32, 59, 109, + 59, 101, 10, 0, 32, 101, 114, 59, + 0 }; static const char _eo_tokenizer_single_lengths[] = { @@ -615,8 +635,8 @@ static const char _eo_tokenizer_single_lengths[] = { 3, 1, 1, 1, 3, 3, 2, 3, 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, + 2, 6, 6, 6, 6, 5, 4, 4, + 5, 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, @@ -624,7 +644,7 @@ static const char _eo_tokenizer_single_lengths[] = { 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, + 1, 3, 3, 4, 5, 4, 1, 1, 2, 2, 3, 2, 3, 1, 3, 2, 3, 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -665,8 +685,8 @@ static const char _eo_tokenizer_range_lengths[] = { 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 3, 0, 2, 2, 3, 3, 3, 3, 3, 3, 2, 3, - 3, 3, 3, 3, 3, 3, 2, 3, - 3, 0, 0, 0, 4, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 2, 5, + 5, 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, @@ -674,7 +694,7 @@ static const char _eo_tokenizer_range_lengths[] = { 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, + 0, 0, 2, 5, 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -716,45 +736,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, 681, 686, 691, - 697, 699, 701, 703, 705, 707, 709, 711, - 713, 715, 719, 721, 723, 725, 727, 729, - 731, 733, 737, 742, 747, 753, 755, 757, - 759, 761, 765, 771, 777, 786, 790, 800, - 802, 804, 811, 814, 818, 824, 826, 828, - 830, 832, 834, 836, 838, 840, 844, 850, - 856, 866, 871, 875, 877, 879, 881, 883, - 885, 895, 900, 904, 911, 915, 917, 919, - 921, 923, 925, 929, 936, 942, 947, 955, - 959, 971, 979, 984, 994, 1000, 1006, 1011, - 1013, 1015, 1017, 1019, 1021, 1025, 1031, 1036, - 1042, 1044, 1047, 1052, 1058, 1062, 1067, 1069, - 1071, 1078, 1081, 1085, 1093, 1103, 1108, 1117, - 1119, 1121, 1123, 1125, 1127, 1129, 1131, 1133, - 1135, 1137, 1139, 1141, 1145, 1150, 1155, 1161, - 1163, 1165, 1167, 1169, 1171, 1175, 1177, 1179, - 1181, 1183, 1185, 1187, 1189, 1191, 1195, 1203, - 1206, 1209, 1211, 1213, 1215, 1217, 1226, 1229, - 1232, 1237, 1243, 1249, 1254, 1255, 1257, 1264, - 1267, 1270, 1279, 1284, 1285, 1287, 1296, 1299, - 1302, 1304, 1306, 1308, 1310, 1312, 1319, 1322, - 1325, 1330, 1332, 1341, 1344, 1347, 1349, 1351, - 1353, 1355, 1360, 1361, 1363, 1370, 1373, 1376, - 1381, 1383, 1395, 1398, 1401, 1403, 1406, 1409, - 1412, 1415, 1417, 1419, 1421, 1423, 1426, 1428, - 1430 + 327, 338, 343, 345, 347, 354, 357, 361, + 364, 368, 370, 380, 385, 387, 389, 396, + 399, 403, 406, 410, 412, 414, 418, 420, + 422, 426, 428, 432, 434, 436, 438, 440, + 444, 447, 451, 453, 461, 465, 469, 472, + 476, 484, 487, 491, 493, 495, 497, 499, + 501, 503, 505, 507, 509, 513, 519, 524, + 530, 532, 534, 536, 538, 542, 544, 546, + 548, 550, 554, 560, 570, 581, 586, 588, + 590, 597, 600, 604, 607, 611, 613, 621, + 625, 629, 632, 636, 644, 647, 651, 653, + 655, 657, 659, 661, 663, 665, 667, 669, + 671, 673, 677, 679, 681, 685, 690, 695, + 701, 703, 705, 707, 709, 711, 713, 715, + 717, 719, 723, 725, 727, 729, 731, 733, + 735, 737, 741, 746, 751, 757, 759, 761, + 763, 765, 769, 775, 781, 790, 794, 804, + 806, 808, 815, 818, 822, 828, 830, 832, + 834, 836, 838, 840, 842, 844, 848, 854, + 860, 870, 875, 879, 881, 883, 885, 887, + 889, 899, 904, 908, 915, 919, 921, 923, + 925, 927, 929, 933, 940, 946, 951, 959, + 963, 975, 983, 988, 998, 1004, 1010, 1015, + 1017, 1019, 1021, 1023, 1025, 1029, 1035, 1040, + 1046, 1048, 1051, 1056, 1062, 1066, 1071, 1073, + 1075, 1082, 1085, 1089, 1097, 1107, 1112, 1121, + 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, + 1139, 1141, 1143, 1145, 1149, 1154, 1159, 1165, + 1167, 1169, 1171, 1173, 1175, 1179, 1181, 1183, + 1185, 1187, 1189, 1191, 1193, 1195, 1199, 1207, + 1210, 1213, 1215, 1217, 1219, 1221, 1230, 1233, + 1236, 1241, 1247, 1253, 1258, 1259, 1261, 1268, + 1271, 1274, 1283, 1288, 1289, 1291, 1300, 1303, + 1306, 1308, 1310, 1312, 1314, 1316, 1323, 1326, + 1329, 1334, 1336, 1345, 1348, 1351, 1353, 1355, + 1357, 1359, 1364, 1365, 1367, 1374, 1377, 1380, + 1385, 1387, 1399, 1402, 1405, 1407, 1410, 1413, + 1416, 1419, 1421, 1423, 1425, 1427, 1430, 1432, + 1434 }; static const short _eo_tokenizer_indicies[] = { @@ -798,146 +818,146 @@ static const short _eo_tokenizer_indicies[] = { 91, 72, 72, 72, 57, 92, 92, 92, 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, 258, 256, - 229, 259, 258, 260, 260, 229, 261, 261, - 261, 261, 229, 262, 261, 261, 261, 261, - 229, 263, 229, 264, 229, 265, 229, 266, - 229, 267, 229, 268, 229, 269, 229, 270, - 229, 271, 229, 272, 273, 271, 229, 274, - 229, 275, 229, 276, 229, 277, 229, 278, - 229, 279, 229, 280, 229, 281, 282, 280, - 229, 283, 282, 284, 284, 229, 285, 285, - 285, 285, 229, 286, 285, 285, 285, 285, - 229, 287, 229, 288, 229, 289, 229, 290, - 229, 291, 292, 290, 229, 293, 295, 292, - 294, 294, 229, 296, 296, 296, 296, 296, - 229, 298, 296, 299, 296, 297, 296, 296, - 296, 229, 301, 302, 300, 229, 302, 293, - 302, 302, 303, 295, 292, 294, 294, 229, - 304, 229, 305, 229, 306, 307, 305, 307, - 307, 307, 229, 309, 310, 308, 309, 310, - 311, 308, 313, 315, 312, 314, 314, 229, - 316, 229, 317, 229, 318, 229, 319, 229, - 320, 229, 321, 229, 322, 229, 323, 229, - 324, 325, 323, 229, 326, 328, 325, 327, - 327, 229, 330, 329, 329, 329, 329, 229, - 332, 330, 333, 329, 334, 331, 329, 329, - 329, 229, 336, 325, 337, 335, 229, 338, - 339, 337, 229, 340, 229, 341, 229, 342, - 229, 343, 229, 344, 229, 346, 347, 346, - 346, 348, 350, 345, 349, 349, 229, 352, - 353, 354, 351, 229, 355, 356, 353, 229, - 326, 325, 328, 325, 327, 327, 229, 357, - 358, 354, 229, 359, 229, 360, 229, 361, - 229, 362, 229, 363, 229, 364, 365, 363, - 229, 366, 367, 368, 365, 369, 369, 229, - 367, 367, 367, 370, 370, 229, 371, 371, - 371, 371, 229, 373, 374, 371, 372, 371, - 371, 371, 229, 376, 368, 375, 229, 368, - 378, 368, 368, 379, 367, 368, 380, 377, - 369, 369, 229, 378, 367, 368, 380, 377, - 369, 369, 229, 381, 381, 381, 381, 229, - 382, 382, 382, 383, 384, 381, 381, 381, - 381, 229, 385, 385, 385, 367, 368, 229, - 387, 386, 388, 389, 386, 229, 387, 388, - 389, 386, 229, 390, 229, 391, 229, 392, - 229, 393, 229, 394, 229, 395, 395, 395, - 229, 395, 395, 395, 396, 396, 229, 397, - 397, 397, 397, 229, 398, 397, 397, 397, - 397, 229, 399, 229, 400, 400, 229, 401, - 401, 401, 401, 229, 402, 401, 401, 401, - 401, 229, 404, 389, 403, 229, 355, 353, - 356, 353, 229, 405, 229, 406, 229, 407, - 408, 406, 408, 408, 408, 229, 410, 411, - 409, 410, 411, 412, 409, 414, 415, 416, - 418, 413, 417, 417, 229, 419, 352, 419, - 419, 353, 354, 351, 420, 420, 229, 421, - 421, 421, 421, 229, 423, 424, 421, 425, - 422, 421, 421, 421, 229, 329, 229, 426, - 229, 427, 229, 428, 229, 429, 229, 430, - 229, 431, 229, 432, 229, 433, 229, 434, - 229, 435, 229, 436, 229, 437, 438, 436, - 229, 439, 438, 440, 440, 229, 441, 441, - 441, 441, 229, 442, 441, 441, 441, 441, - 229, 443, 229, 444, 229, 445, 229, 446, - 229, 447, 229, 448, 449, 447, 229, 450, - 229, 451, 229, 452, 229, 453, 229, 454, - 229, 455, 229, 456, 229, 457, 229, 458, - 459, 457, 229, 462, 463, 464, 465, 466, - 467, 461, 460, 462, 461, 468, 1, 5, - 469, 470, 469, 471, 469, 472, 469, 473, - 469, 476, 477, 479, 480, 481, 475, 478, - 478, 474, 476, 475, 482, 484, 69, 483, - 72, 72, 72, 72, 483, 72, 485, 72, - 72, 72, 483, 72, 486, 72, 72, 72, - 483, 97, 97, 97, 98, 487, 488, 490, - 489, 493, 494, 496, 492, 495, 495, 491, - 493, 492, 497, 108, 112, 498, 114, 114, - 114, 114, 114, 114, 114, 114, 498, 117, - 117, 117, 118, 499, 500, 502, 501, 505, - 506, 507, 508, 509, 510, 511, 504, 503, - 505, 504, 512, 128, 132, 513, 514, 513, - 515, 513, 516, 513, 517, 513, 519, 518, - 522, 523, 525, 521, 524, 524, 520, 522, - 521, 526, 151, 155, 527, 159, 159, 159, - 159, 527, 529, 528, 532, 533, 534, 535, - 536, 537, 538, 531, 530, 532, 531, 539, - 541, 176, 540, 542, 540, 543, 540, 544, - 540, 545, 540, 205, 205, 205, 206, 546, - 547, 549, 548, 552, 553, 555, 551, 554, - 554, 550, 552, 551, 556, 216, 220, 557, - 224, 224, 224, 224, 557, 559, 558, 562, - 563, 564, 565, 566, 567, 568, 569, 570, - 571, 561, 560, 562, 561, 572, 574, 241, - 573, 575, 573, 576, 577, 573, 580, 579, - 578, 581, 582, 573, 585, 584, 583, 587, - 586, 588, 573, 590, 589, 591, 573, 594, - 593, 592, 595, 573, 596, 573, 598, 597, - 0 + 94, 94, 94, 94, 94, 94, 57, 94, + 94, 94, 95, 94, 94, 94, 94, 94, + 94, 57, 97, 97, 97, 98, 96, 99, + 96, 100, 96, 101, 102, 100, 102, 102, + 102, 96, 104, 105, 103, 104, 105, 106, + 103, 109, 110, 108, 109, 110, 111, 108, + 113, 112, 114, 114, 114, 114, 115, 114, + 114, 114, 114, 107, 117, 117, 117, 118, + 116, 119, 116, 120, 116, 121, 122, 120, + 122, 122, 122, 116, 124, 125, 123, 124, + 125, 126, 123, 129, 130, 128, 129, 130, + 131, 128, 133, 132, 134, 127, 135, 136, + 134, 127, 137, 127, 138, 127, 139, 140, + 138, 127, 141, 127, 142, 143, 141, 127, + 144, 127, 145, 127, 146, 127, 147, 127, + 148, 149, 147, 127, 152, 153, 151, 152, + 153, 154, 151, 156, 155, 158, 159, 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, + 202, 164, 202, 202, 202, 203, 202, 202, + 202, 202, 202, 202, 164, 205, 205, 205, + 206, 204, 207, 204, 208, 204, 209, 210, + 208, 210, 210, 210, 204, 212, 213, 211, + 212, 213, 214, 211, 217, 218, 216, 217, + 218, 219, 216, 221, 220, 223, 224, 225, + 222, 224, 224, 224, 215, 227, 228, 226, + 215, 231, 232, 233, 230, 231, 232, 230, + 231, 232, 234, 230, 235, 232, 236, 233, + 236, 236, 236, 230, 238, 239, 237, 238, + 239, 240, 237, 242, 241, 243, 229, 244, + 229, 245, 229, 246, 229, 247, 229, 248, + 229, 249, 229, 250, 229, 251, 229, 252, + 229, 253, 254, 252, 229, 255, 229, 256, + 229, 257, 258, 256, 229, 259, 258, 260, + 260, 229, 261, 261, 261, 261, 229, 262, + 261, 261, 261, 261, 229, 263, 229, 264, + 229, 265, 229, 266, 229, 267, 229, 268, + 229, 269, 229, 270, 229, 271, 229, 272, + 273, 271, 229, 274, 229, 275, 229, 276, + 229, 277, 229, 278, 229, 279, 229, 280, + 229, 281, 282, 280, 229, 283, 282, 284, + 284, 229, 285, 285, 285, 285, 229, 286, + 285, 285, 285, 285, 229, 287, 229, 288, + 229, 289, 229, 290, 229, 291, 292, 290, + 229, 293, 295, 292, 294, 294, 229, 296, + 296, 296, 296, 296, 229, 298, 296, 299, + 296, 297, 296, 296, 296, 229, 301, 302, + 300, 229, 302, 293, 302, 302, 303, 295, + 292, 294, 294, 229, 304, 229, 305, 229, + 306, 307, 305, 307, 307, 307, 229, 309, + 310, 308, 309, 310, 311, 308, 313, 315, + 312, 314, 314, 229, 316, 229, 317, 229, + 318, 229, 319, 229, 320, 229, 321, 229, + 322, 229, 323, 229, 324, 325, 323, 229, + 326, 328, 325, 327, 327, 229, 330, 329, + 329, 329, 329, 229, 332, 330, 333, 329, + 334, 331, 329, 329, 329, 229, 336, 325, + 337, 335, 229, 338, 339, 337, 229, 340, + 229, 341, 229, 342, 229, 343, 229, 344, + 229, 346, 347, 346, 346, 348, 350, 345, + 349, 349, 229, 352, 353, 354, 351, 229, + 355, 356, 353, 229, 326, 325, 328, 325, + 327, 327, 229, 357, 358, 354, 229, 359, + 229, 360, 229, 361, 229, 362, 229, 363, + 229, 364, 365, 363, 229, 366, 367, 368, + 365, 369, 369, 229, 367, 367, 367, 370, + 370, 229, 371, 371, 371, 371, 229, 373, + 374, 371, 372, 371, 371, 371, 229, 376, + 368, 375, 229, 368, 378, 368, 368, 379, + 367, 368, 380, 377, 369, 369, 229, 378, + 367, 368, 380, 377, 369, 369, 229, 381, + 381, 381, 381, 229, 382, 382, 382, 383, + 384, 381, 381, 381, 381, 229, 385, 385, + 385, 367, 368, 229, 387, 386, 388, 389, + 386, 229, 387, 388, 389, 386, 229, 390, + 229, 391, 229, 392, 229, 393, 229, 394, + 229, 395, 395, 395, 229, 395, 395, 395, + 396, 396, 229, 397, 397, 397, 397, 229, + 398, 397, 397, 397, 397, 229, 399, 229, + 400, 400, 229, 401, 401, 401, 401, 229, + 402, 401, 401, 401, 401, 229, 404, 389, + 403, 229, 355, 353, 356, 353, 229, 405, + 229, 406, 229, 407, 408, 406, 408, 408, + 408, 229, 410, 411, 409, 410, 411, 412, + 409, 414, 415, 416, 418, 413, 417, 417, + 229, 419, 352, 419, 419, 353, 354, 351, + 420, 420, 229, 421, 421, 421, 421, 229, + 423, 424, 421, 425, 422, 421, 421, 421, + 229, 329, 229, 426, 229, 427, 229, 428, + 229, 429, 229, 430, 229, 431, 229, 432, + 229, 433, 229, 434, 229, 435, 229, 436, + 229, 437, 438, 436, 229, 439, 438, 440, + 440, 229, 441, 441, 441, 441, 229, 442, + 441, 441, 441, 441, 229, 443, 229, 444, + 229, 445, 229, 446, 229, 447, 229, 448, + 449, 447, 229, 450, 229, 451, 229, 452, + 229, 453, 229, 454, 229, 455, 229, 456, + 229, 457, 229, 458, 459, 457, 229, 462, + 463, 464, 465, 466, 467, 461, 460, 462, + 461, 468, 1, 5, 469, 470, 469, 471, + 469, 472, 469, 473, 469, 476, 477, 479, + 480, 481, 475, 478, 478, 474, 476, 475, + 482, 484, 69, 483, 72, 72, 72, 72, + 483, 72, 485, 72, 72, 72, 483, 72, + 486, 72, 72, 72, 483, 97, 97, 97, + 98, 487, 488, 490, 489, 493, 494, 496, + 492, 495, 495, 491, 493, 492, 497, 108, + 112, 498, 114, 114, 114, 114, 114, 114, + 114, 114, 498, 117, 117, 117, 118, 499, + 500, 502, 501, 505, 506, 507, 508, 509, + 510, 511, 504, 503, 505, 504, 512, 128, + 132, 513, 514, 513, 515, 513, 516, 513, + 517, 513, 519, 518, 522, 523, 525, 521, + 524, 524, 520, 522, 521, 526, 151, 155, + 527, 159, 159, 159, 159, 527, 529, 528, + 532, 533, 534, 535, 536, 537, 538, 531, + 530, 532, 531, 539, 541, 176, 540, 542, + 540, 543, 540, 544, 540, 545, 540, 205, + 205, 205, 206, 546, 547, 549, 548, 552, + 553, 555, 551, 554, 554, 550, 552, 551, + 556, 216, 220, 557, 224, 224, 224, 224, + 557, 559, 558, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 561, 560, 562, + 561, 572, 574, 241, 573, 575, 573, 576, + 577, 573, 580, 579, 578, 581, 582, 573, + 585, 584, 583, 587, 586, 588, 573, 590, + 589, 591, 573, 594, 593, 592, 595, 573, + 596, 573, 598, 597, 0 }; static const short _eo_tokenizer_trans_targs[] = { @@ -1260,7 +1280,7 @@ static const int eo_tokenizer_en_tokenize_class = 353; static const int eo_tokenizer_en_main = 302; -#line 997 "lib/eolian/eo_lexer.rl" +#line 1017 "lib/eolian/eo_lexer.rl" Eina_Bool @@ -1284,7 +1304,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1288 "lib/eolian/eo_lexer.c" +#line 1308 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1292,7 +1312,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 1020 "lib/eolian/eo_lexer.rl" +#line 1040 "lib/eolian/eo_lexer.rl" while (!done) { @@ -1319,7 +1339,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1323 "lib/eolian/eo_lexer.c" +#line 1343 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -1338,7 +1358,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1342 "lib/eolian/eo_lexer.c" +#line 1362 "lib/eolian/eo_lexer.c" } } @@ -1405,28 +1425,28 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 337 "lib/eolian/eo_lexer.rl" +#line 355 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 342 "lib/eolian/eo_lexer.rl" +#line 360 "lib/eolian/eo_lexer.rl" { toknz->saved.line = toknz->current_line; DBG("save line[%d] %d", toknz->cs, toknz->current_line); } break; case 2: -#line 347 "lib/eolian/eo_lexer.rl" +#line 365 "lib/eolian/eo_lexer.rl" { toknz->saved.tok = ( toknz->p); DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p)); } break; case 3: -#line 421 "lib/eolian/eo_lexer.rl" +#line 441 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -1435,7 +1455,7 @@ _eof_trans: } break; case 4: -#line 428 "lib/eolian/eo_lexer.rl" +#line 448 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -1446,20 +1466,20 @@ _eof_trans: } break; case 5: -#line 437 "lib/eolian/eo_lexer.rl" +#line 457 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 6: -#line 451 "lib/eolian/eo_lexer.rl" +#line 471 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; case 7: -#line 455 "lib/eolian/eo_lexer.rl" +#line 475 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -1470,7 +1490,7 @@ _eof_trans: } break; case 8: -#line 484 "lib/eolian/eo_lexer.rl" +#line 504 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -1480,7 +1500,7 @@ _eof_trans: } break; case 9: -#line 492 "lib/eolian/eo_lexer.rl" +#line 512 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -1491,7 +1511,7 @@ _eof_trans: } break; case 10: -#line 592 "lib/eolian/eo_lexer.rl" +#line 612 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); @@ -1499,7 +1519,7 @@ _eof_trans: } break; case 11: -#line 632 "lib/eolian/eo_lexer.rl" +#line 652 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -1508,7 +1528,7 @@ _eof_trans: } break; case 12: -#line 639 "lib/eolian/eo_lexer.rl" +#line 659 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -1519,14 +1539,14 @@ _eof_trans: } break; case 13: -#line 648 "lib/eolian/eo_lexer.rl" +#line 668 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 14: -#line 653 "lib/eolian/eo_lexer.rl" +#line 673 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; @@ -1534,7 +1554,7 @@ _eof_trans: } break; case 15: -#line 715 "lib/eolian/eo_lexer.rl" +#line 735 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); @@ -1542,14 +1562,14 @@ _eof_trans: } break; case 16: -#line 747 "lib/eolian/eo_lexer.rl" +#line 767 "lib/eolian/eo_lexer.rl" { const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base); } break; case 17: -#line 752 "lib/eolian/eo_lexer.rl" +#line 772 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; @@ -1557,7 +1577,7 @@ _eof_trans: } break; case 18: -#line 800 "lib/eolian/eo_lexer.rl" +#line 820 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); @@ -1565,7 +1585,7 @@ _eof_trans: } break; case 19: -#line 806 "lib/eolian/eo_lexer.rl" +#line 826 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -1575,7 +1595,7 @@ _eof_trans: } break; case 20: -#line 814 "lib/eolian/eo_lexer.rl" +#line 834 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -1584,7 +1604,7 @@ _eof_trans: } break; case 21: -#line 823 "lib/eolian/eo_lexer.rl" +#line 843 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -1593,7 +1613,7 @@ _eof_trans: } break; case 22: -#line 832 "lib/eolian/eo_lexer.rl" +#line 852 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -1602,7 +1622,7 @@ _eof_trans: } break; case 23: -#line 845 "lib/eolian/eo_lexer.rl" +#line 865 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); @@ -1610,7 +1630,7 @@ _eof_trans: } break; case 24: -#line 851 "lib/eolian/eo_lexer.rl" +#line 871 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -1619,7 +1639,7 @@ _eof_trans: } break; case 25: -#line 858 "lib/eolian/eo_lexer.rl" +#line 878 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1628,7 +1648,7 @@ _eof_trans: } break; case 26: -#line 865 "lib/eolian/eo_lexer.rl" +#line 885 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -1639,7 +1659,7 @@ _eof_trans: } break; case 27: -#line 874 "lib/eolian/eo_lexer.rl" +#line 894 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -1647,7 +1667,7 @@ _eof_trans: } break; case 28: -#line 880 "lib/eolian/eo_lexer.rl" +#line 900 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -1655,7 +1675,7 @@ _eof_trans: } break; case 29: -#line 886 "lib/eolian/eo_lexer.rl" +#line 906 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1664,7 +1684,7 @@ _eof_trans: } break; case 30: -#line 893 "lib/eolian/eo_lexer.rl" +#line 913 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1673,31 +1693,31 @@ _eof_trans: } break; case 31: -#line 963 "lib/eolian/eo_lexer.rl" +#line 983 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 32: -#line 966 "lib/eolian/eo_lexer.rl" +#line 986 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; case 33: -#line 969 "lib/eolian/eo_lexer.rl" +#line 989 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; case 34: -#line 972 "lib/eolian/eo_lexer.rl" +#line 992 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 35: -#line 976 "lib/eolian/eo_lexer.rl" +#line 996 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1710,7 +1730,7 @@ _eof_trans: { toknz->te = ( toknz->p)+1;} break; case 39: -#line 413 "lib/eolian/eo_lexer.rl" +#line 433 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -1720,22 +1740,22 @@ _eof_trans: }} break; case 40: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 41: -#line 476 "lib/eolian/eo_lexer.rl" +#line 496 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 42: -#line 477 "lib/eolian/eo_lexer.rl" +#line 497 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 43: -#line 442 "lib/eolian/eo_lexer.rl" +#line 462 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -1746,7 +1766,7 @@ _eof_trans: }} break; case 44: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1765,15 +1785,15 @@ _eof_trans: }} break; case 45: -#line 472 "lib/eolian/eo_lexer.rl" +#line 492 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 46: -#line 475 "lib/eolian/eo_lexer.rl" +#line 495 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 47: -#line 442 "lib/eolian/eo_lexer.rl" +#line 462 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -1784,7 +1804,7 @@ _eof_trans: }} break; case 48: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1803,11 +1823,11 @@ _eof_trans: }} break; case 49: -#line 475 "lib/eolian/eo_lexer.rl" +#line 495 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 50: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1826,14 +1846,14 @@ _eof_trans: }} break; case 51: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 52: -#line 501 "lib/eolian/eo_lexer.rl" +#line 521 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; @@ -1847,7 +1867,7 @@ _eof_trans: }} break; case 53: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1866,15 +1886,15 @@ _eof_trans: }} break; case 54: -#line 517 "lib/eolian/eo_lexer.rl" +#line 537 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 55: -#line 519 "lib/eolian/eo_lexer.rl" +#line 539 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 501 "lib/eolian/eo_lexer.rl" +#line 521 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; @@ -1888,7 +1908,7 @@ _eof_trans: }} break; case 57: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1907,11 +1927,11 @@ _eof_trans: }} break; case 58: -#line 519 "lib/eolian/eo_lexer.rl" +#line 539 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 59: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1930,14 +1950,14 @@ _eof_trans: }} break; case 60: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 61: -#line 526 "lib/eolian/eo_lexer.rl" +#line 546 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); @@ -1946,7 +1966,7 @@ _eof_trans: }} break; case 62: -#line 533 "lib/eolian/eo_lexer.rl" +#line 553 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); @@ -1955,7 +1975,7 @@ _eof_trans: }} break; case 63: -#line 540 "lib/eolian/eo_lexer.rl" +#line 560 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; @@ -1964,7 +1984,7 @@ _eof_trans: }} break; case 64: -#line 547 "lib/eolian/eo_lexer.rl" +#line 567 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; @@ -1973,7 +1993,7 @@ _eof_trans: }} break; case 65: -#line 554 "lib/eolian/eo_lexer.rl" +#line 574 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->values) == 0) @@ -1988,7 +2008,7 @@ _eof_trans: }} break; case 66: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2007,11 +2027,11 @@ _eof_trans: }} break; case 67: -#line 573 "lib/eolian/eo_lexer.rl" +#line 593 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 68: -#line 554 "lib/eolian/eo_lexer.rl" +#line 574 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->values) == 0) @@ -2026,7 +2046,7 @@ _eof_trans: }} break; case 69: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2045,7 +2065,7 @@ _eof_trans: }} break; case 70: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2064,14 +2084,14 @@ _eof_trans: }} break; case 71: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 72: -#line 585 "lib/eolian/eo_lexer.rl" +#line 605 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); @@ -2080,7 +2100,7 @@ _eof_trans: }} break; case 73: -#line 598 "lib/eolian/eo_lexer.rl" +#line 618 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; @@ -2088,7 +2108,7 @@ _eof_trans: }} break; case 74: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2107,11 +2127,11 @@ _eof_trans: }} break; case 75: -#line 607 "lib/eolian/eo_lexer.rl" +#line 627 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 76: -#line 598 "lib/eolian/eo_lexer.rl" +#line 618 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; @@ -2119,7 +2139,7 @@ _eof_trans: }} break; case 77: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2138,7 +2158,7 @@ _eof_trans: }} break; case 78: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2157,7 +2177,7 @@ _eof_trans: }} break; case 79: -#line 616 "lib/eolian/eo_lexer.rl" +#line 636 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -2167,14 +2187,14 @@ _eof_trans: }} break; case 80: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 81: -#line 624 "lib/eolian/eo_lexer.rl" +#line 644 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); @@ -2184,15 +2204,15 @@ _eof_trans: }} break; case 82: -#line 700 "lib/eolian/eo_lexer.rl" +#line 720 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 83: -#line 701 "lib/eolian/eo_lexer.rl" +#line 721 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 84: -#line 659 "lib/eolian/eo_lexer.rl" +#line 679 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2220,7 +2240,7 @@ _eof_trans: }} break; case 85: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2239,15 +2259,15 @@ _eof_trans: }} break; case 86: -#line 695 "lib/eolian/eo_lexer.rl" +#line 715 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 87: -#line 699 "lib/eolian/eo_lexer.rl" +#line 719 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 88: -#line 659 "lib/eolian/eo_lexer.rl" +#line 679 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2275,7 +2295,7 @@ _eof_trans: }} break; case 89: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2294,11 +2314,11 @@ _eof_trans: }} break; case 90: -#line 699 "lib/eolian/eo_lexer.rl" +#line 719 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 91: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2317,14 +2337,14 @@ _eof_trans: }} break; case 92: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 93: -#line 708 "lib/eolian/eo_lexer.rl" +#line 728 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); @@ -2333,7 +2353,7 @@ _eof_trans: }} break; case 94: -#line 721 "lib/eolian/eo_lexer.rl" +#line 741 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -2342,7 +2362,7 @@ _eof_trans: }} break; case 95: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2361,11 +2381,11 @@ _eof_trans: }} break; case 96: -#line 731 "lib/eolian/eo_lexer.rl" +#line 751 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 97: -#line 721 "lib/eolian/eo_lexer.rl" +#line 741 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -2374,7 +2394,7 @@ _eof_trans: }} break; case 98: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2393,7 +2413,7 @@ _eof_trans: }} break; case 99: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2412,7 +2432,7 @@ _eof_trans: }} break; case 100: -#line 740 "lib/eolian/eo_lexer.rl" +#line 760 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -2421,24 +2441,24 @@ _eof_trans: }} break; case 101: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 102: -#line 758 "lib/eolian/eo_lexer.rl" +#line 778 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 103: -#line 761 "lib/eolian/eo_lexer.rl" +#line 781 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 104: -#line 764 "lib/eolian/eo_lexer.rl" +#line 784 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; @@ -2447,7 +2467,7 @@ _eof_trans: }} break; case 105: -#line 771 "lib/eolian/eo_lexer.rl" +#line 791 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; @@ -2456,7 +2476,7 @@ _eof_trans: }} break; case 106: -#line 778 "lib/eolian/eo_lexer.rl" +#line 798 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; @@ -2464,7 +2484,7 @@ _eof_trans: }} break; case 107: -#line 784 "lib/eolian/eo_lexer.rl" +#line 804 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; @@ -2473,7 +2493,7 @@ _eof_trans: }} break; case 108: -#line 791 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); @@ -2484,7 +2504,7 @@ _eof_trans: }} break; case 109: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2503,33 +2523,33 @@ _eof_trans: }} break; case 110: -#line 938 "lib/eolian/eo_lexer.rl" +#line 958 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 111: -#line 941 "lib/eolian/eo_lexer.rl" +#line 961 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 942 "lib/eolian/eo_lexer.rl" +#line 962 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 943 "lib/eolian/eo_lexer.rl" +#line 963 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 758 "lib/eolian/eo_lexer.rl" +#line 778 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 115: -#line 761 "lib/eolian/eo_lexer.rl" +#line 781 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 116: -#line 791 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); @@ -2540,7 +2560,7 @@ _eof_trans: }} break; case 117: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2559,7 +2579,7 @@ _eof_trans: }} break; case 118: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2578,14 +2598,14 @@ _eof_trans: }} break; case 119: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 120: -#line 956 "lib/eolian/eo_lexer.rl" +#line 976 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("begin class: %s", toknz->tmp.kls->name); @@ -2594,7 +2614,7 @@ _eof_trans: }} break; case 121: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2613,11 +2633,11 @@ _eof_trans: }} break; case 122: -#line 991 "lib/eolian/eo_lexer.rl" +#line 1011 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 123: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2636,7 +2656,7 @@ _eof_trans: }} break; case 124: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2654,7 +2674,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2658 "lib/eolian/eo_lexer.c" +#line 2678 "lib/eolian/eo_lexer.c" } } @@ -2667,7 +2687,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2671 "lib/eolian/eo_lexer.c" +#line 2691 "lib/eolian/eo_lexer.c" } } @@ -2685,12 +2705,12 @@ _again: _out: {} } -#line 1046 "lib/eolian/eo_lexer.rl" +#line 1066 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 2692 "lib/eolian/eo_lexer.c" +#line 2712 "lib/eolian/eo_lexer.c" -1 -#line 1047 "lib/eolian/eo_lexer.rl" +#line 1067 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -2736,7 +2756,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns Eina_Bool ret = EINA_TRUE; -#line 2740 "lib/eolian/eo_lexer.c" +#line 2760 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -2744,7 +2764,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->act = 0; } -#line 1092 "lib/eolian/eo_lexer.rl" +#line 1112 "lib/eolian/eo_lexer.rl" toknz->p = buffer; @@ -2753,7 +2773,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->eof = toknz->pe; -#line 2757 "lib/eolian/eo_lexer.c" +#line 2777 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -2772,7 +2792,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 2776 "lib/eolian/eo_lexer.c" +#line 2796 "lib/eolian/eo_lexer.c" } } @@ -2839,28 +2859,28 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 337 "lib/eolian/eo_lexer.rl" +#line 355 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 342 "lib/eolian/eo_lexer.rl" +#line 360 "lib/eolian/eo_lexer.rl" { toknz->saved.line = toknz->current_line; DBG("save line[%d] %d", toknz->cs, toknz->current_line); } break; case 2: -#line 347 "lib/eolian/eo_lexer.rl" +#line 365 "lib/eolian/eo_lexer.rl" { toknz->saved.tok = ( toknz->p); DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p)); } break; case 3: -#line 421 "lib/eolian/eo_lexer.rl" +#line 441 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -2869,7 +2889,7 @@ _eof_trans: } break; case 4: -#line 428 "lib/eolian/eo_lexer.rl" +#line 448 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -2880,20 +2900,20 @@ _eof_trans: } break; case 5: -#line 437 "lib/eolian/eo_lexer.rl" +#line 457 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 6: -#line 451 "lib/eolian/eo_lexer.rl" +#line 471 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; case 7: -#line 455 "lib/eolian/eo_lexer.rl" +#line 475 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -2904,7 +2924,7 @@ _eof_trans: } break; case 8: -#line 484 "lib/eolian/eo_lexer.rl" +#line 504 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -2914,7 +2934,7 @@ _eof_trans: } break; case 9: -#line 492 "lib/eolian/eo_lexer.rl" +#line 512 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -2925,7 +2945,7 @@ _eof_trans: } break; case 10: -#line 592 "lib/eolian/eo_lexer.rl" +#line 612 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); @@ -2933,7 +2953,7 @@ _eof_trans: } break; case 11: -#line 632 "lib/eolian/eo_lexer.rl" +#line 652 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -2942,7 +2962,7 @@ _eof_trans: } break; case 12: -#line 639 "lib/eolian/eo_lexer.rl" +#line 659 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -2953,14 +2973,14 @@ _eof_trans: } break; case 13: -#line 648 "lib/eolian/eo_lexer.rl" +#line 668 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; case 14: -#line 653 "lib/eolian/eo_lexer.rl" +#line 673 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; @@ -2968,7 +2988,7 @@ _eof_trans: } break; case 15: -#line 715 "lib/eolian/eo_lexer.rl" +#line 735 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); @@ -2976,14 +2996,14 @@ _eof_trans: } break; case 16: -#line 747 "lib/eolian/eo_lexer.rl" +#line 767 "lib/eolian/eo_lexer.rl" { const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base); } break; case 17: -#line 752 "lib/eolian/eo_lexer.rl" +#line 772 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; @@ -2991,7 +3011,7 @@ _eof_trans: } break; case 18: -#line 800 "lib/eolian/eo_lexer.rl" +#line 820 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); @@ -2999,7 +3019,7 @@ _eof_trans: } break; case 19: -#line 806 "lib/eolian/eo_lexer.rl" +#line 826 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -3009,7 +3029,7 @@ _eof_trans: } break; case 20: -#line 814 "lib/eolian/eo_lexer.rl" +#line 834 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -3018,7 +3038,7 @@ _eof_trans: } break; case 21: -#line 823 "lib/eolian/eo_lexer.rl" +#line 843 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -3027,7 +3047,7 @@ _eof_trans: } break; case 22: -#line 832 "lib/eolian/eo_lexer.rl" +#line 852 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -3036,7 +3056,7 @@ _eof_trans: } break; case 23: -#line 845 "lib/eolian/eo_lexer.rl" +#line 865 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); @@ -3044,7 +3064,7 @@ _eof_trans: } break; case 24: -#line 851 "lib/eolian/eo_lexer.rl" +#line 871 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -3053,7 +3073,7 @@ _eof_trans: } break; case 25: -#line 858 "lib/eolian/eo_lexer.rl" +#line 878 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3062,7 +3082,7 @@ _eof_trans: } break; case 26: -#line 865 "lib/eolian/eo_lexer.rl" +#line 885 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -3073,7 +3093,7 @@ _eof_trans: } break; case 27: -#line 874 "lib/eolian/eo_lexer.rl" +#line 894 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -3081,7 +3101,7 @@ _eof_trans: } break; case 28: -#line 880 "lib/eolian/eo_lexer.rl" +#line 900 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); @@ -3089,7 +3109,7 @@ _eof_trans: } break; case 29: -#line 886 "lib/eolian/eo_lexer.rl" +#line 906 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3098,7 +3118,7 @@ _eof_trans: } break; case 30: -#line 893 "lib/eolian/eo_lexer.rl" +#line 913 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3107,31 +3127,31 @@ _eof_trans: } break; case 31: -#line 963 "lib/eolian/eo_lexer.rl" +#line 983 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 32: -#line 966 "lib/eolian/eo_lexer.rl" +#line 986 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; case 33: -#line 969 "lib/eolian/eo_lexer.rl" +#line 989 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; case 34: -#line 972 "lib/eolian/eo_lexer.rl" +#line 992 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 35: -#line 976 "lib/eolian/eo_lexer.rl" +#line 996 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -3144,7 +3164,7 @@ _eof_trans: { toknz->te = ( toknz->p)+1;} break; case 39: -#line 413 "lib/eolian/eo_lexer.rl" +#line 433 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -3154,22 +3174,22 @@ _eof_trans: }} break; case 40: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 41: -#line 476 "lib/eolian/eo_lexer.rl" +#line 496 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 42: -#line 477 "lib/eolian/eo_lexer.rl" +#line 497 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 43: -#line 442 "lib/eolian/eo_lexer.rl" +#line 462 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -3180,7 +3200,7 @@ _eof_trans: }} break; case 44: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3199,15 +3219,15 @@ _eof_trans: }} break; case 45: -#line 472 "lib/eolian/eo_lexer.rl" +#line 492 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 46: -#line 475 "lib/eolian/eo_lexer.rl" +#line 495 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 47: -#line 442 "lib/eolian/eo_lexer.rl" +#line 462 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); @@ -3218,7 +3238,7 @@ _eof_trans: }} break; case 48: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3237,11 +3257,11 @@ _eof_trans: }} break; case 49: -#line 475 "lib/eolian/eo_lexer.rl" +#line 495 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 50: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3260,14 +3280,14 @@ _eof_trans: }} break; case 51: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 52: -#line 501 "lib/eolian/eo_lexer.rl" +#line 521 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; @@ -3281,7 +3301,7 @@ _eof_trans: }} break; case 53: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3300,15 +3320,15 @@ _eof_trans: }} break; case 54: -#line 517 "lib/eolian/eo_lexer.rl" +#line 537 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 55: -#line 519 "lib/eolian/eo_lexer.rl" +#line 539 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 56: -#line 501 "lib/eolian/eo_lexer.rl" +#line 521 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; @@ -3322,7 +3342,7 @@ _eof_trans: }} break; case 57: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3341,11 +3361,11 @@ _eof_trans: }} break; case 58: -#line 519 "lib/eolian/eo_lexer.rl" +#line 539 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 59: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3364,14 +3384,14 @@ _eof_trans: }} break; case 60: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 61: -#line 526 "lib/eolian/eo_lexer.rl" +#line 546 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); @@ -3380,7 +3400,7 @@ _eof_trans: }} break; case 62: -#line 533 "lib/eolian/eo_lexer.rl" +#line 553 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); @@ -3389,7 +3409,7 @@ _eof_trans: }} break; case 63: -#line 540 "lib/eolian/eo_lexer.rl" +#line 560 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; @@ -3398,7 +3418,7 @@ _eof_trans: }} break; case 64: -#line 547 "lib/eolian/eo_lexer.rl" +#line 567 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; @@ -3407,7 +3427,7 @@ _eof_trans: }} break; case 65: -#line 554 "lib/eolian/eo_lexer.rl" +#line 574 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->values) == 0) @@ -3422,7 +3442,7 @@ _eof_trans: }} break; case 66: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3441,11 +3461,11 @@ _eof_trans: }} break; case 67: -#line 573 "lib/eolian/eo_lexer.rl" +#line 593 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 68: -#line 554 "lib/eolian/eo_lexer.rl" +#line 574 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->values) == 0) @@ -3460,7 +3480,7 @@ _eof_trans: }} break; case 69: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3479,7 +3499,7 @@ _eof_trans: }} break; case 70: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3498,14 +3518,14 @@ _eof_trans: }} break; case 71: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 72: -#line 585 "lib/eolian/eo_lexer.rl" +#line 605 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); @@ -3514,7 +3534,7 @@ _eof_trans: }} break; case 73: -#line 598 "lib/eolian/eo_lexer.rl" +#line 618 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; @@ -3522,7 +3542,7 @@ _eof_trans: }} break; case 74: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3541,11 +3561,11 @@ _eof_trans: }} break; case 75: -#line 607 "lib/eolian/eo_lexer.rl" +#line 627 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 76: -#line 598 "lib/eolian/eo_lexer.rl" +#line 618 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; @@ -3553,7 +3573,7 @@ _eof_trans: }} break; case 77: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3572,7 +3592,7 @@ _eof_trans: }} break; case 78: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3591,7 +3611,7 @@ _eof_trans: }} break; case 79: -#line 616 "lib/eolian/eo_lexer.rl" +#line 636 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -3601,14 +3621,14 @@ _eof_trans: }} break; case 80: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 81: -#line 624 "lib/eolian/eo_lexer.rl" +#line 644 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); @@ -3618,15 +3638,15 @@ _eof_trans: }} break; case 82: -#line 700 "lib/eolian/eo_lexer.rl" +#line 720 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 83: -#line 701 "lib/eolian/eo_lexer.rl" +#line 721 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; case 84: -#line 659 "lib/eolian/eo_lexer.rl" +#line 679 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3654,7 +3674,7 @@ _eof_trans: }} break; case 85: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3673,15 +3693,15 @@ _eof_trans: }} break; case 86: -#line 695 "lib/eolian/eo_lexer.rl" +#line 715 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 87: -#line 699 "lib/eolian/eo_lexer.rl" +#line 719 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 88: -#line 659 "lib/eolian/eo_lexer.rl" +#line 679 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3709,7 +3729,7 @@ _eof_trans: }} break; case 89: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3728,11 +3748,11 @@ _eof_trans: }} break; case 90: -#line 699 "lib/eolian/eo_lexer.rl" +#line 719 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; case 91: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3751,14 +3771,14 @@ _eof_trans: }} break; case 92: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 93: -#line 708 "lib/eolian/eo_lexer.rl" +#line 728 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); @@ -3767,7 +3787,7 @@ _eof_trans: }} break; case 94: -#line 721 "lib/eolian/eo_lexer.rl" +#line 741 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -3776,7 +3796,7 @@ _eof_trans: }} break; case 95: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3795,11 +3815,11 @@ _eof_trans: }} break; case 96: -#line 731 "lib/eolian/eo_lexer.rl" +#line 751 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 97: -#line 721 "lib/eolian/eo_lexer.rl" +#line 741 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -3808,7 +3828,7 @@ _eof_trans: }} break; case 98: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3827,7 +3847,7 @@ _eof_trans: }} break; case 99: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3846,7 +3866,7 @@ _eof_trans: }} break; case 100: -#line 740 "lib/eolian/eo_lexer.rl" +#line 760 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -3855,24 +3875,24 @@ _eof_trans: }} break; case 101: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 102: -#line 758 "lib/eolian/eo_lexer.rl" +#line 778 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 103: -#line 761 "lib/eolian/eo_lexer.rl" +#line 781 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; case 104: -#line 764 "lib/eolian/eo_lexer.rl" +#line 784 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; @@ -3881,7 +3901,7 @@ _eof_trans: }} break; case 105: -#line 771 "lib/eolian/eo_lexer.rl" +#line 791 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; @@ -3890,7 +3910,7 @@ _eof_trans: }} break; case 106: -#line 778 "lib/eolian/eo_lexer.rl" +#line 798 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; @@ -3898,7 +3918,7 @@ _eof_trans: }} break; case 107: -#line 784 "lib/eolian/eo_lexer.rl" +#line 804 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; @@ -3907,7 +3927,7 @@ _eof_trans: }} break; case 108: -#line 791 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); @@ -3918,7 +3938,7 @@ _eof_trans: }} break; case 109: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3937,33 +3957,33 @@ _eof_trans: }} break; case 110: -#line 938 "lib/eolian/eo_lexer.rl" +#line 958 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 111: -#line 941 "lib/eolian/eo_lexer.rl" +#line 961 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 942 "lib/eolian/eo_lexer.rl" +#line 962 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 943 "lib/eolian/eo_lexer.rl" +#line 963 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 758 "lib/eolian/eo_lexer.rl" +#line 778 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 115: -#line 761 "lib/eolian/eo_lexer.rl" +#line 781 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; case 116: -#line 791 "lib/eolian/eo_lexer.rl" +#line 811 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); @@ -3974,7 +3994,7 @@ _eof_trans: }} break; case 117: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3993,7 +4013,7 @@ _eof_trans: }} break; case 118: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4012,14 +4032,14 @@ _eof_trans: }} break; case 119: -#line 352 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; case 120: -#line 956 "lib/eolian/eo_lexer.rl" +#line 976 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("begin class: %s", toknz->tmp.kls->name); @@ -4028,7 +4048,7 @@ _eof_trans: }} break; case 121: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4047,11 +4067,11 @@ _eof_trans: }} break; case 122: -#line 991 "lib/eolian/eo_lexer.rl" +#line 1011 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 123: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4070,7 +4090,7 @@ _eof_trans: }} break; case 124: -#line 361 "lib/eolian/eo_lexer.rl" +#line 379 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4088,7 +4108,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 4092 "lib/eolian/eo_lexer.c" +#line 4112 "lib/eolian/eo_lexer.c" } } @@ -4101,7 +4121,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 4105 "lib/eolian/eo_lexer.c" +#line 4125 "lib/eolian/eo_lexer.c" } } @@ -4119,12 +4139,12 @@ _again: _out: {} } -#line 1100 "lib/eolian/eo_lexer.rl" +#line 1120 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 4126 "lib/eolian/eo_lexer.c" +#line 4146 "lib/eolian/eo_lexer.c" -1 -#line 1101 "lib/eolian/eo_lexer.rl" +#line 1121 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -4393,6 +4413,8 @@ eo_tokenizer_database_fill(const char *filename) accessor->type == SETTER?SET:GET, accessor->ret->warn_unused); database_function_return_flag_set_own(foo_id, accessor->type == SETTER?SET:GET, accessor->ret->own); + database_function_return_dflt_val_set(foo_id, + accessor->type == SETTER?SET:GET, accessor->ret->dflt_ret_val); } if (accessor->legacy) { @@ -4434,8 +4456,11 @@ eo_tokenizer_database_fill(const char *filename) { 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_return_flag_set_as_warn_unused(foo_id, + METHOD_FUNC, meth->ret->warn_unused); database_function_return_flag_set_own(foo_id, METHOD_FUNC, meth->ret->own); + database_function_return_dflt_val_set(foo_id, + METHOD_FUNC, meth->ret->dflt_ret_val); } database_function_description_set(foo_id, EOLIAN_COMMENT, meth->comment); database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index 68e21a8..6ee8536 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -263,6 +263,24 @@ _eo_tokenizer_return_get(Eo_Tokenizer *toknz, char *p) ret->own = EINA_TRUE; memset(s, ' ', 4); } + s = strchr(toknz->saved.tok, '('); + if (s) + { + char *end = strchr(s, ')'); + if (!end) + ABORT(toknz, "wrong syntax (missing ')'): %s", + _eo_tokenizer_token_get(toknz, p)); + /* Current values in s and end have to be changed to ' ' to not disturb the next steps (type extraction) */ + *s++ = ' '; + while (*s == ' ') s++; + *end-- = ' '; + while (end > s && *end == ' ') end--; + if (end < s) + ABORT(toknz, "empty default return value: %s", + _eo_tokenizer_token_get(toknz, p)); + ret->dflt_ret_val = strndup(s, end - s + 1); + memset(s, ' ', end - s + 1); + } *p = ';'; s = p - 1; /* Don't look at the character ';' */ /* Remove any space between the param name and ';' @@ -400,6 +418,8 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) list_separator = ','; colon = ':'; + # chars allowed on the return line. + return_char = (alnum_u | '*' | ws | '@' | '(' | ')' | '.' | '-'); }%% %%{ @@ -462,7 +482,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) } rettype_comment = ws* eo_comment %end_accessor_rettype_comment; - rettype = 'return' ws+ alpha+ >save_fpc (alnum_u | '*' | ws | '@')+ %end_accessor_return end_statement rettype_comment?; + rettype = 'return' ws+ alpha+ >save_fpc return_char+ %end_accessor_return end_statement rettype_comment?; legacy = 'legacy' ws+ ident %end_accessor_legacy end_statement; @@ -687,7 +707,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) meth_legacy = 'legacy' ws+ ident %end_method_legacy end_statement; 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 return_char+ %end_method_rettype end_statement meth_rettype_comment?; meth_obj_const = 'const' %end_method_obj_const end_statement; @@ -1366,6 +1386,8 @@ eo_tokenizer_database_fill(const char *filename) accessor->type == SETTER?SET:GET, accessor->ret->warn_unused); database_function_return_flag_set_own(foo_id, accessor->type == SETTER?SET:GET, accessor->ret->own); + database_function_return_dflt_val_set(foo_id, + accessor->type == SETTER?SET:GET, accessor->ret->dflt_ret_val); } if (accessor->legacy) { @@ -1407,8 +1429,11 @@ eo_tokenizer_database_fill(const char *filename) { 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_return_flag_set_as_warn_unused(foo_id, + METHOD_FUNC, meth->ret->warn_unused); database_function_return_flag_set_own(foo_id, METHOD_FUNC, meth->ret->own); + database_function_return_dflt_val_set(foo_id, + METHOD_FUNC, meth->ret->dflt_ret_val); } database_function_description_set(foo_id, EOLIAN_COMMENT, meth->comment); database_function_data_set(foo_id, EOLIAN_LEGACY, meth->legacy); diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 3194d49..a77759d 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -1,6 +1,10 @@ #include #include "eolian_database.h" +#define PROP_GET_RETURN_DFLT_VAL "property_get_return_dflt_val" +#define PROP_SET_RETURN_DFLT_VAL "property_set_return_dflt_val" +#define METHOD_RETURN_DFLT_VAL "method_return_dflt_val" + static Eina_Hash *_classes = NULL; static int _database_init_count = 0; @@ -851,6 +855,33 @@ eolian_function_return_type_get(Eolian_Function foo_id, Eolian_Function_Type fty return ret; } +void database_function_return_dflt_val_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_dflt_value) +{ + const char *key = NULL; + switch (ftype) + { + case SET: key = PROP_SET_RETURN_DFLT_VAL; break; + case GET: key = PROP_GET_RETURN_DFLT_VAL; break; + case METHOD_FUNC: key = METHOD_RETURN_DFLT_VAL; break; + default: return; + } + database_function_data_set(foo_id, key, ret_dflt_value); +} + +EAPI const char * +eolian_function_return_dflt_value_get(Eolian_Function foo_id, Eolian_Function_Type ftype) +{ + const char *key = NULL; + switch (ftype) + { + case SET: key = PROP_SET_RETURN_DFLT_VAL; break; + case GET: key = PROP_GET_RETURN_DFLT_VAL; break; + case UNRESOLVED: case METHOD_FUNC: key = METHOD_RETURN_DFLT_VAL; break; + default: return NULL; + } + return eolian_function_data_get(foo_id, key); +} + EAPI const char * eolian_function_return_comment_get(Eolian_Function foo_id, Eolian_Function_Type ftype) { diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index da57bfc..8de18eb 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -94,6 +94,8 @@ void database_parameter_own_set(Eolian_Function_Parameter, Eina_Bool own); void database_function_return_type_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_type); +void database_function_return_dflt_val_set(Eolian_Function foo_id, Eolian_Function_Type ftype, const char *ret_dflt_value); + void database_function_return_flag_set_as_warn_unused(Eolian_Function foo_id, Eolian_Function_Type ftype, Eina_Bool warn_unused); -- 2.7.4