Eolian/Lexer: fix when function name is composed of only one letter.

This commit is contained in:
Daniel Zaoui 2014-04-17 17:07:23 +03:00
parent 7ec6a9afee
commit 438452d67e
2 changed files with 88 additions and 84 deletions

View File

@ -431,12 +431,12 @@ 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, 457, 461, 472, 483, 486, 488, 491,
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, 630, 634, 645,
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,
@ -460,11 +460,11 @@ static const short _eo_tokenizer_key_offsets[] = {
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, 1328, 1329, 1338, 1341, 1343,
1344, 1345, 1346, 1347, 1351, 1351, 1352, 1363,
1366, 1368, 1375, 1376, 1388, 1391, 1393, 1394,
1396, 1399, 1401, 1404, 1405, 1406, 1407, 1408,
1411, 1412, 1413
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
};
static const char _eo_tokenizer_trans_keys[] = {
@ -523,11 +523,11 @@ static const char _eo_tokenizer_trans_keys[] = {
0, 32, 121, 115, 10, 123, 0, 32,
116, 10, 123, 0, 32, 108, 117, 101,
115, 10, 123, 0, 32, 10, 42, 10,
42, 47, 10, 9, 10, 13, 32, 95,
123, 0, 31, 48, 57, 65, 90, 97,
122, 10, 123, 0, 32, 10, 95, 123,
0, 32, 48, 57, 65, 90, 97, 122,
10, 95, 123, 0, 32, 48, 57, 65,
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,
@ -545,11 +545,11 @@ static const char _eo_tokenizer_trans_keys[] = {
47, 42, 64, 10, 95, 0, 32, 48,
57, 64, 90, 97, 122, 10, 42, 10,
42, 47, 10, 42, 10, 42, 47, 10,
9, 10, 13, 32, 95, 123, 0, 31,
48, 57, 65, 90, 97, 122, 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,
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,
@ -633,18 +633,20 @@ static const char _eo_tokenizer_trans_keys[] = {
0, 32, 42, 47, 101, 101, 101, 97,
59, 10, 47, 125, 0, 32, 48, 57,
65, 90, 97, 122, 10, 0, 32, 42,
47, 95, 48, 57, 65, 90, 97, 122,
59, 10, 47, 99, 108, 112, 114, 125,
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,
57, 65, 90, 97, 122, 59, 10, 47,
99, 100, 101, 105, 108, 109, 112, 125,
0, 32, 10, 0, 32, 42, 47, 111,
101, 97, 101, 9, 13, 32, 47, 59,
10, 47, 125, 0, 32, 48, 57, 65,
90, 97, 122, 10, 0, 32, 42, 47,
95, 48, 57, 65, 90, 97, 122, 59,
10, 47, 99, 100, 101, 105, 108, 109,
112, 125, 0, 32, 10, 0, 32, 42,
47, 111, 97, 101, 10, 0, 32, 111,
118, 10, 0, 32, 59, 109, 59, 101,
10, 0, 32, 101, 114, 59, 0
97, 101, 10, 0, 32, 111, 118, 10,
0, 32, 59, 109, 59, 101, 10, 0,
32, 101, 114, 59, 0
};
static const char _eo_tokenizer_single_lengths[] = {
@ -660,12 +662,12 @@ 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,
6, 2, 3, 3, 3, 2, 3, 3,
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, 6, 2, 3, 3,
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,
@ -689,9 +691,9 @@ static const char _eo_tokenizer_single_lengths[] = {
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, 1, 1, 7, 1, 2, 1,
1, 2, 6, 1, 7, 1, 2, 1,
1, 1, 1, 4, 0, 1, 3, 1,
2, 1, 1, 10, 1, 2, 1, 2,
2, 6, 1, 10, 1, 2, 1, 2,
1, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1
};
@ -709,12 +711,12 @@ 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,
4, 1, 4, 4, 0, 0, 0, 4,
1, 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, 4, 1, 4, 4,
0, 0, 0, 0, 1, 4, 4, 4,
0, 0, 0, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 3, 3, 0,
@ -738,9 +740,9 @@ static const char _eo_tokenizer_range_lengths[] = {
1, 0, 3, 3, 3, 0, 0, 0,
3, 1, 0, 3, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 4,
1, 0, 3, 0, 1, 1, 0, 0,
1, 0, 4, 0, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 4, 1,
0, 3, 0, 1, 1, 0, 0, 0,
0, 4, 0, 1, 1, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 1,
0, 0, 0
};
@ -758,12 +760,12 @@ 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, 455, 459, 467, 475, 479, 482, 486,
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, 633, 637, 645,
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,
@ -787,11 +789,11 @@ static const short _eo_tokenizer_index_offsets[] = {
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, 1358, 1360, 1369, 1372, 1375,
1377, 1379, 1381, 1383, 1388, 1389, 1391, 1399,
1402, 1405, 1410, 1412, 1424, 1427, 1430, 1432,
1435, 1438, 1441, 1444, 1446, 1448, 1450, 1452,
1455, 1457, 1459
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
};
static const short _eo_tokenizer_indicies[] = {
@ -850,10 +852,10 @@ static const short _eo_tokenizer_indicies[] = {
127, 141, 127, 142, 143, 141, 127, 144,
127, 145, 127, 146, 127, 147, 127, 148,
149, 147, 127, 152, 153, 151, 152, 153,
154, 151, 156, 155, 158, 159, 158, 158,
160, 161, 157, 160, 160, 160, 150, 163,
164, 162, 150, 163, 165, 164, 162, 165,
165, 165, 150, 159, 165, 161, 157, 165,
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,
@ -873,10 +875,10 @@ static const short _eo_tokenizer_indicies[] = {
212, 210, 212, 212, 212, 206, 214, 215,
213, 214, 215, 216, 213, 219, 220, 218,
219, 220, 221, 218, 223, 222, 225, 226,
225, 225, 227, 228, 224, 227, 227, 227,
217, 230, 231, 229, 217, 230, 232, 231,
229, 232, 232, 232, 217, 226, 232, 228,
224, 232, 232, 232, 217, 235, 236, 237,
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,
@ -964,20 +966,22 @@ static const short _eo_tokenizer_indicies[] = {
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, 160, 160, 160, 160, 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, 227, 227, 227,
227, 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
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
};
static const short _eo_tokenizer_trans_targs[] = {
@ -1000,8 +1004,8 @@ static const short _eo_tokenizer_trans_targs[] = {
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, 97, 98, 97,
96, 327, 97, 97, 327, 99, 332, 101,
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,
@ -1009,7 +1013,7 @@ static const short _eo_tokenizer_trans_targs[] = {
126, 127, 128, 129, 130, 339, 332, 131,
132, 133, 134, 134, 135, 135, 135, 136,
340, 342, 137, 137, 138, 342, 139, 342,
141, 142, 141, 140, 342, 141, 141, 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,
@ -1080,8 +1084,8 @@ static const short _eo_tokenizer_trans_actions[] = {
0, 1, 0, 97, 0, 229, 0, 1,
99, 0, 0, 1, 103, 0, 1, 101,
0, 0, 0, 0, 1, 105, 133, 0,
1, 0, 119, 0, 232, 7, 7, 262,
0, 265, 0, 1, 121, 0, 155, 0,
1, 0, 119, 0, 232, 0, 1, 121,
0, 7, 262, 265, 7, 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,
@ -1089,7 +1093,7 @@ 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,
9, 9, 277, 0, 280, 0, 1, 159,
0, 1, 159, 0, 9, 277, 280, 9,
0, 209, 0, 1, 0, 0, 175, 1,
3, 0, 1, 0, 173, 0, 241, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@ -1325,7 +1329,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source)
}
#line 1329 "lib/eolian/eo_lexer.c"
#line 1333 "lib/eolian/eo_lexer.c"
{
toknz->cs = eo_tokenizer_start;
toknz->ts = 0;
@ -1360,7 +1364,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source)
}
#line 1364 "lib/eolian/eo_lexer.c"
#line 1368 "lib/eolian/eo_lexer.c"
{
int _klen;
unsigned int _trans;
@ -1379,7 +1383,7 @@ _resume:
#line 1 "NONE"
{ toknz->ts = ( toknz->p);}
break;
#line 1383 "lib/eolian/eo_lexer.c"
#line 1387 "lib/eolian/eo_lexer.c"
}
}
@ -2696,7 +2700,7 @@ _eof_trans:
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
}}
break;
#line 2700 "lib/eolian/eo_lexer.c"
#line 2704 "lib/eolian/eo_lexer.c"
}
}
@ -2709,7 +2713,7 @@ _again:
#line 1 "NONE"
{ toknz->ts = 0;}
break;
#line 2713 "lib/eolian/eo_lexer.c"
#line 2717 "lib/eolian/eo_lexer.c"
}
}
@ -2730,7 +2734,7 @@ _again:
#line 1090 "lib/eolian/eo_lexer.rl"
if ( toknz->cs ==
#line 2734 "lib/eolian/eo_lexer.c"
#line 2738 "lib/eolian/eo_lexer.c"
-1
#line 1091 "lib/eolian/eo_lexer.rl"
)
@ -2778,7 +2782,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns
Eina_Bool ret = EINA_TRUE;
#line 2782 "lib/eolian/eo_lexer.c"
#line 2786 "lib/eolian/eo_lexer.c"
{
toknz->cs = eo_tokenizer_start;
toknz->ts = 0;
@ -2795,7 +2799,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns
toknz->eof = toknz->pe;
#line 2799 "lib/eolian/eo_lexer.c"
#line 2803 "lib/eolian/eo_lexer.c"
{
int _klen;
unsigned int _trans;
@ -2814,7 +2818,7 @@ _resume:
#line 1 "NONE"
{ toknz->ts = ( toknz->p);}
break;
#line 2818 "lib/eolian/eo_lexer.c"
#line 2822 "lib/eolian/eo_lexer.c"
}
}
@ -4131,7 +4135,7 @@ _eof_trans:
{( toknz->p)++; goto _out; } /* necessary to stop scanners */
}}
break;
#line 4135 "lib/eolian/eo_lexer.c"
#line 4139 "lib/eolian/eo_lexer.c"
}
}
@ -4144,7 +4148,7 @@ _again:
#line 1 "NONE"
{ toknz->ts = 0;}
break;
#line 4148 "lib/eolian/eo_lexer.c"
#line 4152 "lib/eolian/eo_lexer.c"
}
}
@ -4165,7 +4169,7 @@ _again:
#line 1144 "lib/eolian/eo_lexer.rl"
if ( toknz->cs ==
#line 4169 "lib/eolian/eo_lexer.c"
#line 4173 "lib/eolian/eo_lexer.c"
-1
#line 1145 "lib/eolian/eo_lexer.rl"
)

View File

@ -439,7 +439,7 @@ _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 | '_')+)?);
func_name = (alnum >save_fpc (alnum | '_')* (ws (alnum | '_')+)?);
}%%
%%{