From 4ec1ae2d0fb0f3934886d2d796c3ddbc7b9c36af Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Sun, 16 Feb 2014 11:15:32 +0200 Subject: [PATCH] Eolian/Lexer: the ';' is now optional after '}'. --- src/lib/eolian/eo_lexer.c | 1369 +++++++++++++++++++----------------- src/lib/eolian/eo_lexer.rl | 2 +- 2 files changed, 744 insertions(+), 627 deletions(-) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index c8e4a271a8..5c1ec42540 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -311,8 +311,8 @@ static const char _eo_tokenizer_actions[] = { 60, 1, 61, 1, 62, 1, 63, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, - 72, 1, 73, 1, 74, 1, 77, 1, - 78, 1, 79, 1, 80, 1, 81, 1, + 72, 1, 73, 1, 74, 1, 75, 1, + 76, 1, 77, 1, 78, 1, 81, 1, 82, 1, 83, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, @@ -321,25 +321,27 @@ static const char _eo_tokenizer_actions[] = { 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107, 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 1, - 114, 1, 115, 2, 0, 38, 2, 0, - 48, 2, 0, 56, 2, 0, 65, 2, - 0, 73, 2, 0, 84, 2, 0, 92, - 2, 0, 110, 2, 4, 44, 2, 5, - 39, 2, 6, 2, 2, 7, 40, 2, - 8, 52, 2, 10, 0, 2, 10, 66, - 2, 12, 80, 2, 13, 75, 2, 14, - 76, 2, 15, 0, 2, 15, 85, 2, - 16, 0, 2, 17, 0, 2, 18, 0, - 2, 18, 2, 2, 19, 0, 2, 21, - 0, 2, 22, 0, 2, 22, 104, 2, - 23, 0, 2, 23, 105, 2, 24, 0, - 2, 25, 0, 2, 25, 2, 2, 26, - 0, 2, 28, 0, 2, 29, 0, 2, - 29, 2, 2, 32, 0, 2, 32, 111, - 2, 33, 0, 2, 33, 111, 2, 36, - 1, 2, 36, 2, 2, 36, 3, 2, - 36, 9, 2, 36, 11, 2, 36, 19, - 2, 36, 21 + 114, 1, 115, 1, 116, 1, 117, 1, + 118, 1, 119, 1, 120, 1, 121, 1, + 122, 1, 123, 1, 124, 1, 125, 2, + 0, 38, 2, 0, 49, 2, 0, 58, + 2, 0, 68, 2, 0, 77, 2, 0, + 89, 2, 0, 98, 2, 0, 120, 2, + 4, 44, 2, 5, 39, 2, 6, 2, + 2, 7, 40, 2, 8, 53, 2, 10, + 0, 2, 10, 69, 2, 12, 84, 2, + 13, 79, 2, 14, 80, 2, 15, 0, + 2, 15, 90, 2, 16, 0, 2, 17, + 0, 2, 18, 0, 2, 18, 2, 2, + 19, 0, 2, 21, 0, 2, 22, 0, + 2, 22, 113, 2, 23, 0, 2, 23, + 114, 2, 24, 0, 2, 25, 0, 2, + 25, 2, 2, 26, 0, 2, 28, 0, + 2, 29, 0, 2, 29, 2, 2, 32, + 0, 2, 32, 121, 2, 33, 0, 2, + 33, 121, 2, 36, 1, 2, 36, 2, + 2, 36, 3, 2, 36, 9, 2, 36, + 11, 2, 36, 19, 2, 36, 21 }; static const short _eo_tokenizer_key_offsets[] = { @@ -370,28 +372,28 @@ static const short _eo_tokenizer_key_offsets[] = { 681, 685, 686, 687, 688, 689, 693, 701, 709, 721, 725, 737, 738, 739, 749, 751, 754, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 775, 783, 791, 804, 809, - 813, 814, 815, 816, 817, 818, 830, 835, - 839, 840, 844, 845, 846, 847, 848, 849, - 853, 862, 869, 876, 887, 891, 905, 915, - 922, 934, 939, 940, 945, 946, 947, 948, - 949, 950, 953, 960, 967, 975, 976, 980, - 987, 995, 999, 1000, 1001, 1002, 1012, 1014, - 1017, 1027, 1039, 1046, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1070, 1078, 1085, - 1097, 1102, 1109, 1110, 1111, 1112, 1113, 1114, - 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1125, - 1132, 1139, 1147, 1148, 1149, 1150, 1151, 1152, - 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, - 1164, 1168, 1176, 1179, 1181, 1188, 1199, 1202, - 1204, 1211, 1219, 1227, 1231, 1231, 1232, 1241, - 1244, 1246, 1257, 1261, 1261, 1262, 1270, 1273, - 1275, 1276, 1277, 1278, 1279, 1288, 1291, 1293, - 1300, 1301, 1310, 1313, 1315, 1316, 1317, 1318, - 1319, 1323, 1323, 1324, 1333, 1336, 1338, 1345, - 1346, 1358, 1361, 1363, 1364, 1371, 1374, 1377, - 1378, 1385, 1388, 1391, 1392, 1394, 1395, 1398, - 1399, 1400 + 769, 770, 774, 782, 790, 803, 808, 812, + 813, 814, 815, 816, 817, 829, 834, 838, + 847, 851, 852, 853, 854, 855, 856, 860, + 869, 876, 883, 894, 898, 912, 922, 929, + 941, 946, 952, 957, 958, 959, 960, 961, + 962, 965, 972, 979, 987, 988, 992, 999, + 1007, 1011, 1016, 1017, 1018, 1028, 1030, 1033, + 1043, 1055, 1062, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1085, 1093, 1100, 1112, 1117, + 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, + 1132, 1133, 1134, 1135, 1139, 1146, 1153, 1161, + 1162, 1163, 1164, 1165, 1166, 1170, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1182, 1190, + 1193, 1195, 1202, 1213, 1216, 1218, 1225, 1233, + 1241, 1245, 1245, 1246, 1255, 1258, 1260, 1271, + 1275, 1275, 1276, 1284, 1287, 1289, 1290, 1291, + 1292, 1293, 1302, 1305, 1307, 1314, 1315, 1324, + 1327, 1329, 1330, 1331, 1332, 1333, 1337, 1337, + 1338, 1347, 1350, 1352, 1359, 1360, 1372, 1375, + 1377, 1378, 1385, 1388, 1391, 1392, 1399, 1402, + 1405, 1406, 1407, 1409, 1410, 1411, 1412, 1415, + 1416, 1417 }; static const char _eo_tokenizer_trans_keys[] = { @@ -490,36 +492,38 @@ static const char _eo_tokenizer_trans_keys[] = { 122, 42, 64, 10, 95, 0, 32, 48, 57, 65, 90, 97, 122, 10, 42, 10, 42, 47, 10, 125, 0, 32, 65, 90, - 97, 122, 59, 112, 108, 101, 109, 101, - 110, 116, 115, 10, 123, 0, 32, 10, - 125, 0, 32, 65, 90, 97, 122, 58, - 95, 48, 57, 65, 90, 97, 122, 10, - 58, 59, 95, 123, 0, 32, 48, 57, - 65, 90, 97, 122, 10, 59, 123, 0, - 32, 10, 108, 0, 32, 101, 103, 97, - 99, 121, 9, 10, 13, 32, 59, 123, - 0, 31, 65, 90, 97, 122, 10, 59, - 123, 0, 32, 10, 125, 0, 32, 59, - 10, 112, 0, 32, 97, 114, 97, 109, - 115, 10, 123, 0, 32, 10, 58, 59, - 0, 32, 65, 90, 97, 122, 9, 13, - 32, 65, 90, 97, 122, 95, 48, 57, - 65, 90, 97, 122, 10, 59, 95, 0, - 32, 48, 57, 65, 90, 97, 122, 10, - 59, 0, 32, 9, 10, 13, 32, 47, - 58, 59, 125, 0, 31, 65, 90, 97, - 122, 10, 58, 59, 125, 0, 32, 65, - 90, 97, 122, 95, 48, 57, 65, 90, - 97, 122, 9, 13, 32, 58, 59, 95, - 48, 57, 65, 90, 97, 122, 9, 13, - 32, 58, 59, 59, 10, 114, 125, 0, - 32, 101, 116, 117, 114, 110, 9, 13, - 32, 9, 13, 32, 65, 90, 97, 122, - 95, 48, 57, 65, 90, 97, 122, 58, - 95, 48, 57, 65, 90, 97, 122, 58, + 97, 122, 112, 108, 101, 109, 101, 110, + 116, 115, 10, 123, 0, 32, 10, 125, + 0, 32, 65, 90, 97, 122, 58, 95, + 48, 57, 65, 90, 97, 122, 10, 58, + 59, 95, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 10, 59, 123, 0, 32, + 10, 108, 0, 32, 101, 103, 97, 99, + 121, 9, 10, 13, 32, 59, 123, 0, + 31, 65, 90, 97, 122, 10, 59, 123, + 0, 32, 10, 125, 0, 32, 10, 59, + 125, 0, 32, 65, 90, 97, 122, 10, + 112, 0, 32, 97, 114, 97, 109, 115, + 10, 123, 0, 32, 10, 58, 59, 0, + 32, 65, 90, 97, 122, 9, 13, 32, 65, 90, 97, 122, 95, 48, 57, 65, - 90, 97, 122, 59, 95, 48, 57, 65, - 90, 97, 122, 10, 125, 0, 32, 59, + 90, 97, 122, 10, 59, 95, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 59, + 0, 32, 9, 10, 13, 32, 47, 58, + 59, 125, 0, 31, 65, 90, 97, 122, + 10, 58, 59, 125, 0, 32, 65, 90, + 97, 122, 95, 48, 57, 65, 90, 97, + 122, 9, 13, 32, 58, 59, 95, 48, + 57, 65, 90, 97, 122, 9, 13, 32, + 58, 59, 10, 59, 114, 125, 0, 32, + 10, 114, 125, 0, 32, 101, 116, 117, + 114, 110, 9, 13, 32, 9, 13, 32, + 65, 90, 97, 122, 95, 48, 57, 65, + 90, 97, 122, 58, 95, 48, 57, 65, + 90, 97, 122, 58, 65, 90, 97, 122, + 95, 48, 57, 65, 90, 97, 122, 59, + 95, 48, 57, 65, 90, 97, 122, 10, + 125, 0, 32, 10, 59, 125, 0, 32, 42, 64, 10, 95, 0, 32, 48, 57, 65, 90, 97, 122, 10, 42, 10, 42, 47, 10, 58, 59, 125, 0, 32, 65, @@ -527,50 +531,50 @@ static const char _eo_tokenizer_trans_keys[] = { 123, 0, 31, 65, 90, 97, 122, 95, 48, 57, 65, 90, 97, 122, 10, 59, 95, 123, 0, 32, 48, 57, 65, 90, - 97, 122, 58, 59, 104, 101, 114, 105, - 116, 115, 10, 123, 0, 32, 10, 125, - 0, 32, 65, 90, 97, 122, 95, 48, - 57, 65, 90, 97, 122, 10, 44, 95, - 125, 0, 32, 48, 57, 65, 90, 97, - 122, 10, 44, 125, 0, 32, 10, 0, - 32, 65, 90, 97, 122, 59, 103, 97, - 99, 121, 95, 112, 114, 101, 102, 105, - 120, 10, 58, 0, 32, 10, 0, 32, - 65, 90, 97, 122, 95, 48, 57, 65, - 90, 97, 122, 59, 95, 48, 57, 65, - 90, 97, 122, 116, 104, 111, 100, 115, - 10, 123, 0, 32, 111, 112, 101, 114, - 116, 105, 101, 115, 10, 123, 0, 32, - 10, 47, 0, 32, 65, 90, 97, 122, - 10, 0, 32, 42, 47, 95, 48, 57, - 65, 90, 97, 122, 10, 47, 108, 114, - 125, 0, 32, 65, 90, 97, 122, 10, - 0, 32, 42, 47, 95, 48, 57, 65, - 90, 97, 122, 95, 101, 48, 57, 65, - 90, 97, 122, 95, 101, 48, 57, 65, - 90, 97, 122, 9, 13, 32, 47, 59, - 10, 47, 125, 0, 32, 65, 90, 97, - 122, 10, 0, 32, 42, 47, 9, 13, - 32, 42, 95, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 47, 59, 10, 47, - 103, 112, 115, 125, 0, 32, 10, 0, - 32, 42, 47, 101, 97, 101, 59, 10, - 47, 125, 0, 32, 65, 90, 97, 122, - 10, 0, 32, 42, 47, 95, 48, 57, - 65, 90, 97, 122, 59, 10, 47, 108, - 111, 112, 114, 125, 0, 32, 10, 0, - 32, 42, 47, 101, 98, 97, 101, 9, - 13, 32, 47, 59, 10, 47, 125, 0, + 97, 122, 58, 104, 101, 114, 105, 116, + 115, 10, 123, 0, 32, 10, 125, 0, + 32, 65, 90, 97, 122, 95, 48, 57, + 65, 90, 97, 122, 10, 44, 95, 125, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 44, 125, 0, 32, 10, 0, 32, + 65, 90, 97, 122, 103, 97, 99, 121, + 95, 112, 114, 101, 102, 105, 120, 10, + 58, 0, 32, 10, 0, 32, 65, 90, + 97, 122, 95, 48, 57, 65, 90, 97, + 122, 59, 95, 48, 57, 65, 90, 97, + 122, 116, 104, 111, 100, 115, 10, 123, + 0, 32, 111, 112, 101, 114, 116, 105, + 101, 115, 10, 123, 0, 32, 10, 47, + 0, 32, 65, 90, 97, 122, 10, 0, + 32, 42, 47, 95, 48, 57, 65, 90, + 97, 122, 10, 47, 108, 114, 125, 0, 32, 65, 90, 97, 122, 10, 0, 32, 42, 47, 95, 48, 57, 65, 90, 97, - 122, 59, 10, 47, 99, 100, 101, 105, - 108, 109, 112, 125, 0, 32, 10, 0, - 32, 42, 47, 111, 9, 10, 13, 32, - 47, 0, 31, 10, 0, 32, 10, 0, - 32, 101, 9, 10, 13, 32, 47, 0, - 31, 10, 0, 32, 10, 0, 32, 118, - 109, 110, 101, 10, 0, 32, 101, 114, - 59, 0 + 122, 95, 101, 48, 57, 65, 90, 97, + 122, 95, 101, 48, 57, 65, 90, 97, + 122, 9, 13, 32, 47, 59, 10, 47, + 125, 0, 32, 65, 90, 97, 122, 10, + 0, 32, 42, 47, 9, 13, 32, 42, + 95, 48, 57, 65, 90, 97, 122, 9, + 13, 32, 47, 59, 10, 47, 103, 112, + 115, 125, 0, 32, 10, 0, 32, 42, + 47, 101, 97, 101, 59, 10, 47, 125, + 0, 32, 65, 90, 97, 122, 10, 0, + 32, 42, 47, 95, 48, 57, 65, 90, + 97, 122, 59, 10, 47, 108, 111, 112, + 114, 125, 0, 32, 10, 0, 32, 42, + 47, 101, 98, 97, 101, 9, 13, 32, + 47, 59, 10, 47, 125, 0, 32, 65, + 90, 97, 122, 10, 0, 32, 42, 47, + 95, 48, 57, 65, 90, 97, 122, 59, + 10, 47, 99, 100, 101, 105, 108, 109, + 112, 125, 0, 32, 10, 0, 32, 42, + 47, 111, 9, 10, 13, 32, 47, 0, + 31, 10, 0, 32, 10, 0, 32, 101, + 9, 10, 13, 32, 47, 0, 31, 10, + 0, 32, 10, 0, 32, 118, 59, 109, + 110, 59, 59, 101, 10, 0, 32, 101, + 114, 59, 0 }; static const char _eo_tokenizer_single_lengths[] = { @@ -601,27 +605,27 @@ static const char _eo_tokenizer_single_lengths[] = { 2, 1, 1, 1, 1, 2, 2, 2, 4, 2, 6, 1, 1, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 5, 3, 2, - 1, 1, 1, 1, 1, 6, 3, 2, - 1, 2, 1, 1, 1, 1, 1, 2, - 3, 3, 1, 3, 2, 8, 4, 1, - 6, 5, 1, 3, 1, 1, 1, 1, - 1, 3, 3, 1, 2, 1, 0, 1, - 2, 2, 1, 1, 1, 2, 2, 3, - 4, 6, 1, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 1, 4, - 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, - 1, 2, 1, 1, 1, 1, 1, 2, + 1, 2, 2, 2, 5, 3, 2, 1, + 1, 1, 1, 1, 6, 3, 2, 3, + 2, 1, 1, 1, 1, 1, 2, 3, + 3, 1, 3, 2, 8, 4, 1, 6, + 5, 4, 3, 1, 1, 1, 1, 1, + 3, 3, 1, 2, 1, 0, 1, 2, + 2, 3, 1, 1, 2, 2, 3, 4, + 6, 1, 4, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 1, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 1, 2, 1, 5, 1, 2, - 1, 2, 2, 4, 0, 1, 3, 1, - 2, 5, 4, 0, 1, 6, 1, 2, - 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, 5, 1, 1, 1, - 5, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 2, 1, + 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, + 2, 1, 5, 1, 2, 1, 2, 2, + 4, 0, 1, 3, 1, 2, 5, 4, + 0, 1, 6, 1, 2, 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, 5, 1, 1, 1, 5, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1 }; @@ -653,27 +657,27 @@ static const char _eo_tokenizer_range_lengths[] = { 1, 0, 0, 0, 0, 1, 3, 3, 4, 1, 3, 0, 0, 4, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 3, 3, 4, 1, 1, - 0, 0, 0, 0, 0, 3, 1, 1, - 0, 1, 0, 0, 0, 0, 0, 1, - 3, 2, 3, 4, 1, 3, 3, 3, - 3, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 2, 3, 3, 0, 2, 3, - 3, 1, 0, 0, 0, 4, 0, 0, - 3, 3, 3, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 3, 3, 4, - 1, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 3, - 3, 3, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 3, 1, 0, 3, 3, 1, 0, - 3, 3, 3, 0, 0, 0, 3, 1, - 0, 3, 0, 0, 0, 1, 1, 0, - 0, 0, 0, 0, 3, 1, 0, 3, + 0, 1, 3, 3, 4, 1, 1, 0, + 0, 0, 0, 0, 3, 1, 1, 3, + 1, 0, 0, 0, 0, 0, 1, 3, + 2, 3, 4, 1, 3, 3, 3, 3, 0, 1, 1, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 2, 3, 3, + 1, 1, 0, 0, 4, 0, 0, 3, + 3, 3, 4, 0, 0, 0, 0, 0, + 0, 0, 1, 3, 3, 4, 1, 3, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 3, 3, 3, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 3, 1, + 0, 3, 3, 1, 0, 3, 3, 3, 0, 0, 0, 3, 1, 0, 3, 0, - 1, 1, 0, 0, 1, 1, 1, 0, - 1, 1, 1, 0, 0, 0, 1, 0, + 0, 0, 1, 1, 0, 0, 0, 0, + 0, 3, 1, 0, 3, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 3, 1, 0, 3, 0, 1, 1, 0, + 0, 1, 1, 1, 0, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }; @@ -705,28 +709,28 @@ static const short _eo_tokenizer_index_offsets[] = { 739, 743, 745, 747, 749, 751, 755, 761, 767, 776, 780, 790, 792, 794, 801, 804, 808, 814, 816, 818, 820, 822, 824, 826, - 828, 830, 832, 836, 842, 848, 858, 863, - 867, 869, 871, 873, 875, 877, 887, 892, - 896, 898, 902, 904, 906, 908, 910, 912, - 916, 923, 929, 934, 942, 946, 958, 966, - 971, 981, 987, 989, 994, 996, 998, 1000, - 1002, 1004, 1008, 1014, 1019, 1025, 1027, 1030, - 1035, 1041, 1045, 1047, 1049, 1051, 1058, 1061, - 1065, 1073, 1083, 1088, 1097, 1099, 1101, 1103, - 1105, 1107, 1109, 1111, 1113, 1117, 1123, 1128, - 1137, 1142, 1147, 1149, 1151, 1153, 1155, 1157, - 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1175, - 1180, 1185, 1191, 1193, 1195, 1197, 1199, 1201, - 1205, 1207, 1209, 1211, 1213, 1215, 1217, 1219, - 1221, 1225, 1231, 1234, 1237, 1242, 1251, 1254, - 1257, 1262, 1268, 1274, 1279, 1280, 1282, 1289, - 1292, 1295, 1304, 1309, 1310, 1312, 1320, 1323, - 1326, 1328, 1330, 1332, 1334, 1341, 1344, 1347, - 1352, 1354, 1363, 1366, 1369, 1371, 1373, 1375, - 1377, 1382, 1383, 1385, 1392, 1395, 1398, 1403, - 1405, 1417, 1420, 1423, 1425, 1432, 1435, 1438, - 1440, 1447, 1450, 1453, 1455, 1458, 1460, 1463, - 1465, 1467 + 828, 830, 834, 840, 846, 856, 861, 865, + 867, 869, 871, 873, 875, 885, 890, 894, + 901, 905, 907, 909, 911, 913, 915, 919, + 926, 932, 937, 945, 949, 961, 969, 974, + 984, 990, 996, 1001, 1003, 1005, 1007, 1009, + 1011, 1015, 1021, 1026, 1032, 1034, 1037, 1042, + 1048, 1052, 1057, 1059, 1061, 1068, 1071, 1075, + 1083, 1093, 1098, 1107, 1109, 1111, 1113, 1115, + 1117, 1119, 1121, 1125, 1131, 1136, 1145, 1150, + 1155, 1157, 1159, 1161, 1163, 1165, 1167, 1169, + 1171, 1173, 1175, 1177, 1181, 1186, 1191, 1197, + 1199, 1201, 1203, 1205, 1207, 1211, 1213, 1215, + 1217, 1219, 1221, 1223, 1225, 1227, 1231, 1237, + 1240, 1243, 1248, 1257, 1260, 1263, 1268, 1274, + 1280, 1285, 1286, 1288, 1295, 1298, 1301, 1310, + 1315, 1316, 1318, 1326, 1329, 1332, 1334, 1336, + 1338, 1340, 1347, 1350, 1353, 1358, 1360, 1369, + 1372, 1375, 1377, 1379, 1381, 1383, 1388, 1389, + 1391, 1398, 1401, 1404, 1409, 1411, 1423, 1426, + 1429, 1431, 1438, 1441, 1444, 1446, 1453, 1456, + 1459, 1461, 1463, 1466, 1468, 1470, 1472, 1475, + 1477, 1479 }; static const short _eo_tokenizer_indicies[] = { @@ -833,249 +837,253 @@ static const short _eo_tokenizer_indicies[] = { 231, 320, 321, 319, 320, 321, 322, 319, 324, 326, 323, 325, 325, 231, 327, 231, 328, 231, 329, 231, 330, 231, 331, 231, - 332, 231, 333, 231, 334, 231, 335, 231, - 336, 337, 335, 231, 338, 340, 337, 339, - 339, 231, 342, 341, 341, 341, 341, 231, - 344, 342, 345, 341, 346, 343, 341, 341, - 341, 231, 348, 337, 349, 347, 231, 350, - 351, 349, 231, 352, 231, 353, 231, 354, - 231, 355, 231, 356, 231, 358, 359, 358, - 358, 360, 362, 357, 361, 361, 231, 364, - 365, 366, 363, 231, 367, 368, 365, 231, - 337, 231, 369, 370, 366, 231, 371, 231, - 372, 231, 373, 231, 374, 231, 375, 231, - 376, 377, 375, 231, 378, 379, 380, 377, - 381, 381, 231, 379, 379, 379, 382, 382, - 231, 383, 383, 383, 383, 231, 385, 386, - 383, 384, 383, 383, 383, 231, 388, 380, - 387, 231, 380, 390, 380, 380, 391, 379, - 380, 392, 389, 381, 381, 231, 390, 379, - 380, 392, 389, 381, 381, 231, 393, 393, - 393, 393, 231, 394, 394, 394, 395, 396, - 393, 393, 393, 393, 231, 397, 397, 397, - 379, 380, 231, 398, 231, 399, 400, 401, - 398, 231, 402, 231, 403, 231, 404, 231, - 405, 231, 406, 231, 407, 407, 407, 231, - 407, 407, 407, 408, 408, 231, 409, 409, - 409, 409, 231, 410, 409, 409, 409, 409, - 231, 411, 231, 412, 412, 231, 413, 413, - 413, 413, 231, 414, 413, 413, 413, 413, - 231, 416, 401, 415, 231, 365, 231, 417, - 231, 418, 231, 419, 420, 418, 420, 420, - 420, 231, 422, 423, 421, 422, 423, 424, - 421, 426, 427, 428, 430, 425, 429, 429, - 231, 431, 364, 431, 431, 365, 366, 363, - 432, 432, 231, 433, 433, 433, 433, 231, - 435, 436, 433, 437, 434, 433, 433, 433, - 231, 341, 231, 438, 231, 439, 231, 440, - 231, 441, 231, 442, 231, 443, 231, 444, - 231, 445, 446, 444, 231, 447, 449, 446, - 448, 448, 231, 450, 450, 450, 450, 231, - 452, 453, 450, 454, 451, 450, 450, 450, - 231, 456, 457, 449, 455, 231, 458, 457, - 448, 448, 231, 459, 231, 460, 231, 461, - 231, 462, 231, 463, 231, 464, 231, 465, - 231, 466, 231, 467, 231, 468, 231, 469, - 231, 470, 231, 471, 472, 470, 231, 473, - 472, 474, 474, 231, 475, 475, 475, 475, - 231, 476, 475, 475, 475, 475, 231, 477, - 231, 478, 231, 479, 231, 480, 231, 481, - 231, 482, 483, 481, 231, 484, 231, 485, - 231, 486, 231, 487, 231, 488, 231, 489, - 231, 490, 231, 491, 231, 492, 493, 491, - 231, 496, 497, 495, 498, 498, 494, 496, - 495, 499, 1, 5, 500, 10, 10, 10, - 10, 500, 503, 504, 506, 507, 508, 502, - 505, 505, 501, 503, 502, 509, 511, 68, - 510, 71, 71, 71, 71, 510, 71, 512, - 71, 71, 71, 510, 71, 513, 71, 71, - 71, 510, 96, 96, 96, 97, 514, 515, - 516, 510, 519, 520, 522, 518, 521, 521, - 517, 519, 518, 523, 107, 111, 524, 113, - 113, 113, 113, 113, 113, 113, 113, 524, - 116, 116, 116, 117, 525, 526, 527, 524, - 530, 531, 532, 533, 534, 535, 529, 528, - 530, 529, 536, 127, 131, 537, 538, 537, - 539, 537, 540, 537, 541, 537, 544, 545, - 547, 543, 546, 546, 542, 544, 543, 548, - 146, 150, 549, 154, 154, 154, 154, 549, - 550, 549, 553, 554, 555, 556, 557, 558, - 559, 552, 551, 553, 552, 560, 562, 171, - 561, 563, 561, 564, 561, 565, 561, 566, - 561, 207, 207, 207, 208, 567, 568, 569, - 561, 572, 573, 575, 571, 574, 574, 570, - 572, 571, 576, 218, 222, 577, 226, 226, - 226, 226, 577, 578, 577, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 580, - 579, 581, 580, 591, 593, 243, 592, 594, - 592, 260, 597, 260, 260, 598, 596, 595, - 597, 596, 595, 601, 600, 599, 602, 592, - 286, 605, 286, 286, 606, 604, 603, 605, - 604, 603, 609, 608, 607, 610, 592, 611, - 612, 592, 613, 592, 616, 615, 614, 617, - 592, 618, 592, 619, 592, 0 + 332, 231, 333, 231, 334, 231, 335, 336, + 334, 231, 337, 339, 336, 338, 338, 231, + 341, 340, 340, 340, 340, 231, 343, 341, + 344, 340, 345, 342, 340, 340, 340, 231, + 347, 336, 348, 346, 231, 349, 350, 348, + 231, 351, 231, 352, 231, 353, 231, 354, + 231, 355, 231, 357, 358, 357, 357, 359, + 361, 356, 360, 360, 231, 363, 364, 365, + 362, 231, 366, 367, 364, 231, 337, 336, + 339, 336, 338, 338, 231, 368, 369, 365, + 231, 370, 231, 371, 231, 372, 231, 373, + 231, 374, 231, 375, 376, 374, 231, 377, + 378, 379, 376, 380, 380, 231, 378, 378, + 378, 381, 381, 231, 382, 382, 382, 382, + 231, 384, 385, 382, 383, 382, 382, 382, + 231, 387, 379, 386, 231, 379, 389, 379, + 379, 390, 378, 379, 391, 388, 380, 380, + 231, 389, 378, 379, 391, 388, 380, 380, + 231, 392, 392, 392, 392, 231, 393, 393, + 393, 394, 395, 392, 392, 392, 392, 231, + 396, 396, 396, 378, 379, 231, 398, 397, + 399, 400, 397, 231, 398, 399, 400, 397, + 231, 401, 231, 402, 231, 403, 231, 404, + 231, 405, 231, 406, 406, 406, 231, 406, + 406, 406, 407, 407, 231, 408, 408, 408, + 408, 231, 409, 408, 408, 408, 408, 231, + 410, 231, 411, 411, 231, 412, 412, 412, + 412, 231, 413, 412, 412, 412, 412, 231, + 415, 400, 414, 231, 366, 364, 367, 364, + 231, 416, 231, 417, 231, 418, 419, 417, + 419, 419, 419, 231, 421, 422, 420, 421, + 422, 423, 420, 425, 426, 427, 429, 424, + 428, 428, 231, 430, 363, 430, 430, 364, + 365, 362, 431, 431, 231, 432, 432, 432, + 432, 231, 434, 435, 432, 436, 433, 432, + 432, 432, 231, 340, 231, 437, 231, 438, + 231, 439, 231, 440, 231, 441, 231, 442, + 231, 443, 444, 442, 231, 445, 447, 444, + 446, 446, 231, 448, 448, 448, 448, 231, + 450, 451, 448, 452, 449, 448, 448, 448, + 231, 454, 455, 447, 453, 231, 456, 455, + 446, 446, 231, 457, 231, 458, 231, 459, + 231, 460, 231, 461, 231, 462, 231, 463, + 231, 464, 231, 465, 231, 466, 231, 467, + 231, 468, 469, 467, 231, 470, 469, 471, + 471, 231, 472, 472, 472, 472, 231, 473, + 472, 472, 472, 472, 231, 474, 231, 475, + 231, 476, 231, 477, 231, 478, 231, 479, + 480, 478, 231, 481, 231, 482, 231, 483, + 231, 484, 231, 485, 231, 486, 231, 487, + 231, 488, 231, 489, 490, 488, 231, 493, + 494, 492, 495, 495, 491, 493, 492, 496, + 1, 5, 497, 10, 10, 10, 10, 497, + 500, 501, 503, 504, 505, 499, 502, 502, + 498, 500, 499, 506, 508, 68, 507, 71, + 71, 71, 71, 507, 71, 509, 71, 71, + 71, 507, 71, 510, 71, 71, 71, 507, + 96, 96, 96, 97, 511, 512, 514, 513, + 517, 518, 520, 516, 519, 519, 515, 517, + 516, 521, 107, 111, 522, 113, 113, 113, + 113, 113, 113, 113, 113, 522, 116, 116, + 116, 117, 523, 524, 526, 525, 529, 530, + 531, 532, 533, 534, 528, 527, 529, 528, + 535, 127, 131, 536, 537, 536, 538, 536, + 539, 536, 541, 540, 544, 545, 547, 543, + 546, 546, 542, 544, 543, 548, 146, 150, + 549, 154, 154, 154, 154, 549, 551, 550, + 554, 555, 556, 557, 558, 559, 560, 553, + 552, 554, 553, 561, 563, 171, 562, 564, + 562, 565, 562, 566, 562, 567, 562, 207, + 207, 207, 208, 568, 569, 571, 570, 574, + 575, 577, 573, 576, 576, 572, 574, 573, + 578, 218, 222, 579, 226, 226, 226, 226, + 579, 581, 580, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 583, 582, 584, + 583, 594, 596, 243, 595, 597, 595, 260, + 600, 260, 260, 601, 599, 598, 600, 599, + 598, 604, 603, 602, 605, 595, 286, 608, + 286, 286, 609, 607, 606, 608, 607, 606, + 612, 611, 610, 613, 595, 615, 614, 616, + 617, 595, 619, 618, 621, 620, 622, 595, + 625, 624, 623, 626, 595, 627, 595, 629, + 628, 0 }; static const short _eo_tokenizer_trans_targs[] = { - 321, 0, 0, 1, 321, 2, 321, 4, - 5, 4, 3, 321, 4, 4, 321, 5, + 318, 0, 0, 1, 318, 2, 318, 4, + 5, 4, 3, 318, 4, 4, 318, 5, 6, 7, 8, 8, 9, 18, 22, 10, 11, 12, 13, 14, 15, 16, 17, 4, - 4, 321, 19, 20, 21, 23, 24, 25, + 4, 318, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 325, 43, 43, 44, 45, 325, 45, 46, - 46, 46, 47, 325, 48, 325, 50, 49, - 51, 52, 53, 52, 53, 53, 325, 55, - 56, 57, 58, 59, 60, 61, 325, 63, - 64, 65, 66, 67, 68, 69, 331, 325, + 322, 43, 43, 44, 45, 322, 45, 46, + 46, 46, 47, 322, 48, 322, 50, 49, + 51, 52, 53, 52, 53, 53, 322, 55, + 56, 57, 58, 59, 60, 61, 322, 63, + 64, 65, 66, 67, 68, 69, 328, 322, 70, 71, 72, 73, 73, 74, 74, 74, - 75, 332, 334, 76, 76, 77, 334, 78, - 334, 79, 338, 334, 80, 81, 82, 83, - 83, 84, 84, 84, 85, 339, 341, 86, - 86, 87, 341, 88, 341, 90, 90, 341, - 92, 93, 94, 95, 95, 341, 97, 97, - 341, 348, 98, 98, 99, 348, 100, 348, - 102, 102, 101, 348, 102, 102, 348, 353, - 104, 104, 105, 106, 353, 106, 107, 107, - 107, 108, 353, 109, 353, 111, 112, 113, - 114, 115, 116, 117, 353, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 353, - 130, 131, 132, 133, 133, 353, 135, 136, - 137, 138, 139, 140, 141, 360, 353, 142, + 75, 329, 331, 76, 76, 77, 331, 78, + 331, 79, 335, 331, 80, 81, 82, 83, + 83, 84, 84, 84, 85, 336, 338, 86, + 86, 87, 338, 88, 338, 90, 90, 338, + 92, 93, 94, 95, 95, 338, 97, 97, + 338, 345, 98, 98, 99, 345, 100, 345, + 102, 102, 101, 345, 102, 102, 345, 350, + 104, 104, 105, 106, 350, 106, 107, 107, + 107, 108, 350, 109, 350, 111, 112, 113, + 114, 115, 116, 117, 350, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 350, + 130, 131, 132, 133, 133, 350, 135, 136, + 137, 138, 139, 140, 141, 357, 350, 142, 143, 144, 145, 145, 146, 146, 146, 147, - 361, 363, 148, 148, 149, 363, 150, 363, - 152, 152, 151, 363, 152, 152, 363, 368, - 154, 154, 155, 156, 368, 156, 157, 157, - 157, 158, 368, 159, 368, 161, 162, 163, + 358, 360, 148, 148, 149, 360, 150, 360, + 152, 152, 151, 360, 152, 152, 360, 365, + 154, 154, 155, 156, 365, 156, 157, 157, + 157, 158, 365, 159, 365, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 170, - 372, 176, 170, 170, 372, 368, 172, 173, - 173, 174, 174, 174, 175, 374, 176, 368, + 369, 176, 170, 170, 369, 365, 172, 173, + 173, 174, 174, 174, 175, 371, 176, 365, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 186, 376, 192, 186, 186, 376, 368, - 188, 189, 189, 190, 190, 190, 191, 378, - 192, 368, 194, 195, 196, 197, 197, 198, - 198, 199, 209, 200, 201, 201, 202, 201, + 186, 186, 373, 192, 186, 186, 373, 365, + 188, 189, 189, 190, 190, 190, 191, 375, + 192, 365, 194, 195, 196, 197, 197, 198, + 198, 199, 377, 200, 201, 201, 202, 201, 201, 202, 203, 204, 205, 205, 206, 206, - 206, 207, 208, 198, 198, 199, 209, 368, - 211, 212, 213, 214, 215, 216, 217, 218, - 218, 219, 219, 220, 277, 221, 276, 222, - 222, 219, 223, 222, 222, 223, 223, 224, - 225, 226, 227, 228, 229, 230, 273, 230, - 231, 274, 233, 230, 230, 231, 233, 231, - 232, 233, 234, 235, 236, 237, 238, 239, - 239, 240, 240, 241, 245, 247, 242, 243, - 244, 244, 245, 244, 244, 246, 246, 267, - 250, 248, 249, 241, 245, 249, 251, 251, - 252, 266, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 265, - 265, 268, 269, 269, 270, 270, 270, 271, - 272, 246, 246, 241, 245, 247, 250, 273, - 274, 275, 230, 230, 231, 233, 368, 279, - 280, 281, 282, 283, 284, 284, 285, 285, - 286, 290, 287, 288, 288, 289, 290, 288, - 288, 289, 289, 368, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 302, - 303, 303, 304, 305, 382, 307, 308, 309, - 310, 311, 311, 368, 313, 314, 315, 316, - 317, 318, 319, 320, 320, 368, 321, 322, - 322, 323, 324, 321, 321, 325, 326, 326, - 327, 328, 329, 330, 333, 325, 325, 42, - 54, 62, 325, 325, 325, 334, 335, 335, - 336, 337, 340, 334, 334, 334, 334, 334, - 341, 342, 342, 343, 344, 345, 346, 347, - 341, 341, 89, 91, 96, 341, 348, 349, - 349, 350, 351, 352, 348, 348, 348, 353, - 354, 354, 355, 356, 357, 358, 359, 362, - 353, 353, 103, 110, 118, 129, 134, 353, - 353, 353, 363, 364, 364, 365, 366, 367, - 363, 363, 363, 368, 369, 369, 370, 371, - 375, 379, 380, 381, 383, 384, 385, 368, - 368, 153, 160, 368, 373, 373, 171, 368, - 373, 373, 177, 368, 377, 377, 187, 368, - 377, 377, 193, 210, 278, 291, 368, 382, - 382, 306, 312, 368 + 206, 207, 208, 198, 198, 199, 377, 210, + 211, 212, 213, 214, 215, 216, 217, 217, + 218, 218, 219, 379, 220, 275, 221, 221, + 218, 222, 221, 221, 222, 222, 223, 224, + 225, 226, 227, 228, 229, 272, 229, 230, + 273, 232, 229, 229, 230, 232, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 238, + 239, 239, 240, 244, 246, 241, 242, 243, + 243, 244, 243, 243, 245, 245, 266, 249, + 247, 248, 240, 244, 248, 250, 250, 251, + 265, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 264, 264, + 267, 268, 268, 269, 269, 269, 270, 271, + 245, 245, 240, 244, 246, 249, 272, 273, + 274, 229, 229, 230, 232, 277, 278, 279, + 280, 281, 282, 282, 283, 283, 284, 380, + 285, 286, 286, 287, 380, 286, 286, 287, + 287, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 299, 300, 300, 301, + 302, 382, 304, 305, 306, 307, 308, 308, + 365, 310, 311, 312, 313, 314, 315, 316, + 317, 317, 365, 318, 319, 319, 320, 321, + 318, 318, 322, 323, 323, 324, 325, 326, + 327, 330, 322, 322, 42, 54, 62, 322, + 322, 322, 322, 331, 332, 332, 333, 334, + 337, 331, 331, 331, 331, 331, 331, 338, + 339, 339, 340, 341, 342, 343, 344, 338, + 338, 89, 91, 96, 338, 338, 345, 346, + 346, 347, 348, 349, 345, 345, 345, 345, + 350, 351, 351, 352, 353, 354, 355, 356, + 359, 350, 350, 103, 110, 118, 129, 134, + 350, 350, 350, 350, 360, 361, 361, 362, + 363, 364, 360, 360, 360, 360, 365, 366, + 366, 367, 368, 372, 376, 378, 381, 383, + 384, 385, 365, 365, 153, 160, 365, 370, + 370, 171, 365, 370, 370, 177, 365, 374, + 374, 187, 365, 374, 374, 193, 365, 365, + 209, 276, 365, 365, 365, 365, 288, 365, + 382, 382, 303, 309, 365, 365 }; static const short _eo_tokenizer_trans_actions[] = { - 201, 0, 1, 0, 191, 0, 224, 43, - 43, 314, 0, 317, 0, 1, 193, 0, + 221, 0, 1, 0, 211, 0, 244, 43, + 43, 334, 0, 337, 0, 1, 213, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, - 320, 323, 0, 0, 0, 0, 0, 0, + 340, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69, 0, 1, 0, 0, 55, 1, 3, - 0, 1, 0, 53, 0, 203, 0, 0, - 0, 5, 233, 0, 3, 0, 236, 0, - 0, 0, 0, 0, 3, 0, 230, 0, - 0, 0, 0, 0, 3, 0, 332, 67, + 71, 0, 1, 0, 0, 55, 1, 3, + 0, 1, 0, 53, 0, 223, 0, 0, + 0, 5, 253, 0, 3, 0, 256, 0, + 0, 0, 0, 0, 3, 0, 250, 0, + 0, 0, 0, 0, 3, 0, 352, 69, 0, 0, 0, 0, 1, 3, 0, 1, - 0, 0, 85, 0, 1, 0, 71, 0, - 206, 0, 335, 83, 0, 0, 0, 0, - 1, 3, 0, 1, 0, 0, 103, 0, - 1, 0, 87, 0, 209, 0, 1, 89, - 0, 0, 0, 0, 1, 93, 0, 1, - 91, 117, 0, 1, 0, 105, 0, 212, - 7, 242, 0, 245, 0, 1, 107, 137, - 0, 1, 0, 0, 121, 1, 3, 0, - 1, 0, 119, 0, 215, 0, 0, 0, - 0, 0, 3, 0, 251, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 254, - 0, 0, 0, 0, 1, 123, 0, 0, - 0, 0, 0, 3, 0, 338, 135, 0, + 0, 0, 89, 0, 1, 0, 73, 0, + 226, 0, 355, 87, 0, 0, 0, 0, + 1, 3, 0, 1, 0, 0, 109, 0, + 1, 0, 91, 0, 229, 0, 1, 93, + 0, 0, 0, 0, 1, 97, 0, 1, + 95, 125, 0, 1, 0, 111, 0, 232, + 7, 262, 0, 265, 0, 1, 113, 147, + 0, 1, 0, 0, 129, 1, 3, 0, + 1, 0, 127, 0, 235, 0, 0, 0, + 0, 0, 3, 0, 271, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 274, + 0, 0, 0, 0, 1, 131, 0, 0, + 0, 0, 0, 3, 0, 358, 145, 0, 0, 0, 0, 1, 3, 0, 1, 0, - 0, 151, 0, 1, 0, 139, 0, 218, - 9, 257, 0, 260, 0, 1, 141, 189, - 0, 1, 0, 0, 155, 1, 3, 0, - 1, 0, 153, 0, 221, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 275, - 341, 0, 0, 1, 51, 185, 0, 0, - 1, 3, 0, 1, 0, 0, 1, 163, + 0, 163, 0, 1, 0, 149, 0, 238, + 9, 277, 0, 280, 0, 1, 151, 209, + 0, 1, 0, 0, 167, 1, 3, 0, + 1, 0, 165, 0, 241, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 295, + 361, 0, 0, 1, 51, 205, 0, 0, + 1, 3, 0, 1, 0, 0, 1, 175, 0, 0, 0, 0, 0, 0, 0, 0, - 21, 278, 344, 0, 0, 1, 51, 187, + 21, 298, 364, 0, 0, 1, 51, 207, 0, 0, 1, 3, 0, 1, 0, 0, - 1, 165, 0, 0, 0, 0, 1, 0, - 1, 3, 0, 0, 13, 266, 13, 0, + 1, 177, 0, 0, 0, 0, 1, 0, + 1, 3, 0, 0, 13, 286, 13, 0, 1, 0, 0, 0, 0, 1, 3, 0, - 1, 0, 0, 15, 269, 272, 15, 161, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 3, 0, 0, 0, 27, - 293, 27, 27, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 29, 29, 296, - 29, 299, 29, 0, 1, 0, 0, 1, - 0, 1, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 3, 3, 0, - 35, 305, 35, 0, 1, 0, 1, 0, - 0, 0, 33, 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, 308, 37, 37, 311, 37, 0, - 3, 0, 31, 302, 31, 31, 159, 0, - 0, 0, 0, 0, 0, 1, 0, 1, - 3, 0, 0, 11, 263, 11, 11, 0, - 1, 0, 1, 157, 0, 0, 0, 0, + 1, 0, 0, 15, 289, 292, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 1, 3, 0, 19, 0, 0, 0, - 0, 0, 1, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 167, 195, 0, - 1, 326, 329, 197, 199, 59, 0, 1, - 326, 329, 329, 329, 0, 61, 65, 0, - 0, 0, 63, 227, 57, 75, 0, 1, - 326, 329, 0, 77, 81, 79, 239, 73, - 97, 0, 1, 326, 51, 51, 51, 0, - 99, 101, 0, 0, 0, 95, 111, 0, - 1, 326, 329, 0, 113, 115, 109, 127, - 0, 1, 326, 51, 51, 51, 51, 0, - 129, 133, 0, 0, 0, 0, 0, 131, - 248, 125, 145, 0, 1, 326, 329, 0, - 147, 149, 143, 173, 0, 1, 326, 329, - 329, 51, 51, 51, 51, 51, 0, 175, - 183, 0, 0, 179, 0, 1, 0, 284, - 23, 281, 0, 181, 0, 1, 0, 290, - 25, 287, 0, 0, 0, 0, 177, 0, - 1, 0, 0, 171 + 0, 1, 3, 0, 0, 0, 27, 313, + 27, 27, 0, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 29, 29, 316, 29, + 319, 29, 0, 1, 0, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 1, + 0, 1, 0, 0, 3, 3, 0, 35, + 325, 35, 0, 1, 0, 1, 0, 0, + 0, 33, 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, 328, 37, 37, 331, 37, 0, 3, + 0, 31, 322, 31, 31, 0, 0, 0, + 0, 0, 0, 1, 0, 1, 3, 0, + 0, 11, 283, 11, 11, 0, 1, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 1, 3, + 0, 19, 0, 0, 0, 0, 0, 1, + 181, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 179, 215, 0, 1, 346, 349, + 217, 219, 59, 0, 1, 346, 349, 349, + 349, 0, 61, 67, 0, 0, 0, 63, + 247, 65, 57, 77, 0, 1, 346, 349, + 0, 79, 85, 81, 259, 83, 75, 101, + 0, 1, 346, 51, 51, 51, 0, 103, + 107, 0, 0, 0, 105, 99, 117, 0, + 1, 346, 349, 0, 119, 123, 121, 115, + 135, 0, 1, 346, 51, 51, 51, 51, + 0, 137, 143, 0, 0, 0, 0, 0, + 139, 268, 141, 133, 155, 0, 1, 346, + 349, 0, 157, 161, 159, 153, 185, 0, + 1, 346, 349, 349, 51, 51, 51, 51, + 51, 0, 187, 203, 0, 0, 197, 0, + 1, 0, 304, 23, 301, 0, 199, 0, + 1, 0, 310, 25, 307, 0, 195, 173, + 0, 0, 193, 171, 191, 169, 0, 189, + 0, 1, 0, 0, 201, 183 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1118,14 +1126,14 @@ static const short _eo_tokenizer_to_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, - 0, 0, 0, 0, 0, 47, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -1170,14 +1178,14 @@ static const short _eo_tokenizer_from_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 49, 0, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, - 49, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 0, 49, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -1222,30 +1230,30 @@ static const short _eo_tokenizer_eof_trans[] = { 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, - 232, 0, 500, 501, 501, 0, 510, 511, - 511, 511, 511, 515, 516, 511, 0, 524, - 525, 525, 526, 527, 525, 0, 537, 538, - 538, 538, 538, 538, 0, 549, 550, 550, - 550, 0, 561, 562, 562, 562, 562, 562, - 568, 569, 562, 0, 577, 578, 578, 578, - 0, 592, 593, 593, 596, 596, 600, 593, - 604, 604, 608, 593, 593, 593, 615, 593, - 593, 593 + 232, 232, 232, 232, 232, 232, 0, 497, + 498, 498, 0, 507, 508, 508, 508, 508, + 512, 513, 514, 0, 522, 523, 523, 524, + 525, 526, 0, 536, 537, 537, 537, 537, + 541, 0, 549, 550, 550, 551, 0, 562, + 563, 563, 563, 563, 563, 569, 570, 571, + 0, 579, 580, 580, 581, 0, 595, 596, + 596, 599, 599, 603, 596, 607, 607, 611, + 596, 615, 596, 619, 621, 596, 624, 596, + 596, 629 }; -static const int eo_tokenizer_start = 321; -static const int eo_tokenizer_first_final = 321; +static const int eo_tokenizer_start = 318; +static const int eo_tokenizer_first_final = 318; static const int eo_tokenizer_error = -1; -static const int eo_tokenizer_en_tokenize_accessor = 325; -static const int eo_tokenizer_en_tokenize_params = 334; -static const int eo_tokenizer_en_tokenize_property = 341; -static const int eo_tokenizer_en_tokenize_properties = 348; -static const int eo_tokenizer_en_tokenize_method = 353; -static const int eo_tokenizer_en_tokenize_methods = 363; -static const int eo_tokenizer_en_tokenize_class = 368; -static const int eo_tokenizer_en_main = 321; +static const int eo_tokenizer_en_tokenize_accessor = 322; +static const int eo_tokenizer_en_tokenize_params = 331; +static const int eo_tokenizer_en_tokenize_property = 338; +static const int eo_tokenizer_en_tokenize_properties = 345; +static const int eo_tokenizer_en_tokenize_method = 350; +static const int eo_tokenizer_en_tokenize_methods = 360; +static const int eo_tokenizer_en_tokenize_class = 365; +static const int eo_tokenizer_en_main = 318; #line 918 "eo_lexer.rl" @@ -1271,7 +1279,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1275 "eo_lexer.c" +#line 1283 "eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1306,7 +1314,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1310 "eo_lexer.c" +#line 1318 "eo_lexer.c" { int _klen; unsigned int _trans; @@ -1325,7 +1333,7 @@ _resume: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1329 "eo_lexer.c" +#line 1337 "eo_lexer.c" } } @@ -1700,7 +1708,7 @@ _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 = 341; goto _again;} + { toknz->cs = 338; goto _again;} }} break; case 42: @@ -1731,6 +1739,16 @@ _eof_trans: { toknz->te = ( toknz->p);( toknz->p)--;} break; case 45: +#line 399 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); + toknz->tmp.accessor = NULL; + toknz->current_nesting--; + { toknz->cs = 338; goto _again;} + }} + break; + case 46: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1749,11 +1767,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 46: + case 47: #line 429 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 47: + case 48: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -1772,28 +1790,28 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 48: + case 49: #line 313 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 49: + case 50: #line 457 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 341; goto _again;} + { toknz->cs = 338; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 353; goto _again;} + { toknz->cs = 350; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 50: + case 51: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1812,40 +1830,31 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 51: + case 52: #line 473 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 52: + case 53: #line 475 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 53: -#line 322 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} break; case 54: -#line 475 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} +#line 457 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->tmp.param = NULL; + toknz->current_nesting--; + if (toknz->tmp.prop) + { toknz->cs = 338; goto _again;} + else if (toknz->tmp.meth) + { toknz->cs = 350; goto _again;} + else + ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); + }} break; case 55: #line 322 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ + { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1863,55 +1872,12 @@ _eof_trans: }} break; case 56: -#line 313 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} +#line 475 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} break; case 57: -#line 482 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" get {"); - toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); - toknz->current_nesting++; - { toknz->cs = 325; goto _again;} - }} - break; - case 58: -#line 489 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" set {"); - toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); - toknz->current_nesting++; - { toknz->cs = 325; goto _again;} - }} - break; - case 59: -#line 496 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" params {"); - toknz->current_nesting++; - { toknz->cs = 334; goto _again;} - }} - break; - case 60: -#line 502 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (eina_list_count(toknz->tmp.prop->params) == 0) - WRN("property '%s' has no parameters.", toknz->tmp.prop->name); - if (eina_list_count(toknz->tmp.prop->accessors) == 0) - WRN("property '%s' has no accessors.", toknz->tmp.prop->name); - INF(" }"); - toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); - toknz->tmp.prop = NULL; - toknz->current_nesting--; - { toknz->cs = 348; goto _again;} - }} - break; - case 61: #line 322 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ + {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1926,15 +1892,58 @@ _eof_trans: toknz->current_nesting, toknz->current_line, *( toknz->p), buf); toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 58: +#line 313 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 59: +#line 482 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" get {"); + toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); + toknz->current_nesting++; + { toknz->cs = 322; goto _again;} + }} + break; + case 60: +#line 489 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" set {"); + toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); + toknz->current_nesting++; + { toknz->cs = 322; goto _again;} + }} + break; + case 61: +#line 496 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" params {"); + toknz->current_nesting++; + { toknz->cs = 331; goto _again;} }} break; case 62: -#line 519 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} +#line 502 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (eina_list_count(toknz->tmp.prop->params) == 0) + WRN("property '%s' has no parameters.", toknz->tmp.prop->name); + if (eina_list_count(toknz->tmp.prop->accessors) == 0) + WRN("property '%s' has no accessors.", toknz->tmp.prop->name); + INF(" }"); + toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); + toknz->tmp.prop = NULL; + toknz->current_nesting--; + { toknz->cs = 345; goto _again;} + }} break; case 63: #line 322 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1952,71 +1961,24 @@ _eof_trans: }} break; case 64: -#line 322 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} +#line 519 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} break; case 65: -#line 313 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); +#line 502 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + if (eina_list_count(toknz->tmp.prop->params) == 0) + WRN("property '%s' has no parameters.", toknz->tmp.prop->name); + if (eina_list_count(toknz->tmp.prop->accessors) == 0) + WRN("property '%s' has no accessors.", toknz->tmp.prop->name); + INF(" }"); + toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); + toknz->tmp.prop = NULL; + toknz->current_nesting--; + { toknz->cs = 345; goto _again;} }} break; case 66: -#line 530 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" %s {", toknz->tmp.prop->name); - toknz->current_nesting++; - { toknz->cs = 341; goto _again;} - }} - break; - case 67: -#line 542 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_nesting--; - { toknz->cs = 368; goto _again;} - }} - break; - case 68: -#line 322 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("error[%d]", toknz->cs); - char *s, *d; - char buf[BUFSIZE]; - for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) - { - if ((*s == '\r') || (*s == '\n')) - break; - *d++ = *s; - } - *d = '\0'; - ERR("error n:%d l:%d c:'%c': %s", - toknz->current_nesting, toknz->current_line, *( toknz->p), buf); - toknz->cs = eo_tokenizer_error; - {( toknz->p)++; goto _out; } /* necessary to stop scanners */ - }} - break; - case 69: -#line 551 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 70: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2035,7 +1997,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 71: + case 67: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2052,9 +2014,101 @@ _eof_trans: toknz->current_nesting, toknz->current_line, *( toknz->p), buf); toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 68: +#line 313 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 69: +#line 530 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" %s {", toknz->tmp.prop->name); + toknz->current_nesting++; + { toknz->cs = 338; goto _again;} + }} + break; + case 70: +#line 542 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 365; goto _again;} + }} + break; + case 71: +#line 322 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; case 72: +#line 551 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 73: +#line 542 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 365; goto _again;} + }} + break; + case 74: +#line 322 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 75: +#line 322 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ + DBG("error[%d]", toknz->cs); + char *s, *d; + char buf[BUFSIZE]; + for (s = ( toknz->p), d = buf; (s <= toknz->pe); s++) + { + if ((*s == '\r') || (*s == '\n')) + break; + *d++ = *s; + } + *d = '\0'; + ERR("error n:%d l:%d c:'%c': %s", + toknz->current_nesting, toknz->current_line, *( toknz->p), buf); + toknz->cs = eo_tokenizer_error; + {( toknz->p)++; goto _out; } /* necessary to stop scanners */ + }} + break; + case 76: #line 560 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.meth->comment != NULL) @@ -2063,30 +2117,30 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 73: + case 77: #line 313 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 74: + case 78: #line 567 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" params {"); toknz->current_nesting++; - { toknz->cs = 334; goto _again;} + { toknz->cs = 331; goto _again;} }} break; - case 75: + case 79: #line 633 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 76: + case 80: #line 634 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;} break; - case 77: + case 81: #line 596 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ Eina_List **l; @@ -2110,10 +2164,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 363; goto _again;} + { toknz->cs = 360; goto _again;} }} break; - case 78: + case 82: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2132,15 +2186,42 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 79: + case 83: #line 628 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 80: + case 84: #line 632 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 81: + case 85: +#line 596 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + Eina_List **l; + if (eina_list_count(toknz->tmp.meth->params) == 0) + WRN("method '%s' has no parameters.", toknz->tmp.meth->name); + INF(" }"); + switch (toknz->current_methods_type) { + case METH_CONSTRUCTOR: + l = &toknz->tmp.kls->constructors; + break; + case METH_DESTRUCTOR: + l = &toknz->tmp.kls->destructors; + break; + case METH_REGULAR: + l = &toknz->tmp.kls->methods; + break; + default: + ABORT(toknz, "unknown method type %d", toknz->current_methods_type); + } + toknz->tmp.meth->type = toknz->current_methods_type; + *l = eina_list_append(*l, toknz->tmp.meth); + toknz->tmp.meth = NULL; + toknz->current_nesting--; + { toknz->cs = 360; goto _again;} + }} + break; + case 86: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2159,11 +2240,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 82: + case 87: #line 632 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 83: + case 88: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2182,31 +2263,31 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 84: + case 89: #line 313 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 85: + case 90: #line 641 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" %s {", toknz->tmp.meth->name); toknz->current_nesting++; - { toknz->cs = 353; goto _again;} + { toknz->cs = 350; goto _again;} }} break; - case 86: + case 91: #line 653 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 368; goto _again;} + { toknz->cs = 365; goto _again;} }} break; - case 87: + case 92: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2225,11 +2306,20 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 88: + case 93: #line 663 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 89: + case 94: +#line 653 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 365; goto _again;} + }} + break; + case 95: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2248,7 +2338,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 90: + case 96: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2267,7 +2357,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 91: + case 97: #line 672 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.kls->comment != NULL) @@ -2275,76 +2365,76 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 92: + case 98: #line 313 "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 99: #line 683 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ toknz->tmp.kls->inherits = toknz->tmp.str_items; toknz->tmp.str_items = NULL; }} break; - case 94: + case 100: #line 688 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 95: + case 101: #line 691 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 96: + case 102: #line 694 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 363; goto _again;} + { toknz->cs = 360; goto _again;} }} break; - case 97: + case 103: #line 701 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 363; goto _again;} + { toknz->cs = 360; goto _again;} }} break; - case 98: + case 104: #line 708 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 348; goto _again;} + { toknz->cs = 345; goto _again;} }} break; - case 99: + case 105: #line 714 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 363; goto _again;} + { toknz->cs = 360; goto _again;} }} break; - case 100: + case 106: #line 721 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 321; goto _again;} + { toknz->cs = 318; goto _again;} }} break; - case 101: + case 107: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2363,23 +2453,50 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 102: + case 108: #line 870 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 103: + case 109: #line 873 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 104: + case 110: +#line 683 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + toknz->tmp.kls->inherits = toknz->tmp.str_items; + toknz->tmp.str_items = NULL; + }} + break; + case 111: +#line 688 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + }} + break; + case 112: +#line 691 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + }} + break; + case 113: #line 877 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 105: + case 114: #line 878 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 106: + case 115: +#line 721 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF("end class: %s", toknz->tmp.kls->name); + toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); + toknz->tmp.kls = NULL; + toknz->current_nesting--; + { toknz->cs = 318; goto _again;} + }} + break; + case 116: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2398,15 +2515,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 107: + case 117: #line 877 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 108: + case 118: #line 878 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 109: + case 119: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2425,22 +2542,22 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 110: + case 120: #line 313 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 111: + case 121: #line 889 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF("begin class: %s", toknz->tmp.kls->name); toknz->current_nesting++; - { toknz->cs = 368; goto _again;} + { toknz->cs = 365; goto _again;} }} break; - case 112: + case 122: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2459,11 +2576,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 113: + case 123: #line 912 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 114: + case 124: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2482,7 +2599,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 115: + case 125: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2501,7 +2618,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2505 "eo_lexer.c" +#line 2622 "eo_lexer.c" } } @@ -2514,7 +2631,7 @@ _again: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2518 "eo_lexer.c" +#line 2635 "eo_lexer.c" } } @@ -2535,7 +2652,7 @@ _again: #line 966 "eo_lexer.rl" if ( toknz->cs == -#line 2539 "eo_lexer.c" +#line 2656 "eo_lexer.c" -1 #line 967 "eo_lexer.rl" ) diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index 87f6db1c28..870e599697 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -355,7 +355,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) end_statement = ';'; begin_def = '{'; - end_def = '}' end_statement; + end_def = '}' end_statement?; begin_list = '('; end_list = ')'; list_separator = ',';