From 0eb092d1575c97518b16e494f659743a1dd45619 Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Wed, 2 Apr 2014 14:04:12 +0300 Subject: [PATCH] Eolian/Lexer: support data type for events. --- src/bin/eolian/eo1_generator.c | 6 +- src/lib/eolian/Eolian.h | 2 +- src/lib/eolian/eo_definitions.c | 2 + src/lib/eolian/eo_definitions.h | 1 + src/lib/eolian/eo_lexer.c | 1558 +++++++++++++++++++------------------- src/lib/eolian/eo_lexer.rl | 14 +- src/lib/eolian/eolian_database.c | 13 +- src/lib/eolian/eolian_database.h | 2 +- 8 files changed, 822 insertions(+), 776 deletions(-) diff --git a/src/bin/eolian/eo1_generator.c b/src/bin/eolian/eo1_generator.c index 1b4887e..52a4ef7 100644 --- a/src/bin/eolian/eo1_generator.c +++ b/src/bin/eolian/eo1_generator.c @@ -286,7 +286,7 @@ eo1_header_generate(const char *classname, Eina_Strbuf *buf) { const char *evname = NULL; const char *evdesc = NULL; - eolian_class_event_information_get(event, &evname, &evdesc); + eolian_class_event_information_get(event, &evname, NULL, &evdesc); if (!evdesc) evdesc = "No description"; eina_strbuf_reset(tmpbuf); @@ -553,7 +553,7 @@ eo1_source_beginning_generate(const char *classname, Eina_Strbuf *buf) const char *evdesc; char *evdesc_line1; - eolian_class_event_information_get(event, &evname, &evdesc); + eolian_class_event_information_get(event, &evname, NULL, &evdesc); evdesc_line1 = _source_desc_get(evdesc); _template_fill(str_ev, "@#CLASS_EVENT_@#FUNC", classname, evname, EINA_TRUE); eina_strbuf_replace_all(str_ev, ",", "_"); @@ -810,7 +810,7 @@ eo1_source_end_generate(const char *classname, Eina_Strbuf *buf) { const char *evname; - eolian_class_event_information_get(event, &evname, NULL); + eolian_class_event_information_get(event, &evname, NULL, NULL); _template_fill(tmpbuf, "@#CLASS_EVENT_@#FUNC", classname, evname, EINA_TRUE); eina_strbuf_replace_all(tmpbuf, ",", "_"); eina_strbuf_append_printf(str_ev, "\n %s,", eina_strbuf_string_get(tmpbuf)); diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 951e521..a909f47 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -578,7 +578,7 @@ EAPI const Eina_List *eolian_class_events_list_get(const char *class_name); * * @ingroup Eolian */ -EAPI Eina_Bool eolian_class_event_information_get(Eolian_Event event, const char **event_name, const char **event_desc); +EAPI Eina_Bool eolian_class_event_information_get(Eolian_Event event, const char **event_name, const char **event_type, const char **event_desc); /* * @brief Indicates if the class constructor has to invoke diff --git a/src/lib/eolian/eo_definitions.c b/src/lib/eolian/eo_definitions.c index 11d860e..797de2f 100644 --- a/src/lib/eolian/eo_definitions.c +++ b/src/lib/eolian/eo_definitions.c @@ -95,6 +95,8 @@ eo_definitions_event_def_free(Eo_Event_Def *sgn) { if (sgn->name) eina_stringshare_del(sgn->name); + if (sgn->type) + eina_stringshare_del(sgn->type); if (sgn->comment) eina_stringshare_del(sgn->comment); diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index e915c24..76f4a7d 100644 --- a/src/lib/eolian/eo_definitions.h +++ b/src/lib/eolian/eo_definitions.h @@ -94,6 +94,7 @@ typedef struct _eo_method_def typedef struct _eo_event_def { const char *name; + const char *type; const char *comment; } Eo_Event_Def; diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index a5dd80d..aa1ea91 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -364,7 +364,7 @@ static const char _eo_tokenizer_actions[] = { 26, 1, 27, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, - 38, 1, 39, 1, 40, 1, 43, 1, + 38, 1, 39, 1, 40, 1, 41, 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, @@ -374,7 +374,7 @@ static const char _eo_tokenizer_actions[] = { 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 1, 79, 1, - 80, 1, 81, 1, 84, 1, 85, 1, + 80, 1, 81, 1, 82, 1, 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, @@ -384,22 +384,23 @@ static const char _eo_tokenizer_actions[] = { 110, 1, 111, 1, 112, 1, 113, 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, 1, 120, 1, 121, 1, - 122, 1, 123, 1, 124, 2, 0, 40, - 2, 0, 51, 2, 0, 60, 2, 0, - 71, 2, 0, 80, 2, 0, 92, 2, - 0, 101, 2, 0, 119, 2, 4, 46, - 2, 5, 41, 2, 6, 2, 2, 7, - 42, 2, 8, 55, 2, 10, 0, 2, - 10, 72, 2, 12, 87, 2, 13, 82, - 2, 14, 83, 2, 15, 0, 2, 15, - 93, 2, 16, 0, 2, 17, 0, 2, - 17, 120, 2, 18, 0, 2, 19, 0, - 2, 19, 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, 120, 2, 38, - 1, 2, 38, 2, 2, 38, 3, 2, - 38, 9, 2, 38, 11 + 122, 1, 123, 1, 124, 1, 125, 2, + 0, 41, 2, 0, 52, 2, 0, 61, + 2, 0, 72, 2, 0, 81, 2, 0, + 93, 2, 0, 102, 2, 0, 120, 2, + 4, 47, 2, 5, 42, 2, 6, 2, + 2, 7, 43, 2, 8, 56, 2, 10, + 0, 2, 10, 73, 2, 12, 88, 2, + 13, 83, 2, 14, 84, 2, 15, 0, + 2, 15, 94, 2, 16, 0, 2, 17, + 0, 2, 17, 121, 2, 18, 0, 2, + 19, 0, 2, 20, 0, 2, 20, 2, + 2, 24, 0, 2, 25, 0, 2, 25, + 2, 2, 26, 0, 2, 28, 0, 2, + 29, 0, 2, 29, 2, 2, 36, 0, + 2, 36, 121, 2, 39, 1, 2, 39, + 2, 2, 39, 3, 2, 39, 9, 2, + 39, 11 }; static const short _eo_tokenizer_key_offsets[] = { @@ -426,28 +427,28 @@ static const short _eo_tokenizer_key_offsets[] = { 637, 641, 648, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 669, 670, 671, 672, 673, 674, 675, 676, 680, 687, 695, - 696, 697, 698, 699, 703, 711, 723, 727, - 739, 740, 741, 751, 753, 756, 764, 765, - 766, 767, 768, 769, 770, 771, 772, 776, - 784, 797, 802, 806, 807, 808, 809, 810, - 811, 823, 828, 832, 841, 845, 846, 847, - 848, 849, 850, 854, 863, 870, 881, 885, - 899, 909, 921, 926, 932, 937, 938, 939, - 940, 941, 942, 945, 952, 960, 961, 965, - 973, 977, 982, 983, 984, 994, 996, 999, - 1009, 1021, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1049, - 1056, 1064, 1065, 1066, 1067, 1068, 1069, 1073, - 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, - 1085, 1093, 1096, 1098, 1099, 1100, 1101, 1102, - 1113, 1116, 1118, 1129, 1141, 1153, 1157, 1157, - 1158, 1167, 1170, 1172, 1183, 1187, 1187, 1188, - 1197, 1200, 1202, 1203, 1204, 1205, 1206, 1207, - 1218, 1221, 1223, 1230, 1231, 1240, 1243, 1245, - 1246, 1247, 1248, 1249, 1253, 1253, 1254, 1265, - 1268, 1270, 1277, 1278, 1290, 1293, 1295, 1296, - 1298, 1301, 1303, 1306, 1307, 1308, 1309, 1310, - 1313, 1314, 1315 + 696, 697, 698, 699, 703, 711, 727, 731, + 743, 744, 745, 755, 757, 760, 768, 776, + 784, 796, 800, 801, 802, 803, 804, 805, + 806, 807, 808, 812, 820, 833, 838, 842, + 843, 844, 845, 846, 847, 859, 864, 868, + 877, 881, 882, 883, 884, 885, 886, 890, + 899, 906, 917, 921, 935, 945, 957, 962, + 968, 973, 974, 975, 976, 977, 978, 981, + 988, 996, 997, 1001, 1009, 1013, 1018, 1019, + 1020, 1030, 1032, 1035, 1045, 1057, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1085, 1092, 1100, 1101, 1102, + 1103, 1104, 1105, 1109, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1117, 1121, 1129, 1132, 1134, + 1135, 1136, 1137, 1138, 1149, 1152, 1154, 1165, + 1177, 1189, 1193, 1193, 1194, 1203, 1206, 1208, + 1219, 1223, 1223, 1224, 1233, 1236, 1238, 1239, + 1240, 1241, 1242, 1243, 1254, 1257, 1259, 1266, + 1267, 1276, 1279, 1281, 1282, 1283, 1284, 1285, + 1289, 1289, 1290, 1301, 1304, 1306, 1313, 1314, + 1326, 1329, 1331, 1332, 1334, 1337, 1339, 1342, + 1343, 1344, 1345, 1346, 1349, 1350, 1351 }; static const char _eo_tokenizer_trans_keys[] = { @@ -539,83 +540,88 @@ static const char _eo_tokenizer_trans_keys[] = { 10, 0, 32, 65, 90, 97, 122, 59, 95, 48, 57, 65, 90, 97, 122, 101, 110, 116, 115, 10, 123, 0, 32, 10, - 125, 0, 32, 65, 90, 97, 122, 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, + 125, 0, 32, 65, 90, 97, 122, 9, + 10, 13, 32, 40, 44, 59, 95, 0, + 31, 48, 57, 65, 90, 97, 122, 10, + 59, 0, 32, 9, 10, 13, 32, 47, + 125, 0, 31, 65, 90, 97, 122, 42, + 64, 10, 95, 0, 32, 48, 57, 64, + 90, 97, 122, 10, 42, 10, 42, 47, 10, 125, 0, 32, 65, 90, 97, 122, - 10, 58, 59, 95, 123, 0, 32, 48, - 57, 65, 90, 97, 122, 10, 59, 123, - 0, 32, 10, 108, 0, 32, 101, 103, - 97, 99, 121, 9, 10, 13, 32, 59, - 123, 0, 31, 65, 90, 97, 122, 10, - 59, 123, 0, 32, 10, 125, 0, 32, - 10, 59, 125, 0, 32, 65, 90, 97, - 122, 10, 112, 0, 32, 97, 114, 97, - 109, 115, 10, 123, 0, 32, 10, 58, - 59, 0, 32, 65, 90, 97, 122, 9, - 13, 32, 65, 90, 97, 122, 10, 59, - 95, 0, 32, 48, 57, 65, 90, 97, - 122, 10, 59, 0, 32, 9, 10, 13, - 32, 47, 58, 59, 125, 0, 31, 65, - 90, 97, 122, 10, 58, 59, 125, 0, - 32, 65, 90, 97, 122, 9, 13, 32, - 58, 59, 95, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 58, 59, 10, 59, - 114, 125, 0, 32, 10, 114, 125, 0, - 32, 101, 116, 117, 114, 110, 9, 13, - 32, 9, 13, 32, 65, 90, 97, 122, - 58, 95, 48, 57, 65, 90, 97, 122, - 58, 65, 90, 97, 122, 59, 95, 48, - 57, 65, 90, 97, 122, 10, 125, 0, - 32, 10, 59, 125, 0, 32, 42, 64, - 10, 95, 0, 32, 48, 57, 64, 90, - 97, 122, 10, 42, 10, 42, 47, 10, - 58, 59, 125, 0, 32, 65, 90, 97, - 122, 9, 10, 13, 32, 59, 123, 0, - 31, 65, 90, 97, 122, 10, 59, 95, + 9, 10, 13, 32, 40, 59, 0, 31, + 9, 13, 32, 95, 65, 90, 97, 122, + 9, 13, 32, 41, 42, 95, 48, 57, + 65, 90, 97, 122, 10, 59, 0, 32, + 112, 108, 101, 109, 101, 110, 116, 115, + 10, 123, 0, 32, 10, 125, 0, 32, + 65, 90, 97, 122, 10, 58, 59, 95, 123, 0, 32, 48, 57, 65, 90, 97, - 122, 58, 103, 97, 99, 121, 95, 112, - 114, 101, 102, 105, 120, 10, 58, 0, - 32, 10, 0, 32, 65, 90, 97, 122, - 59, 95, 48, 57, 65, 90, 97, 122, - 116, 104, 111, 100, 115, 10, 123, 0, - 32, 111, 112, 101, 114, 116, 105, 101, - 115, 10, 123, 0, 32, 10, 47, 97, - 99, 105, 109, 0, 32, 10, 0, 32, - 42, 47, 98, 108, 110, 105, 10, 47, - 108, 114, 125, 0, 32, 65, 90, 97, - 122, 10, 0, 32, 42, 47, 9, 13, - 32, 58, 95, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 58, 95, 101, 48, + 122, 10, 59, 123, 0, 32, 10, 108, + 0, 32, 101, 103, 97, 99, 121, 9, + 10, 13, 32, 59, 123, 0, 31, 65, + 90, 97, 122, 10, 59, 123, 0, 32, + 10, 125, 0, 32, 10, 59, 125, 0, + 32, 65, 90, 97, 122, 10, 112, 0, + 32, 97, 114, 97, 109, 115, 10, 123, + 0, 32, 10, 58, 59, 0, 32, 65, + 90, 97, 122, 9, 13, 32, 65, 90, + 97, 122, 10, 59, 95, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 59, 0, + 32, 9, 10, 13, 32, 47, 58, 59, + 125, 0, 31, 65, 90, 97, 122, 10, + 58, 59, 125, 0, 32, 65, 90, 97, + 122, 9, 13, 32, 58, 59, 95, 48, + 57, 65, 90, 97, 122, 9, 13, 32, + 58, 59, 10, 59, 114, 125, 0, 32, + 10, 114, 125, 0, 32, 101, 116, 117, + 114, 110, 9, 13, 32, 9, 13, 32, + 65, 90, 97, 122, 58, 95, 48, 57, + 65, 90, 97, 122, 58, 65, 90, 97, + 122, 59, 95, 48, 57, 65, 90, 97, + 122, 10, 125, 0, 32, 10, 59, 125, + 0, 32, 42, 64, 10, 95, 0, 32, + 48, 57, 64, 90, 97, 122, 10, 42, + 10, 42, 47, 10, 58, 59, 125, 0, + 32, 65, 90, 97, 122, 9, 10, 13, + 32, 59, 123, 0, 31, 65, 90, 97, + 122, 10, 59, 95, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 58, 103, 97, + 99, 121, 95, 112, 114, 101, 102, 105, + 120, 10, 58, 0, 32, 10, 0, 32, + 65, 90, 97, 122, 59, 95, 48, 57, + 65, 90, 97, 122, 116, 104, 111, 100, + 115, 10, 123, 0, 32, 111, 112, 101, + 114, 116, 105, 101, 115, 10, 123, 0, + 32, 10, 47, 97, 99, 105, 109, 0, + 32, 10, 0, 32, 42, 47, 98, 108, + 110, 105, 10, 47, 108, 114, 125, 0, + 32, 65, 90, 97, 122, 10, 0, 32, + 42, 47, 9, 13, 32, 58, 95, 48, 57, 65, 90, 97, 122, 9, 13, 32, 58, 95, 101, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 47, 59, 10, 47, - 125, 0, 32, 64, 90, 97, 122, 10, - 0, 32, 42, 47, 9, 13, 32, 42, - 95, 48, 57, 64, 90, 97, 122, 9, - 13, 32, 47, 59, 10, 47, 103, 107, - 115, 118, 125, 0, 32, 10, 0, 32, - 42, 47, 101, 101, 101, 97, 59, 10, - 47, 125, 0, 32, 48, 57, 65, 90, - 97, 122, 10, 0, 32, 42, 47, 95, - 48, 57, 65, 90, 97, 122, 59, 10, - 47, 99, 108, 112, 114, 125, 0, 32, - 10, 0, 32, 42, 47, 111, 101, 97, - 101, 9, 13, 32, 47, 59, 10, 47, - 125, 0, 32, 48, 57, 65, 90, 97, - 122, 10, 0, 32, 42, 47, 95, 48, - 57, 65, 90, 97, 122, 59, 10, 47, - 99, 100, 101, 105, 108, 109, 112, 125, - 0, 32, 10, 0, 32, 42, 47, 111, - 97, 101, 10, 0, 32, 111, 118, 10, - 0, 32, 59, 109, 59, 101, 10, 0, - 32, 101, 114, 59, 0 + 122, 9, 13, 32, 58, 95, 101, 48, + 57, 65, 90, 97, 122, 9, 13, 32, + 47, 59, 10, 47, 125, 0, 32, 64, + 90, 97, 122, 10, 0, 32, 42, 47, + 9, 13, 32, 42, 95, 48, 57, 64, + 90, 97, 122, 9, 13, 32, 47, 59, + 10, 47, 103, 107, 115, 118, 125, 0, + 32, 10, 0, 32, 42, 47, 101, 101, + 101, 97, 59, 10, 47, 125, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 0, + 32, 42, 47, 95, 48, 57, 65, 90, + 97, 122, 59, 10, 47, 99, 108, 112, + 114, 125, 0, 32, 10, 0, 32, 42, + 47, 111, 101, 97, 101, 9, 13, 32, + 47, 59, 10, 47, 125, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 0, 32, + 42, 47, 95, 48, 57, 65, 90, 97, + 122, 59, 10, 47, 99, 100, 101, 105, + 108, 109, 112, 125, 0, 32, 10, 0, + 32, 42, 47, 111, 97, 101, 10, 0, + 32, 111, 118, 10, 0, 32, 59, 109, + 59, 101, 10, 0, 32, 101, 114, 59, + 0 }; static const char _eo_tokenizer_single_lengths[] = { @@ -642,28 +648,28 @@ static const char _eo_tokenizer_single_lengths[] = { 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, - 1, 1, 1, 2, 2, 4, 2, 6, - 1, 1, 2, 2, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, - 5, 3, 2, 1, 1, 1, 1, 1, - 6, 3, 2, 3, 2, 1, 1, 1, - 1, 1, 2, 3, 3, 3, 2, 8, - 4, 6, 5, 4, 3, 1, 1, 1, - 1, 1, 3, 3, 2, 1, 0, 2, - 2, 3, 1, 1, 2, 2, 3, 4, - 6, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, - 2, 1, 1, 1, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 2, - 6, 1, 2, 1, 1, 1, 1, 5, - 1, 2, 5, 6, 6, 4, 0, 1, - 3, 1, 2, 5, 4, 0, 1, 7, - 1, 2, 1, 1, 1, 1, 1, 3, - 1, 2, 1, 1, 7, 1, 2, 1, - 1, 1, 1, 4, 0, 1, 3, 1, - 2, 1, 1, 10, 1, 2, 1, 2, - 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1 + 1, 1, 1, 2, 2, 8, 2, 6, + 1, 1, 2, 2, 3, 2, 6, 4, + 6, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 5, 3, 2, 1, + 1, 1, 1, 1, 6, 3, 2, 3, + 2, 1, 1, 1, 1, 1, 2, 3, + 3, 3, 2, 8, 4, 6, 5, 4, + 3, 1, 1, 1, 1, 1, 3, 3, + 2, 1, 0, 2, 2, 3, 1, 1, + 2, 2, 3, 4, 6, 4, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 2, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 6, 1, 2, 1, + 1, 1, 1, 5, 1, 2, 5, 6, + 6, 4, 0, 1, 3, 1, 2, 5, + 4, 0, 1, 7, 1, 2, 1, 1, + 1, 1, 1, 3, 1, 2, 1, 1, + 7, 1, 2, 1, 1, 1, 1, 4, + 0, 1, 3, 1, 2, 1, 1, 10, + 1, 2, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1 }; static const char _eo_tokenizer_range_lengths[] = { @@ -691,27 +697,27 @@ static const char _eo_tokenizer_range_lengths[] = { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 0, 0, 0, 0, 1, 3, 4, 1, 3, - 0, 0, 4, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 3, - 4, 1, 1, 0, 0, 0, 0, 0, - 3, 1, 1, 3, 1, 0, 0, 0, - 0, 0, 1, 3, 2, 4, 1, 3, - 3, 3, 0, 1, 1, 0, 0, 0, - 0, 0, 0, 2, 3, 0, 2, 3, - 1, 1, 0, 0, 4, 0, 0, 3, - 3, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 3, - 3, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 0, 0, 0, 0, 0, 3, - 1, 0, 3, 3, 3, 0, 0, 0, - 3, 1, 0, 3, 0, 0, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 4, - 1, 0, 3, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 1, - 0, 3, 0, 1, 1, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 1, - 0, 0, 0 + 0, 0, 4, 0, 0, 3, 1, 2, + 3, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 3, 4, 1, 1, 0, + 0, 0, 0, 0, 3, 1, 1, 3, + 1, 0, 0, 0, 0, 0, 1, 3, + 2, 4, 1, 3, 3, 3, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 2, + 3, 0, 2, 3, 1, 1, 0, 0, + 4, 0, 0, 3, 3, 4, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 3, 3, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, + 0, 0, 0, 3, 1, 0, 3, 3, + 3, 0, 0, 0, 3, 1, 0, 3, + 0, 0, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 4, 1, 0, 3, 0, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 1, 0, 3, 0, 1, + 1, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 1, 0, 0, 0 }; static const short _eo_tokenizer_index_offsets[] = { @@ -738,28 +744,28 @@ static const short _eo_tokenizer_index_offsets[] = { 661, 665, 670, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 698, 700, 702, 704, 706, 708, 710, 712, 716, 721, 727, - 729, 731, 733, 735, 739, 745, 754, 758, - 768, 770, 772, 779, 782, 786, 792, 794, - 796, 798, 800, 802, 804, 806, 808, 812, - 818, 828, 833, 837, 839, 841, 843, 845, - 847, 857, 862, 866, 873, 877, 879, 881, - 883, 885, 887, 891, 898, 904, 912, 916, - 928, 936, 946, 952, 958, 963, 965, 967, - 969, 971, 973, 977, 983, 989, 991, 994, - 1000, 1004, 1009, 1011, 1013, 1020, 1023, 1027, - 1035, 1045, 1054, 1056, 1058, 1060, 1062, 1064, - 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1082, - 1087, 1093, 1095, 1097, 1099, 1101, 1103, 1107, - 1109, 1111, 1113, 1115, 1117, 1119, 1121, 1123, - 1127, 1135, 1138, 1141, 1143, 1145, 1147, 1149, - 1158, 1161, 1164, 1173, 1183, 1193, 1198, 1199, - 1201, 1208, 1211, 1214, 1223, 1228, 1229, 1231, - 1240, 1243, 1246, 1248, 1250, 1252, 1254, 1256, - 1264, 1267, 1270, 1275, 1277, 1286, 1289, 1292, - 1294, 1296, 1298, 1300, 1305, 1306, 1308, 1316, - 1319, 1322, 1327, 1329, 1341, 1344, 1347, 1349, - 1352, 1355, 1358, 1361, 1363, 1365, 1367, 1369, - 1372, 1374, 1376 + 729, 731, 733, 735, 739, 745, 758, 762, + 772, 774, 776, 783, 786, 790, 796, 804, + 811, 821, 825, 827, 829, 831, 833, 835, + 837, 839, 841, 845, 851, 861, 866, 870, + 872, 874, 876, 878, 880, 890, 895, 899, + 906, 910, 912, 914, 916, 918, 920, 924, + 931, 937, 945, 949, 961, 969, 979, 985, + 991, 996, 998, 1000, 1002, 1004, 1006, 1010, + 1016, 1022, 1024, 1027, 1033, 1037, 1042, 1044, + 1046, 1053, 1056, 1060, 1068, 1078, 1087, 1089, + 1091, 1093, 1095, 1097, 1099, 1101, 1103, 1105, + 1107, 1109, 1111, 1115, 1120, 1126, 1128, 1130, + 1132, 1134, 1136, 1140, 1142, 1144, 1146, 1148, + 1150, 1152, 1154, 1156, 1160, 1168, 1171, 1174, + 1176, 1178, 1180, 1182, 1191, 1194, 1197, 1206, + 1216, 1226, 1231, 1232, 1234, 1241, 1244, 1247, + 1256, 1261, 1262, 1264, 1273, 1276, 1279, 1281, + 1283, 1285, 1287, 1289, 1297, 1300, 1303, 1308, + 1310, 1319, 1322, 1325, 1327, 1329, 1331, 1333, + 1338, 1339, 1341, 1349, 1352, 1355, 1360, 1362, + 1374, 1377, 1380, 1382, 1385, 1388, 1391, 1394, + 1396, 1398, 1400, 1402, 1405, 1407, 1409 }; static const short _eo_tokenizer_indicies[] = { @@ -856,242 +862,250 @@ static const short _eo_tokenizer_indicies[] = { 229, 286, 285, 285, 285, 285, 229, 287, 229, 288, 229, 289, 229, 290, 229, 291, 292, 290, 229, 293, 295, 292, 294, 294, - 229, 297, 298, 299, 298, 296, 298, 298, - 298, 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, 332, 333, 331, 334, 329, - 331, 331, 331, 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, - 372, 374, 373, 371, 373, 373, 373, 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, 383, 384, 382, 382, 382, - 382, 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, 398, - 397, 397, 397, 397, 229, 399, 229, 400, - 400, 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, 422, 424, 423, - 425, 421, 423, 423, 423, 229, 331, 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, 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, 71, 71, 71, 72, - 79, 79, 79, 79, 483, 71, 71, 71, - 72, 79, 485, 79, 79, 79, 483, 71, - 71, 71, 72, 79, 486, 79, 79, 79, - 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, 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, 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 + 229, 297, 298, 297, 297, 299, 300, 301, + 300, 296, 300, 300, 300, 229, 303, 304, + 302, 229, 304, 293, 304, 304, 305, 295, + 292, 294, 294, 229, 306, 229, 307, 229, + 308, 309, 307, 309, 309, 309, 229, 311, + 312, 310, 311, 312, 313, 310, 315, 317, + 314, 316, 316, 229, 318, 303, 318, 318, + 319, 304, 302, 229, 319, 319, 319, 320, + 320, 320, 229, 321, 321, 321, 322, 321, + 321, 321, 321, 321, 229, 324, 325, 323, + 229, 326, 229, 327, 229, 328, 229, 329, + 229, 330, 229, 331, 229, 332, 229, 333, + 229, 334, 335, 333, 229, 336, 338, 335, + 337, 337, 229, 340, 342, 343, 341, 344, + 339, 341, 341, 341, 229, 346, 335, 347, + 345, 229, 348, 349, 347, 229, 350, 229, + 351, 229, 352, 229, 353, 229, 354, 229, + 356, 357, 356, 356, 358, 360, 355, 359, + 359, 229, 362, 363, 364, 361, 229, 365, + 366, 363, 229, 336, 335, 338, 335, 337, + 337, 229, 367, 368, 364, 229, 369, 229, + 370, 229, 371, 229, 372, 229, 373, 229, + 374, 375, 373, 229, 376, 377, 378, 375, + 379, 379, 229, 377, 377, 377, 380, 380, + 229, 382, 384, 383, 381, 383, 383, 383, + 229, 386, 378, 385, 229, 378, 388, 378, + 378, 389, 377, 378, 390, 387, 379, 379, + 229, 388, 377, 378, 390, 387, 379, 379, + 229, 391, 391, 391, 393, 394, 392, 392, + 392, 392, 229, 395, 395, 395, 377, 378, + 229, 397, 396, 398, 399, 396, 229, 397, + 398, 399, 396, 229, 400, 229, 401, 229, + 402, 229, 403, 229, 404, 229, 405, 405, + 405, 229, 405, 405, 405, 406, 406, 229, + 408, 407, 407, 407, 407, 229, 409, 229, + 410, 410, 229, 412, 411, 411, 411, 411, + 229, 414, 399, 413, 229, 365, 363, 366, + 363, 229, 415, 229, 416, 229, 417, 418, + 416, 418, 418, 418, 229, 420, 421, 419, + 420, 421, 422, 419, 424, 425, 426, 428, + 423, 427, 427, 229, 429, 362, 429, 429, + 363, 364, 361, 430, 430, 229, 432, 434, + 433, 435, 431, 433, 433, 433, 229, 341, + 229, 436, 229, 437, 229, 438, 229, 439, + 229, 440, 229, 441, 229, 442, 229, 443, + 229, 444, 229, 445, 229, 446, 229, 447, + 448, 446, 229, 449, 448, 450, 450, 229, + 452, 451, 451, 451, 451, 229, 453, 229, + 454, 229, 455, 229, 456, 229, 457, 229, + 458, 459, 457, 229, 460, 229, 461, 229, + 462, 229, 463, 229, 464, 229, 465, 229, + 466, 229, 467, 229, 468, 469, 467, 229, + 472, 473, 474, 475, 476, 477, 471, 470, + 472, 471, 478, 1, 5, 479, 480, 479, + 481, 479, 482, 479, 483, 479, 486, 487, + 489, 490, 491, 485, 488, 488, 484, 486, + 485, 492, 494, 69, 493, 71, 71, 71, + 72, 79, 79, 79, 79, 493, 71, 71, + 71, 72, 79, 495, 79, 79, 79, 493, + 71, 71, 71, 72, 79, 496, 79, 79, + 79, 493, 97, 97, 97, 98, 497, 498, + 500, 499, 503, 504, 506, 502, 505, 505, + 501, 503, 502, 507, 108, 112, 508, 114, + 114, 114, 114, 114, 114, 114, 114, 508, + 117, 117, 117, 118, 509, 510, 512, 511, + 515, 516, 517, 518, 519, 520, 521, 514, + 513, 515, 514, 522, 128, 132, 523, 524, + 523, 525, 523, 526, 523, 527, 523, 529, + 528, 532, 533, 535, 531, 534, 534, 534, + 530, 532, 531, 536, 151, 155, 537, 159, + 159, 159, 159, 537, 539, 538, 542, 543, + 544, 545, 546, 547, 548, 541, 540, 542, + 541, 549, 551, 176, 550, 552, 550, 553, + 550, 554, 550, 555, 550, 205, 205, 205, + 206, 556, 557, 559, 558, 562, 563, 565, + 561, 564, 564, 564, 560, 562, 561, 566, + 216, 220, 567, 224, 224, 224, 224, 567, + 569, 568, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 571, 570, 572, 571, + 582, 584, 241, 583, 585, 583, 586, 587, + 583, 590, 589, 588, 591, 592, 583, 595, + 594, 593, 597, 596, 598, 583, 600, 599, + 601, 583, 604, 603, 602, 605, 583, 606, + 583, 608, 607, 0 }; static const short _eo_tokenizer_trans_targs[] = { - 288, 0, 0, 1, 288, 2, 288, 4, + 292, 0, 0, 1, 292, 2, 292, 4, 5, 6, 7, 8, 9, 10, 10, 11, - 12, 13, 12, 14, 11, 288, 12, 12, - 288, 13, 14, 15, 16, 12, 12, 288, + 12, 13, 12, 14, 11, 292, 12, 12, + 292, 13, 14, 15, 16, 12, 12, 292, 17, 17, 15, 18, 16, 17, 17, 18, 18, 20, 21, 22, 10, 24, 25, 26, 27, 28, 29, 30, 10, 32, 33, 34, - 10, 295, 36, 36, 37, 38, 295, 38, - 39, 39, 39, 40, 295, 41, 295, 42, - 43, 44, 45, 44, 45, 45, 295, 46, - 48, 49, 50, 51, 52, 53, 53, 295, - 55, 56, 57, 58, 59, 60, 61, 301, - 295, 62, 63, 64, 65, 65, 66, 66, - 66, 67, 302, 304, 68, 68, 69, 304, - 70, 304, 71, 308, 304, 72, 73, 74, - 75, 75, 76, 76, 76, 77, 309, 311, - 78, 78, 79, 311, 80, 311, 82, 82, - 311, 84, 85, 85, 311, 87, 87, 311, - 89, 90, 91, 92, 92, 311, 319, 93, - 93, 94, 319, 95, 319, 97, 97, 96, - 319, 97, 97, 319, 324, 99, 99, 100, - 101, 324, 101, 102, 102, 102, 103, 324, - 104, 324, 106, 107, 108, 324, 110, 111, - 112, 113, 114, 115, 115, 324, 117, 118, - 119, 120, 120, 324, 122, 123, 124, 125, - 126, 127, 128, 331, 324, 129, 130, 131, - 132, 132, 133, 133, 133, 134, 332, 334, - 135, 135, 136, 334, 137, 334, 139, 139, - 138, 334, 139, 139, 334, 339, 141, 141, - 142, 143, 339, 143, 144, 144, 144, 145, - 339, 146, 339, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 157, 339, 159, - 160, 160, 161, 161, 162, 162, 344, 164, + 10, 299, 36, 36, 37, 38, 299, 38, + 39, 39, 39, 40, 299, 41, 299, 42, + 43, 44, 45, 44, 45, 45, 299, 46, + 48, 49, 50, 51, 52, 53, 53, 299, + 55, 56, 57, 58, 59, 60, 61, 305, + 299, 62, 63, 64, 65, 65, 66, 66, + 66, 67, 306, 308, 68, 68, 69, 308, + 70, 308, 71, 312, 308, 72, 73, 74, + 75, 75, 76, 76, 76, 77, 313, 315, + 78, 78, 79, 315, 80, 315, 82, 82, + 315, 84, 85, 85, 315, 87, 87, 315, + 89, 90, 91, 92, 92, 315, 323, 93, + 93, 94, 323, 95, 323, 97, 97, 96, + 323, 97, 97, 323, 328, 99, 99, 100, + 101, 328, 101, 102, 102, 102, 103, 328, + 104, 328, 106, 107, 108, 328, 110, 111, + 112, 113, 114, 115, 115, 328, 117, 118, + 119, 120, 120, 328, 122, 123, 124, 125, + 126, 127, 128, 335, 328, 129, 130, 131, + 132, 132, 133, 133, 133, 134, 336, 338, + 135, 135, 136, 338, 137, 338, 139, 139, + 138, 338, 139, 139, 338, 343, 141, 141, + 142, 143, 343, 143, 144, 144, 144, 145, + 343, 146, 343, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 157, 343, 159, + 160, 160, 161, 161, 162, 162, 348, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 172, 339, 174, 175, 176, 177, 178, 179, - 180, 180, 181, 181, 182, 182, 346, 184, - 185, 186, 187, 187, 188, 188, 189, 347, - 190, 190, 189, 191, 190, 190, 191, 192, - 193, 194, 194, 195, 195, 195, 196, 197, - 188, 188, 189, 347, 199, 200, 201, 202, - 203, 204, 205, 206, 206, 207, 207, 208, - 349, 209, 209, 208, 258, 207, 210, 209, - 209, 210, 210, 211, 212, 213, 214, 215, - 216, 217, 256, 217, 218, 257, 220, 217, - 217, 218, 220, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 226, 227, 227, 228, - 231, 233, 229, 230, 230, 229, 231, 230, - 230, 232, 232, 250, 235, 234, 233, 228, - 231, 234, 236, 236, 237, 249, 238, 239, - 240, 241, 242, 243, 244, 244, 245, 246, - 247, 247, 248, 248, 248, 251, 252, 252, - 253, 253, 253, 254, 255, 232, 232, 228, - 231, 233, 235, 256, 257, 217, 217, 257, - 218, 220, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 270, 271, 271, - 272, 272, 351, 274, 275, 276, 277, 278, - 278, 339, 280, 281, 282, 283, 284, 285, - 286, 287, 287, 339, 288, 289, 289, 290, - 291, 292, 293, 294, 288, 288, 3, 19, - 23, 31, 295, 296, 296, 297, 298, 299, - 300, 303, 295, 295, 35, 47, 54, 295, - 295, 295, 295, 304, 305, 305, 306, 307, - 310, 304, 304, 304, 304, 304, 304, 311, - 312, 312, 313, 314, 315, 316, 317, 318, - 311, 311, 81, 83, 86, 88, 311, 311, - 319, 320, 320, 321, 322, 323, 319, 319, - 319, 319, 324, 325, 325, 326, 327, 328, - 329, 330, 333, 324, 324, 98, 105, 109, - 116, 121, 324, 324, 324, 324, 334, 335, - 335, 336, 337, 338, 334, 334, 334, 334, - 339, 340, 340, 341, 342, 343, 345, 348, - 350, 352, 353, 354, 339, 339, 140, 147, - 158, 163, 339, 344, 344, 173, 183, 339, - 346, 346, 339, 339, 198, 339, 339, 259, - 339, 351, 351, 273, 279, 339, 339 + 172, 343, 174, 175, 176, 177, 178, 179, + 180, 180, 181, 181, 182, 182, 350, 184, + 185, 186, 187, 187, 188, 188, 189, 351, + 190, 198, 190, 199, 189, 191, 190, 190, + 191, 192, 193, 194, 194, 195, 195, 195, + 196, 197, 188, 188, 189, 351, 198, 199, + 200, 200, 201, 190, 190, 191, 203, 204, + 205, 206, 207, 208, 209, 210, 210, 211, + 211, 212, 353, 213, 213, 212, 262, 211, + 214, 213, 213, 214, 214, 215, 216, 217, + 218, 219, 220, 221, 260, 221, 222, 261, + 224, 221, 221, 222, 224, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 230, 231, + 231, 232, 235, 237, 233, 234, 234, 233, + 235, 234, 234, 236, 236, 254, 239, 238, + 237, 232, 235, 238, 240, 240, 241, 253, + 242, 243, 244, 245, 246, 247, 248, 248, + 249, 250, 251, 251, 252, 252, 252, 255, + 256, 256, 257, 257, 257, 258, 259, 236, + 236, 232, 235, 237, 239, 260, 261, 221, + 221, 261, 222, 224, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 274, + 275, 275, 276, 276, 355, 278, 279, 280, + 281, 282, 282, 343, 284, 285, 286, 287, + 288, 289, 290, 291, 291, 343, 292, 293, + 293, 294, 295, 296, 297, 298, 292, 292, + 3, 19, 23, 31, 299, 300, 300, 301, + 302, 303, 304, 307, 299, 299, 35, 47, + 54, 299, 299, 299, 299, 308, 309, 309, + 310, 311, 314, 308, 308, 308, 308, 308, + 308, 315, 316, 316, 317, 318, 319, 320, + 321, 322, 315, 315, 81, 83, 86, 88, + 315, 315, 323, 324, 324, 325, 326, 327, + 323, 323, 323, 323, 328, 329, 329, 330, + 331, 332, 333, 334, 337, 328, 328, 98, + 105, 109, 116, 121, 328, 328, 328, 328, + 338, 339, 339, 340, 341, 342, 338, 338, + 338, 338, 343, 344, 344, 345, 346, 347, + 349, 352, 354, 356, 357, 358, 343, 343, + 140, 147, 158, 163, 343, 348, 348, 173, + 183, 343, 350, 350, 343, 343, 202, 343, + 343, 263, 343, 355, 355, 277, 283, 343, + 343 }; static const short _eo_tokenizer_trans_actions[] = { - 219, 0, 1, 0, 209, 0, 242, 0, - 0, 0, 0, 0, 0, 43, 0, 3, - 49, 49, 320, 49, 0, 323, 0, 1, - 211, 0, 0, 0, 3, 13, 284, 287, - 11, 281, 11, 11, 0, 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, 221, 0, - 0, 5, 251, 0, 3, 0, 254, 0, - 0, 0, 0, 0, 0, 3, 0, 248, - 0, 0, 0, 0, 0, 3, 0, 332, - 73, 0, 0, 0, 0, 1, 3, 0, - 1, 0, 0, 93, 0, 1, 0, 77, - 0, 224, 0, 335, 91, 0, 0, 0, - 0, 1, 3, 0, 1, 0, 0, 115, - 0, 1, 0, 95, 0, 227, 0, 1, - 97, 0, 0, 1, 101, 0, 1, 99, - 0, 0, 0, 0, 1, 103, 131, 0, - 1, 0, 117, 0, 230, 7, 260, 0, - 263, 0, 1, 119, 153, 0, 1, 0, - 0, 135, 1, 3, 0, 1, 0, 133, - 0, 233, 0, 0, 0, 272, 0, 0, - 0, 0, 0, 3, 0, 269, 0, 0, - 0, 0, 1, 137, 0, 0, 0, 0, - 0, 3, 0, 338, 151, 0, 0, 0, - 0, 1, 3, 0, 1, 0, 0, 169, - 0, 1, 0, 155, 0, 236, 9, 275, - 0, 278, 0, 1, 157, 207, 0, 1, - 0, 0, 173, 1, 3, 0, 1, 0, - 171, 0, 239, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 179, 0, - 0, 1, 0, 1, 3, 0, 23, 0, + 221, 0, 1, 0, 211, 0, 244, 0, + 0, 0, 0, 0, 0, 45, 0, 3, + 51, 51, 325, 51, 0, 328, 0, 1, + 213, 0, 0, 0, 3, 13, 286, 289, + 11, 283, 11, 11, 0, 0, 1, 0, + 1, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 49, 0, 0, 0, + 47, 77, 0, 1, 0, 0, 61, 1, + 3, 0, 1, 0, 59, 0, 223, 0, + 0, 5, 253, 0, 3, 0, 256, 0, + 0, 0, 0, 0, 0, 3, 0, 250, + 0, 0, 0, 0, 0, 3, 0, 337, + 75, 0, 0, 0, 0, 1, 3, 0, + 1, 0, 0, 95, 0, 1, 0, 79, + 0, 226, 0, 340, 93, 0, 0, 0, + 0, 1, 3, 0, 1, 0, 0, 117, + 0, 1, 0, 97, 0, 229, 0, 1, + 99, 0, 0, 1, 103, 0, 1, 101, + 0, 0, 0, 0, 1, 105, 133, 0, + 1, 0, 119, 0, 232, 7, 262, 0, + 265, 0, 1, 121, 155, 0, 1, 0, + 0, 137, 1, 3, 0, 1, 0, 135, + 0, 235, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 3, 0, 271, 0, 0, + 0, 0, 1, 139, 0, 0, 0, 0, + 0, 3, 0, 343, 153, 0, 0, 0, + 0, 1, 3, 0, 1, 0, 0, 171, + 0, 1, 0, 157, 0, 238, 9, 277, + 0, 280, 0, 1, 159, 209, 0, 1, + 0, 0, 175, 1, 3, 0, 1, 0, + 173, 0, 241, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 181, 0, + 0, 1, 0, 1, 3, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 181, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 3, 0, 21, 0, + 1, 183, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 1, 3, 0, 23, 0, 0, 0, 0, 1, 0, 1, 3, 0, - 15, 290, 0, 15, 0, 1, 0, 0, - 0, 0, 1, 3, 0, 1, 0, 0, - 17, 293, 296, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 3, - 0, 25, 299, 0, 0, 25, 25, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 27, 27, 302, 27, 305, 27, 0, - 1, 0, 0, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 1, 0, 1, 0, - 0, 3, 3, 33, 311, 0, 33, 0, - 1, 0, 1, 0, 0, 31, 0, 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, 314, 35, - 35, 317, 35, 0, 3, 29, 308, 0, - 29, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 1, - 3, 0, 19, 0, 0, 0, 0, 0, - 1, 185, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 183, 213, 0, 1, 326, - 55, 55, 55, 55, 215, 217, 0, 0, - 0, 0, 63, 0, 1, 326, 329, 329, - 329, 0, 65, 71, 0, 0, 0, 67, - 245, 69, 61, 81, 0, 1, 326, 329, - 0, 83, 89, 85, 257, 87, 79, 107, - 0, 1, 326, 55, 55, 55, 55, 0, - 109, 113, 0, 0, 0, 0, 111, 105, - 123, 0, 1, 326, 329, 0, 125, 129, - 127, 121, 141, 0, 1, 326, 55, 55, - 55, 55, 0, 143, 149, 0, 0, 0, - 0, 0, 145, 266, 147, 139, 161, 0, - 1, 326, 329, 0, 163, 167, 165, 159, - 189, 0, 1, 326, 55, 55, 55, 55, - 55, 55, 55, 0, 191, 205, 0, 0, - 0, 0, 197, 0, 1, 0, 0, 195, - 0, 1, 201, 177, 0, 199, 175, 0, - 193, 0, 1, 0, 0, 203, 187 + 15, 15, 292, 15, 0, 15, 0, 1, + 0, 0, 0, 0, 1, 3, 0, 1, + 0, 0, 19, 298, 301, 19, 0, 0, + 3, 0, 0, 17, 295, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 3, 0, 27, 304, 0, 0, 27, + 27, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 29, 29, 307, 29, 310, + 29, 0, 1, 0, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 0, 0, 3, 3, 35, 316, 0, + 35, 0, 1, 0, 1, 0, 0, 33, + 0, 33, 33, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, + 39, 0, 3, 0, 41, 0, 1, 0, + 0, 1, 3, 0, 1, 0, 0, 37, + 319, 37, 37, 322, 37, 0, 3, 31, + 313, 0, 31, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 3, 0, 21, 0, 0, 0, + 0, 0, 1, 187, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 185, 215, 0, + 1, 331, 57, 57, 57, 57, 217, 219, + 0, 0, 0, 0, 65, 0, 1, 331, + 334, 334, 334, 0, 67, 73, 0, 0, + 0, 69, 247, 71, 63, 83, 0, 1, + 331, 334, 0, 85, 91, 87, 259, 89, + 81, 109, 0, 1, 331, 57, 57, 57, + 57, 0, 111, 115, 0, 0, 0, 0, + 113, 107, 125, 0, 1, 331, 334, 0, + 127, 131, 129, 123, 143, 0, 1, 331, + 57, 57, 57, 57, 0, 145, 151, 0, + 0, 0, 0, 0, 147, 268, 149, 141, + 163, 0, 1, 331, 334, 0, 165, 169, + 167, 161, 191, 0, 1, 331, 57, 57, + 57, 57, 57, 57, 57, 0, 193, 207, + 0, 0, 0, 0, 199, 0, 1, 0, + 0, 197, 0, 1, 203, 179, 0, 201, + 177, 0, 195, 0, 1, 0, 0, 205, + 189 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1131,15 +1145,15 @@ 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, - 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, 53, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 0, 53, 0, 0, 0, 0, + 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0 }; static const short _eo_tokenizer_from_state_actions[] = { @@ -1179,15 +1193,15 @@ 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, - 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, 55, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0 }; static const short _eo_tokenizer_eof_trans[] = { @@ -1227,32 +1241,32 @@ static const short _eo_tokenizer_eof_trans[] = { 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, 469, 470, 470, 470, 470, 470, 0, - 483, 484, 484, 484, 484, 488, 489, 490, - 0, 498, 499, 499, 500, 501, 502, 0, - 513, 514, 514, 514, 514, 514, 519, 0, - 527, 528, 528, 529, 0, 540, 541, 541, - 541, 541, 541, 547, 548, 549, 0, 557, - 558, 558, 559, 0, 573, 574, 574, 574, - 579, 574, 584, 587, 574, 590, 574, 593, - 574, 574, 598 + 230, 230, 230, 230, 0, 479, 480, 480, + 480, 480, 480, 0, 493, 494, 494, 494, + 494, 498, 499, 500, 0, 508, 509, 509, + 510, 511, 512, 0, 523, 524, 524, 524, + 524, 524, 529, 0, 537, 538, 538, 539, + 0, 550, 551, 551, 551, 551, 551, 557, + 558, 559, 0, 567, 568, 568, 569, 0, + 583, 584, 584, 584, 589, 584, 594, 597, + 584, 600, 584, 603, 584, 584, 608 }; -static const int eo_tokenizer_start = 288; -static const int eo_tokenizer_first_final = 288; +static const int eo_tokenizer_start = 292; +static const int eo_tokenizer_first_final = 292; static const int eo_tokenizer_error = -1; -static const int eo_tokenizer_en_tokenize_accessor = 295; -static const int eo_tokenizer_en_tokenize_params = 304; -static const int eo_tokenizer_en_tokenize_property = 311; -static const int eo_tokenizer_en_tokenize_properties = 319; -static const int eo_tokenizer_en_tokenize_method = 324; -static const int eo_tokenizer_en_tokenize_methods = 334; -static const int eo_tokenizer_en_tokenize_class = 339; -static const int eo_tokenizer_en_main = 288; +static const int eo_tokenizer_en_tokenize_accessor = 299; +static const int eo_tokenizer_en_tokenize_params = 308; +static const int eo_tokenizer_en_tokenize_property = 315; +static const int eo_tokenizer_en_tokenize_properties = 323; +static const int eo_tokenizer_en_tokenize_method = 328; +static const int eo_tokenizer_en_tokenize_methods = 338; +static const int eo_tokenizer_en_tokenize_class = 343; +static const int eo_tokenizer_en_main = 292; -#line 1022 "lib/eolian/eo_lexer.rl" +#line 1030 "lib/eolian/eo_lexer.rl" Eina_Bool @@ -1276,7 +1290,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1280 "lib/eolian/eo_lexer.c" +#line 1294 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1284,7 +1298,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 1045 "lib/eolian/eo_lexer.rl" +#line 1053 "lib/eolian/eo_lexer.rl" while (!done) { @@ -1311,7 +1325,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1315 "lib/eolian/eo_lexer.c" +#line 1329 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -1326,11 +1340,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 37: + case 38: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1334 "lib/eolian/eo_lexer.c" +#line 1348 "lib/eolian/eo_lexer.c" } } @@ -1560,14 +1574,23 @@ _eof_trans: #line 831 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); + if (toknz->tmp.event->type != NULL) + ABORT(toknz, "event %s has already a type %s", toknz->tmp.event->name, toknz->tmp.event->type); + toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); + } + break; + case 20: +#line 838 "lib/eolian/eo_lexer.rl" + { + if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) ABORT(toknz, "event %s has already a comment", toknz->tmp.event->name); toknz->tmp.event->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); toknz->tmp.event = NULL; } break; - case 20: -#line 839 "lib/eolian/eo_lexer.rl" + case 21: +#line 846 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -1575,8 +1598,8 @@ _eof_trans: toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 21: -#line 848 "lib/eolian/eo_lexer.rl" + case 22: +#line 855 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -1584,8 +1607,8 @@ _eof_trans: toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 22: -#line 857 "lib/eolian/eo_lexer.rl" + case 23: +#line 864 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -1593,16 +1616,16 @@ _eof_trans: toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 23: -#line 870 "lib/eolian/eo_lexer.rl" + case 24: +#line 877 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 24: -#line 876 "lib/eolian/eo_lexer.rl" + case 25: +#line 883 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -1610,8 +1633,8 @@ _eof_trans: toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 25: -#line 883 "lib/eolian/eo_lexer.rl" + case 26: +#line 890 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1619,8 +1642,8 @@ _eof_trans: toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 26: -#line 890 "lib/eolian/eo_lexer.rl" + case 27: +#line 897 "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)); @@ -1630,24 +1653,24 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 27: -#line 899 "lib/eolian/eo_lexer.rl" + case 28: +#line 906 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 905 "lib/eolian/eo_lexer.rl" + case 29: +#line 912 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 29: -#line 911 "lib/eolian/eo_lexer.rl" + case 30: +#line 918 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1655,8 +1678,8 @@ _eof_trans: toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 30: -#line 918 "lib/eolian/eo_lexer.rl" + case 31: +#line 925 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1664,32 +1687,32 @@ _eof_trans: toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 31: -#line 988 "lib/eolian/eo_lexer.rl" + case 32: +#line 996 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 32: -#line 991 "lib/eolian/eo_lexer.rl" + case 33: +#line 999 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 33: -#line 994 "lib/eolian/eo_lexer.rl" + case 34: +#line 1002 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 34: -#line 997 "lib/eolian/eo_lexer.rl" + case 35: +#line 1005 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 35: -#line 1001 "lib/eolian/eo_lexer.rl" + case 36: +#line 1009 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1697,11 +1720,11 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 38: + case 39: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 39: + case 40: #line 438 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); @@ -1711,22 +1734,22 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 40: + case 41: #line 374 "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: + case 42: #line 501 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 42: + case 43: #line 502 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 43: + case 44: #line 467 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); @@ -1734,10 +1757,10 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} }} break; - case 44: + case 45: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1756,15 +1779,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 45: + case 46: #line 497 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 46: + case 47: #line 500 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 47: + case 48: #line 467 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); @@ -1772,10 +1795,10 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} }} break; - case 48: + case 49: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1794,11 +1817,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 49: + case 50: #line 500 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 50: + case 51: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -1817,28 +1840,28 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 51: + case 52: #line 374 "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: + case 53: #line 526 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 324; goto _again;} + { toknz->cs = 328; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 53: + case 54: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1857,29 +1880,29 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 54: + case 55: #line 542 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 55: + case 56: #line 544 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 56: + case 57: #line 526 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 324; goto _again;} + { toknz->cs = 328; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 57: + case 58: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1898,11 +1921,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 58: + case 59: #line 544 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 59: + case 60: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -1921,50 +1944,50 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 60: + case 61: #line 374 "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: + case 62: #line 551 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 295; goto _again;} + { toknz->cs = 299; goto _again;} }} break; - case 62: + case 63: #line 558 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 295; goto _again;} + { toknz->cs = 299; goto _again;} }} break; - case 63: + case 64: #line 565 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 304; goto _again;} + { toknz->cs = 308; goto _again;} }} break; - case 64: + case 65: #line 572 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 304; goto _again;} + { toknz->cs = 308; goto _again;} }} break; - case 65: + case 66: #line 579 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); @@ -1976,10 +1999,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 = 319; goto _again;} + { toknz->cs = 323; goto _again;} }} break; - case 66: + case 67: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1998,11 +2021,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 67: + case 68: #line 598 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 68: + case 69: #line 579 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); @@ -2014,10 +2037,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 = 319; goto _again;} + { toknz->cs = 323; goto _again;} }} break; - case 69: + case 70: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2036,7 +2059,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 70: + case 71: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2055,31 +2078,31 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 71: + case 72: #line 374 "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: + case 73: #line 610 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} }} break; - case 73: + case 74: #line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 74: + case 75: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2098,19 +2121,19 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 75: + case 76: #line 632 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 76: + case 77: #line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 77: + case 78: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2129,7 +2152,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 78: + case 79: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2148,7 +2171,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 79: + case 80: #line 641 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2158,32 +2181,32 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 80: + case 81: #line 374 "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: + case 82: #line 649 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 304; goto _again;} + { toknz->cs = 308; goto _again;} }} break; - case 82: + case 83: #line 725 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 83: + case 84: #line 726 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 84: + case 85: #line 684 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; @@ -2208,10 +2231,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 85: + case 86: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2230,15 +2253,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 86: + case 87: #line 720 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 87: + case 88: #line 724 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 88: + case 89: #line 684 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; @@ -2263,10 +2286,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 89: + case 90: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2285,11 +2308,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 90: + case 91: #line 724 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 91: + case 92: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2308,32 +2331,32 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 92: + case 93: #line 374 "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: + case 94: #line 733 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); toknz->current_nesting++; - { toknz->cs = 324; goto _again;} + { toknz->cs = 328; goto _again;} }} break; - case 94: + case 95: #line 746 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 95: + case 96: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2352,20 +2375,20 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 96: + case 97: #line 756 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 97: + case 98: #line 746 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 98: + case 99: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2384,7 +2407,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 99: + case 100: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2403,7 +2426,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 100: + case 101: #line 765 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -2412,59 +2435,59 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 101: + case 102: #line 374 "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: + case 103: #line 783 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 103: + case 104: #line 786 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 104: + case 105: #line 789 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 105: + case 106: #line 796 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 106: + case 107: #line 803 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 319; goto _again;} + { toknz->cs = 323; goto _again;} }} break; - case 107: + case 108: #line 809 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 108: + case 109: #line 816 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -2472,10 +2495,10 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 288; goto _again;} + { toknz->cs = 292; goto _again;} }} break; - case 109: + case 110: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2494,33 +2517,33 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 110: -#line 963 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; case 111: -#line 966 "lib/eolian/eo_lexer.rl" +#line 971 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 967 "lib/eolian/eo_lexer.rl" +#line 974 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 968 "lib/eolian/eo_lexer.rl" +#line 975 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: +#line 976 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 115: #line 783 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 115: + case 116: #line 786 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 116: + case 117: #line 816 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -2528,10 +2551,10 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 288; goto _again;} + { toknz->cs = 292; goto _again;} }} break; - case 117: + case 118: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2550,7 +2573,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 118: + case 119: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2569,23 +2592,23 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 119: + case 120: #line 374 "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 981 "lib/eolian/eo_lexer.rl" + case 121: +#line 989 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("begin class: %s", toknz->tmp.kls->name); toknz->current_nesting++; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 121: + case 122: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2604,11 +2627,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 122: -#line 1016 "lib/eolian/eo_lexer.rl" + case 123: +#line 1024 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 123: + case 124: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2627,7 +2650,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 124: + case 125: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2646,7 +2669,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2650 "lib/eolian/eo_lexer.c" +#line 2673 "lib/eolian/eo_lexer.c" } } @@ -2655,11 +2678,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 36: + case 37: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2663 "lib/eolian/eo_lexer.c" +#line 2686 "lib/eolian/eo_lexer.c" } } @@ -2677,12 +2700,12 @@ _again: _out: {} } -#line 1071 "lib/eolian/eo_lexer.rl" +#line 1079 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 2684 "lib/eolian/eo_lexer.c" +#line 2707 "lib/eolian/eo_lexer.c" -1 -#line 1072 "lib/eolian/eo_lexer.rl" +#line 1080 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -2728,7 +2751,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns Eina_Bool ret = EINA_TRUE; -#line 2732 "lib/eolian/eo_lexer.c" +#line 2755 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -2736,7 +2759,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->act = 0; } -#line 1117 "lib/eolian/eo_lexer.rl" +#line 1125 "lib/eolian/eo_lexer.rl" toknz->p = buffer; @@ -2745,7 +2768,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->eof = toknz->pe; -#line 2749 "lib/eolian/eo_lexer.c" +#line 2772 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; @@ -2760,11 +2783,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 37: + case 38: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 2768 "lib/eolian/eo_lexer.c" +#line 2791 "lib/eolian/eo_lexer.c" } } @@ -2994,14 +3017,23 @@ _eof_trans: #line 831 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); + if (toknz->tmp.event->type != NULL) + ABORT(toknz, "event %s has already a type %s", toknz->tmp.event->name, toknz->tmp.event->type); + toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); + } + break; + case 20: +#line 838 "lib/eolian/eo_lexer.rl" + { + if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) ABORT(toknz, "event %s has already a comment", toknz->tmp.event->name); toknz->tmp.event->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); toknz->tmp.event = NULL; } break; - case 20: -#line 839 "lib/eolian/eo_lexer.rl" + case 21: +#line 846 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -3009,8 +3041,8 @@ _eof_trans: toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 21: -#line 848 "lib/eolian/eo_lexer.rl" + case 22: +#line 855 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -3018,8 +3050,8 @@ _eof_trans: toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 22: -#line 857 "lib/eolian/eo_lexer.rl" + case 23: +#line 864 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -3027,16 +3059,16 @@ _eof_trans: toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 23: -#line 870 "lib/eolian/eo_lexer.rl" + case 24: +#line 877 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 24: -#line 876 "lib/eolian/eo_lexer.rl" + case 25: +#line 883 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -3044,8 +3076,8 @@ _eof_trans: toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 25: -#line 883 "lib/eolian/eo_lexer.rl" + case 26: +#line 890 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3053,8 +3085,8 @@ _eof_trans: toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 26: -#line 890 "lib/eolian/eo_lexer.rl" + case 27: +#line 897 "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)); @@ -3064,24 +3096,24 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 27: -#line 899 "lib/eolian/eo_lexer.rl" + case 28: +#line 906 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 905 "lib/eolian/eo_lexer.rl" + case 29: +#line 912 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 29: -#line 911 "lib/eolian/eo_lexer.rl" + case 30: +#line 918 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3089,8 +3121,8 @@ _eof_trans: toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 30: -#line 918 "lib/eolian/eo_lexer.rl" + case 31: +#line 925 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3098,32 +3130,32 @@ _eof_trans: toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 31: -#line 988 "lib/eolian/eo_lexer.rl" + case 32: +#line 996 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 32: -#line 991 "lib/eolian/eo_lexer.rl" + case 33: +#line 999 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 33: -#line 994 "lib/eolian/eo_lexer.rl" + case 34: +#line 1002 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 34: -#line 997 "lib/eolian/eo_lexer.rl" + case 35: +#line 1005 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 35: -#line 1001 "lib/eolian/eo_lexer.rl" + case 36: +#line 1009 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -3131,11 +3163,11 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 38: + case 39: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 39: + case 40: #line 438 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); @@ -3145,22 +3177,22 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 40: + case 41: #line 374 "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: + case 42: #line 501 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 42: + case 43: #line 502 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 43: + case 44: #line 467 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); @@ -3168,10 +3200,10 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} }} break; - case 44: + case 45: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3190,15 +3222,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 45: + case 46: #line 497 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 46: + case 47: #line 500 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 47: + case 48: #line 467 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); @@ -3206,10 +3238,10 @@ _eof_trans: toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} }} break; - case 48: + case 49: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3228,11 +3260,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 49: + case 50: #line 500 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 50: + case 51: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3251,28 +3283,28 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 51: + case 52: #line 374 "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: + case 53: #line 526 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 324; goto _again;} + { toknz->cs = 328; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 53: + case 54: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3291,29 +3323,29 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 54: + case 55: #line 542 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 55: + case 56: #line 544 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 56: + case 57: #line 526 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 324; goto _again;} + { toknz->cs = 328; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 57: + case 58: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3332,11 +3364,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 58: + case 59: #line 544 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 59: + case 60: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3355,50 +3387,50 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 60: + case 61: #line 374 "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: + case 62: #line 551 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 295; goto _again;} + { toknz->cs = 299; goto _again;} }} break; - case 62: + case 63: #line 558 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 295; goto _again;} + { toknz->cs = 299; goto _again;} }} break; - case 63: + case 64: #line 565 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 304; goto _again;} + { toknz->cs = 308; goto _again;} }} break; - case 64: + case 65: #line 572 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 304; goto _again;} + { toknz->cs = 308; goto _again;} }} break; - case 65: + case 66: #line 579 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); @@ -3410,10 +3442,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 = 319; goto _again;} + { toknz->cs = 323; goto _again;} }} break; - case 66: + case 67: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3432,11 +3464,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 67: + case 68: #line 598 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 68: + case 69: #line 579 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); @@ -3448,10 +3480,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 = 319; goto _again;} + { toknz->cs = 323; goto _again;} }} break; - case 69: + case 70: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3470,7 +3502,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 70: + case 71: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3489,31 +3521,31 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 71: + case 72: #line 374 "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: + case 73: #line 610 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 311; goto _again;} + { toknz->cs = 315; goto _again;} }} break; - case 73: + case 74: #line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 74: + case 75: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3532,19 +3564,19 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 75: + case 76: #line 632 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 76: + case 77: #line 623 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 77: + case 78: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3563,7 +3595,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 78: + case 79: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3582,7 +3614,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 79: + case 80: #line 641 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3592,32 +3624,32 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 80: + case 81: #line 374 "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: + case 82: #line 649 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 304; goto _again;} + { toknz->cs = 308; goto _again;} }} break; - case 82: + case 83: #line 725 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 83: + case 84: #line 726 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 84: + case 85: #line 684 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l = NULL; @@ -3642,10 +3674,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 85: + case 86: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3664,15 +3696,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 86: + case 87: #line 720 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 87: + case 88: #line 724 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 88: + case 89: #line 684 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; @@ -3697,10 +3729,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 89: + case 90: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3719,11 +3751,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 90: + case 91: #line 724 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 91: + case 92: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3742,32 +3774,32 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 92: + case 93: #line 374 "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: + case 94: #line 733 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); toknz->current_nesting++; - { toknz->cs = 324; goto _again;} + { toknz->cs = 328; goto _again;} }} break; - case 94: + case 95: #line 746 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 95: + case 96: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3786,20 +3818,20 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 96: + case 97: #line 756 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 97: + case 98: #line 746 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 98: + case 99: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3818,7 +3850,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 99: + case 100: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -3837,7 +3869,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 100: + case 101: #line 765 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -3846,59 +3878,59 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 101: + case 102: #line 374 "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: + case 103: #line 783 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 103: + case 104: #line 786 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 104: + case 105: #line 789 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 105: + case 106: #line 796 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 106: + case 107: #line 803 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 319; goto _again;} + { toknz->cs = 323; goto _again;} }} break; - case 107: + case 108: #line 809 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 338; goto _again;} }} break; - case 108: + case 109: #line 816 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -3906,10 +3938,10 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 288; goto _again;} + { toknz->cs = 292; goto _again;} }} break; - case 109: + case 110: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -3928,33 +3960,33 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 110: -#line 963 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; case 111: -#line 966 "lib/eolian/eo_lexer.rl" +#line 971 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 112: -#line 967 "lib/eolian/eo_lexer.rl" +#line 974 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 113: -#line 968 "lib/eolian/eo_lexer.rl" +#line 975 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: +#line 976 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 115: #line 783 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 115: + case 116: #line 786 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 116: + case 117: #line 816 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); @@ -3962,10 +3994,10 @@ _eof_trans: toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 288; goto _again;} + { toknz->cs = 292; goto _again;} }} break; - case 117: + case 118: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -3984,7 +4016,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 118: + case 119: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -4003,23 +4035,23 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 119: + case 120: #line 374 "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 981 "lib/eolian/eo_lexer.rl" + case 121: +#line 989 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("begin class: %s", toknz->tmp.kls->name); toknz->current_nesting++; - { toknz->cs = 339; goto _again;} + { toknz->cs = 343; goto _again;} }} break; - case 121: + case 122: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -4038,11 +4070,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 122: -#line 1016 "lib/eolian/eo_lexer.rl" + case 123: +#line 1024 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 123: + case 124: #line 383 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -4061,7 +4093,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 124: + case 125: #line 383 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -4080,7 +4112,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 4084 "lib/eolian/eo_lexer.c" +#line 4116 "lib/eolian/eo_lexer.c" } } @@ -4089,11 +4121,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 36: + case 37: #line 1 "NONE" { toknz->ts = 0;} break; -#line 4097 "lib/eolian/eo_lexer.c" +#line 4129 "lib/eolian/eo_lexer.c" } } @@ -4111,12 +4143,12 @@ _again: _out: {} } -#line 1125 "lib/eolian/eo_lexer.rl" +#line 1133 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 4118 "lib/eolian/eo_lexer.c" +#line 4150 "lib/eolian/eo_lexer.c" -1 -#line 1126 "lib/eolian/eo_lexer.rl" +#line 1134 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -4178,7 +4210,7 @@ eo_tokenizer_dump(Eo_Tokenizer *toknz) printf("\n"); printf(" events:\n"); EINA_LIST_FOREACH(kls->events, l, sgn) - printf(" %s (%s)\n", sgn->name, sgn->comment); + printf(" %s <%s> (%s)\n", sgn->name, sgn->type, sgn->comment); EINA_LIST_FOREACH(kls->constructors, l, meth) { @@ -4505,7 +4537,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(kls->events, l, event) { - Eolian_Event ev = database_event_new(event->name, event->comment); + Eolian_Event ev = database_event_new(event->name, event->type, event->comment); database_class_event_add(kls->name, ev); } diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index e407b94..753dc93 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -828,6 +828,13 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) toknz->tmp.kls->events = eina_list_append(toknz->tmp.kls->events, toknz->tmp.event); } + action end_event_type { + if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); + if (toknz->tmp.event->type != NULL) + ABORT(toknz, "event %s has already a type %s", toknz->tmp.event->name, toknz->tmp.event->type); + toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, fpc-1); + } + action end_event_comment { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -951,7 +958,8 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) implements = 'implements' ignore* begin_def ignore* impl_it* end_def; event_comment = ws* eo_comment %end_event_comment; - event_it = event %end_event_name ignore* end_statement event_comment? ignore*; + event_type = begin_list ws* alpha_u >save_fpc (alnum_u | '*' | ws )* ws* end_list %end_event_type; + event_it = event %end_event_name ws* event_type? ignore* end_statement event_comment? ignore*; events = 'events' ignore* begin_def ignore* event_it* end_def; constructors = 'constructors' ignore* begin_def; @@ -1184,7 +1192,7 @@ eo_tokenizer_dump(Eo_Tokenizer *toknz) printf("\n"); printf(" events:\n"); EINA_LIST_FOREACH(kls->events, l, sgn) - printf(" %s (%s)\n", sgn->name, sgn->comment); + printf(" %s <%s> (%s)\n", sgn->name, sgn->type, sgn->comment); EINA_LIST_FOREACH(kls->constructors, l, meth) { @@ -1511,7 +1519,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(kls->events, l, event) { - Eolian_Event ev = database_event_new(event->name, event->comment); + Eolian_Event ev = database_event_new(event->name, event->type, event->comment); database_class_event_add(kls->name, ev); } diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index f296c74..b9fe76a 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -84,6 +84,7 @@ typedef struct typedef struct { Eina_Stringshare *name; + Eina_Stringshare *type; Eina_Stringshare *comment; } _Event_Desc; @@ -983,12 +984,13 @@ eolian_function_object_is_const(Eolian_Function foo_id) } Eolian_Event -database_event_new(const char *event_name, const char *event_comment) +database_event_new(const char *event_name, const char *event_type, const char *event_comment) { if (!event_name) return NULL; _Event_Desc *event_desc = calloc(1, sizeof(_Event_Desc)); if (!event_desc) return NULL; event_desc->name = eina_stringshare_add(event_name); + if (event_type) event_desc->type = eina_stringshare_add(event_type); event_desc->comment = eina_stringshare_add(event_comment); return (Eolian_Event) event_desc; } @@ -1020,11 +1022,12 @@ 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_comment) +eolian_class_event_information_get(Eolian_Event event, const char **event_name, const char **event_type, const char **event_comment) { _Event_Desc *_event_desc = (_Event_Desc *) event; EINA_SAFETY_ON_NULL_RETURN_VAL(_event_desc, EINA_FALSE); if (event_name) *event_name = _event_desc->name; + if (event_type) *event_type = _event_desc->type; if (event_comment) *event_comment = _event_desc->comment; return EINA_TRUE; } @@ -1112,10 +1115,10 @@ _implements_print(Eolian_Implement impl, int nb_spaces) static void _event_print(Eolian_Event ev, int nb_spaces) { - const char *name, *comment; + const char *name, *comment, *type; - eolian_class_event_information_get(ev, &name, &comment); - printf("%*s <%s> <%s>\n", nb_spaces + 5, "", name, comment); + eolian_class_event_information_get(ev, &name, &type, &comment); + printf("%*s <%s> <%s> <%s>\n", nb_spaces + 5, "", name, type, comment); } static Eina_Bool _function_print(const _Function_Id *fid, int nb_spaces) diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 797fe59..5a22588 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -133,7 +133,7 @@ Eina_Bool database_class_dtor_enable_set(const char *class_name, Eina_Bool enable); Eolian_Event -database_event_new(const char *event_name, const char *event_desc); +database_event_new(const char *event_name, const char *event_type, const char *event_desc); void database_event_free(Eolian_Event event); -- 2.7.4