From 2f34bcac4bf6d61bb657e947e59bfa70ccad152d Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Mon, 17 Feb 2014 14:05:52 +0200 Subject: [PATCH] Eolian/Lexer: support of class types. Now, .eo format has to supply the class type class, abstract, mixin or interface. Example: class Elm_Button {... --- src/lib/eolian/Eolian.h | 2 +- src/lib/eolian/eo_definitions.h | 3 +- src/lib/eolian/eo_lexer.c | 2079 +++++++++++++++---------------- src/lib/eolian/eo_lexer.h | 2 + src/lib/eolian/eo_lexer.rl | 38 +- 5 files changed, 1061 insertions(+), 1063 deletions(-) diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index e0566eca99..43d1d8d4e0 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -83,7 +83,7 @@ typedef enum { EOLIAN_CLASS_UNKNOWN_TYPE, EOLIAN_CLASS_REGULAR, - EOLIAN_CLASS_REGULAR_NON_INSTANT, + EOLIAN_CLASS_ABSTRACT, EOLIAN_CLASS_MIXIN, EOLIAN_CLASS_INTERFACE } Eolian_Class_Type; diff --git a/src/lib/eolian/eo_definitions.h b/src/lib/eolian/eo_definitions.h index 892d8cb259..9a38c7817f 100644 --- a/src/lib/eolian/eo_definitions.h +++ b/src/lib/eolian/eo_definitions.h @@ -2,6 +2,7 @@ #define __EO_DEFINITIONS_H__ #include +#include /* RET */ @@ -134,7 +135,7 @@ typedef struct _eo_implement_def typedef struct _eo_class_def { const char *name; - const char *type; /* Regular, RegularNonInstantiable, Mixin and Interface */ + Eolian_Class_Type type; const char *comment; const char *legacy_prefix; Eina_List *inherits; diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 1f9e0c4cf6..4c49b673fd 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -295,7 +295,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) #line 298 "eo_lexer.c" -static const char _eo_tokenizer_actions[] = { +static const unsigned char _eo_tokenizer_actions[] = { 0, 1, 0, 1, 2, 1, 6, 1, 10, 1, 15, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20, 1, 21, 1, @@ -303,7 +303,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, 41, 1, 42, 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, @@ -312,8 +312,8 @@ static const char _eo_tokenizer_actions[] = { 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 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, + 76, 1, 77, 1, 78, 1, 79, 1, + 80, 1, 81, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, 94, 1, 95, 1, 96, 1, 97, 1, @@ -323,91 +323,88 @@ 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, 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 + 122, 1, 123, 1, 124, 1, 125, 1, + 126, 1, 127, 1, 128, 2, 0, 41, + 2, 0, 52, 2, 0, 61, 2, 0, + 71, 2, 0, 80, 2, 0, 92, 2, + 0, 101, 2, 0, 123, 2, 4, 47, + 2, 5, 42, 2, 6, 2, 2, 7, + 43, 2, 8, 56, 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, + 18, 0, 2, 18, 2, 2, 19, 0, + 2, 21, 0, 2, 22, 0, 2, 22, + 116, 2, 23, 0, 2, 23, 117, 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, 124, 2, 39, 1, 2, 39, 2, + 2, 39, 3, 2, 39, 9, 2, 39, + 11, 2, 39, 19, 2, 39, 21 }; static const short _eo_tokenizer_key_offsets[] = { - 0, 2, 5, 6, 20, 24, 32, 33, - 36, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 85, 87, 90, 101, 103, - 106, 107, 118, 122, 129, 136, 148, 160, - 172, 184, 196, 207, 215, 222, 230, 242, - 254, 266, 278, 289, 297, 308, 320, 324, - 325, 326, 336, 338, 341, 343, 346, 347, - 359, 363, 364, 365, 375, 377, 380, 382, - 385, 386, 387, 391, 392, 393, 394, 395, - 399, 400, 404, 406, 409, 410, 421, 425, - 428, 430, 433, 444, 446, 449, 450, 451, - 452, 453, 454, 457, 464, 471, 479, 480, - 481, 482, 483, 487, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 504, 505, - 506, 507, 508, 511, 518, 529, 541, 545, - 546, 547, 557, 559, 562, 564, 567, 568, - 579, 583, 586, 588, 591, 602, 604, 607, - 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 622, 626, 627, 628, 638, 640, - 643, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 660, 664, 665, 666, 676, 678, - 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, 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 + 0, 2, 5, 6, 7, 8, 9, 10, + 11, 12, 15, 22, 29, 40, 44, 45, + 46, 47, 50, 51, 52, 53, 54, 55, + 56, 57, 60, 61, 62, 63, 66, 69, + 71, 74, 85, 87, 90, 91, 102, 106, + 113, 120, 132, 144, 156, 168, 180, 191, + 199, 206, 214, 226, 238, 250, 262, 273, + 281, 292, 304, 308, 309, 310, 320, 322, + 325, 327, 330, 331, 343, 347, 348, 349, + 359, 361, 364, 366, 369, 370, 371, 375, + 376, 377, 378, 379, 383, 384, 388, 390, + 393, 394, 405, 409, 412, 414, 417, 428, + 430, 433, 434, 435, 436, 437, 438, 441, + 448, 455, 463, 464, 465, 466, 467, 471, + 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 488, 489, 490, 491, 492, 495, + 502, 513, 525, 529, 530, 531, 541, 543, + 546, 548, 551, 552, 563, 567, 570, 572, + 575, 586, 588, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 606, 610, + 611, 612, 622, 624, 627, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 644, 648, + 649, 650, 660, 662, 665, 669, 670, 671, + 672, 673, 677, 685, 693, 705, 709, 721, + 722, 723, 733, 735, 738, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 758, 766, + 774, 787, 792, 796, 797, 798, 799, 800, + 801, 813, 818, 822, 831, 835, 836, 837, + 838, 839, 840, 844, 853, 860, 867, 878, + 882, 896, 906, 913, 925, 930, 936, 941, + 942, 943, 944, 945, 946, 949, 956, 963, + 971, 972, 976, 983, 991, 995, 1000, 1001, + 1002, 1012, 1014, 1017, 1027, 1039, 1046, 1058, + 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1069, + 1077, 1084, 1096, 1101, 1108, 1109, 1110, 1111, + 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, + 1123, 1130, 1137, 1145, 1146, 1147, 1148, 1149, + 1150, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1162, 1166, 1174, 1177, 1179, 1180, 1181, + 1182, 1183, 1194, 1197, 1199, 1206, 1214, 1222, + 1226, 1226, 1227, 1236, 1239, 1241, 1252, 1256, + 1256, 1257, 1265, 1268, 1270, 1271, 1272, 1273, + 1274, 1283, 1286, 1288, 1295, 1296, 1305, 1308, + 1310, 1311, 1312, 1313, 1314, 1318, 1318, 1319, + 1328, 1331, 1333, 1340, 1341, 1353, 1356, 1358, + 1359, 1366, 1369, 1372, 1373, 1380, 1383, 1386, + 1387, 1388, 1390, 1391, 1392, 1393, 1396, 1397, + 1398 }; static const char _eo_tokenizer_trans_keys[] = { - 10, 42, 10, 42, 47, 10, 9, 10, - 13, 32, 95, 123, 0, 31, 48, 57, - 65, 90, 97, 122, 10, 123, 0, 32, - 9, 10, 13, 32, 97, 123, 0, 31, - 115, 9, 13, 32, 9, 13, 32, 73, - 77, 82, 110, 116, 101, 114, 102, 97, - 99, 101, 10, 123, 0, 32, 105, 120, - 105, 110, 101, 103, 117, 108, 97, 114, - 10, 78, 123, 0, 32, 111, 110, 73, - 110, 115, 116, 97, 110, 116, 105, 97, - 98, 108, 10, 42, 64, 10, 42, 10, + 10, 42, 10, 42, 47, 10, 115, 116, + 114, 97, 99, 116, 9, 13, 32, 9, + 13, 32, 65, 90, 97, 122, 95, 48, + 57, 65, 90, 97, 122, 10, 95, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 123, 0, 32, 97, 115, 115, 9, + 13, 32, 116, 101, 114, 102, 97, 99, + 101, 9, 13, 32, 120, 105, 110, 9, + 13, 32, 10, 42, 64, 10, 42, 10, 42, 47, 10, 42, 95, 0, 32, 48, 57, 65, 90, 97, 122, 10, 42, 10, 42, 47, 10, 9, 13, 32, 58, 95, @@ -545,545 +542,536 @@ static const char _eo_tokenizer_trans_keys[] = { 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, 32, 65, + 97, 99, 105, 109, 0, 32, 10, 0, + 32, 42, 47, 98, 108, 110, 105, 10, + 47, 108, 114, 125, 0, 32, 65, 90, + 97, 122, 10, 0, 32, 42, 47, 95, + 48, 57, 65, 90, 97, 122, 95, 101, + 48, 57, 65, 90, 97, 122, 95, 101, + 48, 57, 65, 90, 97, 122, 9, 13, + 32, 47, 59, 10, 47, 125, 0, 32, + 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, 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 + 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[] = { - 2, 3, 1, 6, 2, 6, 1, 3, - 6, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 1, 1, + 2, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 3, 1, 3, 2, 1, 1, + 1, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 1, 1, 3, 3, 2, + 3, 3, 2, 3, 1, 5, 4, 3, + 3, 6, 6, 6, 6, 6, 5, 4, + 1, 2, 6, 6, 6, 6, 5, 4, + 5, 6, 4, 1, 1, 2, 2, 3, + 2, 3, 1, 6, 4, 1, 1, 2, + 2, 3, 2, 3, 1, 1, 2, 1, + 1, 1, 1, 2, 1, 2, 2, 3, + 1, 3, 2, 3, 2, 3, 3, 2, + 3, 1, 1, 1, 1, 1, 3, 3, + 1, 2, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 3, 3, 2, 3, - 1, 5, 4, 3, 3, 6, 6, 6, - 6, 6, 5, 4, 1, 2, 6, 6, - 6, 6, 5, 4, 5, 6, 4, 1, - 1, 2, 2, 3, 2, 3, 1, 6, - 4, 1, 1, 2, 2, 3, 2, 3, - 1, 1, 2, 1, 1, 1, 1, 2, - 1, 2, 2, 3, 1, 3, 2, 3, - 2, 3, 3, 2, 3, 1, 1, 1, - 1, 1, 3, 3, 1, 2, 1, 1, - 1, 1, 4, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 1, 1, - 1, 1, 3, 3, 5, 6, 4, 1, - 1, 2, 2, 3, 2, 3, 1, 3, - 2, 3, 2, 3, 3, 2, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 1, 2, 2, 3, - 2, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 1, 2, 2, 3, - 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, 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, - 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, 2, 1, 1, 1, 1, 3, 3, + 5, 6, 4, 1, 1, 2, 2, 3, + 2, 3, 1, 3, 2, 3, 2, 3, + 3, 2, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 1, + 1, 2, 2, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 1, + 1, 2, 2, 3, 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, 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, 1, 1, 1, 2, 1, 1, 2, 1, 1, 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, 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 }; static const char _eo_tokenizer_range_lengths[] = { - 0, 0, 0, 4, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 2, 3, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 0, - 0, 3, 0, 2, 2, 3, 3, 3, - 3, 3, 3, 2, 3, 3, 3, 3, - 3, 3, 3, 2, 3, 3, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 3, - 0, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 1, - 0, 1, 0, 0, 0, 4, 1, 0, - 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 2, 3, 3, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 4, - 1, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 0, 0, 4, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 0, 0, 4, 0, 0, - 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, 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, - 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, 4, 0, 0, 0, 3, 0, 2, + 2, 3, 3, 3, 3, 3, 3, 2, + 3, 3, 3, 3, 3, 3, 3, 2, + 3, 3, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0 + 0, 0, 0, 1, 0, 1, 0, 0, + 0, 4, 1, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 2, + 3, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 2, + 3, 3, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 4, 1, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, + 0, 4, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 0, + 0, 4, 0, 0, 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, 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, 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, + 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 }; static const short _eo_tokenizer_index_offsets[] = { - 0, 3, 7, 9, 20, 24, 32, 34, - 38, 45, 47, 49, 51, 53, 55, 57, - 59, 61, 65, 67, 69, 71, 73, 75, - 77, 79, 81, 83, 85, 90, 92, 94, - 96, 98, 100, 102, 104, 106, 108, 110, - 112, 114, 116, 120, 123, 127, 135, 138, - 142, 144, 153, 158, 164, 170, 180, 190, - 200, 210, 220, 229, 236, 241, 247, 257, - 267, 277, 287, 296, 303, 312, 322, 327, - 329, 331, 338, 341, 345, 348, 352, 354, - 364, 369, 371, 373, 380, 383, 387, 390, - 394, 396, 398, 402, 404, 406, 408, 410, - 414, 416, 420, 423, 427, 429, 437, 441, - 445, 448, 452, 460, 463, 467, 469, 471, - 473, 475, 477, 481, 487, 492, 498, 500, - 502, 504, 506, 511, 516, 518, 520, 522, - 524, 526, 528, 530, 532, 534, 538, 540, - 542, 544, 546, 550, 556, 565, 575, 580, - 582, 584, 591, 594, 598, 601, 605, 607, - 615, 619, 623, 626, 630, 638, 641, 645, - 647, 649, 651, 653, 655, 657, 659, 661, - 663, 665, 670, 674, 676, 678, 685, 688, - 692, 696, 698, 700, 702, 704, 706, 708, - 710, 712, 717, 721, 723, 725, 732, 735, - 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, 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 + 0, 3, 7, 9, 11, 13, 15, 17, + 19, 21, 25, 31, 36, 44, 48, 50, + 52, 54, 58, 60, 62, 64, 66, 68, + 70, 72, 76, 78, 80, 82, 86, 90, + 93, 97, 105, 108, 112, 114, 123, 128, + 134, 140, 150, 160, 170, 180, 190, 199, + 206, 211, 217, 227, 237, 247, 257, 266, + 273, 282, 292, 297, 299, 301, 308, 311, + 315, 318, 322, 324, 334, 339, 341, 343, + 350, 353, 357, 360, 364, 366, 368, 372, + 374, 376, 378, 380, 384, 386, 390, 393, + 397, 399, 407, 411, 415, 418, 422, 430, + 433, 437, 439, 441, 443, 445, 447, 451, + 457, 462, 468, 470, 472, 474, 476, 481, + 486, 488, 490, 492, 494, 496, 498, 500, + 502, 504, 508, 510, 512, 514, 516, 520, + 526, 535, 545, 550, 552, 554, 561, 564, + 568, 571, 575, 577, 585, 589, 593, 596, + 600, 608, 611, 615, 617, 619, 621, 623, + 625, 627, 629, 631, 633, 635, 640, 644, + 646, 648, 655, 658, 662, 666, 668, 670, + 672, 674, 676, 678, 680, 682, 687, 691, + 693, 695, 702, 705, 709, 713, 715, 717, + 719, 721, 725, 731, 737, 746, 750, 760, + 762, 764, 771, 774, 778, 784, 786, 788, + 790, 792, 794, 796, 798, 800, 804, 810, + 816, 826, 831, 835, 837, 839, 841, 843, + 845, 855, 860, 864, 871, 875, 877, 879, + 881, 883, 885, 889, 896, 902, 907, 915, + 919, 931, 939, 944, 954, 960, 966, 971, + 973, 975, 977, 979, 981, 985, 991, 996, + 1002, 1004, 1007, 1012, 1018, 1022, 1027, 1029, + 1031, 1038, 1041, 1045, 1053, 1063, 1068, 1077, + 1079, 1081, 1083, 1085, 1087, 1089, 1091, 1095, + 1101, 1106, 1115, 1120, 1125, 1127, 1129, 1131, + 1133, 1135, 1137, 1139, 1141, 1143, 1145, 1147, + 1151, 1156, 1161, 1167, 1169, 1171, 1173, 1175, + 1177, 1181, 1183, 1185, 1187, 1189, 1191, 1193, + 1195, 1197, 1201, 1209, 1212, 1215, 1217, 1219, + 1221, 1223, 1232, 1235, 1238, 1243, 1249, 1255, + 1260, 1261, 1263, 1270, 1273, 1276, 1285, 1290, + 1291, 1293, 1301, 1304, 1307, 1309, 1311, 1313, + 1315, 1322, 1325, 1328, 1333, 1335, 1344, 1347, + 1350, 1352, 1354, 1356, 1358, 1363, 1364, 1366, + 1373, 1376, 1379, 1384, 1386, 1398, 1401, 1404, + 1406, 1413, 1416, 1419, 1421, 1428, 1431, 1434, + 1436, 1438, 1441, 1443, 1445, 1447, 1450, 1452, + 1454 }; static const short _eo_tokenizer_indicies[] = { 2, 3, 1, 2, 3, 4, 1, 6, - 5, 8, 9, 8, 8, 10, 11, 7, - 10, 10, 10, 0, 13, 14, 12, 0, - 15, 13, 15, 15, 16, 14, 12, 0, - 17, 0, 18, 18, 18, 0, 19, 19, - 19, 20, 21, 22, 0, 23, 0, 24, - 0, 25, 0, 26, 0, 27, 0, 28, - 0, 29, 0, 30, 0, 32, 33, 31, - 0, 34, 0, 35, 0, 36, 0, 30, - 0, 37, 0, 38, 0, 39, 0, 40, - 0, 41, 0, 42, 0, 32, 43, 33, - 31, 0, 44, 0, 45, 0, 46, 0, - 47, 0, 48, 0, 49, 0, 50, 0, - 51, 0, 52, 0, 53, 0, 54, 0, - 55, 0, 29, 0, 58, 59, 60, 57, - 58, 59, 57, 58, 59, 61, 57, 62, - 59, 63, 60, 63, 63, 63, 57, 65, - 66, 64, 65, 66, 67, 64, 69, 68, - 70, 70, 70, 72, 71, 71, 71, 71, - 56, 70, 70, 70, 72, 56, 73, 73, - 73, 74, 74, 56, 75, 75, 75, 76, - 76, 56, 77, 77, 77, 77, 78, 77, - 77, 77, 77, 56, 70, 70, 70, 72, - 71, 79, 71, 71, 71, 56, 70, 70, - 70, 72, 71, 80, 71, 71, 71, 56, - 70, 70, 70, 72, 71, 81, 71, 71, - 71, 56, 70, 70, 70, 72, 71, 82, - 71, 71, 71, 56, 83, 83, 83, 72, - 71, 71, 71, 71, 56, 83, 83, 83, - 72, 84, 84, 56, 85, 85, 85, 85, - 56, 86, 85, 85, 85, 85, 56, 70, - 70, 70, 72, 71, 87, 71, 71, 71, - 56, 70, 70, 70, 72, 71, 88, 71, - 71, 71, 56, 70, 70, 70, 72, 71, - 89, 71, 71, 71, 56, 70, 70, 70, - 72, 71, 90, 71, 71, 71, 56, 91, - 91, 91, 72, 71, 71, 71, 71, 56, - 91, 91, 91, 72, 92, 92, 56, 93, - 93, 93, 93, 93, 93, 93, 93, 56, - 93, 93, 93, 93, 94, 93, 93, 93, - 93, 56, 96, 96, 96, 97, 95, 98, - 95, 99, 95, 100, 101, 99, 101, 101, - 101, 95, 103, 104, 102, 103, 104, 105, - 102, 108, 109, 107, 108, 109, 110, 107, - 112, 111, 113, 113, 113, 113, 114, 113, - 113, 113, 113, 106, 116, 116, 116, 117, - 115, 118, 115, 119, 115, 120, 121, 119, - 121, 121, 121, 115, 123, 124, 122, 123, - 124, 125, 122, 128, 129, 127, 128, 129, - 130, 127, 132, 131, 133, 126, 134, 135, - 133, 126, 136, 126, 137, 126, 138, 126, - 139, 126, 140, 141, 139, 126, 142, 126, - 143, 144, 142, 126, 147, 148, 146, 147, - 148, 149, 146, 151, 150, 153, 154, 155, - 152, 154, 154, 154, 145, 157, 158, 156, - 145, 161, 162, 163, 160, 161, 162, 160, - 161, 162, 164, 160, 165, 162, 166, 163, - 166, 166, 166, 160, 168, 169, 167, 168, - 169, 170, 167, 172, 171, 173, 159, 174, - 159, 175, 159, 176, 159, 177, 177, 177, - 159, 177, 177, 177, 178, 178, 159, 179, - 179, 179, 179, 159, 180, 179, 179, 179, - 179, 159, 181, 159, 182, 159, 183, 159, - 184, 159, 184, 184, 184, 185, 159, 185, - 185, 185, 186, 159, 187, 159, 188, 159, - 189, 159, 190, 159, 191, 159, 192, 159, - 193, 159, 194, 159, 195, 159, 196, 197, - 195, 159, 198, 159, 199, 159, 200, 159, - 201, 159, 202, 202, 202, 159, 202, 202, - 202, 203, 203, 159, 204, 204, 204, 204, - 204, 204, 204, 204, 159, 204, 204, 204, - 204, 205, 204, 204, 204, 204, 159, 207, - 207, 207, 208, 206, 209, 206, 210, 206, - 211, 212, 210, 212, 212, 212, 206, 214, - 215, 213, 214, 215, 216, 213, 219, 220, - 218, 219, 220, 221, 218, 223, 222, 225, - 226, 227, 224, 226, 226, 226, 217, 229, - 230, 228, 217, 233, 234, 235, 232, 233, - 234, 232, 233, 234, 236, 232, 237, 234, - 238, 235, 238, 238, 238, 232, 240, 241, - 239, 240, 241, 242, 239, 244, 243, 245, - 231, 246, 231, 247, 231, 248, 231, 249, - 231, 250, 231, 251, 231, 252, 231, 253, - 231, 255, 256, 257, 254, 231, 259, 260, - 258, 231, 262, 261, 263, 261, 264, 265, - 263, 265, 265, 265, 261, 267, 268, 266, - 267, 268, 269, 266, 270, 271, 257, 231, - 272, 231, 273, 231, 274, 231, 275, 231, - 276, 231, 277, 231, 278, 231, 279, 231, - 281, 282, 283, 280, 231, 285, 286, 284, - 231, 288, 287, 289, 287, 290, 291, 289, - 291, 291, 291, 287, 293, 294, 292, 293, - 294, 295, 292, 296, 297, 283, 231, 298, - 231, 299, 231, 300, 231, 301, 231, 302, - 303, 301, 231, 304, 306, 303, 305, 305, - 231, 307, 307, 307, 307, 307, 231, 309, - 307, 310, 307, 308, 307, 307, 307, 231, - 312, 313, 311, 231, 313, 304, 313, 313, - 314, 306, 303, 305, 305, 231, 315, 231, - 316, 231, 317, 318, 316, 318, 318, 318, - 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, 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 + 5, 7, 0, 8, 0, 9, 0, 10, + 0, 11, 0, 12, 0, 13, 13, 13, + 0, 14, 14, 14, 15, 15, 0, 16, + 16, 16, 16, 0, 18, 16, 19, 17, + 16, 16, 16, 0, 21, 22, 20, 0, + 23, 0, 24, 0, 25, 0, 26, 26, + 26, 0, 27, 0, 28, 0, 29, 0, + 30, 0, 31, 0, 32, 0, 33, 0, + 34, 34, 34, 0, 35, 0, 36, 0, + 37, 0, 38, 38, 38, 0, 41, 42, + 43, 40, 41, 42, 40, 41, 42, 44, + 40, 45, 42, 46, 43, 46, 46, 46, + 40, 48, 49, 47, 48, 49, 50, 47, + 52, 51, 53, 53, 53, 55, 54, 54, + 54, 54, 39, 53, 53, 53, 55, 39, + 56, 56, 56, 57, 57, 39, 58, 58, + 58, 59, 59, 39, 60, 60, 60, 60, + 61, 60, 60, 60, 60, 39, 53, 53, + 53, 55, 54, 62, 54, 54, 54, 39, + 53, 53, 53, 55, 54, 63, 54, 54, + 54, 39, 53, 53, 53, 55, 54, 64, + 54, 54, 54, 39, 53, 53, 53, 55, + 54, 65, 54, 54, 54, 39, 66, 66, + 66, 55, 54, 54, 54, 54, 39, 66, + 66, 66, 55, 67, 67, 39, 68, 68, + 68, 68, 39, 69, 68, 68, 68, 68, + 39, 53, 53, 53, 55, 54, 70, 54, + 54, 54, 39, 53, 53, 53, 55, 54, + 71, 54, 54, 54, 39, 53, 53, 53, + 55, 54, 72, 54, 54, 54, 39, 53, + 53, 53, 55, 54, 73, 54, 54, 54, + 39, 74, 74, 74, 55, 54, 54, 54, + 54, 39, 74, 74, 74, 55, 75, 75, + 39, 76, 76, 76, 76, 76, 76, 76, + 76, 39, 76, 76, 76, 76, 77, 76, + 76, 76, 76, 39, 79, 79, 79, 80, + 78, 81, 78, 82, 78, 83, 84, 82, + 84, 84, 84, 78, 86, 87, 85, 86, + 87, 88, 85, 91, 92, 90, 91, 92, + 93, 90, 95, 94, 96, 96, 96, 96, + 97, 96, 96, 96, 96, 89, 99, 99, + 99, 100, 98, 101, 98, 102, 98, 103, + 104, 102, 104, 104, 104, 98, 106, 107, + 105, 106, 107, 108, 105, 111, 112, 110, + 111, 112, 113, 110, 115, 114, 116, 109, + 117, 118, 116, 109, 119, 109, 120, 109, + 121, 109, 122, 109, 123, 124, 122, 109, + 125, 109, 126, 127, 125, 109, 130, 131, + 129, 130, 131, 132, 129, 134, 133, 136, + 137, 138, 135, 137, 137, 137, 128, 140, + 141, 139, 128, 144, 145, 146, 143, 144, + 145, 143, 144, 145, 147, 143, 148, 145, + 149, 146, 149, 149, 149, 143, 151, 152, + 150, 151, 152, 153, 150, 155, 154, 156, + 142, 157, 142, 158, 142, 159, 142, 160, + 160, 160, 142, 160, 160, 160, 161, 161, + 142, 162, 162, 162, 162, 142, 163, 162, + 162, 162, 162, 142, 164, 142, 165, 142, + 166, 142, 167, 142, 167, 167, 167, 168, + 142, 168, 168, 168, 169, 142, 170, 142, + 171, 142, 172, 142, 173, 142, 174, 142, + 175, 142, 176, 142, 177, 142, 178, 142, + 179, 180, 178, 142, 181, 142, 182, 142, + 183, 142, 184, 142, 185, 185, 185, 142, + 185, 185, 185, 186, 186, 142, 187, 187, + 187, 187, 187, 187, 187, 187, 142, 187, + 187, 187, 187, 188, 187, 187, 187, 187, + 142, 190, 190, 190, 191, 189, 192, 189, + 193, 189, 194, 195, 193, 195, 195, 195, + 189, 197, 198, 196, 197, 198, 199, 196, + 202, 203, 201, 202, 203, 204, 201, 206, + 205, 208, 209, 210, 207, 209, 209, 209, + 200, 212, 213, 211, 200, 216, 217, 218, + 215, 216, 217, 215, 216, 217, 219, 215, + 220, 217, 221, 218, 221, 221, 221, 215, + 223, 224, 222, 223, 224, 225, 222, 227, + 226, 228, 214, 229, 214, 230, 214, 231, + 214, 232, 214, 233, 214, 234, 214, 235, + 214, 236, 214, 238, 239, 240, 237, 214, + 242, 243, 241, 214, 245, 244, 246, 244, + 247, 248, 246, 248, 248, 248, 244, 250, + 251, 249, 250, 251, 252, 249, 253, 254, + 240, 214, 255, 214, 256, 214, 257, 214, + 258, 214, 259, 214, 260, 214, 261, 214, + 262, 214, 264, 265, 266, 263, 214, 268, + 269, 267, 214, 271, 270, 272, 270, 273, + 274, 272, 274, 274, 274, 270, 276, 277, + 275, 276, 277, 278, 275, 279, 280, 266, + 214, 281, 214, 282, 214, 283, 214, 284, + 214, 285, 286, 284, 214, 287, 289, 286, + 288, 288, 214, 290, 290, 290, 290, 290, + 214, 292, 290, 293, 290, 291, 290, 290, + 290, 214, 295, 296, 294, 214, 296, 287, + 296, 296, 297, 289, 286, 288, 288, 214, + 298, 214, 299, 214, 300, 301, 299, 301, + 301, 301, 214, 303, 304, 302, 303, 304, + 305, 302, 307, 309, 306, 308, 308, 214, + 310, 214, 311, 214, 312, 214, 313, 214, + 314, 214, 315, 214, 316, 214, 317, 214, + 318, 319, 317, 214, 320, 322, 319, 321, + 321, 214, 324, 323, 323, 323, 323, 214, + 326, 324, 327, 323, 328, 325, 323, 323, + 323, 214, 330, 319, 331, 329, 214, 332, + 333, 331, 214, 334, 214, 335, 214, 336, + 214, 337, 214, 338, 214, 340, 341, 340, + 340, 342, 344, 339, 343, 343, 214, 346, + 347, 348, 345, 214, 349, 350, 347, 214, + 320, 319, 322, 319, 321, 321, 214, 351, + 352, 348, 214, 353, 214, 354, 214, 355, + 214, 356, 214, 357, 214, 358, 359, 357, + 214, 360, 361, 362, 359, 363, 363, 214, + 361, 361, 361, 364, 364, 214, 365, 365, + 365, 365, 214, 367, 368, 365, 366, 365, + 365, 365, 214, 370, 362, 369, 214, 362, + 372, 362, 362, 373, 361, 362, 374, 371, + 363, 363, 214, 372, 361, 362, 374, 371, + 363, 363, 214, 375, 375, 375, 375, 214, + 376, 376, 376, 377, 378, 375, 375, 375, + 375, 214, 379, 379, 379, 361, 362, 214, + 381, 380, 382, 383, 380, 214, 381, 382, + 383, 380, 214, 384, 214, 385, 214, 386, + 214, 387, 214, 388, 214, 389, 389, 389, + 214, 389, 389, 389, 390, 390, 214, 391, + 391, 391, 391, 214, 392, 391, 391, 391, + 391, 214, 393, 214, 394, 394, 214, 395, + 395, 395, 395, 214, 396, 395, 395, 395, + 395, 214, 398, 383, 397, 214, 349, 347, + 350, 347, 214, 399, 214, 400, 214, 401, + 402, 400, 402, 402, 402, 214, 404, 405, + 403, 404, 405, 406, 403, 408, 409, 410, + 412, 407, 411, 411, 214, 413, 346, 413, + 413, 347, 348, 345, 414, 414, 214, 415, + 415, 415, 415, 214, 417, 418, 415, 419, + 416, 415, 415, 415, 214, 323, 214, 420, + 214, 421, 214, 422, 214, 423, 214, 424, + 214, 425, 214, 426, 427, 425, 214, 428, + 430, 427, 429, 429, 214, 431, 431, 431, + 431, 214, 433, 434, 431, 435, 432, 431, + 431, 431, 214, 437, 438, 430, 436, 214, + 439, 438, 429, 429, 214, 440, 214, 441, + 214, 442, 214, 443, 214, 444, 214, 445, + 214, 446, 214, 447, 214, 448, 214, 449, + 214, 450, 214, 451, 452, 450, 214, 453, + 452, 454, 454, 214, 455, 455, 455, 455, + 214, 456, 455, 455, 455, 455, 214, 457, + 214, 458, 214, 459, 214, 460, 214, 461, + 214, 462, 463, 461, 214, 464, 214, 465, + 214, 466, 214, 467, 214, 468, 214, 469, + 214, 470, 214, 471, 214, 472, 473, 471, + 214, 476, 477, 478, 479, 480, 481, 475, + 474, 476, 475, 482, 1, 5, 483, 484, + 483, 485, 483, 486, 483, 487, 483, 490, + 491, 493, 494, 495, 489, 492, 492, 488, + 490, 489, 496, 498, 51, 497, 54, 54, + 54, 54, 497, 54, 499, 54, 54, 54, + 497, 54, 500, 54, 54, 54, 497, 79, + 79, 79, 80, 501, 502, 504, 503, 507, + 508, 510, 506, 509, 509, 505, 507, 506, + 511, 90, 94, 512, 96, 96, 96, 96, + 96, 96, 96, 96, 512, 99, 99, 99, + 100, 513, 514, 516, 515, 519, 520, 521, + 522, 523, 524, 518, 517, 519, 518, 525, + 110, 114, 526, 527, 526, 528, 526, 529, + 526, 531, 530, 534, 535, 537, 533, 536, + 536, 532, 534, 533, 538, 129, 133, 539, + 137, 137, 137, 137, 539, 541, 540, 544, + 545, 546, 547, 548, 549, 550, 543, 542, + 544, 543, 551, 553, 154, 552, 554, 552, + 555, 552, 556, 552, 557, 552, 190, 190, + 190, 191, 558, 559, 561, 560, 564, 565, + 567, 563, 566, 566, 562, 564, 563, 568, + 201, 205, 569, 209, 209, 209, 209, 569, + 571, 570, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 573, 572, 574, 573, + 584, 586, 226, 585, 587, 585, 243, 590, + 243, 243, 591, 589, 588, 590, 589, 588, + 594, 593, 592, 595, 585, 269, 598, 269, + 269, 599, 597, 596, 598, 597, 596, 602, + 601, 600, 603, 585, 605, 604, 606, 607, + 585, 609, 608, 611, 610, 612, 585, 615, + 614, 613, 616, 585, 617, 585, 619, 618, + 0 }; static const short _eo_tokenizer_trans_targs[] = { - 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, 318, 19, 20, 21, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, - 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, 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, - 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, - 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, 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, 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 + 306, 0, 0, 1, 306, 2, 306, 4, + 5, 6, 7, 8, 9, 10, 10, 11, + 12, 13, 13, 306, 13, 13, 306, 15, + 16, 17, 10, 19, 20, 21, 22, 23, + 24, 25, 10, 27, 28, 29, 10, 313, + 31, 31, 32, 33, 313, 33, 34, 34, + 34, 35, 313, 36, 313, 38, 37, 39, + 40, 41, 40, 41, 41, 313, 43, 44, + 45, 46, 47, 48, 49, 313, 51, 52, + 53, 54, 55, 56, 57, 319, 313, 58, + 59, 60, 61, 61, 62, 62, 62, 63, + 320, 322, 64, 64, 65, 322, 66, 322, + 67, 326, 322, 68, 69, 70, 71, 71, + 72, 72, 72, 73, 327, 329, 74, 74, + 75, 329, 76, 329, 78, 78, 329, 80, + 81, 82, 83, 83, 329, 85, 85, 329, + 336, 86, 86, 87, 336, 88, 336, 90, + 90, 89, 336, 90, 90, 336, 341, 92, + 92, 93, 94, 341, 94, 95, 95, 95, + 96, 341, 97, 341, 99, 100, 101, 102, + 103, 104, 105, 341, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 341, 118, + 119, 120, 121, 121, 341, 123, 124, 125, + 126, 127, 128, 129, 348, 341, 130, 131, + 132, 133, 133, 134, 134, 134, 135, 349, + 351, 136, 136, 137, 351, 138, 351, 140, + 140, 139, 351, 140, 140, 351, 356, 142, + 142, 143, 144, 356, 144, 145, 145, 145, + 146, 356, 147, 356, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 158, 360, + 164, 158, 158, 360, 356, 160, 161, 161, + 162, 162, 162, 163, 362, 164, 356, 166, + 167, 168, 169, 170, 171, 172, 173, 174, + 174, 364, 180, 174, 174, 364, 356, 176, + 177, 177, 178, 178, 178, 179, 366, 180, + 356, 182, 183, 184, 185, 185, 186, 186, + 187, 368, 188, 189, 189, 190, 189, 189, + 190, 191, 192, 193, 193, 194, 194, 194, + 195, 196, 186, 186, 187, 368, 198, 199, + 200, 201, 202, 203, 204, 205, 205, 206, + 206, 207, 370, 208, 263, 209, 209, 206, + 210, 209, 209, 210, 210, 211, 212, 213, + 214, 215, 216, 217, 260, 217, 218, 261, + 220, 217, 217, 218, 220, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 226, 227, + 227, 228, 232, 234, 229, 230, 231, 231, + 232, 231, 231, 233, 233, 254, 237, 235, + 236, 228, 232, 236, 238, 238, 239, 253, + 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 252, 252, 255, + 256, 256, 257, 257, 257, 258, 259, 233, + 233, 228, 232, 234, 237, 260, 261, 262, + 217, 217, 218, 220, 265, 266, 267, 268, + 269, 270, 270, 271, 271, 272, 371, 273, + 274, 274, 275, 371, 274, 274, 275, 275, + 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 287, 288, 288, 289, 290, + 373, 292, 293, 294, 295, 296, 296, 356, + 298, 299, 300, 301, 302, 303, 304, 305, + 305, 356, 306, 307, 307, 308, 309, 310, + 311, 312, 306, 306, 3, 14, 18, 26, + 313, 314, 314, 315, 316, 317, 318, 321, + 313, 313, 30, 42, 50, 313, 313, 313, + 313, 322, 323, 323, 324, 325, 328, 322, + 322, 322, 322, 322, 322, 329, 330, 330, + 331, 332, 333, 334, 335, 329, 329, 77, + 79, 84, 329, 329, 336, 337, 337, 338, + 339, 340, 336, 336, 336, 336, 341, 342, + 342, 343, 344, 345, 346, 347, 350, 341, + 341, 91, 98, 106, 117, 122, 341, 341, + 341, 341, 351, 352, 352, 353, 354, 355, + 351, 351, 351, 351, 356, 357, 357, 358, + 359, 363, 367, 369, 372, 374, 375, 376, + 356, 356, 141, 148, 356, 361, 361, 159, + 356, 361, 361, 165, 356, 365, 365, 175, + 356, 365, 365, 181, 356, 356, 197, 264, + 356, 356, 356, 356, 276, 356, 373, 373, + 291, 297, 356, 356 }; static const short _eo_tokenizer_trans_actions[] = { - 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, - 340, 343, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, 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, + 227, 0, 1, 0, 217, 0, 250, 0, + 0, 0, 0, 0, 0, 45, 0, 3, + 0, 51, 340, 343, 0, 1, 219, 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, 229, 0, 0, 0, + 5, 259, 0, 3, 0, 262, 0, 0, + 0, 0, 0, 3, 0, 256, 0, 0, + 0, 0, 0, 3, 0, 352, 75, 0, 0, 0, 0, 1, 3, 0, 1, 0, - 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, 95, 0, 1, 0, 79, 0, 232, + 0, 355, 93, 0, 0, 0, 0, 1, + 3, 0, 1, 0, 0, 115, 0, 1, + 0, 97, 0, 235, 0, 1, 99, 0, + 0, 0, 0, 1, 103, 0, 1, 101, + 131, 0, 1, 0, 117, 0, 238, 7, + 268, 0, 271, 0, 1, 119, 153, 0, + 1, 0, 0, 135, 1, 3, 0, 1, + 0, 133, 0, 241, 0, 0, 0, 0, + 0, 3, 0, 277, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 280, 0, + 0, 0, 0, 1, 137, 0, 0, 0, + 0, 0, 3, 0, 358, 151, 0, 0, + 0, 0, 1, 3, 0, 1, 0, 0, + 169, 0, 1, 0, 155, 0, 244, 9, + 283, 0, 286, 0, 1, 157, 215, 0, + 1, 0, 0, 173, 1, 3, 0, 1, + 0, 171, 0, 247, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 301, 361, + 0, 0, 1, 57, 211, 0, 0, 1, + 3, 0, 1, 0, 0, 1, 181, 0, + 0, 0, 0, 0, 0, 0, 0, 21, + 304, 364, 0, 0, 1, 57, 213, 0, + 0, 1, 3, 0, 1, 0, 0, 1, + 183, 0, 0, 0, 0, 1, 0, 1, + 3, 0, 0, 13, 292, 13, 0, 1, + 0, 0, 0, 0, 1, 3, 0, 1, + 0, 0, 15, 295, 298, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 3, 0, 0, 0, 27, 319, 27, + 27, 0, 1, 0, 1, 0, 0, 0, + 0, 0, 0, 29, 29, 322, 29, 325, + 29, 0, 1, 0, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 1, 0, + 1, 0, 0, 3, 3, 0, 35, 331, + 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, + 334, 37, 37, 337, 37, 0, 3, 0, + 31, 328, 31, 31, 0, 0, 0, 0, + 0, 0, 1, 0, 1, 3, 0, 0, + 11, 289, 11, 11, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 21, 298, 364, 0, 0, 1, 51, 207, - 0, 0, 1, 3, 0, 1, 0, 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, 289, 292, 15, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 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 + 19, 0, 0, 0, 0, 0, 1, 187, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 185, 221, 0, 1, 346, 57, 57, + 57, 57, 223, 225, 0, 0, 0, 0, + 65, 0, 1, 346, 349, 349, 349, 0, + 67, 73, 0, 0, 0, 69, 253, 71, + 63, 83, 0, 1, 346, 349, 0, 85, + 91, 87, 265, 89, 81, 107, 0, 1, + 346, 57, 57, 57, 0, 109, 113, 0, + 0, 0, 111, 105, 123, 0, 1, 346, + 349, 0, 125, 129, 127, 121, 141, 0, + 1, 346, 57, 57, 57, 57, 0, 143, + 149, 0, 0, 0, 0, 0, 145, 274, + 147, 139, 161, 0, 1, 346, 349, 0, + 163, 167, 165, 159, 191, 0, 1, 346, + 349, 349, 57, 57, 57, 57, 57, 0, + 193, 209, 0, 0, 203, 0, 1, 0, + 310, 23, 307, 0, 205, 0, 1, 0, + 316, 25, 313, 0, 201, 179, 0, 0, + 199, 177, 197, 175, 0, 195, 0, 1, + 0, 0, 207, 189 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1125,17 +1113,16 @@ 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, 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, 0, - 47, 0, 0, 0, 0, 47, 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, + 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, 0, - 0, 0 + 0 }; static const short _eo_tokenizer_from_state_actions[] = { @@ -1177,86 +1164,84 @@ 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, 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, 0, - 49, 0, 0, 0, 0, 49, 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, + 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, 0, - 0, 0 + 0 }; static const short _eo_tokenizer_eof_trans[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 96, 96, - 96, 96, 96, 96, 107, 107, 107, 107, - 116, 116, 116, 116, 116, 116, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 146, 146, 146, 146, 146, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 207, 207, - 207, 207, 207, 207, 218, 218, 218, 218, - 218, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 262, 262, 262, 262, 262, - 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 288, 288, 288, 288, 288, - 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, 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, 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, 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, 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 + 1, 1, 1, 1, 1, 1, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 79, 79, 79, 79, 79, 79, + 90, 90, 90, 90, 99, 99, 99, 99, + 99, 99, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 129, 129, + 129, 129, 129, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 190, 190, 190, 190, 190, 190, + 201, 201, 201, 201, 201, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 245, + 245, 245, 245, 245, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 271, + 271, 271, 271, 271, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 0, 483, 484, 484, 484, 484, + 484, 0, 497, 498, 498, 498, 498, 502, + 503, 504, 0, 512, 513, 513, 514, 515, + 516, 0, 526, 527, 527, 527, 527, 531, + 0, 539, 540, 540, 541, 0, 552, 553, + 553, 553, 553, 553, 559, 560, 561, 0, + 569, 570, 570, 571, 0, 585, 586, 586, + 589, 589, 593, 586, 597, 597, 601, 586, + 605, 586, 609, 611, 586, 614, 586, 586, + 619 }; -static const int eo_tokenizer_start = 318; -static const int eo_tokenizer_first_final = 318; +static const int eo_tokenizer_start = 306; +static const int eo_tokenizer_first_final = 306; static const int eo_tokenizer_error = -1; -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; +static const int eo_tokenizer_en_tokenize_accessor = 313; +static const int eo_tokenizer_en_tokenize_params = 322; +static const int eo_tokenizer_en_tokenize_property = 329; +static const int eo_tokenizer_en_tokenize_properties = 336; +static const int eo_tokenizer_en_tokenize_method = 341; +static const int eo_tokenizer_en_tokenize_methods = 351; +static const int eo_tokenizer_en_tokenize_class = 356; +static const int eo_tokenizer_en_main = 306; -#line 918 "eo_lexer.rl" +#line 929 "eo_lexer.rl" Eina_Bool @@ -1279,7 +1264,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1283 "eo_lexer.c" +#line 1268 "eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1287,7 +1272,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 940 "eo_lexer.rl" +#line 951 "eo_lexer.rl" while (!done) { @@ -1314,11 +1299,11 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1318 "eo_lexer.c" +#line 1303 "eo_lexer.c" { int _klen; unsigned int _trans; - const char *_acts; + const unsigned char *_acts; unsigned int _nacts; const char *_keys; @@ -1329,11 +1314,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 35: + case 38: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1337 "eo_lexer.c" +#line 1322 "eo_lexer.c" } } @@ -1660,24 +1645,41 @@ _eof_trans: case 32: #line 895 "eo_lexer.rl" { - if (toknz->tmp.kls != NULL) - ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); - toknz->tmp.kls = _eo_tokenizer_class_get(toknz, ( toknz->p)); + toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; case 33: +#line 898 "eo_lexer.rl" + { + toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; + } + break; + case 34: #line 901 "eo_lexer.rl" { - if (!toknz->tmp.kls) - ABORT(toknz, "No pending class definition"); - toknz->tmp.kls->type = _eo_tokenizer_token_get(toknz, ( toknz->p)); + toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; + } + break; + case 35: +#line 904 "eo_lexer.rl" + { + toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; case 36: +#line 908 "eo_lexer.rl" + { + if (toknz->tmp.kls != NULL) + ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); + toknz->tmp.kls = _eo_tokenizer_class_get(toknz, ( toknz->p)); + toknz->tmp.kls->type = toknz->tmp.kls_type; + } + break; + case 39: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 37: + case 40: #line 374 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.accessor->comment != NULL) @@ -1686,32 +1688,32 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 38: + case 41: #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 39: -#line 430 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 40: -#line 431 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 41: -#line 399 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); - toknz->tmp.accessor = NULL; - toknz->current_nesting--; - { toknz->cs = 338; goto _again;} }} break; case 42: +#line 430 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 43: +#line 431 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 44: +#line 399 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); + toknz->tmp.accessor = NULL; + toknz->current_nesting--; + { toknz->cs = 329; goto _again;} + }} + break; + case 45: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -1730,25 +1732,25 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 43: + case 46: #line 426 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 44: + case 47: #line 429 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 45: + case 48: #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;} + { toknz->cs = 329; goto _again;} }} break; - case 46: + case 49: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1767,53 +1769,13 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 47: + case 50: #line 429 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} - break; - case 48: -#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 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 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 = 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 51: #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]; @@ -1831,28 +1793,68 @@ _eof_trans: }} break; case 52: +#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 53: +#line 457 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->tmp.param = NULL; + toknz->current_nesting--; + if (toknz->tmp.prop) + { toknz->cs = 329; goto _again;} + else if (toknz->tmp.meth) + { toknz->cs = 341; goto _again;} + else + ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); + }} + break; + case 54: +#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 55: #line 473 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 53: + case 56: #line 475 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 54: + case 57: #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;} + { toknz->cs = 329; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 350; goto _again;} + { toknz->cs = 341; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 55: + case 58: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -1871,11 +1873,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 56: + case 59: #line 475 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 57: + case 60: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -1894,79 +1896,42 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 58: + case 61: #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: + case 62: #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;} + { toknz->cs = 313; goto _again;} }} break; - case 60: + case 63: #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;} + { toknz->cs = 313; goto _again;} }} break; - case 61: + case 64: #line 496 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" params {"); toknz->current_nesting++; - { toknz->cs = 331; goto _again;} + { toknz->cs = 322; goto _again;} }} - break; - case 62: -#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)+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 64: -#line 519 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 65: #line 502 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ + { 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) @@ -1975,12 +1940,12 @@ _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 = 345; goto _again;} + { toknz->cs = 336; goto _again;} }} break; case 66: #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]; @@ -1998,6 +1963,43 @@ _eof_trans: }} break; case 67: +#line 519 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 68: +#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 = 336; goto _again;} + }} + break; + case 69: +#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 70: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2016,63 +2018,32 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 68: + case 71: #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: + case 72: #line 530 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 338; goto _again;} + { toknz->cs = 329; 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)--;{ + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 365; goto _again;} + { toknz->cs = 356; goto _again;} }} break; case 74: #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]; @@ -2090,6 +2061,37 @@ _eof_trans: }} break; case 75: +#line 551 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 76: +#line 542 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 356; goto _again;} + }} + break; + case 77: +#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 78: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2108,7 +2110,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 76: + case 79: #line 560 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.meth->comment != NULL) @@ -2117,57 +2119,57 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 77: + case 80: #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 78: + case 81: #line 567 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" params {"); toknz->current_nesting++; - { toknz->cs = 331; goto _again;} - }} - break; - case 79: -#line 633 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 80: -#line 634 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 81: -#line 596 "eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - Eina_List **l; - if (eina_list_count(toknz->tmp.meth->params) == 0) - WRN("method '%s' has no parameters.", toknz->tmp.meth->name); - INF(" }"); - switch (toknz->current_methods_type) { - case METH_CONSTRUCTOR: - l = &toknz->tmp.kls->constructors; - break; - case METH_DESTRUCTOR: - l = &toknz->tmp.kls->destructors; - break; - case METH_REGULAR: - l = &toknz->tmp.kls->methods; - break; - default: - ABORT(toknz, "unknown method type %d", toknz->current_methods_type); - } - toknz->tmp.meth->type = toknz->current_methods_type; - *l = eina_list_append(*l, toknz->tmp.meth); - toknz->tmp.meth = NULL; - toknz->current_nesting--; - { toknz->cs = 360; goto _again;} + { toknz->cs = 322; goto _again;} }} break; case 82: +#line 633 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 83: +#line 634 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 84: +#line 596 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + Eina_List **l; + if (eina_list_count(toknz->tmp.meth->params) == 0) + WRN("method '%s' has no parameters.", toknz->tmp.meth->name); + INF(" }"); + switch (toknz->current_methods_type) { + case METH_CONSTRUCTOR: + l = &toknz->tmp.kls->constructors; + break; + case METH_DESTRUCTOR: + l = &toknz->tmp.kls->destructors; + break; + case METH_REGULAR: + l = &toknz->tmp.kls->methods; + break; + default: + ABORT(toknz, "unknown method type %d", toknz->current_methods_type); + } + toknz->tmp.meth->type = toknz->current_methods_type; + *l = eina_list_append(*l, toknz->tmp.meth); + toknz->tmp.meth = NULL; + toknz->current_nesting--; + { toknz->cs = 351; goto _again;} + }} + break; + case 85: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2186,15 +2188,15 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 83: + case 86: #line 628 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 84: + case 87: #line 632 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 85: + case 88: #line 596 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l; @@ -2218,10 +2220,10 @@ _eof_trans: *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; toknz->current_nesting--; - { toknz->cs = 360; goto _again;} + { toknz->cs = 351; goto _again;} }} break; - case 86: + case 89: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); @@ -2240,11 +2242,11 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 87: + case 90: #line 632 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 88: + case 91: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2263,65 +2265,33 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 89: + case 92: #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 90: + case 93: #line 641 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" %s {", toknz->tmp.meth->name); toknz->current_nesting++; - { toknz->cs = 350; goto _again;} + { toknz->cs = 341; goto _again;} }} - break; - 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 = 365; goto _again;} - }} - break; - case 92: -#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 93: -#line 663 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 94: #line 653 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 365; goto _again;} + { toknz->cs = 356; goto _again;} }} break; case 95: #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]; @@ -2339,6 +2309,38 @@ _eof_trans: }} break; case 96: +#line 663 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 97: +#line 653 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 356; goto _again;} + }} + break; + case 98: +#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 99: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2357,7 +2359,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 97: + case 100: #line 672 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (toknz->tmp.kls->comment != NULL) @@ -2365,76 +2367,76 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 98: + case 101: #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 99: + case 102: #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 100: + case 103: #line 688 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 101: + case 104: #line 691 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ }} break; - case 102: + case 105: #line 694 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; toknz->current_nesting++; - { toknz->cs = 360; goto _again;} + { toknz->cs = 351; goto _again;} }} break; - case 103: + case 106: #line 701 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; toknz->current_nesting++; - { toknz->cs = 360; goto _again;} + { toknz->cs = 351; goto _again;} }} break; - case 104: + case 107: #line 708 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" properties {"); toknz->current_nesting++; - { toknz->cs = 345; goto _again;} + { toknz->cs = 336; goto _again;} }} break; - case 105: + case 108: #line 714 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; toknz->current_nesting++; - { toknz->cs = 360; goto _again;} + { toknz->cs = 351; goto _again;} }} break; - case 106: + case 109: #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 = 318; goto _again;} + { toknz->cs = 306; goto _again;} }} break; - case 107: + case 110: #line 322 "eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); @@ -2453,79 +2455,52 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 108: + case 111: #line 870 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 109: + case 112: #line 873 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 110: + case 113: #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: + case 114: #line 688 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 112: + case 115: #line 691 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 113: + case 116: #line 877 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 114: + case 117: #line 878 "eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 115: + case 118: #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;} + { toknz->cs = 306; goto _again;} }} - break; - case 116: -#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 117: -#line 877 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} - break; - case 118: -#line 878 "eo_lexer.rl" - {{( toknz->p) = (( toknz->te))-1;}} break; case 119: #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]; @@ -2543,63 +2518,14 @@ _eof_trans: }} break; 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); - }} +#line 877 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} break; 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 = 365; goto _again;} - }} +#line 878 "eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}} break; case 122: -#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 123: -#line 912 "eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 124: -#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 125: #line 322 "eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); @@ -2618,7 +2544,83 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2622 "eo_lexer.c" + case 123: +#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 124: +#line 889 "eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF("begin class: %s", toknz->tmp.kls->name); + toknz->current_nesting++; + { toknz->cs = 356; goto _again;} + }} + break; + case 125: +#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 126: +#line 923 "eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 127: +#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 128: +#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; +#line 2624 "eo_lexer.c" } } @@ -2627,11 +2629,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 34: + case 37: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2635 "eo_lexer.c" +#line 2637 "eo_lexer.c" } } @@ -2649,12 +2651,12 @@ _again: _out: {} } -#line 966 "eo_lexer.rl" +#line 977 "eo_lexer.rl" if ( toknz->cs == -#line 2656 "eo_lexer.c" +#line 2658 "eo_lexer.c" -1 -#line 967 "eo_lexer.rl" +#line 978 "eo_lexer.rl" ) { ERR("wrong termination"); @@ -2836,16 +2838,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(toknz->classes, k, kls) { - Eolian_Class_Type type = EOLIAN_CLASS_REGULAR; - if (kls->type) - { - if (!strcmp(kls->type, "Regular")) type = EOLIAN_CLASS_REGULAR; - else if (!strcmp(kls->type, "RegularNonInstantiable")) type = EOLIAN_CLASS_REGULAR_NON_INSTANT; - else if (!strcmp(kls->type, "Mixin")) type = EOLIAN_CLASS_MIXIN; - else if (!strcmp(kls->type, "Interface")) type = EOLIAN_CLASS_INTERFACE; - else type = EOLIAN_CLASS_UNKNOWN_TYPE; - } - database_class_add(kls->name, type); + database_class_add(kls->name, kls->type); database_class_file_set(kls->name, filename); if (kls->comment) database_class_description_set(kls->name, kls->comment); diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h index 56adb7e434..bee452ac3b 100644 --- a/src/lib/eolian/eo_lexer.h +++ b/src/lib/eolian/eo_lexer.h @@ -2,6 +2,7 @@ #define __EO_TOKENIZER_H__ #include +#include #include "eo_definitions.h" /* TOKENIZER */ @@ -34,6 +35,7 @@ typedef struct _eo_tokenizer Eina_List *classes; struct { + Eolian_Class_Type kls_type; Eo_Class_Def *kls; Eo_Property_Def *prop; Eo_Method_Def *meth; diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index 58cff32624..82b22fae02 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -892,21 +892,32 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) fgoto tokenize_class; } + action class_type_set_to_class { + toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; + } + action class_type_set_to_abstract { + toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; + } + action class_type_set_to_mixin { + toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; + } + action class_type_set_to_interface { + toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; + } + action end_class_name { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); toknz->tmp.kls = _eo_tokenizer_class_get(toknz, fpc); - } - - action end_class_type { - if (!toknz->tmp.kls) - ABORT(toknz, "No pending class definition"); - toknz->tmp.kls->type = _eo_tokenizer_token_get(toknz, fpc); + toknz->tmp.kls->type = toknz->tmp.kls_type; } class_name = ident %end_class_name; - class_type = ws+ "as" ws+ >save_fpc ("Regular" | "Mixin" | "RegularNonInstantiable" | "Interface") %end_class_type; # class as type(Regular, Mixin...) - begin_class = class_name class_type? ignore* begin_def; + begin_class = ( + "class" %class_type_set_to_class | + "mixin" %class_type_set_to_mixin | + "abstract" %class_type_set_to_abstract | + "interface" %class_type_set_to_interface) ws+ class_name ignore* begin_def; main := |* ignore+; #=> show_ignore; @@ -1145,16 +1156,7 @@ eo_tokenizer_database_fill(const char *filename) EINA_LIST_FOREACH(toknz->classes, k, kls) { - Eolian_Class_Type type = EOLIAN_CLASS_REGULAR; - if (kls->type) - { - if (!strcmp(kls->type, "Regular")) type = EOLIAN_CLASS_REGULAR; - else if (!strcmp(kls->type, "RegularNonInstantiable")) type = EOLIAN_CLASS_REGULAR_NON_INSTANT; - else if (!strcmp(kls->type, "Mixin")) type = EOLIAN_CLASS_MIXIN; - else if (!strcmp(kls->type, "Interface")) type = EOLIAN_CLASS_INTERFACE; - else type = EOLIAN_CLASS_UNKNOWN_TYPE; - } - database_class_add(kls->name, type); + database_class_add(kls->name, kls->type); database_class_file_set(kls->name, filename); if (kls->comment) database_class_description_set(kls->name, kls->comment);