From 010ae10d60e78a26eef86d77c09966e3df9546d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Tue, 22 Apr 2014 20:24:27 +0200 Subject: [PATCH] Eolian: fix properties and methods scope support define scope keywords 'protected' and 'public' disallow scope keywords as property or method name use move_ts action to move token start after scope modifier if found use end_property_scope and end_method_scope actions to handle it --- src/lib/eolian/eo_lexer.c | 3319 +++++++++++++++++++----------------- src/lib/eolian/eo_lexer.rl | 74 +- 2 files changed, 1819 insertions(+), 1574 deletions(-) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 739fc0f21c..c2963cee61 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -159,21 +159,12 @@ _eo_tokenizer_class_get(Eo_Tokenizer *toknz, char *p) static Eo_Property_Def* _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) { - Eo_Property_Def *prop = NULL; - if (!strncmp(toknz->saved.tok, "protected ", 10)) - { - toknz->saved.tok += 10; - toknz->tmp.fscope = FUNC_PROTECTED; - } - else - { - prop = calloc(1, sizeof(Eo_Property_Def)); - if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); + Eo_Property_Def *prop = calloc(1, sizeof(Eo_Property_Def)); + if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); - prop->name = _eo_tokenizer_token_get(toknz, p); - prop->scope = toknz->tmp.fscope; - toknz->tmp.fscope = FUNC_PUBLIC; - } + prop->name = _eo_tokenizer_token_get(toknz, p); + prop->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; return prop; } @@ -181,25 +172,25 @@ _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) static Eo_Method_Def* _eo_tokenizer_method_get(Eo_Tokenizer *toknz, char *p) { - Eo_Method_Def *meth = NULL; - if (!strncmp(toknz->saved.tok, "protected ", 10)) - { - toknz->saved.tok += 10; - toknz->tmp.fscope = FUNC_PROTECTED; - } - else - { - meth = calloc(1, sizeof(Eo_Method_Def)); - if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); + Eo_Method_Def *meth = calloc(1, sizeof(Eo_Method_Def)); + if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); - meth->name = _eo_tokenizer_token_get(toknz, p); - meth->scope = toknz->tmp.fscope; - toknz->tmp.fscope = FUNC_PUBLIC; - } + meth->name = _eo_tokenizer_token_get(toknz, p); + meth->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; return meth; } +static int +_eo_tokenizer_scope_get(Eo_Tokenizer *toknz, EINA_UNUSED char *p) +{ + if (!strncmp(toknz->saved.tok, "protected ", 10)) + return FUNC_PROTECTED; + + return FUNC_PUBLIC; +} + static Eo_Param_Def* _eo_tokenizer_param_get(Eo_Tokenizer *toknz, char *p) { @@ -366,56 +357,57 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) } -#line 443 "lib/eolian/eo_lexer.rl" +#line 441 "lib/eolian/eo_lexer.rl" -#line 374 "lib/eolian/eo_lexer.c" -static const char _eo_tokenizer_actions[] = { - 0, 1, 0, 1, 2, 1, 6, 1, - 10, 1, 15, 1, 16, 1, 17, 1, - 18, 1, 19, 1, 20, 1, 21, 1, - 22, 1, 23, 1, 24, 1, 25, 1, - 26, 1, 27, 1, 28, 1, 29, 1, - 30, 1, 31, 1, 32, 1, 33, 1, - 34, 1, 35, 1, 36, 1, 37, 1, - 38, 1, 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, - 56, 1, 57, 1, 58, 1, 59, 1, - 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, 75, 1, - 76, 1, 77, 1, 78, 1, 79, 1, - 80, 1, 81, 1, 82, 1, 85, 1, - 86, 1, 87, 1, 88, 1, 89, 1, - 90, 1, 91, 1, 92, 1, 93, 1, - 94, 1, 95, 1, 96, 1, 97, 1, - 98, 1, 99, 1, 100, 1, 101, 1, - 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, 1, 116, 1, 117, 1, - 118, 1, 119, 1, 120, 1, 121, 1, - 122, 1, 123, 1, 124, 1, 125, 2, - 0, 41, 2, 0, 52, 2, 0, 61, - 2, 0, 72, 2, 0, 81, 2, 0, - 93, 2, 0, 102, 2, 0, 120, 2, - 4, 47, 2, 5, 42, 2, 6, 2, - 2, 7, 43, 2, 8, 56, 2, 10, - 0, 2, 10, 73, 2, 12, 88, 2, - 13, 83, 2, 14, 84, 2, 15, 0, - 2, 15, 94, 2, 16, 0, 2, 17, - 0, 2, 17, 121, 2, 18, 0, 2, - 19, 0, 2, 20, 0, 2, 20, 2, - 2, 24, 0, 2, 25, 0, 2, 25, - 2, 2, 26, 0, 2, 28, 0, 2, - 29, 0, 2, 29, 2, 2, 36, 0, - 2, 36, 121, 2, 39, 1, 2, 39, - 2, 2, 39, 3, 2, 39, 9, 2, - 39, 11 +#line 365 "lib/eolian/eo_lexer.c" +static const unsigned char _eo_tokenizer_actions[] = { + 0, 1, 0, 1, 2, 1, 7, 1, + 11, 1, 17, 1, 19, 1, 20, 1, + 21, 1, 22, 1, 23, 1, 24, 1, + 25, 1, 26, 1, 27, 1, 28, 1, + 29, 1, 30, 1, 31, 1, 32, 1, + 33, 1, 34, 1, 35, 1, 36, 1, + 37, 1, 38, 1, 39, 1, 40, 1, + 41, 1, 42, 1, 43, 1, 44, 1, + 47, 1, 48, 1, 49, 1, 50, 1, + 51, 1, 52, 1, 53, 1, 54, 1, + 55, 1, 56, 1, 57, 1, 58, 1, + 59, 1, 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, + 75, 1, 76, 1, 77, 1, 78, 1, + 79, 1, 80, 1, 81, 1, 82, 1, + 83, 1, 84, 1, 85, 1, 88, 1, + 89, 1, 90, 1, 91, 1, 92, 1, + 93, 1, 94, 1, 95, 1, 96, 1, + 97, 1, 98, 1, 99, 1, 100, 1, + 101, 1, 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, 1, 116, 1, + 117, 1, 118, 1, 119, 1, 120, 1, + 121, 1, 122, 1, 123, 1, 124, 1, + 125, 1, 126, 1, 127, 1, 128, 2, + 0, 44, 2, 0, 55, 2, 0, 64, + 2, 0, 75, 2, 0, 84, 2, 0, + 96, 2, 0, 105, 2, 0, 123, 2, + 5, 50, 2, 6, 45, 2, 7, 2, + 2, 8, 46, 2, 9, 59, 2, 11, + 0, 2, 11, 76, 2, 14, 91, 2, + 15, 86, 2, 16, 87, 2, 17, 0, + 2, 17, 97, 2, 19, 0, 2, 20, + 0, 2, 20, 124, 2, 21, 0, 2, + 22, 0, 2, 23, 0, 2, 23, 2, + 2, 27, 0, 2, 28, 0, 2, 28, + 2, 2, 29, 0, 2, 31, 0, 2, + 32, 0, 2, 32, 2, 2, 39, 0, + 2, 39, 124, 2, 42, 1, 2, 42, + 2, 2, 42, 4, 2, 42, 10, 2, + 42, 13, 3, 3, 12, 2, 3, 3, + 18, 2 }; static const short _eo_tokenizer_key_offsets[] = { @@ -431,40 +423,46 @@ static const short _eo_tokenizer_key_offsets[] = { 386, 390, 391, 392, 402, 404, 407, 409, 412, 413, 414, 418, 419, 420, 424, 425, 429, 430, 431, 432, 433, 437, 439, 442, - 443, 447, 458, 469, 483, 486, 488, 491, - 502, 504, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 519, 526, 534, 535, - 536, 537, 538, 542, 543, 544, 545, 546, - 549, 556, 572, 589, 593, 594, 595, 605, - 607, 610, 612, 615, 616, 620, 631, 642, - 656, 659, 661, 664, 675, 677, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 695, 696, 697, 701, 708, 716, - 717, 718, 719, 720, 721, 722, 723, 724, - 725, 729, 730, 731, 732, 733, 734, 735, - 736, 740, 747, 755, 756, 757, 758, 759, - 763, 771, 787, 791, 803, 804, 805, 815, - 817, 820, 828, 836, 844, 856, 860, 861, - 862, 863, 864, 865, 866, 867, 868, 872, - 880, 893, 898, 902, 903, 904, 905, 906, - 907, 919, 924, 928, 937, 941, 942, 943, - 944, 945, 946, 950, 959, 966, 977, 981, - 995, 1005, 1017, 1022, 1028, 1033, 1034, 1035, - 1036, 1037, 1038, 1041, 1048, 1056, 1057, 1061, - 1069, 1073, 1078, 1079, 1080, 1090, 1092, 1095, - 1105, 1117, 1129, 1130, 1131, 1132, 1133, 1134, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1145, - 1152, 1160, 1161, 1162, 1163, 1164, 1165, 1169, - 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, - 1181, 1189, 1192, 1194, 1195, 1196, 1197, 1198, - 1209, 1212, 1214, 1225, 1237, 1249, 1253, 1253, - 1254, 1263, 1266, 1268, 1281, 1285, 1285, 1286, - 1295, 1298, 1300, 1301, 1302, 1303, 1304, 1305, - 1316, 1319, 1321, 1335, 1336, 1345, 1348, 1350, - 1351, 1352, 1353, 1354, 1358, 1358, 1359, 1370, - 1373, 1375, 1389, 1390, 1402, 1405, 1407, 1408, - 1410, 1413, 1415, 1418, 1419, 1420, 1421, 1422, - 1425, 1426, 1427 + 443, 447, 458, 468, 480, 492, 504, 516, + 528, 540, 552, 562, 572, 585, 597, 609, + 621, 633, 645, 657, 669, 676, 688, 700, + 712, 724, 736, 748, 760, 772, 775, 777, + 780, 791, 793, 796, 797, 798, 799, 800, + 801, 802, 803, 804, 805, 808, 815, 823, + 824, 825, 826, 827, 831, 832, 833, 834, + 835, 838, 845, 861, 878, 882, 883, 884, + 894, 896, 899, 901, 904, 905, 909, 920, + 930, 942, 954, 966, 978, 990, 1002, 1014, + 1024, 1034, 1047, 1059, 1071, 1083, 1095, 1107, + 1119, 1131, 1138, 1150, 1162, 1174, 1186, 1198, + 1210, 1222, 1234, 1237, 1239, 1242, 1253, 1255, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, + 1266, 1267, 1268, 1269, 1273, 1274, 1275, 1279, + 1286, 1294, 1295, 1296, 1297, 1298, 1299, 1300, + 1301, 1302, 1303, 1307, 1308, 1309, 1310, 1311, + 1312, 1313, 1314, 1318, 1325, 1333, 1334, 1335, + 1336, 1337, 1341, 1349, 1365, 1369, 1381, 1382, + 1383, 1393, 1395, 1398, 1406, 1414, 1422, 1434, + 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 1446, 1450, 1458, 1471, 1476, 1480, 1481, 1482, + 1483, 1484, 1485, 1497, 1502, 1506, 1515, 1519, + 1520, 1521, 1522, 1523, 1524, 1528, 1537, 1544, + 1555, 1559, 1573, 1583, 1595, 1600, 1606, 1611, + 1612, 1613, 1614, 1615, 1616, 1619, 1626, 1634, + 1635, 1639, 1647, 1651, 1656, 1657, 1658, 1668, + 1670, 1673, 1683, 1695, 1707, 1708, 1709, 1710, + 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, + 1719, 1723, 1730, 1738, 1739, 1740, 1741, 1742, + 1743, 1747, 1748, 1749, 1750, 1751, 1752, 1753, + 1754, 1755, 1759, 1767, 1770, 1772, 1773, 1774, + 1775, 1776, 1787, 1790, 1792, 1803, 1815, 1827, + 1831, 1831, 1832, 1841, 1844, 1846, 1859, 1863, + 1863, 1864, 1873, 1876, 1878, 1879, 1880, 1881, + 1882, 1883, 1895, 1898, 1900, 1911, 1924, 1925, + 1934, 1937, 1939, 1940, 1941, 1942, 1943, 1947, + 1947, 1948, 1960, 1963, 1965, 1976, 1989, 1990, + 2002, 2005, 2007, 2008, 2010, 2013, 2015, 2018, + 2019, 2020, 2021, 2022, 2025, 2026, 2027 }; static const char _eo_tokenizer_trans_keys[] = { @@ -525,122 +523,197 @@ static const char _eo_tokenizer_trans_keys[] = { 115, 10, 123, 0, 32, 10, 42, 10, 42, 47, 10, 10, 123, 0, 32, 10, 95, 123, 0, 32, 48, 57, 65, 90, - 97, 122, 10, 95, 123, 0, 32, 48, - 57, 65, 90, 97, 122, 9, 10, 13, - 32, 95, 123, 0, 31, 48, 57, 65, - 90, 97, 122, 10, 42, 64, 10, 42, - 10, 42, 47, 10, 42, 95, 0, 32, - 48, 57, 64, 90, 97, 122, 10, 42, - 10, 42, 47, 10, 110, 115, 116, 59, - 103, 97, 99, 121, 9, 13, 32, 9, - 13, 32, 65, 90, 97, 122, 59, 95, - 48, 57, 65, 90, 97, 122, 114, 97, - 109, 115, 10, 123, 0, 32, 116, 117, - 114, 110, 9, 13, 32, 9, 13, 32, - 65, 90, 97, 122, 9, 13, 32, 60, - 62, 95, 40, 42, 45, 46, 48, 57, - 64, 90, 97, 122, 9, 13, 32, 59, + 97, 122, 10, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 111, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 116, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 101, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 99, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 116, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 101, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 100, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 9, 13, 32, 95, 48, 57, 65, 90, + 97, 122, 9, 13, 32, 112, 48, 57, + 65, 90, 97, 122, 10, 95, 114, 117, + 123, 0, 32, 48, 57, 65, 90, 97, + 122, 10, 95, 111, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 95, 116, + 123, 0, 32, 48, 57, 65, 90, 97, + 122, 10, 95, 101, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 95, 99, + 123, 0, 32, 48, 57, 65, 90, 97, + 122, 10, 95, 116, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 10, 95, 101, + 123, 0, 32, 48, 57, 65, 90, 97, + 122, 10, 95, 100, 123, 0, 32, 48, + 57, 65, 90, 97, 122, 95, 48, 57, + 65, 90, 97, 122, 10, 95, 98, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 108, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 105, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 99, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 98, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 108, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 95, 105, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 99, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 10, 42, 64, 10, + 42, 10, 42, 47, 10, 42, 95, 0, + 32, 48, 57, 64, 90, 97, 122, 10, + 42, 10, 42, 47, 10, 110, 115, 116, + 59, 103, 97, 99, 121, 9, 13, 32, + 9, 13, 32, 65, 90, 97, 122, 59, + 95, 48, 57, 65, 90, 97, 122, 114, + 97, 109, 115, 10, 123, 0, 32, 116, + 117, 114, 110, 9, 13, 32, 9, 13, + 32, 65, 90, 97, 122, 9, 13, 32, 60, 62, 95, 40, 42, 45, 46, 48, 57, 64, 90, 97, 122, 9, 13, 32, - 47, 42, 64, 10, 95, 0, 32, 48, - 57, 64, 90, 97, 122, 10, 42, 10, - 42, 47, 10, 42, 10, 42, 47, 10, - 10, 123, 0, 32, 10, 95, 123, 0, + 59, 60, 62, 95, 40, 42, 45, 46, + 48, 57, 64, 90, 97, 122, 9, 13, + 32, 47, 42, 64, 10, 95, 0, 32, + 48, 57, 64, 90, 97, 122, 10, 42, + 10, 42, 47, 10, 42, 10, 42, 47, + 10, 10, 123, 0, 32, 10, 95, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 111, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 116, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 101, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 99, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 116, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 101, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 100, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 9, 13, + 32, 95, 48, 57, 65, 90, 97, 122, + 9, 13, 32, 112, 48, 57, 65, 90, + 97, 122, 10, 95, 114, 117, 123, 0, 32, 48, 57, 65, 90, 97, 122, 10, - 95, 123, 0, 32, 48, 57, 65, 90, - 97, 122, 9, 10, 13, 32, 95, 123, - 0, 31, 48, 57, 65, 90, 97, 122, - 10, 42, 64, 10, 42, 10, 42, 47, - 10, 42, 95, 0, 32, 48, 57, 64, - 90, 97, 122, 10, 42, 10, 42, 47, - 10, 110, 115, 116, 114, 117, 99, 116, - 111, 114, 115, 10, 123, 0, 32, 116, - 97, 10, 58, 0, 32, 10, 0, 32, - 65, 90, 97, 122, 59, 95, 48, 57, - 65, 90, 97, 122, 115, 116, 114, 117, + 95, 111, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 10, 95, 116, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 95, 101, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 10, 95, 99, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 95, 116, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 10, 95, 101, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 95, 100, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 95, 48, 57, 65, 90, + 97, 122, 10, 95, 98, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 108, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 105, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 99, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 98, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 108, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 95, 105, 123, 0, 32, + 48, 57, 65, 90, 97, 122, 10, 95, + 99, 123, 0, 32, 48, 57, 65, 90, + 97, 122, 10, 42, 64, 10, 42, 10, + 42, 47, 10, 42, 95, 0, 32, 48, + 57, 64, 90, 97, 122, 10, 42, 10, + 42, 47, 10, 110, 115, 116, 114, 117, 99, 116, 111, 114, 115, 10, 123, 0, - 32, 95, 112, 114, 101, 102, 105, 120, - 10, 58, 0, 32, 10, 0, 32, 65, - 90, 97, 122, 59, 95, 48, 57, 65, - 90, 97, 122, 101, 110, 116, 115, 10, - 123, 0, 32, 10, 125, 0, 32, 65, - 90, 97, 122, 9, 10, 13, 32, 40, - 44, 59, 95, 0, 31, 48, 57, 65, + 32, 116, 97, 10, 58, 0, 32, 10, + 0, 32, 65, 90, 97, 122, 59, 95, + 48, 57, 65, 90, 97, 122, 115, 116, + 114, 117, 99, 116, 111, 114, 115, 10, + 123, 0, 32, 95, 112, 114, 101, 102, + 105, 120, 10, 58, 0, 32, 10, 0, + 32, 65, 90, 97, 122, 59, 95, 48, + 57, 65, 90, 97, 122, 101, 110, 116, + 115, 10, 123, 0, 32, 10, 125, 0, + 32, 65, 90, 97, 122, 9, 10, 13, + 32, 40, 44, 59, 95, 0, 31, 48, + 57, 65, 90, 97, 122, 10, 59, 0, + 32, 9, 10, 13, 32, 47, 125, 0, + 31, 65, 90, 97, 122, 42, 64, 10, + 95, 0, 32, 48, 57, 64, 90, 97, + 122, 10, 42, 10, 42, 47, 10, 125, + 0, 32, 65, 90, 97, 122, 9, 10, + 13, 32, 40, 59, 0, 31, 9, 13, + 32, 95, 65, 90, 97, 122, 9, 13, + 32, 41, 42, 95, 48, 57, 65, 90, + 97, 122, 10, 59, 0, 32, 112, 108, + 101, 109, 101, 110, 116, 115, 10, 123, + 0, 32, 10, 125, 0, 32, 65, 90, + 97, 122, 10, 58, 59, 95, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 59, 123, 0, 32, 10, 108, 0, 32, + 101, 103, 97, 99, 121, 9, 10, 13, + 32, 59, 123, 0, 31, 65, 90, 97, + 122, 10, 59, 123, 0, 32, 10, 125, + 0, 32, 10, 59, 125, 0, 32, 65, + 90, 97, 122, 10, 112, 0, 32, 97, + 114, 97, 109, 115, 10, 123, 0, 32, + 10, 58, 59, 0, 32, 65, 90, 97, + 122, 9, 13, 32, 65, 90, 97, 122, + 10, 59, 95, 0, 32, 48, 57, 65, 90, 97, 122, 10, 59, 0, 32, 9, - 10, 13, 32, 47, 125, 0, 31, 65, - 90, 97, 122, 42, 64, 10, 95, 0, - 32, 48, 57, 64, 90, 97, 122, 10, - 42, 10, 42, 47, 10, 125, 0, 32, - 65, 90, 97, 122, 9, 10, 13, 32, - 40, 59, 0, 31, 9, 13, 32, 95, - 65, 90, 97, 122, 9, 13, 32, 41, - 42, 95, 48, 57, 65, 90, 97, 122, - 10, 59, 0, 32, 112, 108, 101, 109, - 101, 110, 116, 115, 10, 123, 0, 32, - 10, 125, 0, 32, 65, 90, 97, 122, - 10, 58, 59, 95, 123, 0, 32, 48, - 57, 65, 90, 97, 122, 10, 59, 123, - 0, 32, 10, 108, 0, 32, 101, 103, - 97, 99, 121, 9, 10, 13, 32, 59, + 10, 13, 32, 47, 58, 59, 125, 0, + 31, 65, 90, 97, 122, 10, 58, 59, + 125, 0, 32, 65, 90, 97, 122, 9, + 13, 32, 58, 59, 95, 48, 57, 65, + 90, 97, 122, 9, 13, 32, 58, 59, + 10, 59, 114, 125, 0, 32, 10, 114, + 125, 0, 32, 101, 116, 117, 114, 110, + 9, 13, 32, 9, 13, 32, 65, 90, + 97, 122, 58, 95, 48, 57, 65, 90, + 97, 122, 58, 65, 90, 97, 122, 59, + 95, 48, 57, 65, 90, 97, 122, 10, + 125, 0, 32, 10, 59, 125, 0, 32, + 42, 64, 10, 95, 0, 32, 48, 57, + 64, 90, 97, 122, 10, 42, 10, 42, + 47, 10, 58, 59, 125, 0, 32, 65, + 90, 97, 122, 9, 10, 13, 32, 59, 123, 0, 31, 65, 90, 97, 122, 10, - 59, 123, 0, 32, 10, 125, 0, 32, - 10, 59, 125, 0, 32, 65, 90, 97, - 122, 10, 112, 0, 32, 97, 114, 97, - 109, 115, 10, 123, 0, 32, 10, 58, - 59, 0, 32, 65, 90, 97, 122, 9, - 13, 32, 65, 90, 97, 122, 10, 59, - 95, 0, 32, 48, 57, 65, 90, 97, - 122, 10, 59, 0, 32, 9, 10, 13, - 32, 47, 58, 59, 125, 0, 31, 65, - 90, 97, 122, 10, 58, 59, 125, 0, - 32, 65, 90, 97, 122, 9, 13, 32, - 58, 59, 95, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 58, 59, 10, 59, - 114, 125, 0, 32, 10, 114, 125, 0, - 32, 101, 116, 117, 114, 110, 9, 13, - 32, 9, 13, 32, 65, 90, 97, 122, - 58, 95, 48, 57, 65, 90, 97, 122, - 58, 65, 90, 97, 122, 59, 95, 48, - 57, 65, 90, 97, 122, 10, 125, 0, - 32, 10, 59, 125, 0, 32, 42, 64, - 10, 95, 0, 32, 48, 57, 64, 90, - 97, 122, 10, 42, 10, 42, 47, 10, - 58, 59, 125, 0, 32, 65, 90, 97, - 122, 9, 10, 13, 32, 59, 123, 0, - 31, 65, 90, 97, 122, 10, 59, 95, - 123, 0, 32, 48, 57, 65, 90, 97, - 122, 58, 103, 97, 99, 121, 95, 112, - 114, 101, 102, 105, 120, 10, 58, 0, - 32, 10, 0, 32, 65, 90, 97, 122, - 59, 95, 48, 57, 65, 90, 97, 122, - 116, 104, 111, 100, 115, 10, 123, 0, - 32, 111, 112, 101, 114, 116, 105, 101, - 115, 10, 123, 0, 32, 10, 47, 97, - 99, 105, 109, 0, 32, 10, 0, 32, - 42, 47, 98, 108, 110, 105, 10, 47, - 108, 114, 125, 0, 32, 65, 90, 97, + 59, 95, 123, 0, 32, 48, 57, 65, + 90, 97, 122, 58, 103, 97, 99, 121, + 95, 112, 114, 101, 102, 105, 120, 10, + 58, 0, 32, 10, 0, 32, 65, 90, + 97, 122, 59, 95, 48, 57, 65, 90, + 97, 122, 116, 104, 111, 100, 115, 10, + 123, 0, 32, 111, 112, 101, 114, 116, + 105, 101, 115, 10, 123, 0, 32, 10, + 47, 97, 99, 105, 109, 0, 32, 10, + 0, 32, 42, 47, 98, 108, 110, 105, + 10, 47, 108, 114, 125, 0, 32, 65, + 90, 97, 122, 10, 0, 32, 42, 47, + 9, 13, 32, 58, 95, 48, 57, 65, + 90, 97, 122, 9, 13, 32, 58, 95, + 101, 48, 57, 65, 90, 97, 122, 9, + 13, 32, 58, 95, 101, 48, 57, 65, + 90, 97, 122, 9, 13, 32, 47, 59, + 10, 47, 125, 0, 32, 64, 90, 97, 122, 10, 0, 32, 42, 47, 9, 13, - 32, 58, 95, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 58, 95, 101, 48, - 57, 65, 90, 97, 122, 9, 13, 32, - 58, 95, 101, 48, 57, 65, 90, 97, - 122, 9, 13, 32, 47, 59, 10, 47, - 125, 0, 32, 64, 90, 97, 122, 10, - 0, 32, 42, 47, 9, 13, 32, 42, - 60, 62, 95, 48, 57, 64, 90, 97, - 122, 9, 13, 32, 47, 59, 10, 47, - 103, 107, 115, 118, 125, 0, 32, 10, - 0, 32, 42, 47, 101, 101, 101, 97, - 59, 10, 47, 125, 0, 32, 48, 57, - 65, 90, 97, 122, 10, 0, 32, 42, - 47, 9, 10, 13, 32, 95, 123, 0, - 31, 48, 57, 65, 90, 97, 122, 59, - 10, 47, 99, 108, 112, 114, 125, 0, - 32, 10, 0, 32, 42, 47, 111, 101, - 97, 101, 9, 13, 32, 47, 59, 10, - 47, 125, 0, 32, 48, 57, 65, 90, - 97, 122, 10, 0, 32, 42, 47, 9, - 10, 13, 32, 95, 123, 0, 31, 48, + 32, 42, 60, 62, 95, 48, 57, 64, + 90, 97, 122, 9, 13, 32, 47, 59, + 10, 47, 103, 107, 115, 118, 125, 0, + 32, 10, 0, 32, 42, 47, 101, 101, + 101, 97, 59, 10, 47, 112, 125, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 0, 32, 42, 47, 10, 95, 123, 0, + 32, 48, 57, 65, 90, 97, 122, 10, + 95, 114, 117, 123, 0, 32, 48, 57, + 65, 90, 97, 122, 59, 10, 47, 99, + 108, 112, 114, 125, 0, 32, 10, 0, + 32, 42, 47, 111, 101, 97, 101, 9, + 13, 32, 47, 59, 10, 47, 112, 125, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 0, 32, 42, 47, 10, 95, 123, + 0, 32, 48, 57, 65, 90, 97, 122, + 10, 95, 114, 117, 123, 0, 32, 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, @@ -662,40 +735,46 @@ static const char _eo_tokenizer_single_lengths[] = { 4, 1, 1, 2, 2, 3, 2, 3, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 2, 3, 1, - 2, 3, 3, 6, 3, 2, 3, 3, - 2, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 3, 2, 1, 1, - 1, 1, 2, 1, 1, 1, 1, 3, - 3, 6, 7, 4, 1, 1, 2, 2, - 3, 2, 3, 1, 2, 3, 3, 6, - 3, 2, 3, 3, 2, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 2, 1, 2, 1, + 2, 3, 2, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 5, 4, 4, 4, + 4, 4, 4, 4, 1, 4, 4, 4, + 4, 4, 4, 4, 4, 3, 2, 3, + 3, 2, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 3, 2, 1, + 1, 1, 1, 2, 1, 1, 1, 1, + 3, 3, 6, 7, 4, 1, 1, 2, + 2, 3, 2, 3, 1, 2, 3, 2, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 5, 4, 4, 4, 4, 4, 4, + 4, 1, 4, 4, 4, 4, 4, 4, + 4, 4, 3, 2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 2, 1, 2, 1, 1, 1, 1, 2, - 2, 8, 2, 6, 1, 1, 2, 2, - 3, 2, 6, 4, 6, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, - 5, 3, 2, 1, 1, 1, 1, 1, - 6, 3, 2, 3, 2, 1, 1, 1, - 1, 1, 2, 3, 3, 3, 2, 8, - 4, 6, 5, 4, 3, 1, 1, 1, - 1, 1, 3, 3, 2, 1, 0, 2, - 2, 3, 1, 1, 2, 2, 3, 4, - 6, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, - 2, 1, 1, 1, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 2, - 6, 1, 2, 1, 1, 1, 1, 5, - 1, 2, 5, 6, 6, 4, 0, 1, - 3, 1, 2, 7, 4, 0, 1, 7, - 1, 2, 1, 1, 1, 1, 1, 3, - 1, 2, 6, 1, 7, 1, 2, 1, - 1, 1, 1, 4, 0, 1, 3, 1, - 2, 6, 1, 10, 1, 2, 1, 2, - 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1 + 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 2, 1, 2, 1, 1, 1, + 1, 2, 2, 8, 2, 6, 1, 1, + 2, 2, 3, 2, 6, 4, 6, 2, + 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 5, 3, 2, 1, 1, 1, + 1, 1, 6, 3, 2, 3, 2, 1, + 1, 1, 1, 1, 2, 3, 3, 3, + 2, 8, 4, 6, 5, 4, 3, 1, + 1, 1, 1, 1, 3, 3, 2, 1, + 0, 2, 2, 3, 1, 1, 2, 2, + 3, 4, 6, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 2, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 6, 1, 2, 1, 1, 1, + 1, 5, 1, 2, 5, 6, 6, 4, + 0, 1, 3, 1, 2, 7, 4, 0, + 1, 7, 1, 2, 1, 1, 1, 1, + 1, 4, 1, 2, 3, 5, 1, 7, + 1, 2, 1, 1, 1, 1, 4, 0, + 1, 4, 1, 2, 3, 5, 1, 10, + 1, 2, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1 }; static const char _eo_tokenizer_range_lengths[] = { @@ -711,40 +790,46 @@ static const char _eo_tokenizer_range_lengths[] = { 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, - 1, 4, 4, 4, 0, 0, 0, 4, + 1, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 3, 3, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 4, 4, 4, + 4, 4, 4, 4, 4, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 0, + 0, 0, 0, 1, 0, 0, 0, 0, + 0, 2, 5, 5, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 1, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 3, + 3, 4, 4, 4, 4, 4, 4, 4, + 4, 3, 4, 4, 4, 4, 4, 4, + 4, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 3, 0, 0, + 0, 0, 0, 1, 0, 0, 1, 3, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 2, 5, 5, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 1, 4, 4, 4, - 0, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 1, 3, 3, 0, 0, 0, + 0, 1, 3, 4, 1, 3, 0, 0, + 4, 0, 0, 3, 1, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 1, 3, 3, 0, + 1, 3, 4, 1, 1, 0, 0, 0, + 0, 0, 3, 1, 1, 3, 1, 0, + 0, 0, 0, 0, 1, 3, 2, 4, + 1, 3, 3, 3, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 2, 3, 0, + 2, 3, 1, 1, 0, 0, 4, 0, + 0, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 3, 3, 0, 0, 0, 0, 1, - 3, 4, 1, 3, 0, 0, 4, 0, - 0, 3, 1, 2, 3, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 3, - 4, 1, 1, 0, 0, 0, 0, 0, - 3, 1, 1, 3, 1, 0, 0, 0, - 0, 0, 1, 3, 2, 4, 1, 3, - 3, 3, 0, 1, 1, 0, 0, 0, - 0, 0, 0, 2, 3, 0, 2, 3, - 1, 1, 0, 0, 4, 0, 0, 3, - 3, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 3, - 3, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 0, 0, 0, 0, 0, 3, - 1, 0, 3, 3, 3, 0, 0, 0, - 3, 1, 0, 3, 0, 0, 0, 1, - 1, 0, 0, 0, 0, 0, 0, 4, - 1, 0, 4, 0, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 1, - 0, 4, 0, 1, 1, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 1, - 0, 0, 0 + 0, 1, 1, 1, 0, 0, 0, 0, + 0, 3, 1, 0, 3, 3, 3, 0, + 0, 0, 3, 1, 0, 3, 0, 0, + 0, 1, 1, 0, 0, 0, 0, 0, + 0, 4, 1, 0, 4, 4, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 1, 0, 4, 4, 0, 1, + 1, 0, 0, 0, 1, 0, 1, 0, + 0, 0, 0, 1, 0, 0, 0 }; static const short _eo_tokenizer_index_offsets[] = { @@ -760,40 +845,46 @@ static const short _eo_tokenizer_index_offsets[] = { 371, 376, 378, 380, 387, 390, 394, 397, 401, 403, 405, 409, 411, 413, 417, 419, 423, 425, 427, 429, 431, 435, 438, 442, - 444, 448, 456, 464, 475, 479, 482, 486, - 494, 497, 501, 503, 505, 507, 509, 511, - 513, 515, 517, 519, 523, 529, 535, 537, - 539, 541, 543, 547, 549, 551, 553, 555, - 559, 565, 577, 590, 595, 597, 599, 606, - 609, 613, 616, 620, 622, 626, 634, 642, - 653, 657, 660, 664, 672, 675, 679, 681, - 683, 685, 687, 689, 691, 693, 695, 697, - 699, 701, 705, 707, 709, 713, 718, 724, - 726, 728, 730, 732, 734, 736, 738, 740, - 742, 746, 748, 750, 752, 754, 756, 758, - 760, 764, 769, 775, 777, 779, 781, 783, - 787, 793, 806, 810, 820, 822, 824, 831, - 834, 838, 844, 852, 859, 869, 873, 875, - 877, 879, 881, 883, 885, 887, 889, 893, - 899, 909, 914, 918, 920, 922, 924, 926, - 928, 938, 943, 947, 954, 958, 960, 962, - 964, 966, 968, 972, 979, 985, 993, 997, - 1009, 1017, 1027, 1033, 1039, 1044, 1046, 1048, - 1050, 1052, 1054, 1058, 1064, 1070, 1072, 1075, - 1081, 1085, 1090, 1092, 1094, 1101, 1104, 1108, - 1116, 1126, 1135, 1137, 1139, 1141, 1143, 1145, - 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1163, - 1168, 1174, 1176, 1178, 1180, 1182, 1184, 1188, - 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, - 1208, 1216, 1219, 1222, 1224, 1226, 1228, 1230, - 1239, 1242, 1245, 1254, 1264, 1274, 1279, 1280, - 1282, 1289, 1292, 1295, 1306, 1311, 1312, 1314, - 1323, 1326, 1329, 1331, 1333, 1335, 1337, 1339, - 1347, 1350, 1353, 1364, 1366, 1375, 1378, 1381, - 1383, 1385, 1387, 1389, 1394, 1395, 1397, 1405, - 1408, 1411, 1422, 1424, 1436, 1439, 1442, 1444, - 1447, 1450, 1453, 1456, 1458, 1460, 1462, 1464, - 1467, 1469, 1471 + 444, 448, 456, 463, 472, 481, 490, 499, + 508, 517, 526, 534, 542, 552, 561, 570, + 579, 588, 597, 606, 615, 620, 629, 638, + 647, 656, 665, 674, 683, 692, 696, 699, + 703, 711, 714, 718, 720, 722, 724, 726, + 728, 730, 732, 734, 736, 740, 746, 752, + 754, 756, 758, 760, 764, 766, 768, 770, + 772, 776, 782, 794, 807, 812, 814, 816, + 823, 826, 830, 833, 837, 839, 843, 851, + 858, 867, 876, 885, 894, 903, 912, 921, + 929, 937, 947, 956, 965, 974, 983, 992, + 1001, 1010, 1015, 1024, 1033, 1042, 1051, 1060, + 1069, 1078, 1087, 1091, 1094, 1098, 1106, 1109, + 1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, + 1129, 1131, 1133, 1135, 1139, 1141, 1143, 1147, + 1152, 1158, 1160, 1162, 1164, 1166, 1168, 1170, + 1172, 1174, 1176, 1180, 1182, 1184, 1186, 1188, + 1190, 1192, 1194, 1198, 1203, 1209, 1211, 1213, + 1215, 1217, 1221, 1227, 1240, 1244, 1254, 1256, + 1258, 1265, 1268, 1272, 1278, 1286, 1293, 1303, + 1307, 1309, 1311, 1313, 1315, 1317, 1319, 1321, + 1323, 1327, 1333, 1343, 1348, 1352, 1354, 1356, + 1358, 1360, 1362, 1372, 1377, 1381, 1388, 1392, + 1394, 1396, 1398, 1400, 1402, 1406, 1413, 1419, + 1427, 1431, 1443, 1451, 1461, 1467, 1473, 1478, + 1480, 1482, 1484, 1486, 1488, 1492, 1498, 1504, + 1506, 1509, 1515, 1519, 1524, 1526, 1528, 1535, + 1538, 1542, 1550, 1560, 1569, 1571, 1573, 1575, + 1577, 1579, 1581, 1583, 1585, 1587, 1589, 1591, + 1593, 1597, 1602, 1608, 1610, 1612, 1614, 1616, + 1618, 1622, 1624, 1626, 1628, 1630, 1632, 1634, + 1636, 1638, 1642, 1650, 1653, 1656, 1658, 1660, + 1662, 1664, 1673, 1676, 1679, 1688, 1698, 1708, + 1713, 1714, 1716, 1723, 1726, 1729, 1740, 1745, + 1746, 1748, 1757, 1760, 1763, 1765, 1767, 1769, + 1771, 1773, 1782, 1785, 1788, 1796, 1806, 1808, + 1817, 1820, 1823, 1825, 1827, 1829, 1831, 1836, + 1837, 1839, 1848, 1851, 1854, 1862, 1872, 1874, + 1886, 1889, 1892, 1894, 1897, 1900, 1903, 1906, + 1908, 1910, 1912, 1914, 1917, 1919, 1921 }; static const short _eo_tokenizer_indicies[] = { @@ -853,215 +944,278 @@ static const short _eo_tokenizer_indicies[] = { 127, 145, 127, 146, 127, 147, 127, 148, 149, 147, 127, 152, 153, 151, 152, 153, 154, 151, 156, 155, 158, 159, 157, 150, - 158, 160, 159, 157, 160, 160, 160, 150, - 162, 160, 163, 161, 160, 160, 160, 150, - 164, 162, 164, 164, 165, 163, 161, 165, - 165, 165, 150, 168, 169, 170, 167, 168, - 169, 167, 168, 169, 171, 167, 172, 169, - 173, 170, 173, 173, 173, 167, 175, 176, - 174, 175, 176, 177, 174, 179, 178, 180, - 166, 181, 166, 182, 166, 183, 166, 184, - 166, 185, 166, 186, 166, 187, 166, 188, - 188, 188, 166, 188, 188, 188, 189, 189, - 166, 191, 190, 190, 190, 190, 166, 192, - 166, 193, 166, 194, 166, 195, 166, 196, - 197, 195, 166, 198, 166, 199, 166, 200, - 166, 201, 166, 202, 202, 202, 166, 202, - 202, 202, 203, 203, 166, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, - 166, 204, 204, 204, 205, 204, 204, 204, - 204, 204, 204, 204, 204, 166, 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, - 224, 217, 225, 227, 226, 224, 227, 227, - 227, 217, 229, 227, 230, 228, 227, 227, - 227, 217, 231, 229, 231, 231, 232, 230, - 228, 232, 232, 232, 217, 235, 236, 237, - 234, 235, 236, 234, 235, 236, 238, 234, - 239, 236, 240, 237, 240, 240, 240, 234, - 242, 243, 241, 242, 243, 244, 241, 246, - 245, 247, 233, 248, 233, 249, 233, 250, - 233, 251, 233, 252, 233, 253, 233, 254, - 233, 255, 233, 256, 233, 257, 258, 256, - 233, 259, 233, 260, 233, 261, 262, 260, - 233, 263, 262, 264, 264, 233, 266, 265, - 265, 265, 265, 233, 267, 233, 268, 233, - 269, 233, 270, 233, 271, 233, 272, 233, - 273, 233, 274, 233, 275, 233, 276, 277, - 275, 233, 278, 233, 279, 233, 280, 233, - 281, 233, 282, 233, 283, 233, 284, 233, - 285, 286, 284, 233, 287, 286, 288, 288, - 233, 290, 289, 289, 289, 289, 233, 291, - 233, 292, 233, 293, 233, 294, 233, 295, - 296, 294, 233, 297, 299, 296, 298, 298, - 233, 301, 302, 301, 301, 303, 304, 305, - 304, 300, 304, 304, 304, 233, 307, 308, - 306, 233, 308, 297, 308, 308, 309, 299, - 296, 298, 298, 233, 310, 233, 311, 233, - 312, 313, 311, 313, 313, 313, 233, 315, - 316, 314, 315, 316, 317, 314, 319, 321, - 318, 320, 320, 233, 322, 307, 322, 322, - 323, 308, 306, 233, 323, 323, 323, 324, - 324, 324, 233, 325, 325, 325, 326, 325, - 325, 325, 325, 325, 233, 328, 329, 327, - 233, 330, 233, 331, 233, 332, 233, 333, - 233, 334, 233, 335, 233, 336, 233, 337, - 233, 338, 339, 337, 233, 340, 342, 339, - 341, 341, 233, 344, 346, 347, 345, 348, - 343, 345, 345, 345, 233, 350, 339, 351, - 349, 233, 352, 353, 351, 233, 354, 233, - 355, 233, 356, 233, 357, 233, 358, 233, - 360, 361, 360, 360, 362, 364, 359, 363, - 363, 233, 366, 367, 368, 365, 233, 369, - 370, 367, 233, 340, 339, 342, 339, 341, - 341, 233, 371, 372, 368, 233, 373, 233, - 374, 233, 375, 233, 376, 233, 377, 233, - 378, 379, 377, 233, 380, 381, 382, 379, - 383, 383, 233, 381, 381, 381, 384, 384, - 233, 386, 388, 387, 385, 387, 387, 387, - 233, 390, 382, 389, 233, 382, 392, 382, - 382, 393, 381, 382, 394, 391, 383, 383, - 233, 392, 381, 382, 394, 391, 383, 383, - 233, 395, 395, 395, 397, 398, 396, 396, - 396, 396, 233, 399, 399, 399, 381, 382, - 233, 401, 400, 402, 403, 400, 233, 401, - 402, 403, 400, 233, 404, 233, 405, 233, - 406, 233, 407, 233, 408, 233, 409, 409, - 409, 233, 409, 409, 409, 410, 410, 233, - 412, 411, 411, 411, 411, 233, 413, 233, - 414, 414, 233, 416, 415, 415, 415, 415, - 233, 418, 403, 417, 233, 369, 367, 370, - 367, 233, 419, 233, 420, 233, 421, 422, - 420, 422, 422, 422, 233, 424, 425, 423, - 424, 425, 426, 423, 428, 429, 430, 432, - 427, 431, 431, 233, 433, 366, 433, 433, - 367, 368, 365, 434, 434, 233, 436, 438, - 437, 439, 435, 437, 437, 437, 233, 345, - 233, 440, 233, 441, 233, 442, 233, 443, - 233, 444, 233, 445, 233, 446, 233, 447, - 233, 448, 233, 449, 233, 450, 233, 451, - 452, 450, 233, 453, 452, 454, 454, 233, - 456, 455, 455, 455, 455, 233, 457, 233, - 458, 233, 459, 233, 460, 233, 461, 233, - 462, 463, 461, 233, 464, 233, 465, 233, - 466, 233, 467, 233, 468, 233, 469, 233, - 470, 233, 471, 233, 472, 473, 471, 233, - 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, 69, 497, 71, 71, 71, - 72, 79, 79, 79, 79, 497, 71, 71, - 71, 72, 79, 499, 79, 79, 79, 497, - 71, 71, 71, 72, 79, 500, 79, 79, - 79, 497, 97, 97, 97, 98, 501, 502, - 504, 503, 507, 508, 510, 506, 509, 509, - 505, 507, 506, 511, 108, 112, 512, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 512, 117, 117, 117, 118, 513, 514, - 516, 515, 519, 520, 521, 522, 523, 524, - 525, 518, 517, 519, 518, 526, 128, 132, - 527, 528, 527, 529, 527, 530, 527, 531, - 527, 533, 532, 536, 537, 539, 535, 538, - 538, 538, 534, 536, 535, 540, 151, 155, - 541, 164, 162, 164, 164, 165, 163, 161, - 165, 165, 165, 541, 543, 542, 546, 547, - 548, 549, 550, 551, 552, 545, 544, 546, - 545, 553, 555, 178, 554, 556, 554, 557, - 554, 558, 554, 559, 554, 207, 207, 207, - 208, 560, 561, 563, 562, 566, 567, 569, - 565, 568, 568, 568, 564, 566, 565, 570, - 218, 222, 571, 231, 229, 231, 231, 232, - 230, 228, 232, 232, 232, 571, 573, 572, - 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 575, 574, 576, 575, 586, 588, - 245, 587, 589, 587, 590, 591, 587, 594, - 593, 592, 595, 596, 587, 599, 598, 597, - 601, 600, 602, 587, 604, 603, 605, 587, - 608, 607, 606, 609, 587, 610, 587, 612, - 611, 0 + 161, 163, 164, 160, 162, 162, 162, 150, + 161, 164, 160, 162, 162, 162, 150, 161, + 163, 165, 164, 160, 162, 162, 162, 150, + 161, 163, 166, 164, 160, 162, 162, 162, + 150, 161, 163, 167, 164, 160, 162, 162, + 162, 150, 161, 163, 168, 164, 160, 162, + 162, 162, 150, 161, 163, 169, 164, 160, + 162, 162, 162, 150, 161, 163, 170, 164, + 160, 162, 162, 162, 150, 161, 163, 171, + 164, 160, 162, 162, 162, 150, 172, 172, + 172, 163, 162, 162, 162, 150, 172, 172, + 172, 174, 173, 173, 173, 150, 161, 163, + 175, 176, 164, 160, 162, 162, 162, 150, + 161, 163, 177, 164, 160, 162, 162, 162, + 150, 161, 163, 178, 164, 160, 162, 162, + 162, 150, 161, 163, 179, 164, 160, 162, + 162, 162, 150, 161, 163, 180, 164, 160, + 162, 162, 162, 150, 161, 163, 181, 164, + 160, 162, 162, 162, 150, 161, 163, 182, + 164, 160, 162, 162, 162, 150, 161, 163, + 183, 164, 160, 162, 162, 162, 150, 163, + 162, 162, 162, 150, 161, 163, 184, 164, + 160, 162, 162, 162, 150, 161, 163, 185, + 164, 160, 162, 162, 162, 150, 161, 163, + 186, 164, 160, 162, 162, 162, 150, 161, + 163, 183, 164, 160, 162, 162, 162, 150, + 161, 163, 187, 164, 160, 162, 162, 162, + 150, 161, 163, 188, 164, 160, 162, 162, + 162, 150, 161, 163, 189, 164, 160, 162, + 162, 162, 150, 161, 163, 171, 164, 160, + 162, 162, 162, 150, 192, 193, 194, 191, + 192, 193, 191, 192, 193, 195, 191, 196, + 193, 197, 194, 197, 197, 197, 191, 199, + 200, 198, 199, 200, 201, 198, 203, 202, + 204, 190, 205, 190, 206, 190, 207, 190, + 208, 190, 209, 190, 210, 190, 211, 190, + 212, 212, 212, 190, 212, 212, 212, 213, + 213, 190, 215, 214, 214, 214, 214, 190, + 216, 190, 217, 190, 218, 190, 219, 190, + 220, 221, 219, 190, 222, 190, 223, 190, + 224, 190, 225, 190, 226, 226, 226, 190, + 226, 226, 226, 227, 227, 190, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, + 228, 190, 228, 228, 228, 229, 228, 228, + 228, 228, 228, 228, 228, 228, 190, 231, + 231, 231, 232, 230, 233, 230, 234, 230, + 235, 236, 234, 236, 236, 236, 230, 238, + 239, 237, 238, 239, 240, 237, 243, 244, + 242, 243, 244, 245, 242, 247, 246, 249, + 250, 248, 241, 252, 254, 255, 251, 253, + 253, 253, 241, 252, 255, 251, 253, 253, + 253, 241, 252, 254, 256, 255, 251, 253, + 253, 253, 241, 252, 254, 257, 255, 251, + 253, 253, 253, 241, 252, 254, 258, 255, + 251, 253, 253, 253, 241, 252, 254, 259, + 255, 251, 253, 253, 253, 241, 252, 254, + 260, 255, 251, 253, 253, 253, 241, 252, + 254, 261, 255, 251, 253, 253, 253, 241, + 252, 254, 262, 255, 251, 253, 253, 253, + 241, 263, 263, 263, 254, 253, 253, 253, + 241, 263, 263, 263, 265, 264, 264, 264, + 241, 252, 254, 266, 267, 255, 251, 253, + 253, 253, 241, 252, 254, 268, 255, 251, + 253, 253, 253, 241, 252, 254, 269, 255, + 251, 253, 253, 253, 241, 252, 254, 270, + 255, 251, 253, 253, 253, 241, 252, 254, + 271, 255, 251, 253, 253, 253, 241, 252, + 254, 272, 255, 251, 253, 253, 253, 241, + 252, 254, 273, 255, 251, 253, 253, 253, + 241, 252, 254, 274, 255, 251, 253, 253, + 253, 241, 254, 253, 253, 253, 241, 252, + 254, 275, 255, 251, 253, 253, 253, 241, + 252, 254, 276, 255, 251, 253, 253, 253, + 241, 252, 254, 277, 255, 251, 253, 253, + 253, 241, 252, 254, 274, 255, 251, 253, + 253, 253, 241, 252, 254, 278, 255, 251, + 253, 253, 253, 241, 252, 254, 279, 255, + 251, 253, 253, 253, 241, 252, 254, 280, + 255, 251, 253, 253, 253, 241, 252, 254, + 262, 255, 251, 253, 253, 253, 241, 283, + 284, 285, 282, 283, 284, 282, 283, 284, + 286, 282, 287, 284, 288, 285, 288, 288, + 288, 282, 290, 291, 289, 290, 291, 292, + 289, 294, 293, 295, 281, 296, 281, 297, + 281, 298, 281, 299, 281, 300, 281, 301, + 281, 302, 281, 303, 281, 304, 281, 305, + 306, 304, 281, 307, 281, 308, 281, 309, + 310, 308, 281, 311, 310, 312, 312, 281, + 314, 313, 313, 313, 313, 281, 315, 281, + 316, 281, 317, 281, 318, 281, 319, 281, + 320, 281, 321, 281, 322, 281, 323, 281, + 324, 325, 323, 281, 326, 281, 327, 281, + 328, 281, 329, 281, 330, 281, 331, 281, + 332, 281, 333, 334, 332, 281, 335, 334, + 336, 336, 281, 338, 337, 337, 337, 337, + 281, 339, 281, 340, 281, 341, 281, 342, + 281, 343, 344, 342, 281, 345, 347, 344, + 346, 346, 281, 349, 350, 349, 349, 351, + 352, 353, 352, 348, 352, 352, 352, 281, + 355, 356, 354, 281, 356, 345, 356, 356, + 357, 347, 344, 346, 346, 281, 358, 281, + 359, 281, 360, 361, 359, 361, 361, 361, + 281, 363, 364, 362, 363, 364, 365, 362, + 367, 369, 366, 368, 368, 281, 370, 355, + 370, 370, 371, 356, 354, 281, 371, 371, + 371, 372, 372, 372, 281, 373, 373, 373, + 374, 373, 373, 373, 373, 373, 281, 376, + 377, 375, 281, 378, 281, 379, 281, 380, + 281, 381, 281, 382, 281, 383, 281, 384, + 281, 385, 281, 386, 387, 385, 281, 388, + 390, 387, 389, 389, 281, 392, 394, 395, + 393, 396, 391, 393, 393, 393, 281, 398, + 387, 399, 397, 281, 400, 401, 399, 281, + 402, 281, 403, 281, 404, 281, 405, 281, + 406, 281, 408, 409, 408, 408, 410, 412, + 407, 411, 411, 281, 414, 415, 416, 413, + 281, 417, 418, 415, 281, 388, 387, 390, + 387, 389, 389, 281, 419, 420, 416, 281, + 421, 281, 422, 281, 423, 281, 424, 281, + 425, 281, 426, 427, 425, 281, 428, 429, + 430, 427, 431, 431, 281, 429, 429, 429, + 432, 432, 281, 434, 436, 435, 433, 435, + 435, 435, 281, 438, 430, 437, 281, 430, + 440, 430, 430, 441, 429, 430, 442, 439, + 431, 431, 281, 440, 429, 430, 442, 439, + 431, 431, 281, 443, 443, 443, 445, 446, + 444, 444, 444, 444, 281, 447, 447, 447, + 429, 430, 281, 449, 448, 450, 451, 448, + 281, 449, 450, 451, 448, 281, 452, 281, + 453, 281, 454, 281, 455, 281, 456, 281, + 457, 457, 457, 281, 457, 457, 457, 458, + 458, 281, 460, 459, 459, 459, 459, 281, + 461, 281, 462, 462, 281, 464, 463, 463, + 463, 463, 281, 466, 451, 465, 281, 417, + 415, 418, 415, 281, 467, 281, 468, 281, + 469, 470, 468, 470, 470, 470, 281, 472, + 473, 471, 472, 473, 474, 471, 476, 477, + 478, 480, 475, 479, 479, 281, 481, 414, + 481, 481, 415, 416, 413, 482, 482, 281, + 484, 486, 485, 487, 483, 485, 485, 485, + 281, 393, 281, 488, 281, 489, 281, 490, + 281, 491, 281, 492, 281, 493, 281, 494, + 281, 495, 281, 496, 281, 497, 281, 498, + 281, 499, 500, 498, 281, 501, 500, 502, + 502, 281, 504, 503, 503, 503, 503, 281, + 505, 281, 506, 281, 507, 281, 508, 281, + 509, 281, 510, 511, 509, 281, 512, 281, + 513, 281, 514, 281, 515, 281, 516, 281, + 517, 281, 518, 281, 519, 281, 520, 521, + 519, 281, 524, 525, 526, 527, 528, 529, + 523, 522, 524, 523, 530, 1, 5, 531, + 532, 531, 533, 531, 534, 531, 535, 531, + 538, 539, 541, 542, 543, 537, 540, 540, + 536, 538, 537, 544, 546, 69, 545, 71, + 71, 71, 72, 79, 79, 79, 79, 545, + 71, 71, 71, 72, 79, 547, 79, 79, + 79, 545, 71, 71, 71, 72, 79, 548, + 79, 79, 79, 545, 97, 97, 97, 98, + 549, 550, 552, 551, 555, 556, 558, 554, + 557, 557, 553, 555, 554, 559, 108, 112, + 560, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 560, 117, 117, 117, 118, + 561, 562, 564, 563, 567, 568, 569, 570, + 571, 572, 573, 566, 565, 567, 566, 574, + 128, 132, 575, 576, 575, 577, 575, 578, + 575, 579, 575, 581, 580, 584, 585, 587, + 588, 583, 586, 586, 586, 582, 584, 583, + 589, 151, 155, 590, 161, 163, 164, 160, + 162, 162, 162, 590, 161, 163, 591, 592, + 164, 160, 162, 162, 162, 590, 594, 593, + 597, 598, 599, 600, 601, 602, 603, 596, + 595, 597, 596, 604, 606, 202, 605, 607, + 605, 608, 605, 609, 605, 610, 605, 231, + 231, 231, 232, 611, 612, 614, 613, 617, + 618, 620, 621, 616, 619, 619, 619, 615, + 617, 616, 622, 242, 246, 623, 252, 254, + 255, 251, 253, 253, 253, 623, 252, 254, + 624, 625, 255, 251, 253, 253, 253, 623, + 627, 626, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 629, 628, 630, 629, + 640, 642, 293, 641, 643, 641, 644, 645, + 641, 648, 647, 646, 649, 650, 641, 653, + 652, 651, 655, 654, 656, 641, 658, 657, + 659, 641, 662, 661, 660, 663, 641, 664, + 641, 666, 665, 0 }; static const short _eo_tokenizer_trans_targs[] = { - 296, 0, 0, 1, 296, 2, 296, 4, + 346, 0, 0, 1, 346, 2, 346, 4, 5, 6, 7, 8, 9, 10, 10, 11, - 12, 13, 12, 14, 11, 296, 12, 12, - 296, 13, 14, 15, 16, 12, 12, 296, + 12, 13, 12, 14, 11, 346, 12, 12, + 346, 13, 14, 15, 16, 12, 12, 346, 17, 17, 15, 18, 16, 17, 17, 18, 18, 20, 21, 22, 10, 24, 25, 26, 27, 28, 29, 30, 10, 32, 33, 34, - 10, 303, 36, 36, 37, 38, 303, 38, - 39, 39, 39, 40, 303, 41, 303, 42, - 43, 44, 45, 44, 45, 45, 303, 46, - 48, 49, 50, 51, 52, 53, 53, 303, - 55, 56, 57, 58, 59, 60, 61, 309, - 303, 62, 63, 64, 65, 65, 66, 66, - 66, 67, 310, 312, 68, 68, 69, 312, - 70, 312, 71, 316, 312, 72, 73, 74, - 75, 75, 76, 76, 76, 77, 317, 319, - 78, 78, 79, 319, 80, 319, 82, 82, - 319, 84, 85, 85, 319, 87, 87, 319, - 89, 90, 91, 92, 92, 319, 327, 93, - 93, 94, 327, 95, 327, 96, 96, 327, - 98, 96, 96, 327, 97, 99, 332, 101, - 101, 102, 103, 332, 103, 104, 104, 104, - 105, 332, 106, 332, 108, 109, 110, 332, - 112, 113, 114, 115, 116, 117, 117, 332, - 119, 120, 121, 122, 122, 332, 124, 125, - 126, 127, 128, 129, 130, 339, 332, 131, - 132, 133, 134, 134, 135, 135, 135, 136, - 340, 342, 137, 137, 138, 342, 139, 342, - 140, 140, 342, 142, 140, 140, 342, 141, - 143, 347, 145, 145, 146, 147, 347, 147, - 148, 148, 148, 149, 347, 150, 347, 152, - 153, 154, 155, 156, 157, 158, 159, 160, - 161, 161, 347, 163, 164, 164, 165, 165, - 166, 166, 352, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 176, 347, 178, 179, - 180, 181, 182, 183, 184, 184, 185, 185, - 186, 186, 354, 188, 189, 190, 191, 191, - 192, 192, 193, 355, 194, 202, 194, 203, - 193, 195, 194, 194, 195, 196, 197, 198, - 198, 199, 199, 199, 200, 201, 192, 192, - 193, 355, 202, 203, 204, 204, 205, 194, - 194, 195, 207, 208, 209, 210, 211, 212, - 213, 214, 214, 215, 215, 216, 357, 217, - 217, 216, 266, 215, 218, 217, 217, 218, - 218, 219, 220, 221, 222, 223, 224, 225, - 264, 225, 226, 265, 228, 225, 225, 226, - 228, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 234, 235, 235, 236, 239, 241, - 237, 238, 238, 237, 239, 238, 238, 240, - 240, 258, 243, 242, 241, 236, 239, 242, - 244, 244, 245, 257, 246, 247, 248, 249, - 250, 251, 252, 252, 253, 254, 255, 255, - 256, 256, 256, 259, 260, 260, 261, 261, - 261, 262, 263, 240, 240, 236, 239, 241, - 243, 264, 265, 225, 225, 265, 226, 228, + 10, 353, 36, 36, 37, 38, 353, 38, + 39, 39, 39, 40, 353, 41, 353, 42, + 43, 44, 45, 44, 45, 45, 353, 46, + 48, 49, 50, 51, 52, 53, 53, 353, + 55, 56, 57, 58, 59, 60, 61, 359, + 353, 62, 63, 64, 65, 65, 66, 66, + 66, 67, 360, 362, 68, 68, 69, 362, + 70, 362, 71, 366, 362, 72, 73, 74, + 75, 75, 76, 76, 76, 77, 367, 369, + 78, 78, 79, 369, 80, 369, 82, 82, + 369, 84, 85, 85, 369, 87, 87, 369, + 89, 90, 91, 92, 92, 369, 377, 93, + 93, 94, 377, 95, 377, 96, 96, 377, + 96, 96, 97, 98, 377, 100, 101, 102, + 103, 104, 105, 106, 107, 97, 108, 109, + 117, 110, 111, 112, 113, 114, 115, 116, + 118, 119, 120, 122, 123, 124, 383, 126, + 126, 127, 128, 383, 128, 129, 129, 129, + 130, 383, 131, 383, 133, 134, 135, 383, + 137, 138, 139, 140, 141, 142, 142, 383, + 144, 145, 146, 147, 147, 383, 149, 150, + 151, 152, 153, 154, 155, 390, 383, 156, + 157, 158, 159, 159, 160, 160, 160, 161, + 391, 393, 162, 162, 163, 393, 164, 393, + 165, 165, 393, 165, 165, 166, 167, 393, + 169, 170, 171, 172, 173, 174, 175, 176, + 166, 177, 178, 186, 179, 180, 181, 182, + 183, 184, 185, 187, 188, 189, 191, 192, + 193, 399, 195, 195, 196, 197, 399, 197, + 198, 198, 198, 199, 399, 200, 399, 202, + 203, 204, 205, 206, 207, 208, 209, 210, + 211, 211, 399, 213, 214, 214, 215, 215, + 216, 216, 404, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 226, 399, 228, 229, + 230, 231, 232, 233, 234, 234, 235, 235, + 236, 236, 406, 238, 239, 240, 241, 241, + 242, 242, 243, 407, 244, 252, 244, 253, + 243, 245, 244, 244, 245, 246, 247, 248, + 248, 249, 249, 249, 250, 251, 242, 242, + 243, 407, 252, 253, 254, 254, 255, 244, + 244, 245, 257, 258, 259, 260, 261, 262, + 263, 264, 264, 265, 265, 266, 409, 267, + 267, 266, 316, 265, 268, 267, 267, 268, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 278, 279, 279, 280, 280, - 359, 282, 283, 284, 285, 286, 286, 347, - 288, 289, 290, 291, 292, 293, 294, 295, - 295, 347, 296, 297, 297, 298, 299, 300, - 301, 302, 296, 296, 3, 19, 23, 31, - 303, 304, 304, 305, 306, 307, 308, 311, - 303, 303, 35, 47, 54, 303, 303, 303, - 303, 312, 313, 313, 314, 315, 318, 312, - 312, 312, 312, 312, 312, 319, 320, 320, - 321, 322, 323, 324, 325, 326, 319, 319, - 81, 83, 86, 88, 319, 319, 327, 328, - 328, 329, 330, 331, 327, 327, 327, 327, - 332, 333, 333, 334, 335, 336, 337, 338, - 341, 332, 332, 100, 107, 111, 118, 123, - 332, 332, 332, 332, 342, 343, 343, 344, - 345, 346, 342, 342, 342, 342, 347, 348, - 348, 349, 350, 351, 353, 356, 358, 360, - 361, 362, 347, 347, 144, 151, 162, 167, - 347, 352, 352, 177, 187, 347, 354, 354, - 347, 347, 206, 347, 347, 267, 347, 359, - 359, 281, 287, 347, 347 + 314, 275, 276, 315, 278, 275, 275, 276, + 278, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 284, 285, 285, 286, 289, 291, + 287, 288, 288, 287, 289, 288, 288, 290, + 290, 308, 293, 292, 291, 286, 289, 292, + 294, 294, 295, 307, 296, 297, 298, 299, + 300, 301, 302, 302, 303, 304, 305, 305, + 306, 306, 306, 309, 310, 310, 311, 311, + 311, 312, 313, 290, 290, 286, 289, 291, + 293, 314, 315, 275, 275, 315, 276, 278, + 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 328, 329, 329, 330, 330, + 411, 332, 333, 334, 335, 336, 336, 399, + 338, 339, 340, 341, 342, 343, 344, 345, + 345, 399, 346, 347, 347, 348, 349, 350, + 351, 352, 346, 346, 3, 19, 23, 31, + 353, 354, 354, 355, 356, 357, 358, 361, + 353, 353, 35, 47, 54, 353, 353, 353, + 353, 362, 363, 363, 364, 365, 368, 362, + 362, 362, 362, 362, 362, 369, 370, 370, + 371, 372, 373, 374, 375, 376, 369, 369, + 81, 83, 86, 88, 369, 369, 377, 378, + 378, 379, 380, 381, 382, 377, 377, 99, + 121, 377, 377, 383, 384, 384, 385, 386, + 387, 388, 389, 392, 383, 383, 125, 132, + 136, 143, 148, 383, 383, 383, 383, 393, + 394, 394, 395, 396, 397, 398, 393, 393, + 168, 190, 393, 393, 399, 400, 400, 401, + 402, 403, 405, 408, 410, 412, 413, 414, + 399, 399, 194, 201, 212, 217, 399, 404, + 404, 227, 237, 399, 406, 406, 399, 399, + 256, 399, 399, 317, 399, 411, 411, 331, + 337, 399, 399 }; static const short _eo_tokenizer_trans_actions[] = { @@ -1085,7 +1239,10 @@ static const short _eo_tokenizer_trans_actions[] = { 99, 0, 0, 1, 103, 0, 1, 101, 0, 0, 0, 0, 1, 105, 133, 0, 1, 0, 119, 0, 232, 0, 1, 121, - 0, 7, 262, 265, 7, 0, 155, 0, + 7, 262, 0, 0, 265, 0, 0, 0, + 0, 0, 0, 0, 0, 346, 346, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 1, 0, 0, 137, 1, 3, 0, 1, 0, 135, 0, 235, 0, 0, 0, 274, 0, 0, 0, 0, 0, 3, 0, 271, @@ -1093,7 +1250,10 @@ static const short _eo_tokenizer_trans_actions[] = { 0, 0, 0, 3, 0, 343, 153, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 171, 0, 1, 0, 157, 0, 238, - 0, 1, 159, 0, 9, 277, 280, 9, + 0, 1, 159, 9, 277, 0, 0, 280, + 0, 0, 0, 0, 0, 0, 0, 0, + 350, 350, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 1, 0, 0, 175, 1, 3, 0, 1, 0, 173, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1132,16 +1292,17 @@ static const short _eo_tokenizer_trans_actions[] = { 91, 87, 259, 89, 81, 109, 0, 1, 331, 57, 57, 57, 57, 0, 111, 115, 0, 0, 0, 0, 113, 107, 125, 0, - 1, 331, 334, 0, 127, 131, 129, 123, - 143, 0, 1, 331, 57, 57, 57, 57, - 0, 145, 151, 0, 0, 0, 0, 0, - 147, 268, 149, 141, 163, 0, 1, 331, - 334, 0, 165, 169, 167, 161, 191, 0, - 1, 331, 57, 57, 57, 57, 57, 57, - 57, 0, 193, 207, 0, 0, 0, 0, - 199, 0, 1, 0, 0, 197, 0, 1, - 203, 179, 0, 201, 177, 0, 195, 0, - 1, 0, 0, 205, 189 + 1, 331, 334, 334, 0, 127, 131, 0, + 0, 129, 123, 143, 0, 1, 331, 57, + 57, 57, 57, 0, 145, 151, 0, 0, + 0, 0, 0, 147, 268, 149, 141, 163, + 0, 1, 331, 334, 334, 0, 165, 169, + 0, 0, 167, 161, 191, 0, 1, 331, + 57, 57, 57, 57, 57, 57, 57, 0, + 193, 207, 0, 0, 0, 0, 199, 0, + 1, 0, 0, 197, 0, 1, 203, 179, + 0, 201, 177, 0, 195, 0, 1, 0, + 0, 205, 189 }; static const short _eo_tokenizer_to_state_actions[] = { @@ -1182,15 +1343,21 @@ 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, - 53, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 0, 0, 0, 0, 53, - 0, 0, 0, 0, 0, 0, 0, 53, - 0, 0, 0, 0, 53, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 0, - 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0 }; static const short _eo_tokenizer_from_state_actions[] = { @@ -1231,15 +1398,21 @@ 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, - 55, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 0, 0, 55, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0 + 0, 0, 0, 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, 55, 0, 0, 0, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0 }; static const short _eo_tokenizer_eof_trans[] = { @@ -1255,57 +1428,63 @@ static const short _eo_tokenizer_eof_trans[] = { 117, 117, 117, 117, 117, 117, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 151, 151, 151, - 151, 151, 151, 151, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 207, 207, 207, 207, 207, - 207, 218, 218, 218, 218, 218, 218, 218, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 0, 483, 484, 484, 484, 484, 484, 0, - 497, 498, 498, 498, 498, 502, 503, 504, - 0, 512, 513, 513, 514, 515, 516, 0, - 527, 528, 528, 528, 528, 528, 533, 0, - 541, 542, 542, 543, 0, 554, 555, 555, - 555, 555, 555, 561, 562, 563, 0, 571, - 572, 572, 573, 0, 587, 588, 588, 588, - 593, 588, 598, 601, 588, 604, 588, 607, - 588, 588, 612 + 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 231, 231, 231, 231, + 231, 231, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 0, 531, 532, 532, 532, 532, + 532, 0, 545, 546, 546, 546, 546, 550, + 551, 552, 0, 560, 561, 561, 562, 563, + 564, 0, 575, 576, 576, 576, 576, 576, + 581, 0, 590, 591, 591, 591, 594, 0, + 605, 606, 606, 606, 606, 606, 612, 613, + 614, 0, 623, 624, 624, 624, 627, 0, + 641, 642, 642, 642, 647, 642, 652, 655, + 642, 658, 642, 661, 642, 642, 666 }; -static const int eo_tokenizer_start = 296; -static const int eo_tokenizer_first_final = 296; +static const int eo_tokenizer_start = 346; +static const int eo_tokenizer_first_final = 346; static const int eo_tokenizer_error = -1; -static const int eo_tokenizer_en_tokenize_accessor = 303; -static const int eo_tokenizer_en_tokenize_params = 312; -static const int eo_tokenizer_en_tokenize_property = 319; -static const int eo_tokenizer_en_tokenize_properties = 327; -static const int eo_tokenizer_en_tokenize_method = 332; -static const int eo_tokenizer_en_tokenize_methods = 342; -static const int eo_tokenizer_en_tokenize_class = 347; -static const int eo_tokenizer_en_main = 296; +static const int eo_tokenizer_en_tokenize_accessor = 353; +static const int eo_tokenizer_en_tokenize_params = 362; +static const int eo_tokenizer_en_tokenize_property = 369; +static const int eo_tokenizer_en_tokenize_properties = 377; +static const int eo_tokenizer_en_tokenize_method = 383; +static const int eo_tokenizer_en_tokenize_methods = 393; +static const int eo_tokenizer_en_tokenize_class = 399; +static const int eo_tokenizer_en_main = 346; -#line 1041 "lib/eolian/eo_lexer.rl" +#line 1053 "lib/eolian/eo_lexer.rl" Eina_Bool @@ -1329,7 +1508,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1333 "lib/eolian/eo_lexer.c" +#line 1512 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -1337,7 +1516,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) toknz->act = 0; } -#line 1064 "lib/eolian/eo_lexer.rl" +#line 1076 "lib/eolian/eo_lexer.rl" while (!done) { @@ -1364,11 +1543,11 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source) } -#line 1368 "lib/eolian/eo_lexer.c" +#line 1547 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; - const char *_acts; + const unsigned char *_acts; unsigned int _nacts; const char *_keys; @@ -1379,11 +1558,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 38: + case 41: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 1387 "lib/eolian/eo_lexer.c" +#line 1566 "lib/eolian/eo_lexer.c" } } @@ -1450,28 +1629,35 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 374 "lib/eolian/eo_lexer.rl" +#line 365 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 379 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->saved.line = toknz->current_line; DBG("save line[%d] %d", toknz->cs, toknz->current_line); } break; case 2: -#line 384 "lib/eolian/eo_lexer.rl" +#line 375 "lib/eolian/eo_lexer.rl" { toknz->saved.tok = ( toknz->p); DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p)); } break; case 3: -#line 461 "lib/eolian/eo_lexer.rl" +#line 380 "lib/eolian/eo_lexer.rl" + { + DBG("move ts %d chars forward", (int)(( toknz->p) - toknz->ts)); + toknz->ts = ( toknz->p); + } + break; + case 4: +#line 459 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -1479,8 +1665,8 @@ _eof_trans: toknz->tmp.accessor->ret = _eo_tokenizer_return_get(toknz, ( toknz->p)); } break; - case 4: -#line 468 "lib/eolian/eo_lexer.rl" + case 5: +#line 466 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -1490,21 +1676,21 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->ret->comment); } break; - case 5: -#line 477 "lib/eolian/eo_lexer.rl" + case 6: +#line 475 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 6: -#line 491 "lib/eolian/eo_lexer.rl" + case 7: +#line 489 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; - case 7: -#line 495 "lib/eolian/eo_lexer.rl" + case 8: +#line 493 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -1514,8 +1700,8 @@ _eof_trans: toknz->tmp.accessor_param = NULL; } break; - case 8: -#line 524 "lib/eolian/eo_lexer.rl" + case 9: +#line 522 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -1524,8 +1710,8 @@ _eof_trans: toknz->tmp.param = NULL; } break; - case 9: -#line 532 "lib/eolian/eo_lexer.rl" + case 10: +#line 530 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -1535,16 +1721,22 @@ _eof_trans: INF(" %s : %s", toknz->tmp.param->name, toknz->tmp.param->type); } break; - case 10: -#line 630 "lib/eolian/eo_lexer.rl" + case 11: +#line 629 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); toknz->tmp.prop = _eo_tokenizer_property_get(toknz, ( toknz->p)); } break; - case 11: -#line 670 "lib/eolian/eo_lexer.rl" + case 12: +#line 635 "lib/eolian/eo_lexer.rl" + { + toknz->tmp.fscope = _eo_tokenizer_scope_get(toknz, ( toknz->p)); + } + break; + case 13: +#line 673 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -1552,8 +1744,8 @@ _eof_trans: toknz->tmp.meth->ret = _eo_tokenizer_return_get(toknz, ( toknz->p)); } break; - case 12: -#line 677 "lib/eolian/eo_lexer.rl" + case 14: +#line 680 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -1563,54 +1755,60 @@ _eof_trans: INF(" %s", toknz->tmp.meth->ret->comment); } break; - case 13: -#line 686 "lib/eolian/eo_lexer.rl" + case 15: +#line 689 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 14: -#line 691 "lib/eolian/eo_lexer.rl" + case 16: +#line 694 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; INF(" obj const"); } break; - case 15: -#line 751 "lib/eolian/eo_lexer.rl" + case 17: +#line 755 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); toknz->tmp.meth = _eo_tokenizer_method_get(toknz, ( toknz->p)); } break; - case 16: -#line 783 "lib/eolian/eo_lexer.rl" + case 18: +#line 761 "lib/eolian/eo_lexer.rl" + { + toknz->tmp.fscope = _eo_tokenizer_scope_get(toknz, ( toknz->p)); + } + break; + case 19: +#line 791 "lib/eolian/eo_lexer.rl" { const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base); } break; - case 17: -#line 788 "lib/eolian/eo_lexer.rl" + case 20: +#line 796 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; toknz->tmp.str_items = NULL; } break; - case 18: -#line 836 "lib/eolian/eo_lexer.rl" + case 21: +#line 848 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); toknz->tmp.kls->events = eina_list_append(toknz->tmp.kls->events, toknz->tmp.event); } break; - case 19: -#line 842 "lib/eolian/eo_lexer.rl" + case 22: +#line 854 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->type != NULL) @@ -1618,8 +1816,8 @@ _eof_trans: toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); } break; - case 20: -#line 849 "lib/eolian/eo_lexer.rl" + case 23: +#line 861 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -1628,8 +1826,8 @@ _eof_trans: toknz->tmp.event = NULL; } break; - case 21: -#line 857 "lib/eolian/eo_lexer.rl" + case 24: +#line 869 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -1637,8 +1835,8 @@ _eof_trans: toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 22: -#line 866 "lib/eolian/eo_lexer.rl" + case 25: +#line 878 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -1646,8 +1844,8 @@ _eof_trans: toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 23: -#line 875 "lib/eolian/eo_lexer.rl" + case 26: +#line 887 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -1655,16 +1853,16 @@ _eof_trans: toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 24: -#line 888 "lib/eolian/eo_lexer.rl" + case 27: +#line 900 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 25: -#line 894 "lib/eolian/eo_lexer.rl" + case 28: +#line 906 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -1672,8 +1870,8 @@ _eof_trans: toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 26: -#line 901 "lib/eolian/eo_lexer.rl" + case 29: +#line 913 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1681,8 +1879,8 @@ _eof_trans: toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 27: -#line 908 "lib/eolian/eo_lexer.rl" + case 30: +#line 920 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -1692,24 +1890,24 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 917 "lib/eolian/eo_lexer.rl" + case 31: +#line 929 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 29: -#line 923 "lib/eolian/eo_lexer.rl" + case 32: +#line 935 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 30: -#line 929 "lib/eolian/eo_lexer.rl" + case 33: +#line 941 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1717,8 +1915,8 @@ _eof_trans: toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 31: -#line 936 "lib/eolian/eo_lexer.rl" + case 34: +#line 948 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -1726,32 +1924,32 @@ _eof_trans: toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 32: -#line 1007 "lib/eolian/eo_lexer.rl" + case 35: +#line 1019 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 33: -#line 1010 "lib/eolian/eo_lexer.rl" + case 36: +#line 1022 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 34: -#line 1013 "lib/eolian/eo_lexer.rl" + case 37: +#line 1025 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 35: -#line 1016 "lib/eolian/eo_lexer.rl" + case 38: +#line 1028 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 36: -#line 1020 "lib/eolian/eo_lexer.rl" + case 39: +#line 1032 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -1759,12 +1957,12 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 39: + case 42: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 40: -#line 453 "lib/eolian/eo_lexer.rl" + case 43: +#line 451 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -1773,34 +1971,34 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 41: -#line 389 "lib/eolian/eo_lexer.rl" + case 44: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); - }} - break; - case 42: -#line 516 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 43: -#line 517 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 44: -#line 482 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); - toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); - toknz->tmp.accessor = NULL; - toknz->current_nesting--; - { toknz->cs = 319; goto _again;} }} break; case 45: -#line 398 "lib/eolian/eo_lexer.rl" +#line 514 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 46: +#line 515 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 47: +#line 480 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); + toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); + toknz->tmp.accessor = NULL; + toknz->current_nesting--; + { toknz->cs = 369; goto _again;} + }} + break; + case 48: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1818,27 +2016,27 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 46: -#line 512 "lib/eolian/eo_lexer.rl" + case 49: +#line 510 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 47: -#line 515 "lib/eolian/eo_lexer.rl" + case 50: +#line 513 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 48: -#line 482 "lib/eolian/eo_lexer.rl" + case 51: +#line 480 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 319; goto _again;} + { toknz->cs = 369; goto _again;} }} break; - case 49: -#line 398 "lib/eolian/eo_lexer.rl" + case 52: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1856,53 +2054,13 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 50: -#line 515 "lib/eolian/eo_lexer.rl" + case 53: +#line 513 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} - break; - case 51: -#line 398 "lib/eolian/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 52: -#line 389 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} - break; - case 53: -#line 541 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->tmp.param = NULL; - toknz->current_nesting--; - if (toknz->tmp.prop) - { toknz->cs = 319; goto _again;} - else if (toknz->tmp.meth) - { toknz->cs = 332; goto _again;} - else - ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); - }} break; case 54: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ +#line 394 "lib/eolian/eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -1920,29 +2078,69 @@ _eof_trans: }} break; case 55: +#line 385 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 56: +#line 539 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->tmp.param = NULL; + toknz->current_nesting--; + if (toknz->tmp.prop) + { toknz->cs = 369; goto _again;} + else if (toknz->tmp.meth) + { toknz->cs = 383; goto _again;} + else + ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); + }} + break; + case 57: +#line 394 "lib/eolian/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 58: +#line 555 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 59: #line 557 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 56: -#line 559 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 57: -#line 541 "lib/eolian/eo_lexer.rl" + case 60: +#line 539 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 319; goto _again;} + { toknz->cs = 369; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 332; goto _again;} + { toknz->cs = 383; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 58: -#line 398 "lib/eolian/eo_lexer.rl" + case 61: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1960,12 +2158,12 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 59: -#line 559 "lib/eolian/eo_lexer.rl" + case 62: +#line 557 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 60: -#line 398 "lib/eolian/eo_lexer.rl" + case 63: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -1983,101 +2181,66 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 61: -#line 389 "lib/eolian/eo_lexer.rl" + case 64: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 62: -#line 566 "lib/eolian/eo_lexer.rl" + case 65: +#line 564 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 303; goto _again;} + { toknz->cs = 353; goto _again;} }} break; - case 63: -#line 573 "lib/eolian/eo_lexer.rl" + case 66: +#line 571 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 303; goto _again;} + { toknz->cs = 353; goto _again;} }} break; - case 64: -#line 580 "lib/eolian/eo_lexer.rl" + case 67: +#line 578 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 312; goto _again;} + { toknz->cs = 362; goto _again;} }} break; - case 65: -#line 587 "lib/eolian/eo_lexer.rl" + case 68: +#line 585 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 312; goto _again;} + { toknz->cs = 362; goto _again;} }} - break; - case 66: -#line 594 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); - if (eina_list_count(toknz->tmp.prop->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 = 327; goto _again;} - }} - break; - case 67: -#line 398 "lib/eolian/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 68: -#line 611 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 69: -#line 594 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 592 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->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->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting--; - { toknz->cs = 327; goto _again;} + { toknz->cs = 377; goto _again;} }} break; case 70: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 394 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2095,7 +2258,44 @@ _eof_trans: }} break; case 71: -#line 398 "lib/eolian/eo_lexer.rl" +#line 610 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 72: +#line 592 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); + if (eina_list_count(toknz->tmp.prop->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->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} + }} + break; + case 73: +#line 394 "lib/eolian/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 74: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2113,64 +2313,33 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 72: -#line 389 "lib/eolian/eo_lexer.rl" + case 75: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 73: -#line 623 "lib/eolian/eo_lexer.rl" + case 76: +#line 622 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 319; goto _again;} + { toknz->cs = 369; goto _again;} }} - break; - case 74: -#line 636 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_nesting--; - { toknz->cs = 347; goto _again;} - }} - break; - case 75: -#line 398 "lib/eolian/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 76: -#line 645 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 77: -#line 636 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 639 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 347; goto _again;} + { toknz->cs = 399; goto _again;} }} break; case 78: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 394 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2188,7 +2357,38 @@ _eof_trans: }} break; case 79: -#line 398 "lib/eolian/eo_lexer.rl" +#line 648 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 80: +#line 639 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 399; goto _again;} + }} + break; + case 81: +#line 394 "lib/eolian/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 82: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2206,8 +2406,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 80: -#line 654 "lib/eolian/eo_lexer.rl" + case 83: +#line 657 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -2216,59 +2416,60 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 81: -#line 389 "lib/eolian/eo_lexer.rl" + case 84: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 82: -#line 662 "lib/eolian/eo_lexer.rl" + case 85: +#line 665 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 312; goto _again;} - }} - break; - case 83: -#line 736 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 84: -#line 737 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 85: -#line 697 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - Eina_List **l = NULL; - if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); - 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 = 342; goto _again;} + { toknz->cs = 362; goto _again;} }} break; case 86: -#line 398 "lib/eolian/eo_lexer.rl" +#line 740 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 87: +#line 741 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 88: +#line 700 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + Eina_List **l = NULL; + if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); + 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->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting--; + { toknz->cs = 393; goto _again;} + }} + break; + case 89: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2286,16 +2487,16 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 87: -#line 731 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 88: + case 90: #line 735 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 89: -#line 697 "lib/eolian/eo_lexer.rl" + case 91: +#line 739 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 92: +#line 700 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -2316,12 +2517,13 @@ _eof_trans: toknz->tmp.meth->type = toknz->current_methods_type; *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting--; - { toknz->cs = 342; goto _again;} + { toknz->cs = 393; goto _again;} }} break; - case 90: -#line 398 "lib/eolian/eo_lexer.rl" + case 93: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2339,12 +2541,12 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 91: -#line 735 "lib/eolian/eo_lexer.rl" + case 94: +#line 739 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 92: -#line 398 "lib/eolian/eo_lexer.rl" + case 95: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2362,66 +2564,34 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 93: -#line 389 "lib/eolian/eo_lexer.rl" + case 96: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 94: -#line 744 "lib/eolian/eo_lexer.rl" + case 97: +#line 748 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); toknz->current_nesting++; - { toknz->cs = 332; goto _again;} + { toknz->cs = 383; goto _again;} }} - break; - case 95: -#line 757 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 347; goto _again;} - }} - break; - case 96: -#line 398 "lib/eolian/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 97: -#line 767 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 98: -#line 757 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 765 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 347; goto _again;} + { toknz->cs = 399; goto _again;} }} break; case 99: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 394 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2439,7 +2609,39 @@ _eof_trans: }} break; case 100: -#line 398 "lib/eolian/eo_lexer.rl" +#line 775 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 101: +#line 765 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 399; goto _again;} + }} + break; + case 102: +#line 394 "lib/eolian/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 103: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2457,8 +2659,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 101: -#line 776 "lib/eolian/eo_lexer.rl" + case 104: +#line 784 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -2466,71 +2668,75 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 102: -#line 389 "lib/eolian/eo_lexer.rl" + case 105: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); - }} - break; - case 103: -#line 794 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - }} - break; - case 104: -#line 797 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - }} - break; - case 105: -#line 800 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" constructors {"); - toknz->current_methods_type = METH_CONSTRUCTOR; - toknz->current_nesting++; - { toknz->cs = 342; goto _again;} }} break; case 106: -#line 807 "lib/eolian/eo_lexer.rl" +#line 802 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - INF(" destructors {"); - toknz->current_methods_type = METH_DESTRUCTOR; - toknz->current_nesting++; - { toknz->cs = 342; goto _again;} }} break; case 107: -#line 814 "lib/eolian/eo_lexer.rl" +#line 805 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - INF(" properties {"); - toknz->current_nesting++; - { toknz->cs = 327; goto _again;} }} break; case 108: -#line 820 "lib/eolian/eo_lexer.rl" +#line 808 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - INF(" begin methods"); - toknz->current_methods_type = METH_REGULAR; + INF(" constructors {"); + toknz->current_methods_type = METH_CONSTRUCTOR; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting++; - { toknz->cs = 342; goto _again;} + { toknz->cs = 393; goto _again;} }} break; case 109: -#line 827 "lib/eolian/eo_lexer.rl" +#line 816 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); - INF("end class: %s", toknz->tmp.kls->name); - toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); - toknz->tmp.kls = NULL; - toknz->current_nesting--; - { toknz->cs = 296; goto _again;} + INF(" destructors {"); + toknz->current_methods_type = METH_DESTRUCTOR; + toknz->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting++; + { toknz->cs = 393; goto _again;} }} break; case 110: -#line 398 "lib/eolian/eo_lexer.rl" +#line 824 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" properties {"); + toknz->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting++; + { toknz->cs = 377; goto _again;} + }} + break; + case 111: +#line 831 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" begin methods"); + toknz->current_methods_type = METH_REGULAR; + toknz->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting++; + { toknz->cs = 393; goto _again;} + }} + break; + case 112: +#line 839 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + INF("end class: %s", toknz->tmp.kls->name); + toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); + toknz->tmp.kls = NULL; + toknz->current_nesting--; + { toknz->cs = 346; goto _again;} + }} + break; + case 113: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2547,46 +2753,46 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} - break; - case 111: -#line 982 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 112: -#line 985 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 113: -#line 986 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 987 "lib/eolian/eo_lexer.rl" +#line 994 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 115: -#line 794 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - }} +#line 997 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} break; case 116: -#line 797 "lib/eolian/eo_lexer.rl" +#line 998 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 117: +#line 999 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 118: +#line 802 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 117: -#line 827 "lib/eolian/eo_lexer.rl" + case 119: +#line 805 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + }} + break; + case 120: +#line 839 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 296; goto _again;} + { toknz->cs = 346; goto _again;} }} break; - case 118: -#line 398 "lib/eolian/eo_lexer.rl" + case 121: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2602,46 +2808,11 @@ _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 119: -#line 398 "lib/eolian/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 120: -#line 389 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} - break; - case 121: -#line 1000 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); - INF("begin class: %s", toknz->tmp.kls->name); - toknz->current_nesting++; - { toknz->cs = 347; goto _again;} }} break; case 122: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ +#line 394 "lib/eolian/eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -2659,11 +2830,46 @@ _eof_trans: }} break; case 123: -#line 1035 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} +#line 385 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} break; case 124: -#line 398 "lib/eolian/eo_lexer.rl" +#line 1012 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + INF("begin class: %s", toknz->tmp.kls->name); + toknz->current_nesting++; + { toknz->cs = 399; goto _again;} + }} + break; + case 125: +#line 394 "lib/eolian/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 1047 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 127: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2681,8 +2887,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 125: -#line 398 "lib/eolian/eo_lexer.rl" + case 128: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -2700,7 +2906,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 2704 "lib/eolian/eo_lexer.c" +#line 2910 "lib/eolian/eo_lexer.c" } } @@ -2709,11 +2915,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 37: + case 40: #line 1 "NONE" { toknz->ts = 0;} break; -#line 2717 "lib/eolian/eo_lexer.c" +#line 2923 "lib/eolian/eo_lexer.c" } } @@ -2731,12 +2937,12 @@ _again: _out: {} } -#line 1090 "lib/eolian/eo_lexer.rl" +#line 1102 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 2738 "lib/eolian/eo_lexer.c" +#line 2944 "lib/eolian/eo_lexer.c" -1 -#line 1091 "lib/eolian/eo_lexer.rl" +#line 1103 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); @@ -2782,7 +2988,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns Eina_Bool ret = EINA_TRUE; -#line 2786 "lib/eolian/eo_lexer.c" +#line 2992 "lib/eolian/eo_lexer.c" { toknz->cs = eo_tokenizer_start; toknz->ts = 0; @@ -2790,7 +2996,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->act = 0; } -#line 1136 "lib/eolian/eo_lexer.rl" +#line 1148 "lib/eolian/eo_lexer.rl" toknz->p = buffer; @@ -2799,11 +3005,11 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns toknz->eof = toknz->pe; -#line 2803 "lib/eolian/eo_lexer.c" +#line 3009 "lib/eolian/eo_lexer.c" { int _klen; unsigned int _trans; - const char *_acts; + const unsigned char *_acts; unsigned int _nacts; const char *_keys; @@ -2814,11 +3020,11 @@ _resume: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 38: + case 41: #line 1 "NONE" { toknz->ts = ( toknz->p);} break; -#line 2822 "lib/eolian/eo_lexer.c" +#line 3028 "lib/eolian/eo_lexer.c" } } @@ -2885,28 +3091,35 @@ _eof_trans: switch ( *_acts++ ) { case 0: -#line 374 "lib/eolian/eo_lexer.rl" +#line 365 "lib/eolian/eo_lexer.rl" { toknz->current_line += 1; DBG("inc[%d] %d", toknz->cs, toknz->current_line); } break; case 1: -#line 379 "lib/eolian/eo_lexer.rl" +#line 370 "lib/eolian/eo_lexer.rl" { toknz->saved.line = toknz->current_line; DBG("save line[%d] %d", toknz->cs, toknz->current_line); } break; case 2: -#line 384 "lib/eolian/eo_lexer.rl" +#line 375 "lib/eolian/eo_lexer.rl" { toknz->saved.tok = ( toknz->p); DBG("save token[%d] %p %c", toknz->cs, ( toknz->p), *( toknz->p)); } break; case 3: -#line 461 "lib/eolian/eo_lexer.rl" +#line 380 "lib/eolian/eo_lexer.rl" + { + DBG("move ts %d chars forward", (int)(( toknz->p) - toknz->ts)); + toknz->ts = ( toknz->p); + } + break; + case 4: +#line 459 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->ret != NULL) @@ -2914,8 +3127,8 @@ _eof_trans: toknz->tmp.accessor->ret = _eo_tokenizer_return_get(toknz, ( toknz->p)); } break; - case 4: -#line 468 "lib/eolian/eo_lexer.rl" + case 5: +#line 466 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (!toknz->tmp.accessor->ret) ABORT(toknz, "No ret!!!"); @@ -2925,21 +3138,21 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->ret->comment); } break; - case 5: -#line 477 "lib/eolian/eo_lexer.rl" + case 6: +#line 475 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); toknz->tmp.accessor->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 6: -#line 491 "lib/eolian/eo_lexer.rl" + case 7: +#line 489 "lib/eolian/eo_lexer.rl" { toknz->tmp.accessor_param = _eo_tokenizer_accessor_param_get(toknz, ( toknz->p)); } break; - case 7: -#line 495 "lib/eolian/eo_lexer.rl" + case 8: +#line 493 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.accessor_param) ABORT(toknz, "No accessor param!!!"); @@ -2949,8 +3162,8 @@ _eof_trans: toknz->tmp.accessor_param = NULL; } break; - case 8: -#line 524 "lib/eolian/eo_lexer.rl" + case 9: +#line 522 "lib/eolian/eo_lexer.rl" { const char *c = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); if (toknz->tmp.param == NULL) @@ -2959,8 +3172,8 @@ _eof_trans: toknz->tmp.param = NULL; } break; - case 9: -#line 532 "lib/eolian/eo_lexer.rl" + case 10: +#line 530 "lib/eolian/eo_lexer.rl" { toknz->tmp.param = _eo_tokenizer_param_get(toknz, ( toknz->p)); if (toknz->tmp.params) @@ -2970,16 +3183,22 @@ _eof_trans: INF(" %s : %s", toknz->tmp.param->name, toknz->tmp.param->type); } break; - case 10: -#line 630 "lib/eolian/eo_lexer.rl" + case 11: +#line 629 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.prop != NULL) ABORT(toknz, "there is a pending property definition %s", toknz->tmp.prop->name); toknz->tmp.prop = _eo_tokenizer_property_get(toknz, ( toknz->p)); } break; - case 11: -#line 670 "lib/eolian/eo_lexer.rl" + case 12: +#line 635 "lib/eolian/eo_lexer.rl" + { + toknz->tmp.fscope = _eo_tokenizer_scope_get(toknz, ( toknz->p)); + } + break; + case 13: +#line 673 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) @@ -2987,8 +3206,8 @@ _eof_trans: toknz->tmp.meth->ret = _eo_tokenizer_return_get(toknz, ( toknz->p)); } break; - case 12: -#line 677 "lib/eolian/eo_lexer.rl" + case 14: +#line 680 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->ret != NULL) ABORT(toknz, "No ret!!!"); @@ -2998,54 +3217,60 @@ _eof_trans: INF(" %s", toknz->tmp.meth->ret->comment); } break; - case 13: -#line 686 "lib/eolian/eo_lexer.rl" + case 15: +#line 689 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->legacy = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 14: -#line 691 "lib/eolian/eo_lexer.rl" + case 16: +#line 694 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); toknz->tmp.meth->obj_const = EINA_TRUE; INF(" obj const"); } break; - case 15: -#line 751 "lib/eolian/eo_lexer.rl" + case 17: +#line 755 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.meth != NULL) ABORT(toknz, "there is a pending method definition %s", toknz->tmp.meth->name); toknz->tmp.meth = _eo_tokenizer_method_get(toknz, ( toknz->p)); } break; - case 16: -#line 783 "lib/eolian/eo_lexer.rl" + case 18: +#line 761 "lib/eolian/eo_lexer.rl" + { + toknz->tmp.fscope = _eo_tokenizer_scope_get(toknz, ( toknz->p)); + } + break; + case 19: +#line 791 "lib/eolian/eo_lexer.rl" { const char *base = _eo_tokenizer_token_get(toknz, ( toknz->p)); toknz->tmp.str_items = eina_list_append(toknz->tmp.str_items, base); } break; - case 17: -#line 788 "lib/eolian/eo_lexer.rl" + case 20: +#line 796 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.kls->inherits = toknz->tmp.str_items; toknz->tmp.str_items = NULL; } break; - case 18: -#line 836 "lib/eolian/eo_lexer.rl" + case 21: +#line 848 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.event = _eo_tokenizer_event_get(toknz, ( toknz->p)); toknz->tmp.kls->events = eina_list_append(toknz->tmp.kls->events, toknz->tmp.event); } break; - case 19: -#line 842 "lib/eolian/eo_lexer.rl" + case 22: +#line 854 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->type != NULL) @@ -3053,8 +3278,8 @@ _eof_trans: toknz->tmp.event->type = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); } break; - case 20: -#line 849 "lib/eolian/eo_lexer.rl" + case 23: +#line 861 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.event) ABORT(toknz, "No event!!!"); if (toknz->tmp.event->comment != NULL) @@ -3063,8 +3288,8 @@ _eof_trans: toknz->tmp.event = NULL; } break; - case 21: -#line 857 "lib/eolian/eo_lexer.rl" + case 24: +#line 869 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->legacy_prefix != NULL) @@ -3072,8 +3297,8 @@ _eof_trans: toknz->tmp.kls->legacy_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 22: -#line 866 "lib/eolian/eo_lexer.rl" + case 25: +#line 878 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->eo_prefix != NULL) @@ -3081,8 +3306,8 @@ _eof_trans: toknz->tmp.kls->eo_prefix = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 23: -#line 875 "lib/eolian/eo_lexer.rl" + case 26: +#line 887 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->data_type != NULL) @@ -3090,16 +3315,16 @@ _eof_trans: toknz->tmp.kls->data_type = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 24: -#line 888 "lib/eolian/eo_lexer.rl" + case 27: +#line 900 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); toknz->tmp.impl = _eo_tokenizer_implement_get(toknz, ( toknz->p)); toknz->tmp.kls->implements = eina_list_append(toknz->tmp.kls->implements, toknz->tmp.impl); } break; - case 25: -#line 894 "lib/eolian/eo_lexer.rl" + case 28: +#line 906 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (toknz->tmp.impl->legacy) @@ -3107,8 +3332,8 @@ _eof_trans: toknz->tmp.impl->legacy = calloc(1, sizeof(Eo_Implement_Legacy_Def)); } break; - case 26: -#line 901 "lib/eolian/eo_lexer.rl" + case 29: +#line 913 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3116,8 +3341,8 @@ _eof_trans: toknz->tmp.impl->legacy->function_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 27: -#line 908 "lib/eolian/eo_lexer.rl" + case 30: +#line 920 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); toknz->tmp.impl_leg_param = calloc(1, sizeof(Eo_Implement_Legacy_Param_Def)); @@ -3127,24 +3352,24 @@ _eof_trans: toknz->tmp.impl_leg_param->eo_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 28: -#line 917 "lib/eolian/eo_lexer.rl" + case 31: +#line 929 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->legacy_name = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 29: -#line 923 "lib/eolian/eo_lexer.rl" + case 32: +#line 935 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl_leg_param) ABORT(toknz, "No implement legacy param!!!"); toknz->tmp.impl_leg_param->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-2); } break; - case 30: -#line 929 "lib/eolian/eo_lexer.rl" + case 33: +#line 941 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3152,8 +3377,8 @@ _eof_trans: toknz->tmp.impl->legacy->ret_type= _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 31: -#line 936 "lib/eolian/eo_lexer.rl" + case 34: +#line 948 "lib/eolian/eo_lexer.rl" { if (!toknz->tmp.impl) ABORT(toknz, "No implement!!!"); if (!toknz->tmp.impl->legacy) @@ -3161,32 +3386,32 @@ _eof_trans: toknz->tmp.impl->legacy->ret_value = _eo_tokenizer_token_get(toknz, ( toknz->p)); } break; - case 32: -#line 1007 "lib/eolian/eo_lexer.rl" + case 35: +#line 1019 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_REGULAR; } break; - case 33: -#line 1010 "lib/eolian/eo_lexer.rl" + case 36: +#line 1022 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_ABSTRACT; } break; - case 34: -#line 1013 "lib/eolian/eo_lexer.rl" + case 37: +#line 1025 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_MIXIN; } break; - case 35: -#line 1016 "lib/eolian/eo_lexer.rl" + case 38: +#line 1028 "lib/eolian/eo_lexer.rl" { toknz->tmp.kls_type = EOLIAN_CLASS_INTERFACE; } break; - case 36: -#line 1020 "lib/eolian/eo_lexer.rl" + case 39: +#line 1032 "lib/eolian/eo_lexer.rl" { if (toknz->tmp.kls != NULL) ABORT(toknz, "there is a pending class definition %s", toknz->tmp.kls->name); @@ -3194,12 +3419,12 @@ _eof_trans: toknz->tmp.kls->type = toknz->tmp.kls_type; } break; - case 39: + case 42: #line 1 "NONE" { toknz->te = ( toknz->p)+1;} break; - case 40: -#line 453 "lib/eolian/eo_lexer.rl" + case 43: +#line 451 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.accessor) ABORT(toknz, "No accessor!!!"); if (toknz->tmp.accessor->comment != NULL) @@ -3208,34 +3433,34 @@ _eof_trans: INF(" %s", toknz->tmp.accessor->comment); }} break; - case 41: -#line 389 "lib/eolian/eo_lexer.rl" + case 44: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); - }} - break; - case 42: -#line 516 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 43: -#line 517 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 44: -#line 482 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); - toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); - toknz->tmp.accessor = NULL; - toknz->current_nesting--; - { toknz->cs = 319; goto _again;} }} break; case 45: -#line 398 "lib/eolian/eo_lexer.rl" +#line 514 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 46: +#line 515 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 47: +#line 480 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); + toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); + toknz->tmp.accessor = NULL; + toknz->current_nesting--; + { toknz->cs = 369; goto _again;} + }} + break; + case 48: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3253,27 +3478,27 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 46: -#line 512 "lib/eolian/eo_lexer.rl" + case 49: +#line 510 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 47: -#line 515 "lib/eolian/eo_lexer.rl" + case 50: +#line 513 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 48: -#line 482 "lib/eolian/eo_lexer.rl" + case 51: +#line 480 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); if (!toknz->tmp.prop) ABORT(toknz, "No prop!!!"); toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor); toknz->tmp.accessor = NULL; toknz->current_nesting--; - { toknz->cs = 319; goto _again;} + { toknz->cs = 369; goto _again;} }} break; - case 49: -#line 398 "lib/eolian/eo_lexer.rl" + case 52: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3291,53 +3516,13 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 50: -#line 515 "lib/eolian/eo_lexer.rl" + case 53: +#line 513 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} - break; - case 51: -#line 398 "lib/eolian/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 52: -#line 389 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} - break; - case 53: -#line 541 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->tmp.param = NULL; - toknz->current_nesting--; - if (toknz->tmp.prop) - { toknz->cs = 319; goto _again;} - else if (toknz->tmp.meth) - { toknz->cs = 332; goto _again;} - else - ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); - }} break; case 54: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ +#line 394 "lib/eolian/eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3355,29 +3540,69 @@ _eof_trans: }} break; case 55: +#line 385 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} + break; + case 56: +#line 539 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" }"); + toknz->tmp.param = NULL; + toknz->current_nesting--; + if (toknz->tmp.prop) + { toknz->cs = 369; goto _again;} + else if (toknz->tmp.meth) + { toknz->cs = 383; goto _again;} + else + ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); + }} + break; + case 57: +#line 394 "lib/eolian/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 58: +#line 555 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 59: #line 557 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 56: -#line 559 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 57: -#line 541 "lib/eolian/eo_lexer.rl" + case 60: +#line 539 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ INF(" }"); toknz->tmp.param = NULL; toknz->current_nesting--; if (toknz->tmp.prop) - { toknz->cs = 319; goto _again;} + { toknz->cs = 369; goto _again;} else if (toknz->tmp.meth) - { toknz->cs = 332; goto _again;} + { toknz->cs = 383; goto _again;} else ABORT(toknz, "leaving tokenize_params but there is no property nor method pending"); }} break; - case 58: -#line 398 "lib/eolian/eo_lexer.rl" + case 61: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3395,12 +3620,12 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 59: -#line 559 "lib/eolian/eo_lexer.rl" + case 62: +#line 557 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 60: -#line 398 "lib/eolian/eo_lexer.rl" + case 63: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3418,101 +3643,66 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 61: -#line 389 "lib/eolian/eo_lexer.rl" + case 64: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 62: -#line 566 "lib/eolian/eo_lexer.rl" + case 65: +#line 564 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" get {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER); toknz->current_nesting++; - { toknz->cs = 303; goto _again;} + { toknz->cs = 353; goto _again;} }} break; - case 63: -#line 573 "lib/eolian/eo_lexer.rl" + case 66: +#line 571 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" set {"); toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER); toknz->current_nesting++; - { toknz->cs = 303; goto _again;} + { toknz->cs = 353; goto _again;} }} break; - case 64: -#line 580 "lib/eolian/eo_lexer.rl" + case 67: +#line 578 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" keys {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->keys); - { toknz->cs = 312; goto _again;} + { toknz->cs = 362; goto _again;} }} break; - case 65: -#line 587 "lib/eolian/eo_lexer.rl" + case 68: +#line 585 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ INF(" values {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.prop->values); - { toknz->cs = 312; goto _again;} + { toknz->cs = 362; goto _again;} }} - break; - case 66: -#line 594 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); - if (eina_list_count(toknz->tmp.prop->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 = 327; goto _again;} - }} - break; - case 67: -#line 398 "lib/eolian/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 68: -#line 611 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 69: -#line 594 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 592 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); if (eina_list_count(toknz->tmp.prop->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->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting--; - { toknz->cs = 327; goto _again;} + { toknz->cs = 377; goto _again;} }} break; case 70: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 394 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3530,7 +3720,44 @@ _eof_trans: }} break; case 71: -#line 398 "lib/eolian/eo_lexer.rl" +#line 610 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 72: +#line 592 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); + if (eina_list_count(toknz->tmp.prop->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->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting--; + { toknz->cs = 377; goto _again;} + }} + break; + case 73: +#line 394 "lib/eolian/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 74: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3548,64 +3775,33 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 72: -#line 389 "lib/eolian/eo_lexer.rl" + case 75: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 73: -#line 623 "lib/eolian/eo_lexer.rl" + case 76: +#line 622 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.prop) ABORT(toknz, "No property!!!"); INF(" %s {", toknz->tmp.prop->name); toknz->current_nesting++; - { toknz->cs = 319; goto _again;} + { toknz->cs = 369; goto _again;} }} - break; - case 74: -#line 636 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_nesting--; - { toknz->cs = 347; goto _again;} - }} - break; - case 75: -#line 398 "lib/eolian/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 76: -#line 645 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 77: -#line 636 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 639 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_nesting--; - { toknz->cs = 347; goto _again;} + { toknz->cs = 399; goto _again;} }} break; case 78: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 394 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3623,7 +3819,38 @@ _eof_trans: }} break; case 79: -#line 398 "lib/eolian/eo_lexer.rl" +#line 648 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 80: +#line 639 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_nesting--; + { toknz->cs = 399; goto _again;} + }} + break; + case 81: +#line 394 "lib/eolian/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 82: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3641,8 +3868,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 80: -#line 654 "lib/eolian/eo_lexer.rl" + case 83: +#line 657 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); if (toknz->tmp.meth->comment != NULL) @@ -3651,59 +3878,60 @@ _eof_trans: INF(" %s", toknz->tmp.meth->comment); }} break; - case 81: -#line 389 "lib/eolian/eo_lexer.rl" + case 84: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 82: -#line 662 "lib/eolian/eo_lexer.rl" + case 85: +#line 665 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" params {"); toknz->current_nesting++; toknz->tmp.params = &(toknz->tmp.meth->params); - { toknz->cs = 312; goto _again;} - }} - break; - case 83: -#line 736 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 84: -#line 737 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;} - break; - case 85: -#line 697 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - Eina_List **l = NULL; - if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); - 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 = 342; goto _again;} + { toknz->cs = 362; goto _again;} }} break; case 86: -#line 398 "lib/eolian/eo_lexer.rl" +#line 740 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 87: +#line 741 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;} + break; + case 88: +#line 700 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + Eina_List **l = NULL; + if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); + 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->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting--; + { toknz->cs = 393; goto _again;} + }} + break; + case 89: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3721,16 +3949,16 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 87: -#line 731 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 88: + case 90: #line 735 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; - case 89: -#line 697 "lib/eolian/eo_lexer.rl" + case 91: +#line 739 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 92: +#line 700 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ Eina_List **l = NULL; if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); @@ -3751,12 +3979,13 @@ _eof_trans: toknz->tmp.meth->type = toknz->current_methods_type; *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting--; - { toknz->cs = 342; goto _again;} + { toknz->cs = 393; goto _again;} }} break; - case 90: -#line 398 "lib/eolian/eo_lexer.rl" + case 93: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3774,12 +4003,12 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 91: -#line 735 "lib/eolian/eo_lexer.rl" + case 94: +#line 739 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}} break; - case 92: -#line 398 "lib/eolian/eo_lexer.rl" + case 95: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3797,66 +4026,34 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 93: -#line 389 "lib/eolian/eo_lexer.rl" + case 96: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); }} break; - case 94: -#line 744 "lib/eolian/eo_lexer.rl" + case 97: +#line 748 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.meth) ABORT(toknz, "No method!!!"); INF(" %s {", toknz->tmp.meth->name); toknz->current_nesting++; - { toknz->cs = 332; goto _again;} + { toknz->cs = 383; goto _again;} }} - break; - case 95: -#line 757 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" }"); - toknz->current_methods_type = METH_TYPE_LAST; - toknz->current_nesting--; - { toknz->cs = 347; goto _again;} - }} - break; - case 96: -#line 398 "lib/eolian/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 97: -#line 767 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 98: -#line 757 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 765 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; toknz->current_nesting--; - { toknz->cs = 347; goto _again;} + { toknz->cs = 399; goto _again;} }} break; case 99: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ +#line 394 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -3874,7 +4071,39 @@ _eof_trans: }} break; case 100: -#line 398 "lib/eolian/eo_lexer.rl" +#line 775 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 101: +#line 765 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + INF(" }"); + toknz->current_methods_type = METH_TYPE_LAST; + toknz->current_nesting--; + { toknz->cs = 399; goto _again;} + }} + break; + case 102: +#line 394 "lib/eolian/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 103: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3892,8 +4121,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 101: -#line 776 "lib/eolian/eo_lexer.rl" + case 104: +#line 784 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); if (toknz->tmp.kls->comment != NULL) @@ -3901,71 +4130,75 @@ _eof_trans: toknz->tmp.kls->comment = _eo_tokenizer_token_get(toknz, ( toknz->p)-1); }} break; - case 102: -#line 389 "lib/eolian/eo_lexer.rl" + case 105: +#line 385 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); - }} - break; - case 103: -#line 794 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - }} - break; - case 104: -#line 797 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - }} - break; - case 105: -#line 800 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - INF(" constructors {"); - toknz->current_methods_type = METH_CONSTRUCTOR; - toknz->current_nesting++; - { toknz->cs = 342; goto _again;} }} break; case 106: -#line 807 "lib/eolian/eo_lexer.rl" +#line 802 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - INF(" destructors {"); - toknz->current_methods_type = METH_DESTRUCTOR; - toknz->current_nesting++; - { toknz->cs = 342; goto _again;} }} break; case 107: -#line 814 "lib/eolian/eo_lexer.rl" +#line 805 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - INF(" properties {"); - toknz->current_nesting++; - { toknz->cs = 327; goto _again;} }} break; case 108: -#line 820 "lib/eolian/eo_lexer.rl" +#line 808 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - INF(" begin methods"); - toknz->current_methods_type = METH_REGULAR; + INF(" constructors {"); + toknz->current_methods_type = METH_CONSTRUCTOR; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting++; - { toknz->cs = 342; goto _again;} + { toknz->cs = 393; goto _again;} }} break; case 109: -#line 827 "lib/eolian/eo_lexer.rl" +#line 816 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); - INF("end class: %s", toknz->tmp.kls->name); - toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); - toknz->tmp.kls = NULL; - toknz->current_nesting--; - { toknz->cs = 296; goto _again;} + INF(" destructors {"); + toknz->current_methods_type = METH_DESTRUCTOR; + toknz->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting++; + { toknz->cs = 393; goto _again;} }} break; case 110: -#line 398 "lib/eolian/eo_lexer.rl" +#line 824 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" properties {"); + toknz->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting++; + { toknz->cs = 377; goto _again;} + }} + break; + case 111: +#line 831 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + INF(" begin methods"); + toknz->current_methods_type = METH_REGULAR; + toknz->tmp.fscope = FUNC_PUBLIC; + toknz->current_nesting++; + { toknz->cs = 393; goto _again;} + }} + break; + case 112: +#line 839 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + INF("end class: %s", toknz->tmp.kls->name); + toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); + toknz->tmp.kls = NULL; + toknz->current_nesting--; + { toknz->cs = 346; goto _again;} + }} + break; + case 113: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p)+1;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -3982,46 +4215,46 @@ _eof_trans: toknz->cs = eo_tokenizer_error; {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} - break; - case 111: -#line 982 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 112: -#line 985 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} - break; - case 113: -#line 986 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} break; case 114: -#line 987 "lib/eolian/eo_lexer.rl" +#line 994 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;} break; case 115: -#line 794 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;{ - }} +#line 997 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} break; case 116: -#line 797 "lib/eolian/eo_lexer.rl" +#line 998 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 117: +#line 999 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 118: +#line 802 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ }} break; - case 117: -#line 827 "lib/eolian/eo_lexer.rl" + case 119: +#line 805 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;{ + }} + break; + case 120: +#line 839 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); INF("end class: %s", toknz->tmp.kls->name); toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls); toknz->tmp.kls = NULL; toknz->current_nesting--; - { toknz->cs = 296; goto _again;} + { toknz->cs = 346; goto _again;} }} break; - case 118: -#line 398 "lib/eolian/eo_lexer.rl" + case 121: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4037,46 +4270,11 @@ _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 119: -#line 398 "lib/eolian/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 120: -#line 389 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - DBG("comment[%d] line%03d:%03d", toknz->cs, - toknz->saved.line, toknz->current_line); - }} - break; - case 121: -#line 1000 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ - if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); - INF("begin class: %s", toknz->tmp.kls->name); - toknz->current_nesting++; - { toknz->cs = 347; goto _again;} }} break; case 122: -#line 398 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p)+1;{ +#line 394 "lib/eolian/eo_lexer.rl" + {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; char buf[BUFSIZE]; @@ -4094,11 +4292,46 @@ _eof_trans: }} break; case 123: -#line 1035 "lib/eolian/eo_lexer.rl" - { toknz->te = ( toknz->p);( toknz->p)--;} +#line 385 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + DBG("comment[%d] line%03d:%03d", toknz->cs, + toknz->saved.line, toknz->current_line); + }} break; case 124: -#line 398 "lib/eolian/eo_lexer.rl" +#line 1012 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p)+1;{ + if (!toknz->tmp.kls) ABORT(toknz, "No class!!!"); + INF("begin class: %s", toknz->tmp.kls->name); + toknz->current_nesting++; + { toknz->cs = 399; goto _again;} + }} + break; + case 125: +#line 394 "lib/eolian/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 1047 "lib/eolian/eo_lexer.rl" + { toknz->te = ( toknz->p);( toknz->p)--;} + break; + case 127: +#line 394 "lib/eolian/eo_lexer.rl" { toknz->te = ( toknz->p);( toknz->p)--;{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4116,8 +4349,8 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; - case 125: -#line 398 "lib/eolian/eo_lexer.rl" + case 128: +#line 394 "lib/eolian/eo_lexer.rl" {{( toknz->p) = (( toknz->te))-1;}{ DBG("error[%d]", toknz->cs); char *s, *d; @@ -4135,7 +4368,7 @@ _eof_trans: {( toknz->p)++; goto _out; } /* necessary to stop scanners */ }} break; -#line 4139 "lib/eolian/eo_lexer.c" +#line 4372 "lib/eolian/eo_lexer.c" } } @@ -4144,11 +4377,11 @@ _again: _nacts = (unsigned int) *_acts++; while ( _nacts-- > 0 ) { switch ( *_acts++ ) { - case 37: + case 40: #line 1 "NONE" { toknz->ts = 0;} break; -#line 4152 "lib/eolian/eo_lexer.c" +#line 4385 "lib/eolian/eo_lexer.c" } } @@ -4166,12 +4399,12 @@ _again: _out: {} } -#line 1144 "lib/eolian/eo_lexer.rl" +#line 1156 "lib/eolian/eo_lexer.rl" if ( toknz->cs == -#line 4173 "lib/eolian/eo_lexer.c" +#line 4406 "lib/eolian/eo_lexer.c" -1 -#line 1145 "lib/eolian/eo_lexer.rl" +#line 1157 "lib/eolian/eo_lexer.rl" ) { ERR("%s: wrong termination", source); diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl index b36b460c55..8503432c4d 100644 --- a/src/lib/eolian/eo_lexer.rl +++ b/src/lib/eolian/eo_lexer.rl @@ -157,21 +157,12 @@ _eo_tokenizer_class_get(Eo_Tokenizer *toknz, char *p) static Eo_Property_Def* _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) { - Eo_Property_Def *prop = NULL; - if (!strncmp(toknz->saved.tok, "protected ", 10)) - { - toknz->saved.tok += 10; - toknz->tmp.fscope = FUNC_PROTECTED; - } - else - { - prop = calloc(1, sizeof(Eo_Property_Def)); - if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); + Eo_Property_Def *prop = calloc(1, sizeof(Eo_Property_Def)); + if (prop == NULL) ABORT(toknz, "calloc Eo_Property_Def failure"); - prop->name = _eo_tokenizer_token_get(toknz, p); - prop->scope = toknz->tmp.fscope; - toknz->tmp.fscope = FUNC_PUBLIC; - } + prop->name = _eo_tokenizer_token_get(toknz, p); + prop->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; return prop; } @@ -179,25 +170,25 @@ _eo_tokenizer_property_get(Eo_Tokenizer *toknz, char *p) static Eo_Method_Def* _eo_tokenizer_method_get(Eo_Tokenizer *toknz, char *p) { - Eo_Method_Def *meth = NULL; - if (!strncmp(toknz->saved.tok, "protected ", 10)) - { - toknz->saved.tok += 10; - toknz->tmp.fscope = FUNC_PROTECTED; - } - else - { - meth = calloc(1, sizeof(Eo_Method_Def)); - if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); + Eo_Method_Def *meth = calloc(1, sizeof(Eo_Method_Def)); + if (meth == NULL) ABORT(toknz, "calloc Eo_Method_Def failure"); - meth->name = _eo_tokenizer_token_get(toknz, p); - meth->scope = toknz->tmp.fscope; - toknz->tmp.fscope = FUNC_PUBLIC; - } + meth->name = _eo_tokenizer_token_get(toknz, p); + meth->scope = toknz->tmp.fscope; + toknz->tmp.fscope = FUNC_PUBLIC; return meth; } +static int +_eo_tokenizer_scope_get(Eo_Tokenizer *toknz, EINA_UNUSED char *p) +{ + if (!strncmp(toknz->saved.tok, "protected ", 10)) + return FUNC_PROTECTED; + + return FUNC_PUBLIC; +} + static Eo_Param_Def* _eo_tokenizer_param_get(Eo_Tokenizer *toknz, char *p) { @@ -386,6 +377,11 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) DBG("save token[%d] %p %c", toknz->cs, fpc, *fpc); } + action move_ts { + DBG("move ts %d chars forward", (int)(fpc - toknz->ts)); + toknz->ts = fpc; + } + action show_comment { DBG("comment[%d] line%03d:%03d", toknz->cs, toknz->saved.line, toknz->current_line); @@ -439,7 +435,9 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) # chars allowed on the return line. return_char = (alnum_u | '*' | ws | '@' | '(' | ')' | '.' | '-' | '<' | '>'); - func_name = (alnum >save_fpc (alnum | '_')* (ws (alnum | '_')+)?); + scope = ('public' | 'protected'); + scope_def = scope >save_fpc ws+ %move_ts; + func_name = ((alnum (alnum | '_')?)+ - scope) >save_fpc; }%% %%{ @@ -598,6 +596,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) INF(" }"); toknz->tmp.kls->properties = eina_list_append(toknz->tmp.kls->properties, toknz->tmp.prop); toknz->tmp.prop = NULL; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting--; fgoto tokenize_properties; } @@ -633,13 +632,17 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) toknz->tmp.prop = _eo_tokenizer_property_get(toknz, fpc); } + action end_property_scope { + toknz->tmp.fscope = _eo_tokenizer_scope_get(toknz, fpc); + } + action end_properties { INF(" }"); toknz->current_nesting--; fgoto tokenize_class; } - begin_property = func_name %end_property_name ignore* begin_def; + begin_property = (scope_def %end_property_scope)? func_name %end_property_name ignore* begin_def; tokenize_properties := |* ignore+; #=> show_ignore; @@ -714,6 +717,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) toknz->tmp.meth->type = toknz->current_methods_type; *l = eina_list_append(*l, toknz->tmp.meth); toknz->tmp.meth = NULL; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting--; fgoto tokenize_methods; } @@ -754,6 +758,10 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) toknz->tmp.meth = _eo_tokenizer_method_get(toknz, fpc); } + action end_method_scope { + toknz->tmp.fscope = _eo_tokenizer_scope_get(toknz, fpc); + } + action end_methods { INF(" }"); toknz->current_methods_type = METH_TYPE_LAST; @@ -761,7 +769,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) fgoto tokenize_class; } - begin_method = func_name %end_method_name ignore* begin_def; + begin_method = (scope_def %end_method_scope)? func_name %end_method_name ignore* begin_def; tokenize_methods := |* ignore+; #=> show_ignore; @@ -800,6 +808,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) action begin_constructors { INF(" constructors {"); toknz->current_methods_type = METH_CONSTRUCTOR; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting++; fgoto tokenize_methods; } @@ -807,12 +816,14 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) action begin_destructors { INF(" destructors {"); toknz->current_methods_type = METH_DESTRUCTOR; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting++; fgoto tokenize_methods; } action begin_properties { INF(" properties {"); + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting++; fgoto tokenize_properties; } @@ -820,6 +831,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p) action begin_methods { INF(" begin methods"); toknz->current_methods_type = METH_REGULAR; + toknz->tmp.fscope = FUNC_PUBLIC; toknz->current_nesting++; fgoto tokenize_methods; }