From ab92fc1f351f4c42b39aba57cd55b660d0a3bfdc Mon Sep 17 00:00:00 2001 From: Steve Murphy Date: Tue, 27 Nov 2007 18:50:44 +0000 Subject: made AEL 8-bit transparent; mainly the lexer was tossing chars with the hi-order bit set. Not nice. Also, allow @ in extension names, and a backslash, also. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89682 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/ael/ael.flex | 6 +- res/ael/ael.tab.c | 961 +++++++++++++++++++++++++++--------------------------- res/ael/ael.y | 9 +- res/ael/ael_lex.c | 668 ++++++++++++++++++------------------- 4 files changed, 835 insertions(+), 809 deletions(-) (limited to 'res/ael') diff --git a/res/ael/ael.flex b/res/ael/ael.flex index b67309a46..5e32e8d39 100644 --- a/res/ael/ael.flex +++ b/res/ael/ael.flex @@ -33,7 +33,7 @@ * add option noyywrap to remove it. */ %option prefix="ael_yy" -%option noyywrap +%option noyywrap 8bit /* batch gives a bit more performance if we are using it in * a non-interactive mode. We probably don't care much. @@ -178,6 +178,8 @@ NOARGG ([^(),\{\}\[\]]|\\[,()\[\]\{\}])* NOSEMIC ([^;()\{\}\[\]]|\\[;()\[\]\{\}])* +HIBIT [\x80-\xff] + %% \{ { STORE_POS; return LC;} @@ -233,7 +235,7 @@ includes { STORE_POS; return KW_INCLUDES;} [ ]+ { my_col += yyleng; } [\t]+ { my_col += (yyleng*8)-(my_col%8); } -[-a-zA-Z0-9'"_/.\<\>\*\+!$#\[\]][-a-zA-Z0-9'"_/.!\*\+\<\>\{\}$#\[\]]* { +([-a-zA-Z0-9'"_/.\<\>\*\\\+!$#\[\]]|{HIBIT})([-a-zA-Z0-9'"_/.!\*\\\+\<\>\{\}$#\[\]]|{HIBIT})* { STORE_POS; yylval->str = strdup(yytext); prev_word = yylval->str; diff --git a/res/ael/ael.tab.c b/res/ael/ael.tab.c index ccd8fa4e8..aa1ec0fad 100644 --- a/res/ael/ael.tab.c +++ b/res/ael/ael.tab.c @@ -494,16 +494,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 17 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 321 +#define YYLAST 327 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 44 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 56 /* YYNRULES -- Number of rules. */ -#define YYNRULES 141 +#define YYNRULES 142 /* YYNRULES -- Number of states. */ -#define YYNSTATES 284 +#define YYNSTATES 288 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -556,17 +556,17 @@ static const yytype_uint16 yyprhs[] = 21, 23, 25, 32, 34, 35, 37, 40, 43, 52, 57, 58, 61, 64, 65, 71, 72, 79, 80, 82, 86, 89, 90, 93, 96, 98, 100, 102, 104, 106, - 108, 110, 113, 115, 120, 124, 129, 137, 146, 147, - 150, 153, 159, 161, 169, 170, 175, 178, 181, 186, - 188, 191, 193, 196, 200, 204, 206, 209, 213, 215, - 218, 222, 228, 232, 234, 236, 240, 244, 247, 248, - 249, 250, 263, 267, 269, 273, 276, 279, 280, 286, - 289, 292, 295, 299, 301, 304, 305, 307, 311, 315, - 321, 327, 333, 339, 340, 343, 346, 351, 352, 358, - 362, 363, 367, 371, 374, 376, 377, 379, 380, 384, - 385, 388, 393, 397, 402, 403, 406, 408, 410, 416, - 421, 426, 427, 431, 437, 440, 442, 446, 449, 453, - 456, 461 + 108, 110, 113, 115, 120, 124, 130, 135, 143, 152, + 153, 156, 159, 165, 167, 175, 176, 181, 184, 187, + 192, 194, 197, 199, 202, 206, 210, 212, 215, 219, + 221, 224, 228, 234, 238, 240, 242, 246, 250, 253, + 254, 255, 256, 269, 273, 275, 279, 282, 285, 286, + 292, 295, 298, 301, 305, 307, 310, 311, 313, 317, + 321, 327, 333, 339, 345, 346, 349, 352, 357, 358, + 364, 368, 369, 373, 377, 380, 382, 383, 385, 386, + 390, 391, 394, 399, 403, 408, 409, 412, 414, 416, + 422, 427, 432, 433, 437, 443, 446, 448, 452, 455, + 459, 462, 467 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -584,41 +584,42 @@ static const yytype_int8 yyrhs[] = 60, 59, -1, 1, 59, -1, 62, -1, 99, -1, 94, -1, 95, -1, 61, -1, 54, -1, 56, -1, 43, 1, -1, 8, -1, 17, 25, 43, 8, -1, - 43, 25, 74, -1, 31, 43, 25, 74, -1, 32, - 6, 70, 7, 43, 25, 74, -1, 31, 32, 6, - 70, 7, 43, 25, 74, -1, -1, 74, 63, -1, - 1, 63, -1, 71, 11, 71, 11, 71, -1, 43, - -1, 64, 13, 71, 13, 71, 13, 71, -1, -1, - 6, 67, 69, 7, -1, 19, 66, -1, 22, 66, - -1, 20, 6, 65, 7, -1, 43, -1, 43, 43, - -1, 43, -1, 70, 43, -1, 70, 11, 43, -1, - 70, 12, 43, -1, 43, -1, 43, 43, -1, 43, - 43, 43, -1, 43, -1, 43, 43, -1, 72, 11, - 43, -1, 18, 66, 4, 90, 5, -1, 4, 63, - 5, -1, 54, -1, 56, -1, 26, 80, 8, -1, - 27, 82, 8, -1, 43, 11, -1, -1, -1, -1, - 33, 6, 75, 43, 8, 76, 43, 8, 77, 43, - 7, 74, -1, 34, 66, 74, -1, 73, -1, 12, - 83, 8, -1, 87, 8, -1, 43, 8, -1, -1, - 87, 9, 78, 43, 8, -1, 29, 8, -1, 28, - 8, -1, 30, 8, -1, 68, 74, 79, -1, 8, - -1, 21, 74, -1, -1, 72, -1, 72, 13, 72, - -1, 72, 10, 72, -1, 72, 13, 72, 13, 72, - -1, 72, 10, 72, 10, 72, -1, 37, 13, 72, - 13, 72, -1, 37, 10, 72, 10, 72, -1, -1, - 10, 43, -1, 72, 81, -1, 72, 81, 14, 48, - -1, -1, 43, 6, 84, 89, 7, -1, 43, 6, - 7, -1, -1, 43, 6, 86, -1, 85, 89, 7, - -1, 85, 7, -1, 43, -1, -1, 69, -1, -1, - 89, 10, 88, -1, -1, 91, 90, -1, 35, 43, - 11, 63, -1, 37, 11, 63, -1, 36, 43, 11, - 63, -1, -1, 93, 92, -1, 74, -1, 99, -1, - 38, 43, 4, 63, 5, -1, 39, 4, 96, 5, - -1, 40, 4, 96, 5, -1, -1, 43, 8, 96, - -1, 43, 14, 43, 8, 96, -1, 1, 96, -1, - 48, -1, 48, 13, 65, -1, 97, 8, -1, 98, - 97, 8, -1, 98, 1, -1, 41, 4, 98, 5, - -1, 41, 4, 5, -1 + 43, 25, 74, -1, 43, 14, 43, 25, 74, -1, + 31, 43, 25, 74, -1, 32, 6, 70, 7, 43, + 25, 74, -1, 31, 32, 6, 70, 7, 43, 25, + 74, -1, -1, 74, 63, -1, 1, 63, -1, 71, + 11, 71, 11, 71, -1, 43, -1, 64, 13, 71, + 13, 71, 13, 71, -1, -1, 6, 67, 69, 7, + -1, 19, 66, -1, 22, 66, -1, 20, 6, 65, + 7, -1, 43, -1, 43, 43, -1, 43, -1, 70, + 43, -1, 70, 11, 43, -1, 70, 12, 43, -1, + 43, -1, 43, 43, -1, 43, 43, 43, -1, 43, + -1, 43, 43, -1, 72, 11, 43, -1, 18, 66, + 4, 90, 5, -1, 4, 63, 5, -1, 54, -1, + 56, -1, 26, 80, 8, -1, 27, 82, 8, -1, + 43, 11, -1, -1, -1, -1, 33, 6, 75, 43, + 8, 76, 43, 8, 77, 43, 7, 74, -1, 34, + 66, 74, -1, 73, -1, 12, 83, 8, -1, 87, + 8, -1, 43, 8, -1, -1, 87, 9, 78, 43, + 8, -1, 29, 8, -1, 28, 8, -1, 30, 8, + -1, 68, 74, 79, -1, 8, -1, 21, 74, -1, + -1, 72, -1, 72, 13, 72, -1, 72, 10, 72, + -1, 72, 13, 72, 13, 72, -1, 72, 10, 72, + 10, 72, -1, 37, 13, 72, 13, 72, -1, 37, + 10, 72, 10, 72, -1, -1, 10, 43, -1, 72, + 81, -1, 72, 81, 14, 48, -1, -1, 43, 6, + 84, 89, 7, -1, 43, 6, 7, -1, -1, 43, + 6, 86, -1, 85, 89, 7, -1, 85, 7, -1, + 43, -1, -1, 69, -1, -1, 89, 10, 88, -1, + -1, 91, 90, -1, 35, 43, 11, 63, -1, 37, + 11, 63, -1, 36, 43, 11, 63, -1, -1, 93, + 92, -1, 74, -1, 99, -1, 38, 43, 4, 63, + 5, -1, 39, 4, 96, 5, -1, 40, 4, 96, + 5, -1, -1, 43, 8, 96, -1, 43, 14, 43, + 8, 96, -1, 1, 96, -1, 48, -1, 48, 13, + 65, -1, 97, 8, -1, 98, 97, 8, -1, 98, + 1, -1, 41, 4, 98, 5, -1, 41, 4, 5, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -628,17 +629,17 @@ static const yytype_uint16 yyrline[] = 200, 201, 204, 213, 214, 215, 216, 217, 220, 226, 232, 233, 234, 237, 237, 243, 243, 250, 251, 252, 253, 256, 257, 258, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 272, 277, 281, 286, 291, 301, 302, - 303, 309, 314, 318, 326, 326, 330, 333, 336, 347, - 348, 355, 356, 360, 364, 370, 371, 376, 384, 385, - 389, 395, 404, 407, 408, 409, 412, 415, 418, 419, - 420, 418, 426, 430, 431, 432, 433, 436, 436, 469, - 470, 471, 472, 476, 479, 480, 483, 484, 487, 490, - 494, 498, 502, 508, 509, 513, 516, 522, 522, 527, - 535, 535, 546, 553, 556, 557, 560, 561, 564, 567, - 568, 571, 575, 579, 585, 586, 589, 590, 591, 597, - 602, 607, 608, 609, 611, 614, 615, 622, 623, 624, - 627, 630 + 267, 268, 269, 272, 277, 281, 289, 294, 299, 308, + 309, 310, 316, 321, 325, 333, 333, 337, 340, 343, + 354, 355, 362, 363, 367, 371, 377, 378, 383, 391, + 392, 396, 402, 411, 414, 415, 416, 419, 422, 425, + 426, 427, 425, 433, 437, 438, 439, 440, 443, 443, + 476, 477, 478, 479, 483, 486, 487, 490, 491, 494, + 497, 501, 505, 509, 515, 516, 520, 523, 529, 529, + 534, 542, 542, 553, 560, 563, 564, 567, 568, 571, + 574, 575, 578, 582, 586, 592, 593, 596, 597, 598, + 604, 609, 614, 615, 616, 618, 621, 622, 629, 630, + 631, 634, 637 }; #endif @@ -688,17 +689,17 @@ static const yytype_uint8 yyr1[] = 48, 48, 49, 50, 50, 50, 50, 50, 51, 52, 53, 53, 53, 55, 54, 57, 56, 58, 58, 58, 58, 59, 59, 59, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 61, 62, 62, 62, 62, 63, 63, - 63, 64, 64, 65, 67, 66, 68, 68, 68, 69, - 69, 70, 70, 70, 70, 71, 71, 71, 72, 72, - 72, 73, 74, 74, 74, 74, 74, 74, 75, 76, - 77, 74, 74, 74, 74, 74, 74, 78, 74, 74, - 74, 74, 74, 74, 79, 79, 80, 80, 80, 80, - 80, 80, 80, 81, 81, 82, 82, 84, 83, 83, - 86, 85, 87, 87, 88, 88, 89, 89, 89, 90, - 90, 91, 91, 91, 92, 92, 93, 93, 93, 94, - 95, 96, 96, 96, 96, 97, 97, 98, 98, 98, - 99, 99 + 60, 60, 60, 61, 62, 62, 62, 62, 62, 63, + 63, 63, 64, 64, 65, 67, 66, 68, 68, 68, + 69, 69, 70, 70, 70, 70, 71, 71, 71, 72, + 72, 72, 73, 74, 74, 74, 74, 74, 74, 75, + 76, 77, 74, 74, 74, 74, 74, 74, 78, 74, + 74, 74, 74, 74, 74, 79, 79, 80, 80, 80, + 80, 80, 80, 80, 81, 81, 82, 82, 84, 83, + 83, 86, 85, 87, 87, 88, 88, 89, 89, 89, + 90, 90, 91, 91, 91, 92, 92, 93, 93, 93, + 94, 95, 96, 96, 96, 96, 97, 97, 98, 98, + 98, 99, 99 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -708,17 +709,17 @@ static const yytype_uint8 yyr2[] = 1, 1, 6, 1, 0, 1, 2, 2, 8, 4, 0, 2, 2, 0, 5, 0, 6, 0, 1, 3, 2, 0, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 3, 4, 7, 8, 0, 2, - 2, 5, 1, 7, 0, 4, 2, 2, 4, 1, - 2, 1, 2, 3, 3, 1, 2, 3, 1, 2, - 3, 5, 3, 1, 1, 3, 3, 2, 0, 0, - 0, 12, 3, 1, 3, 2, 2, 0, 5, 2, - 2, 2, 3, 1, 2, 0, 1, 3, 3, 5, - 5, 5, 5, 0, 2, 2, 4, 0, 5, 3, - 0, 3, 3, 2, 1, 0, 1, 0, 3, 0, - 2, 4, 3, 4, 0, 2, 1, 1, 5, 4, - 4, 0, 3, 5, 2, 1, 3, 2, 3, 2, - 4, 3 + 1, 2, 1, 4, 3, 5, 4, 7, 8, 0, + 2, 2, 5, 1, 7, 0, 4, 2, 2, 4, + 1, 2, 1, 2, 3, 3, 1, 2, 3, 1, + 2, 3, 5, 3, 1, 1, 3, 3, 2, 0, + 0, 0, 12, 3, 1, 3, 2, 2, 0, 5, + 2, 2, 2, 3, 1, 2, 0, 1, 3, 3, + 5, 5, 5, 5, 0, 2, 2, 4, 0, 5, + 3, 0, 3, 3, 2, 1, 0, 1, 0, 3, + 0, 2, 4, 3, 4, 0, 2, 1, 1, 5, + 4, 4, 0, 3, 5, 2, 1, 3, 2, 3, + 2, 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -731,167 +732,167 @@ static const yytype_uint8 yydefact[] = 0, 27, 0, 0, 0, 0, 11, 10, 0, 28, 0, 22, 23, 19, 21, 0, 30, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 39, 40, 0, 0, 38, 34, 36, 37, 35, 124, + 39, 40, 0, 0, 38, 34, 36, 37, 35, 125, 29, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 0, 12, 32, 0, 93, 0, 0, 0, + 0, 41, 0, 0, 12, 32, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 73, 74, 0, 83, 126, 117, 0, 0, 124, - 127, 24, 0, 0, 0, 61, 0, 0, 0, 0, - 0, 141, 135, 0, 0, 25, 44, 0, 0, 0, - 0, 0, 54, 0, 56, 0, 57, 0, 68, 96, - 0, 103, 0, 90, 89, 91, 78, 0, 0, 110, - 86, 77, 95, 113, 59, 116, 0, 85, 87, 18, - 125, 43, 0, 45, 0, 0, 0, 62, 134, 0, - 0, 129, 130, 0, 137, 139, 140, 0, 0, 50, - 72, 49, 107, 84, 0, 119, 52, 0, 0, 0, - 0, 0, 69, 0, 0, 0, 75, 0, 105, 76, - 0, 82, 0, 111, 0, 92, 60, 112, 115, 0, - 0, 0, 63, 64, 132, 0, 136, 138, 0, 109, - 117, 0, 0, 0, 0, 0, 119, 66, 0, 58, - 0, 0, 0, 98, 70, 97, 104, 0, 0, 0, - 94, 114, 118, 0, 0, 0, 0, 26, 0, 55, - 0, 0, 0, 71, 120, 67, 65, 0, 0, 0, - 0, 0, 0, 106, 79, 128, 88, 0, 46, 133, - 108, 0, 0, 122, 0, 0, 102, 101, 100, 99, - 0, 47, 121, 123, 0, 51, 0, 0, 80, 53, - 0, 0, 0, 81 + 0, 0, 74, 75, 0, 84, 127, 118, 0, 0, + 125, 128, 24, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 142, 136, 0, 0, 25, 0, 44, 0, + 0, 0, 0, 0, 55, 0, 57, 0, 58, 0, + 69, 97, 0, 104, 0, 91, 90, 92, 79, 0, + 0, 111, 87, 78, 96, 114, 60, 117, 0, 86, + 88, 18, 126, 43, 0, 46, 0, 0, 0, 63, + 135, 0, 0, 130, 131, 0, 138, 140, 141, 0, + 0, 0, 51, 73, 50, 108, 85, 0, 120, 53, + 0, 0, 0, 0, 0, 70, 0, 0, 0, 76, + 0, 106, 77, 0, 83, 0, 112, 0, 93, 61, + 113, 116, 0, 0, 0, 64, 65, 133, 0, 137, + 139, 0, 45, 110, 118, 0, 0, 0, 0, 0, + 120, 67, 0, 59, 0, 0, 0, 99, 71, 98, + 105, 0, 0, 0, 95, 115, 119, 0, 0, 0, + 0, 26, 0, 56, 0, 0, 0, 72, 121, 68, + 66, 0, 0, 0, 0, 0, 0, 107, 80, 129, + 89, 0, 47, 134, 109, 0, 0, 123, 0, 0, + 103, 102, 101, 100, 0, 48, 122, 124, 0, 52, + 0, 0, 81, 54, 0, 0, 0, 82 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 6, 7, 8, 112, 9, 10, 11, 12, 24, - 91, 39, 92, 168, 30, 52, 53, 54, 55, 118, - 177, 178, 123, 174, 93, 145, 106, 179, 129, 94, - 119, 190, 270, 280, 199, 195, 130, 188, 132, 121, - 210, 96, 193, 97, 232, 146, 215, 216, 98, 99, - 56, 57, 109, 113, 114, 58 + -1, 6, 7, 8, 113, 9, 10, 11, 12, 24, + 92, 39, 93, 170, 30, 52, 53, 54, 55, 120, + 180, 181, 125, 177, 94, 147, 107, 182, 131, 95, + 121, 193, 274, 284, 202, 198, 132, 191, 134, 123, + 214, 97, 196, 98, 236, 148, 219, 220, 99, 100, + 56, 57, 110, 114, 115, 58 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -213 +#define YYPACT_NINF -219 static const yytype_int16 yypact[] = { - 130, -213, -22, 32, 20, 28, 72, 93, -213, -213, - 73, -213, -213, 118, 14, -213, -213, -213, -213, -213, - -5, 88, 14, 146, 134, 14, -213, -213, 184, -213, - 104, -213, -213, -213, -213, 120, -213, 186, 115, 151, - 120, -213, 171, -15, 191, 200, 201, 205, 167, 22, - -213, -213, 207, 120, -213, -213, -213, -213, -213, 173, - -213, 210, -213, 176, 214, 197, 181, 19, 19, -2, - 216, -213, 209, -213, -213, 114, -213, 183, 224, 224, - 226, 224, -4, 202, 232, 238, 239, 228, 224, 206, - 178, -213, -213, 209, -213, -213, 3, 78, 243, 173, - -213, -213, 242, 181, 209, -213, 15, 19, 56, 248, - 250, -213, 244, 252, 11, -213, -213, 55, 251, 55, - 255, 254, -213, 259, -213, 215, -213, 1, 221, 58, - 257, 102, 258, -213, -213, -213, -213, 209, 263, -213, - -213, -213, 247, -213, 227, -213, 96, -213, -213, -213, - -213, -213, 18, -213, 230, 231, 233, -213, -213, 19, - 234, -213, -213, 215, -213, -213, -213, 261, 235, -213, - -213, -213, 264, -213, 236, 143, 7, 262, 273, 270, - 202, 202, -213, 202, 240, 202, -213, 241, 268, -213, - 245, -213, 114, -213, 209, -213, -213, -213, 246, 249, - 253, 260, -213, -213, -213, 278, -213, -213, 279, -213, - 236, 283, 256, 265, 280, 288, 143, 266, 267, -213, - 267, 164, 116, 172, -213, 154, -213, -5, 286, 290, - -213, -213, -213, 289, 275, 209, 19, -213, 100, -213, - 287, 291, 55, -213, -213, -213, 269, 292, 293, 202, - 202, 202, 202, -213, -213, -213, -213, 209, -213, -213, - -213, 55, 55, -213, 267, 267, 295, 295, 295, 295, - 271, -213, -213, -213, 294, -213, 303, 267, -213, -213, - 272, 296, 209, -213 + 102, -219, -25, 40, 24, 29, 70, 249, -219, -219, + 74, -219, -219, 107, 11, -219, -219, -219, -219, -219, + -6, 65, 11, 137, 148, 11, -219, -219, 152, -219, + 87, -219, -219, -219, -219, 123, -219, 173, 126, 136, + 123, -219, 159, -11, 186, 190, 194, 196, 158, 86, + -219, -219, 203, 123, -219, -219, -219, -219, -219, 177, + -219, 201, -219, 170, 208, 191, 179, 12, 12, 19, + 214, -219, 181, 213, -219, -219, 115, -219, 183, 222, + 222, 223, 222, 36, 187, 226, 228, 229, 232, 222, + 202, 182, -219, -219, 213, -219, -219, 16, 113, 239, + 177, -219, -219, 240, 179, 213, -219, 22, 12, 101, + 246, 248, -219, 241, 250, 10, -219, 234, -219, 56, + 255, 56, 256, 253, -219, 259, -219, 224, -219, 26, + 225, 157, 258, 119, 261, -219, -219, -219, -219, 213, + 266, -219, -219, -219, 254, -219, 231, -219, 59, -219, + -219, -219, -219, -219, 60, -219, 233, 235, 236, -219, + -219, 12, 237, -219, -219, 224, -219, -219, -219, 263, + 238, 213, -219, -219, -219, 270, -219, 242, 124, -1, + 269, 276, 273, 187, 187, -219, 187, 243, 187, -219, + 244, 274, -219, 247, -219, 115, -219, 213, -219, -219, + -219, 251, 252, 257, 264, -219, -219, -219, 283, -219, + -219, 284, -219, -219, 242, 286, 260, 262, 285, 292, + 124, 265, 267, -219, 267, 172, 15, 176, -219, 165, + -219, -6, 290, 294, -219, -219, -219, 293, 277, 213, + 12, -219, 129, -219, 295, 296, 56, -219, -219, -219, + 268, 291, 298, 187, 187, 187, 187, -219, -219, -219, + -219, 213, -219, -219, -219, 56, 56, -219, 267, 267, + 301, 301, 301, 301, 271, -219, -219, -219, 300, -219, + 307, 267, -219, -219, 275, 309, 213, -219 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -213, -213, -213, 306, -19, -213, -213, -213, -213, 98, - 219, -213, 2, -213, -213, 26, -213, -213, -213, -112, - -213, 138, 85, -213, -213, 142, 217, -212, -81, -213, - -59, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, -213, -213, 107, 103, -213, 222, -213, - -213, -213, -64, 204, -213, -50 + -219, -219, -219, 310, -19, -219, -219, -219, -219, 125, + 5, -219, -15, -219, -219, -31, -219, -219, -219, -114, + -219, 154, 25, -219, -219, 143, 217, -218, -82, -219, + -59, -219, -219, -219, -219, -219, -219, -219, -219, -219, + -219, -219, -219, -219, -219, 108, 103, -219, 227, -219, + -219, -219, -65, 209, -219, -51 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -132 +#define YYTABLE_NINF -133 static const yytype_int16 yytable[] = { - 95, 28, 131, 111, 110, 169, 247, 171, 248, 100, - 143, 180, 165, 116, 181, 22, 166, 64, -65, -20, - 107, 13, 154, 71, -131, 200, 155, 156, 65, 155, - 156, 32, 26, 127, 142, 26, 14, 51, 27, 128, - 95, 27, 51, 158, 15, 153, 144, 72, 26, 100, - 217, 16, 274, 275, 27, 51, 117, 23, 157, 75, - -48, 157, 108, 76, 159, 279, 62, 77, 183, 184, - 160, 185, 17, 78, 79, 80, 20, 81, 191, 74, - 229, 82, 83, 84, 85, 86, 147, 148, 87, 88, - -48, -48, -48, -2, 18, 204, -14, 48, 90, 221, - 222, 1, 223, 197, 225, 36, 198, 260, 2, 3, - 198, 37, 187, 184, 38, 117, 4, 5, 75, -48, - 31, 40, 76, 34, 21, -31, 77, 184, 41, 250, - 263, 29, 78, 79, 80, 230, 81, 42, 1, 33, - 82, 83, 84, 85, 86, 2, 3, 87, 88, 272, - 273, 43, 44, 4, 5, 32, 48, 90, 60, 45, - 46, 47, 48, 49, 124, 184, 126, 252, 266, 267, - 268, 269, 259, 137, 249, 184, 258, 75, 212, 213, - 214, 76, 251, 184, 139, 77, 140, 32, 35, 141, - 59, 78, 79, 80, 61, 81, 63, 66, 271, 82, - 83, 84, 85, 86, 67, 68, 87, 88, 253, 69, - 70, 89, 73, 75, 47, 48, 90, 76, 101, 102, - 103, 77, 104, 283, 105, 115, 120, 78, 79, 80, - 122, 81, 125, 25, 136, 82, 83, 84, 85, 86, - 133, 25, 87, 88, 25, 128, 134, 135, 149, 138, - 151, 48, 90, 161, 50, 162, 170, 163, 176, 50, - 164, 172, 173, 175, 182, 186, 189, 192, 194, 207, - 196, 209, 50, 201, 202, 218, 203, 205, 208, 144, - 219, 220, 227, 224, 226, 235, 236, 237, 228, 231, - 239, 242, 233, 243, 254, 255, 234, 256, 261, 240, - 257, 206, 262, 282, 265, 264, 184, 277, 241, 245, - 246, 278, 217, 19, 276, 281, 211, 238, 167, 244, - 152, 150 + 96, 28, 133, 111, 251, 172, 252, 174, 101, 62, + -66, 167, 22, 108, 118, 168, -20, -132, 13, 25, + 51, 64, 75, 145, 112, 51, 187, 25, 254, 156, + 25, 26, 65, 157, 158, 144, 183, 27, 51, 184, + 50, 96, 221, 160, 14, 50, 155, 26, 15, 101, + 278, 279, 16, 27, 23, 109, 26, 119, 50, 146, + 76, -49, 27, 283, 77, 159, 200, 203, 78, 201, + 17, 157, 158, 129, 79, 80, 81, 20, 82, 130, + 194, 233, 83, 84, 85, 86, 87, 71, 36, 88, + 89, -49, -49, -49, 37, 32, 207, 38, 48, 91, + 72, 225, 226, 159, 227, 126, 229, 128, 29, 161, + 1, 73, 212, 21, 139, 162, 119, 2, 3, 76, + -49, 149, 150, 77, 40, 4, 5, 78, -31, 190, + 187, 41, 267, 79, 80, 81, 264, 82, 234, 201, + 42, 83, 84, 85, 86, 87, 32, 31, 88, 89, + 34, 276, 277, 33, 43, 44, 35, 48, 91, 216, + 217, 218, 45, 46, 47, 48, 49, 186, 187, 60, + 188, 270, 271, 272, 273, 263, 187, 59, 256, 61, + 262, 76, 253, 187, 63, 77, 255, 187, 141, 78, + 142, 32, 66, 143, 67, 79, 80, 81, 68, 82, + 69, 70, 275, 83, 84, 85, 86, 87, 74, 102, + 88, 89, 257, 103, 104, 90, 105, 76, 47, 48, + 91, 77, 106, 116, 117, 78, 122, 287, 124, 127, + 130, 79, 80, 81, 135, 82, 136, 137, 138, 83, + 84, 85, 86, 87, 151, 140, 88, 89, 153, -2, + 18, 163, -14, 164, 165, 48, 91, 1, 166, 171, + 173, 176, 175, 178, 2, 3, 189, 179, 185, 192, + 195, 210, 4, 5, 199, 197, 204, 213, 205, 206, + 208, 211, 222, 223, 224, 146, 228, 230, 231, 239, + 232, 240, 241, 243, 235, 237, 246, 247, 258, 259, + 238, 260, 261, 244, 268, 245, 265, 266, 249, 269, + 250, 221, 187, 281, 280, 282, 286, 19, 285, 209, + 215, 154, 242, 248, 169, 0, 0, 152 }; -static const yytype_uint16 yycheck[] = +static const yytype_int16 yycheck[] = { - 59, 20, 83, 5, 68, 117, 218, 119, 220, 59, - 7, 10, 1, 72, 13, 1, 5, 32, 11, 5, - 1, 43, 7, 1, 5, 7, 11, 12, 43, 11, - 12, 9, 37, 37, 93, 37, 4, 35, 43, 43, - 99, 43, 40, 107, 24, 104, 43, 25, 37, 99, - 43, 23, 264, 265, 43, 53, 1, 43, 43, 4, - 5, 43, 43, 8, 8, 277, 40, 12, 10, 11, - 14, 13, 0, 18, 19, 20, 3, 22, 137, 53, - 192, 26, 27, 28, 29, 30, 8, 9, 33, 34, - 35, 36, 37, 0, 1, 159, 3, 42, 43, 180, - 181, 8, 183, 7, 185, 1, 10, 7, 15, 16, - 10, 7, 10, 11, 10, 1, 23, 24, 4, 5, - 22, 1, 8, 25, 6, 5, 12, 11, 8, 13, - 242, 43, 18, 19, 20, 194, 22, 17, 8, 5, - 26, 27, 28, 29, 30, 15, 16, 33, 34, 261, - 262, 31, 32, 23, 24, 9, 42, 43, 43, 39, - 40, 41, 42, 43, 79, 11, 81, 13, 249, 250, - 251, 252, 236, 88, 10, 11, 235, 4, 35, 36, - 37, 8, 10, 11, 6, 12, 8, 9, 4, 11, - 4, 18, 19, 20, 43, 22, 25, 6, 257, 26, - 27, 28, 29, 30, 4, 4, 33, 34, 227, 4, - 43, 38, 5, 4, 41, 42, 43, 8, 8, 43, - 6, 12, 25, 282, 43, 9, 43, 18, 19, 20, - 6, 22, 6, 14, 6, 26, 27, 28, 29, 30, - 8, 22, 33, 34, 25, 43, 8, 8, 5, 43, - 8, 42, 43, 5, 35, 5, 5, 13, 43, 40, - 8, 6, 8, 4, 43, 8, 8, 4, 21, 8, - 43, 7, 53, 43, 43, 13, 43, 43, 43, 43, - 7, 11, 14, 43, 43, 25, 8, 8, 43, 43, - 7, 11, 43, 5, 8, 5, 43, 8, 11, 43, - 25, 163, 11, 7, 11, 13, 11, 13, 43, 43, - 43, 8, 43, 7, 43, 43, 174, 210, 114, 216, - 103, 99 + 59, 20, 84, 68, 222, 119, 224, 121, 59, 40, + 11, 1, 1, 1, 73, 5, 5, 5, 43, 14, + 35, 32, 53, 7, 5, 40, 11, 22, 13, 7, + 25, 37, 43, 11, 12, 94, 10, 43, 53, 13, + 35, 100, 43, 108, 4, 40, 105, 37, 24, 100, + 268, 269, 23, 43, 43, 43, 37, 1, 53, 43, + 4, 5, 43, 281, 8, 43, 7, 7, 12, 10, + 0, 11, 12, 37, 18, 19, 20, 3, 22, 43, + 139, 195, 26, 27, 28, 29, 30, 1, 1, 33, + 34, 35, 36, 37, 7, 9, 161, 10, 42, 43, + 14, 183, 184, 43, 186, 80, 188, 82, 43, 8, + 8, 25, 171, 6, 89, 14, 1, 15, 16, 4, + 5, 8, 9, 8, 1, 23, 24, 12, 5, 10, + 11, 8, 246, 18, 19, 20, 7, 22, 197, 10, + 17, 26, 27, 28, 29, 30, 9, 22, 33, 34, + 25, 265, 266, 5, 31, 32, 4, 42, 43, 35, + 36, 37, 39, 40, 41, 42, 43, 10, 11, 43, + 13, 253, 254, 255, 256, 240, 11, 4, 13, 43, + 239, 4, 10, 11, 25, 8, 10, 11, 6, 12, + 8, 9, 6, 11, 4, 18, 19, 20, 4, 22, + 4, 43, 261, 26, 27, 28, 29, 30, 5, 8, + 33, 34, 231, 43, 6, 38, 25, 4, 41, 42, + 43, 8, 43, 9, 43, 12, 43, 286, 6, 6, + 43, 18, 19, 20, 8, 22, 8, 8, 6, 26, + 27, 28, 29, 30, 5, 43, 33, 34, 8, 0, + 1, 5, 3, 5, 13, 42, 43, 8, 8, 25, + 5, 8, 6, 4, 15, 16, 8, 43, 43, 8, + 4, 8, 23, 24, 43, 21, 43, 7, 43, 43, + 43, 43, 13, 7, 11, 43, 43, 43, 14, 25, + 43, 8, 8, 7, 43, 43, 11, 5, 8, 5, + 43, 8, 25, 43, 13, 43, 11, 11, 43, 11, + 43, 43, 11, 13, 43, 8, 7, 7, 43, 165, + 177, 104, 214, 220, 115, -1, -1, 100 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -905,28 +906,28 @@ static const yytype_uint8 yystos[] = 1, 8, 17, 31, 32, 39, 40, 41, 42, 43, 54, 56, 59, 60, 61, 62, 94, 95, 99, 4, 43, 43, 59, 25, 32, 43, 6, 4, 4, 4, - 43, 1, 25, 5, 59, 4, 8, 12, 18, 19, - 20, 22, 26, 27, 28, 29, 30, 33, 34, 38, - 43, 54, 56, 68, 73, 74, 85, 87, 92, 93, - 99, 8, 43, 6, 25, 43, 70, 1, 43, 96, - 96, 5, 48, 97, 98, 9, 74, 1, 63, 74, - 43, 83, 6, 66, 66, 6, 66, 37, 43, 72, - 80, 72, 82, 8, 8, 8, 6, 66, 43, 6, - 8, 11, 74, 7, 43, 69, 89, 8, 9, 5, - 92, 8, 70, 74, 7, 11, 12, 43, 96, 8, - 14, 5, 5, 13, 8, 1, 5, 97, 57, 63, - 5, 63, 6, 8, 67, 4, 43, 64, 65, 71, - 10, 13, 43, 10, 11, 13, 8, 10, 81, 8, - 75, 74, 4, 86, 21, 79, 43, 7, 10, 78, - 7, 43, 43, 43, 96, 43, 65, 8, 43, 7, - 84, 69, 35, 36, 37, 90, 91, 43, 13, 7, - 11, 72, 72, 72, 43, 72, 43, 14, 43, 63, - 74, 43, 88, 43, 43, 25, 8, 8, 89, 7, - 43, 43, 11, 5, 90, 43, 43, 71, 71, 10, - 13, 10, 13, 48, 8, 5, 8, 25, 74, 96, - 7, 11, 11, 63, 13, 11, 72, 72, 72, 72, - 76, 74, 63, 63, 71, 71, 43, 13, 8, 71, - 77, 43, 7, 74 + 43, 1, 14, 25, 5, 59, 4, 8, 12, 18, + 19, 20, 22, 26, 27, 28, 29, 30, 33, 34, + 38, 43, 54, 56, 68, 73, 74, 85, 87, 92, + 93, 99, 8, 43, 6, 25, 43, 70, 1, 43, + 96, 96, 5, 48, 97, 98, 9, 43, 74, 1, + 63, 74, 43, 83, 6, 66, 66, 6, 66, 37, + 43, 72, 80, 72, 82, 8, 8, 8, 6, 66, + 43, 6, 8, 11, 74, 7, 43, 69, 89, 8, + 9, 5, 92, 8, 70, 74, 7, 11, 12, 43, + 96, 8, 14, 5, 5, 13, 8, 1, 5, 97, + 57, 25, 63, 5, 63, 6, 8, 67, 4, 43, + 64, 65, 71, 10, 13, 43, 10, 11, 13, 8, + 10, 81, 8, 75, 74, 4, 86, 21, 79, 43, + 7, 10, 78, 7, 43, 43, 43, 96, 43, 65, + 8, 43, 74, 7, 84, 69, 35, 36, 37, 90, + 91, 43, 13, 7, 11, 72, 72, 72, 43, 72, + 43, 14, 43, 63, 74, 43, 88, 43, 43, 25, + 8, 8, 89, 7, 43, 43, 11, 5, 90, 43, + 43, 71, 71, 10, 13, 10, 13, 48, 8, 5, + 8, 25, 74, 96, 7, 11, 11, 63, 13, 11, + 72, 72, 72, 72, 76, 74, 63, 63, 71, 71, + 43, 13, 8, 71, 77, 43, 7, 74 }; #define yyerrok (yyerrstatus = 0) @@ -1451,7 +1452,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) case 43: /* "word" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1455 "ael.tab.c" +#line 1456 "ael.tab.c" break; case 46: /* "objects" */ #line 165 "ael.y" @@ -1459,7 +1460,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1463 "ael.tab.c" +#line 1464 "ael.tab.c" break; case 47: /* "object" */ #line 165 "ael.y" @@ -1467,12 +1468,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1471 "ael.tab.c" +#line 1472 "ael.tab.c" break; case 48: /* "context_name" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1476 "ael.tab.c" +#line 1477 "ael.tab.c" break; case 49: /* "context" */ #line 165 "ael.y" @@ -1480,7 +1481,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1484 "ael.tab.c" +#line 1485 "ael.tab.c" break; case 51: /* "macro" */ #line 165 "ael.y" @@ -1488,7 +1489,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1492 "ael.tab.c" +#line 1493 "ael.tab.c" break; case 52: /* "globals" */ #line 165 "ael.y" @@ -1496,7 +1497,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1500 "ael.tab.c" +#line 1501 "ael.tab.c" break; case 53: /* "global_statements" */ #line 165 "ael.y" @@ -1504,7 +1505,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1508 "ael.tab.c" +#line 1509 "ael.tab.c" break; case 54: /* "assignment" */ #line 165 "ael.y" @@ -1512,7 +1513,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1516 "ael.tab.c" +#line 1517 "ael.tab.c" break; case 56: /* "local_assignment" */ #line 165 "ael.y" @@ -1520,7 +1521,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1524 "ael.tab.c" +#line 1525 "ael.tab.c" break; case 58: /* "arglist" */ #line 165 "ael.y" @@ -1528,7 +1529,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1532 "ael.tab.c" +#line 1533 "ael.tab.c" break; case 59: /* "elements" */ #line 165 "ael.y" @@ -1536,7 +1537,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1540 "ael.tab.c" +#line 1541 "ael.tab.c" break; case 60: /* "element" */ #line 165 "ael.y" @@ -1544,7 +1545,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1548 "ael.tab.c" +#line 1549 "ael.tab.c" break; case 61: /* "ignorepat" */ #line 165 "ael.y" @@ -1552,7 +1553,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1556 "ael.tab.c" +#line 1557 "ael.tab.c" break; case 62: /* "extension" */ #line 165 "ael.y" @@ -1560,7 +1561,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1564 "ael.tab.c" +#line 1565 "ael.tab.c" break; case 63: /* "statements" */ #line 165 "ael.y" @@ -1568,12 +1569,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1572 "ael.tab.c" +#line 1573 "ael.tab.c" break; case 64: /* "timerange" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1577 "ael.tab.c" +#line 1578 "ael.tab.c" break; case 65: /* "timespec" */ #line 165 "ael.y" @@ -1581,12 +1582,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1585 "ael.tab.c" +#line 1586 "ael.tab.c" break; case 66: /* "test_expr" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1590 "ael.tab.c" +#line 1591 "ael.tab.c" break; case 68: /* "if_like_head" */ #line 165 "ael.y" @@ -1594,22 +1595,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1598 "ael.tab.c" +#line 1599 "ael.tab.c" break; case 69: /* "word_list" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1603 "ael.tab.c" +#line 1604 "ael.tab.c" break; case 71: /* "word3_list" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1608 "ael.tab.c" +#line 1609 "ael.tab.c" break; case 72: /* "goto_word" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1613 "ael.tab.c" +#line 1614 "ael.tab.c" break; case 73: /* "switch_statement" */ #line 165 "ael.y" @@ -1617,7 +1618,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1621 "ael.tab.c" +#line 1622 "ael.tab.c" break; case 74: /* "statement" */ #line 165 "ael.y" @@ -1625,7 +1626,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1629 "ael.tab.c" +#line 1630 "ael.tab.c" break; case 79: /* "opt_else" */ #line 165 "ael.y" @@ -1633,7 +1634,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1637 "ael.tab.c" +#line 1638 "ael.tab.c" break; case 80: /* "target" */ #line 165 "ael.y" @@ -1641,12 +1642,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1645 "ael.tab.c" +#line 1646 "ael.tab.c" break; case 81: /* "opt_pri" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1650 "ael.tab.c" +#line 1651 "ael.tab.c" break; case 82: /* "jumptarget" */ #line 165 "ael.y" @@ -1654,7 +1655,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1658 "ael.tab.c" +#line 1659 "ael.tab.c" break; case 83: /* "macro_call" */ #line 165 "ael.y" @@ -1662,7 +1663,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1666 "ael.tab.c" +#line 1667 "ael.tab.c" break; case 85: /* "application_call_head" */ #line 165 "ael.y" @@ -1670,7 +1671,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1674 "ael.tab.c" +#line 1675 "ael.tab.c" break; case 87: /* "application_call" */ #line 165 "ael.y" @@ -1678,12 +1679,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1682 "ael.tab.c" +#line 1683 "ael.tab.c" break; case 88: /* "opt_word" */ #line 178 "ael.y" { free((yyvaluep->str));}; -#line 1687 "ael.tab.c" +#line 1688 "ael.tab.c" break; case 89: /* "eval_arglist" */ #line 165 "ael.y" @@ -1691,7 +1692,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1695 "ael.tab.c" +#line 1696 "ael.tab.c" break; case 90: /* "case_statements" */ #line 165 "ael.y" @@ -1699,7 +1700,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1703 "ael.tab.c" +#line 1704 "ael.tab.c" break; case 91: /* "case_statement" */ #line 165 "ael.y" @@ -1707,7 +1708,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1711 "ael.tab.c" +#line 1712 "ael.tab.c" break; case 92: /* "macro_statements" */ #line 165 "ael.y" @@ -1715,7 +1716,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1719 "ael.tab.c" +#line 1720 "ael.tab.c" break; case 93: /* "macro_statement" */ #line 165 "ael.y" @@ -1723,7 +1724,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1727 "ael.tab.c" +#line 1728 "ael.tab.c" break; case 94: /* "switches" */ #line 165 "ael.y" @@ -1731,7 +1732,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1735 "ael.tab.c" +#line 1736 "ael.tab.c" break; case 95: /* "eswitches" */ #line 165 "ael.y" @@ -1739,7 +1740,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1743 "ael.tab.c" +#line 1744 "ael.tab.c" break; case 96: /* "switchlist" */ #line 165 "ael.y" @@ -1747,7 +1748,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1751 "ael.tab.c" +#line 1752 "ael.tab.c" break; case 97: /* "included_entry" */ #line 165 "ael.y" @@ -1755,7 +1756,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1759 "ael.tab.c" +#line 1760 "ael.tab.c" break; case 98: /* "includeslist" */ #line 165 "ael.y" @@ -1763,7 +1764,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1767 "ael.tab.c" +#line 1768 "ael.tab.c" break; case 99: /* "includes" */ #line 165 "ael.y" @@ -1771,7 +1772,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1775 "ael.tab.c" +#line 1776 "ael.tab.c" break; default: @@ -2332,6 +2333,18 @@ yyreduce: case 45: #line 281 "ael.y" + { + (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (5)]), &(yylsp[(3) - (5)])); + (yyval.pval)->u1.str = malloc(strlen((yyvsp[(1) - (5)].str))+strlen((yyvsp[(3) - (5)].str))+2); + strcpy((yyval.pval)->u1.str,(yyvsp[(1) - (5)].str)); + strcat((yyval.pval)->u1.str,"@"); + strcat((yyval.pval)->u1.str,(yyvsp[(3) - (5)].str)); + free((yyvsp[(1) - (5)].str)); + (yyval.pval)->u2.statements = (yyvsp[(5) - (5)].pval); set_dads((yyval.pval),(yyvsp[(5) - (5)].pval));;} + break; + + case 46: +#line 289 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str); @@ -2339,8 +2352,8 @@ yyreduce: (yyval.pval)->u4.regexten=1;;} break; - case 46: -#line 286 "ael.y" + case 47: +#line 294 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (7)]), &(yylsp[(7) - (7)])); (yyval.pval)->u1.str = (yyvsp[(5) - (7)].str); @@ -2348,8 +2361,8 @@ yyreduce: (yyval.pval)->u3.hints = (yyvsp[(3) - (7)].str);;} break; - case 47: -#line 291 "ael.y" + case 48: +#line 299 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)])); (yyval.pval)->u1.str = (yyvsp[(6) - (8)].str); @@ -2358,23 +2371,23 @@ yyreduce: (yyval.pval)->u3.hints = (yyvsp[(4) - (8)].str);;} break; - case 48: -#line 301 "ael.y" + case 49: +#line 308 "ael.y" { (yyval.pval) = NULL; ;} break; - case 49: -#line 302 "ael.y" + case 50: +#line 309 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 50: -#line 303 "ael.y" + case 51: +#line 310 "ael.y" {(yyval.pval)=(yyvsp[(2) - (2)].pval);;} break; - case 51: -#line 309 "ael.y" + case 52: +#line 316 "ael.y" { asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str)); free((yyvsp[(1) - (5)].str)); @@ -2382,13 +2395,13 @@ yyreduce: free((yyvsp[(5) - (5)].str)); ;} break; - case 52: -#line 314 "ael.y" + case 53: +#line 321 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 53: -#line 318 "ael.y" + case 54: +#line 325 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (7)].str), &(yylsp[(1) - (7)])); (yyval.pval)->next = nword((yyvsp[(3) - (7)].str), &(yylsp[(3) - (7)])); @@ -2396,45 +2409,45 @@ yyreduce: (yyval.pval)->next->next->next = nword((yyvsp[(7) - (7)].str), &(yylsp[(7) - (7)])); ;} break; - case 54: -#line 326 "ael.y" + case 55: +#line 333 "ael.y" { reset_parencount(parseio->scanner); ;} break; - case 55: -#line 326 "ael.y" + case 56: +#line 333 "ael.y" { (yyval.str) = (yyvsp[(3) - (4)].str); ;} break; - case 56: -#line 330 "ael.y" + case 57: +#line 337 "ael.y" { (yyval.pval)= npval2(PV_IF, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(2) - (2)].str); ;} break; - case 57: -#line 333 "ael.y" + case 58: +#line 340 "ael.y" { (yyval.pval) = npval2(PV_RANDOM, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str=(yyvsp[(2) - (2)].str);;} break; - case 58: -#line 336 "ael.y" + case 59: +#line 343 "ael.y" { (yyval.pval) = npval2(PV_IFTIME, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); prev_word = 0; ;} break; - case 59: -#line 347 "ael.y" + case 60: +#line 354 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str);;} break; - case 60: -#line 348 "ael.y" + case 61: +#line 355 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); free((yyvsp[(1) - (2)].str)); @@ -2442,42 +2455,42 @@ yyreduce: prev_word = (yyval.str);;} break; - case 61: -#line 355 "ael.y" + case 62: +#line 362 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 62: -#line 356 "ael.y" + case 63: +#line 363 "ael.y" { asprintf(&((yyval.str)), "%s %s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); free((yyvsp[(1) - (2)].str)); free((yyvsp[(2) - (2)].str)); ;} break; - case 63: -#line 360 "ael.y" + case 64: +#line 367 "ael.y" { asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); free((yyvsp[(1) - (3)].str)); free((yyvsp[(3) - (3)].str)); ;} break; - case 64: -#line 364 "ael.y" + case 65: +#line 371 "ael.y" { /* there are often '&' in hints */ asprintf(&((yyval.str)), "%s&%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); free((yyvsp[(1) - (3)].str)); free((yyvsp[(3) - (3)].str));;} break; - case 65: -#line 370 "ael.y" + case 66: +#line 377 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str);;} break; - case 66: -#line 371 "ael.y" + case 67: +#line 378 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); free((yyvsp[(1) - (2)].str)); @@ -2485,8 +2498,8 @@ yyreduce: prev_word = (yyval.str);;} break; - case 67: -#line 376 "ael.y" + case 68: +#line 383 "ael.y" { asprintf(&((yyval.str)), "%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)); free((yyvsp[(1) - (3)].str)); @@ -2495,90 +2508,90 @@ yyreduce: prev_word=(yyval.str);;} break; - case 68: -#line 384 "ael.y" + case 69: +#line 391 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str);;} break; - case 69: -#line 385 "ael.y" + case 70: +#line 392 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)); free((yyvsp[(1) - (2)].str)); free((yyvsp[(2) - (2)].str));;} break; - case 70: -#line 389 "ael.y" + case 71: +#line 396 "ael.y" { asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); free((yyvsp[(1) - (3)].str)); free((yyvsp[(3) - (3)].str));;} break; - case 71: -#line 395 "ael.y" + case 72: +#line 402 "ael.y" { (yyval.pval) = npval2(PV_SWITCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)])); (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (5)].pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));;} break; - case 72: -#line 404 "ael.y" + case 73: +#line 411 "ael.y" { (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));;} break; - case 73: -#line 407 "ael.y" + case 74: +#line 414 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 74: -#line 408 "ael.y" + case 75: +#line 415 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 75: -#line 409 "ael.y" + case 76: +#line 416 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;} break; - case 76: -#line 412 "ael.y" + case 77: +#line 419 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;} break; - case 77: -#line 415 "ael.y" + case 78: +#line 422 "ael.y" { (yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;} break; - case 78: -#line 418 "ael.y" + case 79: +#line 425 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 79: -#line 419 "ael.y" + case 80: +#line 426 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 80: -#line 420 "ael.y" + case 81: +#line 427 "ael.y" {reset_parencount(parseio->scanner);;} break; - case 81: -#line 420 "ael.y" + case 82: +#line 427 "ael.y" { /* XXX word_list maybe ? */ (yyval.pval) = npval2(PV_FOR, &(yylsp[(1) - (12)]), &(yylsp[(12) - (12)])); (yyval.pval)->u1.for_init = (yyvsp[(4) - (12)].str); @@ -2587,43 +2600,43 @@ yyreduce: (yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));;} break; - case 82: -#line 426 "ael.y" + case 83: +#line 433 "ael.y" { (yyval.pval) = npval2(PV_WHILE, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = (yyvsp[(2) - (3)].str); (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval); set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;} break; - case 83: -#line 430 "ael.y" + case 84: +#line 437 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 84: -#line 431 "ael.y" + case 85: +#line 438 "ael.y" { (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;} break; - case 85: -#line 432 "ael.y" + case 86: +#line 439 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;} break; - case 86: -#line 433 "ael.y" + case 87: +#line 440 "ael.y" { (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;} break; - case 87: -#line 436 "ael.y" + case 88: +#line 443 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 88: -#line 436 "ael.y" + case 89: +#line 443 "ael.y" { char *bufx; int tot=0; @@ -2659,127 +2672,127 @@ yyreduce: ;} break; - case 89: -#line 469 "ael.y" + case 90: +#line 476 "ael.y" { (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 90: -#line 470 "ael.y" + case 91: +#line 477 "ael.y" { (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 91: -#line 471 "ael.y" + case 92: +#line 478 "ael.y" { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 92: -#line 472 "ael.y" + case 93: +#line 479 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(2) - (3)])); (yyval.pval)->u2.statements = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval)); (yyval.pval)->u3.else_statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;} break; - case 93: -#line 476 "ael.y" + case 94: +#line 483 "ael.y" { (yyval.pval)=0; ;} break; - case 94: -#line 479 "ael.y" + case 95: +#line 486 "ael.y" { (yyval.pval) = (yyvsp[(2) - (2)].pval); ;} break; - case 95: -#line 480 "ael.y" + case 96: +#line 487 "ael.y" { (yyval.pval) = NULL ; ;} break; - case 96: -#line 483 "ael.y" + case 97: +#line 490 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 97: -#line 484 "ael.y" + case 98: +#line 491 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])); (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;} break; - case 98: -#line 487 "ael.y" + case 99: +#line 494 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])); (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;} break; - case 99: -#line 490 "ael.y" + case 100: +#line 497 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 100: -#line 494 "ael.y" + case 101: +#line 501 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 101: -#line 498 "ael.y" + case 102: +#line 505 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 102: -#line 502 "ael.y" + case 103: +#line 509 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 103: -#line 508 "ael.y" + case 104: +#line 515 "ael.y" { (yyval.str) = strdup("1"); ;} break; - case 104: -#line 509 "ael.y" + case 105: +#line 516 "ael.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 105: -#line 513 "ael.y" + case 106: +#line 520 "ael.y" { /* ext[, pri] default 1 */ (yyval.pval) = nword((yyvsp[(1) - (2)].str), &(yylsp[(1) - (2)])); (yyval.pval)->next = nword((yyvsp[(2) - (2)].str), &(yylsp[(2) - (2)])); ;} break; - case 106: -#line 516 "ael.y" + case 107: +#line 523 "ael.y" { /* context, ext, pri */ (yyval.pval) = nword((yyvsp[(4) - (4)].str), &(yylsp[(4) - (4)])); (yyval.pval)->next = nword((yyvsp[(1) - (4)].str), &(yylsp[(1) - (4)])); (yyval.pval)->next->next = nword((yyvsp[(2) - (4)].str), &(yylsp[(2) - (4)])); ;} break; - case 107: -#line 522 "ael.y" + case 108: +#line 529 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 108: -#line 522 "ael.y" + case 109: +#line 529 "ael.y" { /* XXX original code had @2 but i think we need @5 */ (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)])); @@ -2787,20 +2800,20 @@ yyreduce: (yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].pval);;} break; - case 109: -#line 527 "ael.y" + case 110: +#line 534 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;} break; - case 110: -#line 535 "ael.y" + case 111: +#line 542 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 111: -#line 535 "ael.y" + case 112: +#line 542 "ael.y" { if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)])); @@ -2812,8 +2825,8 @@ yyreduce: } ;} break; - case 112: -#line 546 "ael.y" + case 113: +#line 553 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)])); if( (yyval.pval)->type == PV_GOTO ) @@ -2823,179 +2836,179 @@ yyreduce: ;} break; - case 113: -#line 553 "ael.y" + case 114: +#line 560 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;} break; - case 114: -#line 556 "ael.y" + case 115: +#line 563 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str) ;} break; - case 115: -#line 557 "ael.y" + case 116: +#line 564 "ael.y" { (yyval.str) = strdup(""); ;} break; - case 116: -#line 560 "ael.y" + case 117: +#line 567 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 117: -#line 561 "ael.y" + case 118: +#line 568 "ael.y" { (yyval.pval)= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/); (yyval.pval)->u1.str = strdup(""); ;} break; - case 118: -#line 564 "ael.y" + case 119: +#line 571 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;} break; - case 119: -#line 567 "ael.y" + case 120: +#line 574 "ael.y" { (yyval.pval) = NULL; ;} break; - case 120: -#line 568 "ael.y" + case 121: +#line 575 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 121: -#line 571 "ael.y" + case 122: +#line 578 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[(1) - (4)]), &(yylsp[(3) - (4)])); /* XXX 3 or 4 ? */ (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].pval); set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));;} break; - case 122: -#line 575 "ael.y" + case 123: +#line 582 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = NULL; (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;} break; - case 123: -#line 579 "ael.y" + case 124: +#line 586 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); /* XXX@3 or @4 ? */ (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].pval);set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));;} break; - case 124: -#line 585 "ael.y" + case 125: +#line 592 "ael.y" { (yyval.pval) = NULL; ;} break; - case 125: -#line 586 "ael.y" + case 126: +#line 593 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 126: -#line 589 "ael.y" + case 127: +#line 596 "ael.y" {(yyval.pval)=(yyvsp[(1) - (1)].pval);;} break; - case 127: -#line 590 "ael.y" + case 128: +#line 597 "ael.y" { (yyval.pval)=(yyvsp[(1) - (1)].pval);;} break; - case 128: -#line 591 "ael.y" + case 129: +#line 598 "ael.y" { (yyval.pval) = npval2(PV_CATCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)])); (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (5)].pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));;} break; - case 129: -#line 597 "ael.y" + case 130: +#line 604 "ael.y" { (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;} break; - case 130: -#line 602 "ael.y" + case 131: +#line 609 "ael.y" { (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;} break; - case 131: -#line 607 "ael.y" + case 132: +#line 614 "ael.y" { (yyval.pval) = NULL; ;} break; - case 132: -#line 608 "ael.y" + case 133: +#line 615 "ael.y" { (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;} break; - case 133: -#line 609 "ael.y" + case 134: +#line 616 "ael.y" { char *x; asprintf(&x,"%s@%s", (yyvsp[(1) - (5)].str),(yyvsp[(3) - (5)].str)); free((yyvsp[(1) - (5)].str)); free((yyvsp[(3) - (5)].str)); (yyval.pval) = linku1(nword(x, &(yylsp[(1) - (5)])), (yyvsp[(5) - (5)].pval));;} break; - case 134: -#line 611 "ael.y" + case 135: +#line 618 "ael.y" {(yyval.pval)=(yyvsp[(2) - (2)].pval);;} break; - case 135: -#line 614 "ael.y" + case 136: +#line 621 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 136: -#line 615 "ael.y" + case 137: +#line 622 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])); (yyval.pval)->u2.arglist = (yyvsp[(3) - (3)].pval); prev_word=0; /* XXX sure ? */ ;} break; - case 137: -#line 622 "ael.y" + case 138: +#line 629 "ael.y" { (yyval.pval) = (yyvsp[(1) - (2)].pval); ;} break; - case 138: -#line 623 "ael.y" + case 139: +#line 630 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;} break; - case 139: -#line 624 "ael.y" + case 140: +#line 631 "ael.y" {(yyval.pval)=(yyvsp[(1) - (2)].pval);;} break; - case 140: -#line 627 "ael.y" + case 141: +#line 634 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;} break; - case 141: -#line 630 "ael.y" + case 142: +#line 637 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;} break; /* Line 1270 of yacc.c. */ -#line 2999 "ael.tab.c" +#line 3012 "ael.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3214,7 +3227,7 @@ yyreturn: } -#line 635 "ael.y" +#line 642 "ael.y" static char *token_equivs1[] = diff --git a/res/ael/ael.y b/res/ael/ael.y index cac4a4266..a8df1cb51 100644 --- a/res/ael/ael.y +++ b/res/ael/ael.y @@ -278,6 +278,14 @@ extension : word EXTENMARK statement { $$ = npval2(PV_EXTENSION, &@1, &@3); $$->u1.str = $1; $$->u2.statements = $3; set_dads($$,$3);} + | word AT word EXTENMARK statement { + $$ = npval2(PV_EXTENSION, &@1, &@3); + $$->u1.str = malloc(strlen($1)+strlen($3)+2); + strcpy($$->u1.str,$1); + strcat($$->u1.str,"@"); + strcat($$->u1.str,$3); + free($1); + $$->u2.statements = $5; set_dads($$,$5);} | KW_REGEXTEN word EXTENMARK statement { $$ = npval2(PV_EXTENSION, &@1, &@4); $$->u1.str = $2; @@ -294,7 +302,6 @@ extension : word EXTENMARK statement { $$->u2.statements = $8; set_dads($$,$8); $$->u4.regexten=1; $$->u3.hints = $4;} - ; /* list of statements in a block or after a case label - can be empty */ diff --git a/res/ael/ael_lex.c b/res/ael/ael_lex.c index 0ae6a7754..6a3e2c16b 100644 --- a/res/ael/ael_lex.c +++ b/res/ael/ael_lex.c @@ -9,7 +9,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 31 +#define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -32,7 +32,15 @@ /* C99 systems have . Non-C99 systems may or may not. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +#if __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; @@ -155,6 +163,10 @@ int ael_yylex_init (yyscan_t* scanner); #define YY_BUF_SIZE 16384 #endif +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; @@ -400,62 +412,62 @@ static yyconst flex_int32_t yy_ec[256] = 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 5, 39, 40, 41, 42, 5, 43, 44, - 5, 5, 45, 46, 47, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 + 5, 5, 45, 46, 47, 1, 1, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48 } ; -static yyconst flex_int32_t yy_meta[48] = +static yyconst flex_int32_t yy_meta[49] = { 0, 1, 1, 2, 1, 3, 4, 3, 1, 1, 1, 5, 1, 3, 1, 1, 1, 3, 1, 3, 3, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 1, 3 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 3, 3 } ; static yyconst flex_int16_t yy_base[257] = { 0, - 0, 0, 39, 42, 81, 120, 159, 198, 47, 54, - 319, 985, 316, 985, 313, 0, 285, 985, 985, 985, - 985, 42, 985, 985, 298, 985, 290, 274, 31, 285, - 32, 274, 33, 279, 45, 267, 271, 284, 283, 48, - 262, 274, 985, 985, 985, 73, 985, 985, 89, 985, - 237, 985, 985, 985, 276, 315, 985, 985, 985, 354, - 985, 300, 985, 66, 300, 297, 0, 264, 0, 401, - 985, 259, 268, 64, 258, 265, 252, 247, 248, 249, - 250, 242, 245, 261, 243, 253, 242, 251, 250, 233, - 237, 51, 241, 240, 103, 985, 985, 137, 985, 142, - - 176, 181, 439, 985, 985, 985, 478, 517, 556, 595, - 634, 985, 985, 985, 673, 985, 712, 751, 790, 829, - 267, 985, 103, 985, 104, 985, 244, 0, 876, 227, - 244, 239, 240, 223, 240, 235, 230, 233, 0, 232, - 218, 213, 222, 214, 216, 211, 225, 205, 201, 215, - 213, 197, 197, 203, 202, 196, 201, 0, 203, 100, - 190, 0, 190, 194, 206, 0, 0, 192, 186, 182, - 0, 188, 180, 189, 178, 170, 174, 187, 184, 167, - 182, 0, 0, 156, 163, 161, 169, 167, 158, 161, - 156, 152, 0, 0, 138, 141, 134, 137, 136, 0, - - 135, 135, 115, 113, 113, 123, 0, 109, 0, 107, - 117, 107, 0, 112, 0, 111, 110, 92, 0, 105, - 0, 95, 0, 85, 60, 0, 61, 48, 117, 0, - 0, 45, 37, 0, 0, 0, 168, 0, 0, 0, - 50, 985, 985, 922, 927, 932, 937, 940, 945, 950, - 955, 960, 964, 969, 974, 979 + 0, 0, 40, 43, 82, 121, 160, 199, 48, 55, + 320, 986, 317, 986, 314, 0, 286, 986, 986, 986, + 986, 43, 986, 986, 299, 986, 291, 275, 32, 286, + 33, 275, 34, 280, 46, 268, 272, 285, 284, 49, + 263, 275, 986, 986, 986, 74, 986, 986, 90, 986, + 238, 986, 986, 986, 277, 316, 986, 986, 986, 355, + 986, 301, 986, 67, 301, 298, 0, 265, 0, 402, + 986, 260, 269, 65, 259, 266, 253, 248, 249, 250, + 251, 243, 246, 262, 244, 254, 243, 252, 251, 234, + 238, 52, 242, 241, 104, 986, 986, 138, 986, 143, + + 177, 182, 440, 986, 986, 986, 479, 518, 557, 596, + 635, 986, 986, 986, 674, 986, 713, 752, 791, 830, + 268, 986, 104, 986, 105, 986, 245, 0, 877, 228, + 245, 240, 241, 224, 241, 236, 231, 234, 0, 233, + 219, 214, 223, 215, 217, 212, 226, 206, 202, 216, + 214, 198, 198, 204, 203, 197, 202, 0, 204, 101, + 191, 0, 191, 195, 207, 0, 0, 193, 187, 183, + 0, 189, 181, 190, 179, 171, 175, 188, 185, 168, + 183, 0, 0, 157, 164, 162, 170, 168, 159, 162, + 157, 153, 0, 0, 139, 142, 135, 138, 137, 0, + + 136, 136, 116, 114, 114, 124, 0, 110, 0, 108, + 118, 108, 0, 113, 0, 112, 111, 93, 0, 106, + 0, 96, 0, 86, 61, 0, 62, 49, 118, 0, + 0, 46, 38, 0, 0, 0, 169, 0, 0, 0, + 51, 986, 986, 923, 928, 933, 938, 941, 946, 951, + 956, 961, 965, 970, 975, 980 } ; static yyconst flex_int16_t yy_def[257] = @@ -490,240 +502,240 @@ static yyconst flex_int16_t yy_def[257] = 243, 243, 243, 243, 243, 243 } ; -static yyconst flex_int16_t yy_nxt[1033] = +static yyconst flex_int16_t yy_nxt[1035] = { 0, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 16, 21, 22, 23, 24, 25, 16, 26, 16, 16, - 12, 16, 27, 28, 29, 30, 31, 32, 33, 34, + 16, 16, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 16, 37, 38, 16, 16, 39, 40, 41, - 16, 16, 42, 16, 43, 44, 45, 47, 48, 63, - 47, 48, 69, 74, 70, 242, 63, 64, 47, 49, - 50, 47, 49, 50, 64, 77, 81, 75, 124, 82, - 91, 78, 84, 85, 92, 79, 125, 239, 126, 151, - 86, 96, 97, 47, 238, 50, 47, 236, 50, 52, - 53, 152, 96, 98, 99, 54, 235, 100, 101, 234, - - 52, 55, 53, 132, 133, 124, 124, 233, 100, 98, - 102, 96, 97, 243, 125, 243, 243, 96, 237, 99, - 237, 232, 96, 98, 99, 52, 184, 53, 52, 53, - 185, 231, 230, 100, 54, 102, 229, 228, 227, 52, - 55, 53, 226, 225, 224, 100, 101, 96, 223, 99, - 96, 97, 222, 221, 220, 219, 100, 98, 102, 218, - 217, 96, 98, 99, 52, 216, 53, 57, 58, 237, - 59, 237, 215, 240, 214, 213, 212, 211, 57, 60, - 61, 100, 210, 102, 96, 97, 96, 209, 99, 96, - 97, 208, 207, 206, 205, 96, 98, 99, 204, 203, - - 96, 98, 99, 57, 202, 61, 57, 58, 201, 59, - 200, 199, 198, 197, 196, 195, 194, 57, 60, 61, - 96, 193, 99, 192, 191, 96, 190, 99, 189, 188, - 187, 186, 183, 182, 181, 180, 179, 178, 177, 176, - 175, 174, 57, 173, 61, 104, 105, 172, 171, 170, - 169, 106, 168, 167, 166, 165, 104, 107, 105, 164, - 163, 162, 161, 160, 159, 158, 157, 156, 155, 122, - 154, 153, 150, 149, 148, 147, 146, 145, 144, 143, - 142, 104, 141, 105, 108, 109, 140, 139, 138, 137, - 110, 136, 135, 134, 131, 108, 107, 109, 130, 127, - - 66, 65, 122, 94, 93, 90, 89, 88, 87, 83, - 80, 76, 73, 72, 71, 68, 66, 65, 243, 243, - 108, 243, 109, 112, 113, 243, 114, 243, 243, 243, - 243, 243, 243, 243, 112, 115, 116, 243, 243, 243, + 16, 16, 42, 16, 43, 44, 45, 16, 47, 48, + 63, 47, 48, 69, 74, 70, 242, 63, 64, 47, + 49, 50, 47, 49, 50, 64, 77, 81, 75, 124, + 82, 91, 78, 84, 85, 92, 79, 125, 239, 126, + 151, 86, 96, 97, 47, 238, 50, 47, 236, 50, + 52, 53, 152, 96, 98, 99, 54, 235, 100, 101, + + 234, 52, 55, 53, 132, 133, 124, 124, 233, 100, + 98, 102, 96, 97, 243, 125, 243, 243, 96, 237, + 99, 237, 232, 96, 98, 99, 52, 184, 53, 52, + 53, 185, 231, 230, 100, 54, 102, 229, 228, 227, + 52, 55, 53, 226, 225, 224, 100, 101, 96, 223, + 99, 96, 97, 222, 221, 220, 219, 100, 98, 102, + 218, 217, 96, 98, 99, 52, 216, 53, 57, 58, + 237, 59, 237, 215, 240, 214, 213, 212, 211, 57, + 60, 61, 100, 210, 102, 96, 97, 96, 209, 99, + 96, 97, 208, 207, 206, 205, 96, 98, 99, 204, + + 203, 96, 98, 99, 57, 202, 61, 57, 58, 201, + 59, 200, 199, 198, 197, 196, 195, 194, 57, 60, + 61, 96, 193, 99, 192, 191, 96, 190, 99, 189, + 188, 187, 186, 183, 182, 181, 180, 179, 178, 177, + 176, 175, 174, 57, 173, 61, 104, 105, 172, 171, + 170, 169, 106, 168, 167, 166, 165, 104, 107, 105, + 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, + 122, 154, 153, 150, 149, 148, 147, 146, 145, 144, + 143, 142, 104, 141, 105, 108, 109, 140, 139, 138, + 137, 110, 136, 135, 134, 131, 108, 107, 109, 130, + + 127, 66, 65, 122, 94, 93, 90, 89, 88, 87, + 83, 80, 76, 73, 72, 71, 68, 66, 65, 243, + 243, 108, 243, 109, 112, 113, 243, 114, 243, 243, + 243, 243, 243, 243, 243, 112, 115, 116, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 112, - 243, 116, 117, 118, 243, 119, 243, 243, 243, 243, - 243, 243, 243, 117, 115, 120, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 117, 243, + 112, 243, 116, 117, 118, 243, 119, 243, 243, 243, + 243, 243, 243, 243, 117, 115, 120, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 117, - 120, 128, 128, 243, 128, 243, 243, 243, 128, 128, - 128, 243, 128, 243, 128, 128, 128, 243, 128, 243, - 243, 128, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 120, 128, 128, 243, 128, 243, 243, 243, 128, + 128, 128, 243, 128, 243, 128, 128, 128, 243, 128, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 128, 104, 105, 243, - 243, 243, 243, 106, 243, 243, 243, 243, 104, 107, - 105, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 128, 104, 105, + 243, 243, 243, 243, 106, 243, 243, 243, 243, 104, + 107, 105, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 104, 243, 105, 108, 109, 243, 243, - 243, 243, 110, 243, 243, 243, 243, 108, 107, 109, + 243, 243, 243, 243, 104, 243, 105, 108, 109, 243, + 243, 243, 243, 110, 243, 243, 243, 243, 108, 107, + 109, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 108, 243, 109, 104, 105, 243, 243, + 243, 243, 106, 243, 243, 243, 243, 104, 107, 105, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 108, 243, 109, 104, 105, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 104, 243, 105, 104, 105, 243, 243, 243, 243, 106, 243, 243, 243, 243, 104, 107, 105, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 104, 243, 105, 104, 105, 243, 243, 243, 243, 106, 243, 243, 243, 243, 104, 107, 105, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - - 104, 243, 105, 104, 105, 243, 243, 243, 243, 106, - 243, 243, 243, 243, 104, 107, 105, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 104, - 243, 105, 112, 113, 243, 114, 243, 243, 243, 243, - 243, 243, 243, 112, 115, 116, 243, 243, 243, 243, + 104, 243, 105, 112, 113, 243, 114, 243, 243, 243, + 243, 243, 243, 243, 112, 115, 116, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 112, 243, - 116, 117, 118, 243, 119, 243, 243, 243, 243, 243, - 243, 243, 117, 115, 120, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 112, + 243, 116, 117, 118, 243, 119, 243, 243, 243, 243, + 243, 243, 243, 117, 115, 120, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 117, 243, 120, + 243, 243, 243, 243, 243, 243, 243, 243, 117, 243, + 120, 112, 113, 243, 114, 243, 243, 243, 243, 243, + 243, 243, 112, 115, 116, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 243, 243, 243, 243, 112, 243, 116, 112, 113, 243, 114, 243, 243, 243, 243, 243, 243, 243, 112, 115, 116, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 112, 243, 116, 112, + 113, 243, 114, 243, 243, 243, 243, 243, 243, 243, 112, 115, 116, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 112, 243, 116, 112, 113, - 243, 114, 243, 243, 243, 243, 243, 243, 243, 112, 115, 116, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 112, 243, 116, 112, 113, 243, - 114, 243, 243, 243, 243, 243, 243, 243, 112, 115, - 116, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 112, 243, 116, 128, 128, 243, 128, - 243, 243, 243, 128, 128, 128, 243, 128, 243, 128, - 128, 128, 243, 128, 243, 243, 128, 243, 243, 243, + 243, 243, 243, 243, 112, 243, 116, 128, 128, 243, + 128, 243, 243, 243, 128, 128, 128, 243, 128, 243, + 128, 128, 128, 243, 128, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 128, 46, 46, 46, 46, 46, 51, 51, 51, - 51, 51, 56, 56, 56, 56, 56, 62, 62, 62, - 62, 62, 67, 67, 67, 95, 95, 95, 95, 95, - 103, 103, 103, 103, 103, 111, 111, 111, 111, 111, - 121, 121, 121, 121, 123, 123, 123, 123, 123, 129, - 243, 129, 129, 129, 128, 243, 128, 128, 128, 241, - 241, 241, 243, 241, 11, 243, 243, 243, 243, 243, + 243, 243, 128, 46, 46, 46, 46, 46, 51, 51, + 51, 51, 51, 56, 56, 56, 56, 56, 62, 62, + 62, 62, 62, 67, 67, 67, 95, 95, 95, 95, + 95, 103, 103, 103, 103, 103, 111, 111, 111, 111, + 111, 121, 121, 121, 121, 123, 123, 123, 123, 123, + 129, 243, 129, 129, 129, 128, 243, 128, 128, 128, + 241, 241, 241, 243, 241, 11, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243 + 243, 243, 243, 243 } ; -static yyconst flex_int16_t yy_chk[1033] = +static yyconst flex_int16_t yy_chk[1035] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 9, - 4, 4, 22, 29, 22, 241, 10, 9, 3, 3, - 3, 4, 4, 4, 10, 31, 33, 29, 64, 33, - 40, 31, 35, 35, 40, 31, 64, 233, 64, 92, - 35, 46, 46, 3, 232, 3, 4, 228, 4, 5, - 5, 92, 46, 46, 46, 5, 227, 49, 49, 225, - - 5, 5, 5, 74, 74, 123, 125, 224, 49, 49, - 49, 95, 95, 123, 125, 123, 125, 46, 229, 46, - 229, 222, 95, 95, 95, 5, 160, 5, 6, 6, - 160, 220, 218, 49, 6, 49, 217, 216, 214, 6, - 6, 6, 212, 211, 210, 98, 98, 95, 208, 95, - 100, 100, 206, 205, 204, 203, 98, 98, 98, 202, - 201, 100, 100, 100, 6, 199, 6, 7, 7, 237, - 7, 237, 198, 237, 197, 196, 195, 192, 7, 7, - 7, 98, 191, 98, 101, 101, 100, 190, 100, 102, - 102, 189, 188, 187, 186, 101, 101, 101, 185, 184, - - 102, 102, 102, 7, 181, 7, 8, 8, 180, 8, - 179, 178, 177, 176, 175, 174, 173, 8, 8, 8, - 101, 172, 101, 170, 169, 102, 168, 102, 165, 164, - 163, 161, 159, 157, 156, 155, 154, 153, 152, 151, - 150, 149, 8, 148, 8, 51, 51, 147, 146, 145, - 144, 51, 143, 142, 141, 140, 51, 51, 51, 138, - 137, 136, 135, 134, 133, 132, 131, 130, 127, 121, - 94, 93, 91, 90, 89, 88, 87, 86, 85, 84, - 83, 51, 82, 51, 55, 55, 81, 80, 79, 78, - 55, 77, 76, 75, 73, 55, 55, 55, 72, 68, - - 66, 65, 62, 42, 41, 39, 38, 37, 36, 34, - 32, 30, 28, 27, 25, 17, 15, 13, 11, 0, - 55, 0, 55, 56, 56, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 56, 56, 56, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, + 9, 4, 4, 22, 29, 22, 241, 10, 9, 3, + 3, 3, 4, 4, 4, 10, 31, 33, 29, 64, + 33, 40, 31, 35, 35, 40, 31, 64, 233, 64, + 92, 35, 46, 46, 3, 232, 3, 4, 228, 4, + 5, 5, 92, 46, 46, 46, 5, 227, 49, 49, + + 225, 5, 5, 5, 74, 74, 123, 125, 224, 49, + 49, 49, 95, 95, 123, 125, 123, 125, 46, 229, + 46, 229, 222, 95, 95, 95, 5, 160, 5, 6, + 6, 160, 220, 218, 49, 6, 49, 217, 216, 214, + 6, 6, 6, 212, 211, 210, 98, 98, 95, 208, + 95, 100, 100, 206, 205, 204, 203, 98, 98, 98, + 202, 201, 100, 100, 100, 6, 199, 6, 7, 7, + 237, 7, 237, 198, 237, 197, 196, 195, 192, 7, + 7, 7, 98, 191, 98, 101, 101, 100, 190, 100, + 102, 102, 189, 188, 187, 186, 101, 101, 101, 185, + + 184, 102, 102, 102, 7, 181, 7, 8, 8, 180, + 8, 179, 178, 177, 176, 175, 174, 173, 8, 8, + 8, 101, 172, 101, 170, 169, 102, 168, 102, 165, + 164, 163, 161, 159, 157, 156, 155, 154, 153, 152, + 151, 150, 149, 8, 148, 8, 51, 51, 147, 146, + 145, 144, 51, 143, 142, 141, 140, 51, 51, 51, + 138, 137, 136, 135, 134, 133, 132, 131, 130, 127, + 121, 94, 93, 91, 90, 89, 88, 87, 86, 85, + 84, 83, 51, 82, 51, 55, 55, 81, 80, 79, + 78, 55, 77, 76, 75, 73, 55, 55, 55, 72, + + 68, 66, 65, 62, 42, 41, 39, 38, 37, 36, + 34, 32, 30, 28, 27, 25, 17, 15, 13, 11, + 0, 55, 0, 55, 56, 56, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 56, 56, 56, 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, 56, - 0, 56, 60, 60, 0, 60, 0, 0, 0, 0, - 0, 0, 0, 60, 60, 60, 0, 0, 0, 0, + 56, 0, 56, 60, 60, 0, 60, 0, 0, 0, + 0, 0, 0, 0, 60, 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, - 60, 70, 70, 0, 70, 0, 0, 0, 70, 70, - 70, 0, 70, 0, 70, 70, 70, 0, 70, 0, - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 70, 70, 0, 70, 0, 0, 0, 70, + 70, 70, 0, 70, 0, 70, 70, 70, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 70, 103, 103, 0, - 0, 0, 0, 103, 0, 0, 0, 0, 103, 103, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 103, 0, 103, 107, 107, 0, 0, - 0, 0, 107, 0, 0, 0, 0, 107, 107, 107, - + 0, 0, 0, 0, 0, 0, 0, 70, 103, 103, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 103, + 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 103, 107, 107, 0, + 0, 0, 0, 107, 0, 0, 0, 0, 107, 107, + + 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107, 0, 107, 108, 108, 0, 0, 0, - 0, 108, 0, 0, 0, 0, 108, 108, 108, 0, + 0, 0, 0, 107, 0, 107, 108, 108, 0, 0, + 0, 0, 108, 0, 0, 0, 0, 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 108, 0, 108, 109, 109, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 109, 109, 109, 0, 0, + 0, 0, 108, 0, 108, 109, 109, 0, 0, 0, + 0, 109, 0, 0, 0, 0, 109, 109, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 109, 0, 109, 110, 110, 0, 0, 0, 0, 110, - 0, 0, 0, 0, 110, 110, 110, 0, 0, 0, + 0, 109, 0, 109, 110, 110, 0, 0, 0, 0, + 110, 0, 0, 0, 0, 110, 110, 110, 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, 110, - 0, 110, 111, 111, 0, 111, 0, 0, 0, 0, - 0, 0, 0, 111, 111, 111, 0, 0, 0, 0, + 110, 0, 110, 111, 111, 0, 111, 0, 0, 0, + 0, 0, 0, 0, 111, 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, - 111, 115, 115, 0, 115, 0, 0, 0, 0, 0, - 0, 0, 115, 115, 115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 0, 111, 115, 115, 0, 115, 0, 0, 0, 0, + 0, 0, 0, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, 0, 115, - 117, 117, 0, 117, 0, 0, 0, 0, 0, 0, - 0, 117, 117, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, + 115, 117, 117, 0, 117, 0, 0, 0, 0, 0, + 0, 0, 117, 117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 117, 0, 117, 118, - 118, 0, 118, 0, 0, 0, 0, 0, 0, 0, - 118, 118, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 117, 0, 117, + 118, 118, 0, 118, 0, 0, 0, 0, 0, 0, + 0, 118, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 0, 118, 119, 119, + 0, 0, 0, 0, 0, 0, 118, 0, 118, 119, - 0, 119, 0, 0, 0, 0, 0, 0, 0, 119, - 119, 119, 0, 0, 0, 0, 0, 0, 0, 0, + 119, 0, 119, 0, 0, 0, 0, 0, 0, 0, + 119, 119, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 119, 0, 119, 120, 120, 0, - 120, 0, 0, 0, 0, 0, 0, 0, 120, 120, - 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 119, 0, 119, 120, 120, + 0, 120, 0, 0, 0, 0, 0, 0, 0, 120, + 120, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 120, 0, 120, 129, 129, 0, 129, - 0, 0, 0, 129, 129, 129, 0, 129, 0, 129, - 129, 129, 0, 129, 0, 0, 129, 0, 0, 0, + 0, 0, 0, 0, 120, 0, 120, 129, 129, 0, + 129, 0, 0, 0, 129, 129, 129, 0, 129, 0, + 129, 129, 129, 0, 129, 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, 129, 244, 244, 244, 244, 244, 245, 245, 245, - 245, 245, 246, 246, 246, 246, 246, 247, 247, 247, - 247, 247, 248, 248, 248, 249, 249, 249, 249, 249, - 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, - 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, - 0, 254, 254, 254, 255, 0, 255, 255, 255, 256, - 256, 256, 0, 256, 243, 243, 243, 243, 243, 243, + 0, 0, 129, 244, 244, 244, 244, 244, 245, 245, + 245, 245, 245, 246, 246, 246, 246, 246, 247, 247, + 247, 247, 247, 248, 248, 248, 249, 249, 249, 249, + 249, 250, 250, 250, 250, 250, 251, 251, 251, 251, + 251, 252, 252, 252, 252, 253, 253, 253, 253, 253, + 254, 0, 254, 254, 254, 255, 0, 255, 255, 255, + 256, 256, 256, 0, 256, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243 + 243, 243, 243, 243 } ; /* The intent behind this definition is that it'll catch @@ -892,7 +904,7 @@ static void pbcwhere(const char *text, int *line, int *col ) #define STORE_POS #define STORE_LOC #endif -#line 895 "ael_lex.c" +#line 907 "ael_lex.c" #define INITIAL 0 #define paren 1 @@ -1102,11 +1114,9 @@ static int input (yyscan_t yyscanner ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int ael_yylex \ - (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner); +extern int ael_yylex (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner); -#define YY_DECL int ael_yylex \ - (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) +#define YY_DECL int ael_yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng @@ -1133,18 +1143,18 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 181 "ael.flex" +#line 183 "ael.flex" -#line 1139 "ael_lex.c" +#line 1149 "ael_lex.c" yylval = yylval_param; yylloc = yylloc_param; - if ( yyg->yy_init ) + if ( !yyg->yy_init ) { - yyg->yy_init = 0; + yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; @@ -1227,260 +1237,260 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 183 "ael.flex" +#line 185 "ael.flex" { STORE_POS; return LC;} YY_BREAK case 2: YY_RULE_SETUP -#line 184 "ael.flex" +#line 186 "ael.flex" { STORE_POS; return RC;} YY_BREAK case 3: YY_RULE_SETUP -#line 185 "ael.flex" +#line 187 "ael.flex" { STORE_POS; return LP;} YY_BREAK case 4: YY_RULE_SETUP -#line 186 "ael.flex" +#line 188 "ael.flex" { STORE_POS; return RP;} YY_BREAK case 5: YY_RULE_SETUP -#line 187 "ael.flex" +#line 189 "ael.flex" { STORE_POS; return SEMI;} YY_BREAK case 6: YY_RULE_SETUP -#line 188 "ael.flex" +#line 190 "ael.flex" { STORE_POS; return EQ;} YY_BREAK case 7: YY_RULE_SETUP -#line 189 "ael.flex" +#line 191 "ael.flex" { STORE_POS; return COMMA;} YY_BREAK case 8: YY_RULE_SETUP -#line 190 "ael.flex" +#line 192 "ael.flex" { STORE_POS; return COLON;} YY_BREAK case 9: YY_RULE_SETUP -#line 191 "ael.flex" +#line 193 "ael.flex" { STORE_POS; return AMPER;} YY_BREAK case 10: YY_RULE_SETUP -#line 192 "ael.flex" +#line 194 "ael.flex" { STORE_POS; return BAR;} YY_BREAK case 11: YY_RULE_SETUP -#line 193 "ael.flex" +#line 195 "ael.flex" { STORE_POS; return EXTENMARK;} YY_BREAK case 12: YY_RULE_SETUP -#line 194 "ael.flex" +#line 196 "ael.flex" { STORE_POS; return AT;} YY_BREAK case 13: YY_RULE_SETUP -#line 195 "ael.flex" +#line 197 "ael.flex" {/*comment*/} YY_BREAK case 14: YY_RULE_SETUP -#line 196 "ael.flex" +#line 198 "ael.flex" { STORE_POS; return KW_CONTEXT;} YY_BREAK case 15: YY_RULE_SETUP -#line 197 "ael.flex" +#line 199 "ael.flex" { STORE_POS; return KW_ABSTRACT;} YY_BREAK case 16: YY_RULE_SETUP -#line 198 "ael.flex" +#line 200 "ael.flex" { STORE_POS; return KW_EXTEND;} YY_BREAK case 17: YY_RULE_SETUP -#line 199 "ael.flex" +#line 201 "ael.flex" { STORE_POS; return KW_MACRO;}; YY_BREAK case 18: YY_RULE_SETUP -#line 200 "ael.flex" +#line 202 "ael.flex" { STORE_POS; return KW_GLOBALS;} YY_BREAK case 19: YY_RULE_SETUP -#line 201 "ael.flex" +#line 203 "ael.flex" { STORE_POS; return KW_LOCAL;} YY_BREAK case 20: YY_RULE_SETUP -#line 202 "ael.flex" +#line 204 "ael.flex" { STORE_POS; return KW_IGNOREPAT;} YY_BREAK case 21: YY_RULE_SETUP -#line 203 "ael.flex" +#line 205 "ael.flex" { STORE_POS; return KW_SWITCH;} YY_BREAK case 22: YY_RULE_SETUP -#line 204 "ael.flex" +#line 206 "ael.flex" { STORE_POS; return KW_IF;} YY_BREAK case 23: YY_RULE_SETUP -#line 205 "ael.flex" +#line 207 "ael.flex" { STORE_POS; return KW_IFTIME;} YY_BREAK case 24: YY_RULE_SETUP -#line 206 "ael.flex" +#line 208 "ael.flex" { STORE_POS; return KW_RANDOM;} YY_BREAK case 25: YY_RULE_SETUP -#line 207 "ael.flex" +#line 209 "ael.flex" { STORE_POS; return KW_REGEXTEN;} YY_BREAK case 26: YY_RULE_SETUP -#line 208 "ael.flex" +#line 210 "ael.flex" { STORE_POS; return KW_HINT;} YY_BREAK case 27: YY_RULE_SETUP -#line 209 "ael.flex" +#line 211 "ael.flex" { STORE_POS; return KW_ELSE;} YY_BREAK case 28: YY_RULE_SETUP -#line 210 "ael.flex" +#line 212 "ael.flex" { STORE_POS; return KW_GOTO;} YY_BREAK case 29: YY_RULE_SETUP -#line 211 "ael.flex" +#line 213 "ael.flex" { STORE_POS; return KW_JUMP;} YY_BREAK case 30: YY_RULE_SETUP -#line 212 "ael.flex" +#line 214 "ael.flex" { STORE_POS; return KW_RETURN;} YY_BREAK case 31: YY_RULE_SETUP -#line 213 "ael.flex" +#line 215 "ael.flex" { STORE_POS; return KW_BREAK;} YY_BREAK case 32: YY_RULE_SETUP -#line 214 "ael.flex" +#line 216 "ael.flex" { STORE_POS; return KW_CONTINUE;} YY_BREAK case 33: YY_RULE_SETUP -#line 215 "ael.flex" +#line 217 "ael.flex" { STORE_POS; return KW_FOR;} YY_BREAK case 34: YY_RULE_SETUP -#line 216 "ael.flex" +#line 218 "ael.flex" { STORE_POS; return KW_WHILE;} YY_BREAK case 35: YY_RULE_SETUP -#line 217 "ael.flex" +#line 219 "ael.flex" { STORE_POS; return KW_CASE;} YY_BREAK case 36: YY_RULE_SETUP -#line 218 "ael.flex" +#line 220 "ael.flex" { STORE_POS; return KW_DEFAULT;} YY_BREAK case 37: YY_RULE_SETUP -#line 219 "ael.flex" +#line 221 "ael.flex" { STORE_POS; return KW_PATTERN;} YY_BREAK case 38: YY_RULE_SETUP -#line 220 "ael.flex" +#line 222 "ael.flex" { STORE_POS; return KW_CATCH;} YY_BREAK case 39: YY_RULE_SETUP -#line 221 "ael.flex" +#line 223 "ael.flex" { STORE_POS; return KW_SWITCHES;} YY_BREAK case 40: YY_RULE_SETUP -#line 222 "ael.flex" +#line 224 "ael.flex" { STORE_POS; return KW_ESWITCHES;} YY_BREAK case 41: YY_RULE_SETUP -#line 223 "ael.flex" +#line 225 "ael.flex" { STORE_POS; return KW_INCLUDES;} YY_BREAK case 42: YY_RULE_SETUP -#line 224 "ael.flex" +#line 226 "ael.flex" { BEGIN(comment); my_col += 2; } YY_BREAK case 43: YY_RULE_SETUP -#line 226 "ael.flex" +#line 228 "ael.flex" { my_col += yyleng; } YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP -#line 227 "ael.flex" +#line 229 "ael.flex" { ++my_lineno; my_col=1;} YY_BREAK case 45: YY_RULE_SETUP -#line 228 "ael.flex" +#line 230 "ael.flex" { my_col += yyleng; } YY_BREAK case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 229 "ael.flex" +#line 231 "ael.flex" { ++my_lineno; my_col=1;} YY_BREAK case 47: YY_RULE_SETUP -#line 230 "ael.flex" +#line 232 "ael.flex" { my_col += 2; BEGIN(INITIAL); } YY_BREAK case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 232 "ael.flex" +#line 234 "ael.flex" { my_lineno++; my_col = 1; } YY_BREAK case 49: YY_RULE_SETUP -#line 233 "ael.flex" +#line 235 "ael.flex" { my_col += yyleng; } YY_BREAK case 50: YY_RULE_SETUP -#line 234 "ael.flex" +#line 236 "ael.flex" { my_col += (yyleng*8)-(my_col%8); } YY_BREAK case 51: YY_RULE_SETUP -#line 236 "ael.flex" +#line 238 "ael.flex" { STORE_POS; yylval->str = strdup(yytext); @@ -1498,7 +1508,7 @@ YY_RULE_SETUP case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 252 "ael.flex" +#line 254 "ael.flex" { if ( pbcpop(')') ) { /* error */ STORE_LOC; @@ -1524,7 +1534,7 @@ YY_RULE_SETUP case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 274 "ael.flex" +#line 276 "ael.flex" { char c = yytext[yyleng-1]; if (c == '(') @@ -1536,7 +1546,7 @@ YY_RULE_SETUP case 54: /* rule 54 can match eol */ YY_RULE_SETUP -#line 282 "ael.flex" +#line 284 "ael.flex" { char c = yytext[yyleng-1]; if ( pbcpop(c)) { /* error */ @@ -1561,7 +1571,7 @@ YY_RULE_SETUP case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 304 "ael.flex" +#line 306 "ael.flex" { char c = yytext[yyleng-1]; if (c == '(') @@ -1573,7 +1583,7 @@ YY_RULE_SETUP case 56: /* rule 56 can match eol */ YY_RULE_SETUP -#line 312 "ael.flex" +#line 314 "ael.flex" { if ( pbcpop(')') ) { /* error */ STORE_LOC; @@ -1601,7 +1611,7 @@ YY_RULE_SETUP case 57: /* rule 57 can match eol */ YY_RULE_SETUP -#line 336 "ael.flex" +#line 338 "ael.flex" { if( parencount != 0) { /* printf("Folding in a comma!\n"); */ yymore(); @@ -1619,7 +1629,7 @@ YY_RULE_SETUP case 58: /* rule 58 can match eol */ YY_RULE_SETUP -#line 350 "ael.flex" +#line 352 "ael.flex" { char c = yytext[yyleng-1]; if ( pbcpop(c) ) { /* error */ @@ -1640,7 +1650,7 @@ YY_RULE_SETUP case 59: /* rule 59 can match eol */ YY_RULE_SETUP -#line 367 "ael.flex" +#line 369 "ael.flex" { char c = yytext[yyleng-1]; yymore(); @@ -1650,7 +1660,7 @@ YY_RULE_SETUP case 60: /* rule 60 can match eol */ YY_RULE_SETUP -#line 373 "ael.flex" +#line 375 "ael.flex" { char c = yytext[yyleng-1]; if ( pbcpop(c) ) { /* error */ @@ -1666,7 +1676,7 @@ YY_RULE_SETUP case 61: /* rule 61 can match eol */ YY_RULE_SETUP -#line 385 "ael.flex" +#line 387 "ael.flex" { STORE_LOC; yylval->str = strdup(yytext); @@ -1679,7 +1689,7 @@ YY_RULE_SETUP case 62: /* rule 62 can match eol */ YY_RULE_SETUP -#line 394 "ael.flex" +#line 396 "ael.flex" { char fnamebuf[1024],*p1,*p2; int glob_ret; @@ -1729,7 +1739,7 @@ case YY_STATE_EOF(paren): case YY_STATE_EOF(semic): case YY_STATE_EOF(argg): case YY_STATE_EOF(comment): -#line 439 "ael.flex" +#line 441 "ael.flex" { char fnamebuf[2048]; if (include_stack_index > 0 && include_stack[include_stack_index-1].globbuf_pos < include_stack[include_stack_index-1].globbuf.gl_pathc-1) { @@ -1766,10 +1776,10 @@ case YY_STATE_EOF(comment): YY_BREAK case 63: YY_RULE_SETUP -#line 473 "ael.flex" +#line 475 "ael.flex" ECHO; YY_BREAK -#line 1772 "ael_lex.c" +#line 1782 "ael_lex.c" case YY_END_OF_BUFFER: { @@ -2071,7 +2081,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) { register int yy_is_jam; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ register char *yy_cp = yyg->yy_c_buf_p; register YY_CHAR yy_c = 1; @@ -2520,10 +2530,10 @@ YY_BUFFER_STATE ael_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yys * @note If you want to scan bytes that may contain NUL values, then use * ael_yy_scan_bytes() instead. */ -YY_BUFFER_STATE ael_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner) +YY_BUFFER_STATE ael_yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) { - return ael_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner); + return ael_yy_scan_bytes(yystr,strlen(yystr) ,yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to ael_yylex() will @@ -2533,7 +2543,7 @@ YY_BUFFER_STATE ael_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE ael_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yyscanner) +YY_BUFFER_STATE ael_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; @@ -2541,15 +2551,15 @@ YY_BUFFER_STATE ael_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yy int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; + n = _yybytes_len + 2; buf = (char *) ael_yyalloc(n ,yyscanner ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in ael_yy_scan_bytes()" ); - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = ael_yy_scan_buffer(buf,n ,yyscanner); if ( ! b ) @@ -2760,21 +2770,51 @@ void ael_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner) yylloc = yylloc_param; } +/* User-visible API */ + +/* ael_yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ + +int ael_yylex_init(yyscan_t* ptr_yy_globals) + +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) ael_yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ + memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Initialization is the same as for the non-reentrant scanner. - This function is called once per scanner lifetime. */ + * This function is called from ael_yylex_destroy(), so don't allocate here. + */ yyg->yy_buffer_stack = 0; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = (char *) 0; - yyg->yy_init = 1; + yyg->yy_init = 0; yyg->yy_start = 0; + yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; - yyg->yy_start_stack = (int *) 0; + yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT @@ -2791,33 +2831,6 @@ static int yy_init_globals (yyscan_t yyscanner) return 0; } -/* User-visible API */ - -/* ael_yylex_init is special because it creates the scanner itself, so it is - * the ONLY reentrant function that doesn't take the scanner as the last argument. - * That's why we explicitly handle the declaration, instead of using our macros. - */ - -int ael_yylex_init(yyscan_t* ptr_yy_globals) - -{ - if (ptr_yy_globals == NULL){ - errno = EINVAL; - return 1; - } - - *ptr_yy_globals = (yyscan_t) ael_yyalloc ( sizeof( struct yyguts_t ), NULL ); - - if (*ptr_yy_globals == NULL){ - errno = ENOMEM; - return 1; - } - - memset(*ptr_yy_globals,0,sizeof(struct yyguts_t)); - - return yy_init_globals ( *ptr_yy_globals ); -} - /* ael_yylex_destroy is for both reentrant and non-reentrant scanners. */ int ael_yylex_destroy (yyscan_t yyscanner) { @@ -2838,8 +2851,13 @@ int ael_yylex_destroy (yyscan_t yyscanner) ael_yyfree(yyg->yy_start_stack ,yyscanner ); yyg->yy_start_stack = NULL; + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * ael_yylex() is called, initialization will occur. */ + yy_init_globals( yyscanner); + /* Destroy the main struct (reentrant only). */ ael_yyfree ( yyscanner , yyscanner ); + yyscanner = NULL; return 0; } @@ -2851,7 +2869,6 @@ int ael_yylex_destroy (yyscan_t yyscanner) static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner) { register int i; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } @@ -2861,7 +2878,6 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yysca static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner) { register int n; - struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; for ( n = 0; s[n]; ++n ) ; @@ -2893,19 +2909,7 @@ void ael_yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#undef YY_NEW_FILE -#undef YY_FLUSH_BUFFER -#undef yy_set_bol -#undef yy_new_buffer -#undef yy_set_interactive -#undef yytext_ptr -#undef YY_DO_BEFORE_ACTION - -#ifdef YY_DECL_IS_OURS -#undef YY_DECL_IS_OURS -#undef YY_DECL -#endif -#line 473 "ael.flex" +#line 475 "ael.flex" -- cgit v1.2.3