Eolian/Lexer: the ';' is now optional after '}'.
authorDaniel Zaoui <daniel.zaoui@samsung.com>
Sun, 16 Feb 2014 09:15:32 +0000 (11:15 +0200)
committerDaniel Zaoui <daniel.zaoui@samsung.com>
Mon, 3 Mar 2014 12:09:54 +0000 (14:09 +0200)
src/lib/eolian/eo_lexer.c
src/lib/eolian/eo_lexer.rl

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