diff options
author | murf <murf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-12 19:28:33 +0000 |
---|---|---|
committer | murf <murf@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-12 19:28:33 +0000 |
commit | 55a5f946844ad207f7f774f8ca75eb5bf5d570ba (patch) | |
tree | b54e2b9d3d46f7e5afca969e81cd8b413b46b79c /pbx | |
parent | 0d42de398c741a718a2c7db09f94bc7c29e885a5 (diff) |
This commit merges the contents of 7721, as it applied to the trunk version. Added the item that would previously trigger a false error to test1.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@39571 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r-- | pbx/ael/ael-test/ael-test1/extensions.ael | 2 | ||||
-rw-r--r-- | pbx/ael/ael.tab.c | 863 | ||||
-rw-r--r-- | pbx/ael/ael.y | 17 |
3 files changed, 461 insertions, 421 deletions
diff --git a/pbx/ael/ael-test/ael-test1/extensions.ael b/pbx/ael/ael-test/ael-test1/extensions.ael index d25ddd323..e1943f67c 100644 --- a/pbx/ael/ael-test/ael-test1/extensions.ael +++ b/pbx/ael/ael-test/ael-test1/extensions.ael @@ -94,7 +94,7 @@ context testloop { y=${y}-1; }; }; - regexten hint(nasty/Thingy) 3 => { + regexten hint(nasty/Thingy&nasty/Thingamabob) 3 => { for (x=0; ${x} < 3; x=${x} + 1) { Verbose(x is ${x} !); diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c index 6cef52eed..563eb5886 100644 --- a/pbx/ael/ael.tab.c +++ b/pbx/ael/ael.tab.c @@ -490,16 +490,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 293 +#define YYLAST 298 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 42 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 53 +#define YYNNTS 54 /* YYNRULES -- Number of rules. */ -#define YYNRULES 128 +#define YYNRULES 131 /* YYNRULES -- Number of states. */ -#define YYNSTATES 258 +#define YYNSTATES 262 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -554,13 +554,14 @@ static const yytype_uint16 yyprhs[] = 82, 84, 86, 88, 90, 92, 95, 97, 102, 106, 111, 119, 128, 129, 132, 135, 141, 143, 151, 152, 157, 160, 163, 168, 170, 173, 175, 178, 182, 184, - 187, 191, 197, 201, 203, 207, 211, 214, 215, 216, - 217, 230, 234, 236, 240, 243, 246, 247, 253, 256, - 259, 262, 266, 268, 271, 272, 274, 278, 282, 288, - 294, 300, 306, 307, 310, 313, 318, 319, 325, 329, - 330, 334, 338, 341, 343, 344, 346, 347, 351, 352, - 355, 360, 364, 369, 370, 373, 375, 381, 386, 391, - 392, 396, 399, 401, 405, 408, 412, 415, 420 + 187, 191, 193, 196, 200, 206, 210, 212, 216, 220, + 223, 224, 225, 226, 239, 243, 245, 249, 252, 255, + 256, 262, 265, 268, 271, 275, 277, 280, 281, 283, + 287, 291, 297, 303, 309, 315, 316, 319, 322, 327, + 328, 334, 338, 339, 343, 347, 350, 352, 353, 355, + 356, 360, 361, 364, 369, 373, 378, 379, 382, 384, + 390, 395, 400, 401, 405, 408, 410, 414, 417, 421, + 424, 429 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -570,45 +571,46 @@ static const yytype_int8 yyrhs[] = 44, 1, -1, 47, -1, 49, -1, 50, -1, 8, -1, 41, -1, 36, -1, 48, 3, 46, 4, 55, 5, -1, 23, -1, -1, 15, 41, 6, 54, 7, - 4, 87, 5, -1, 16, 4, 51, 5, -1, -1, + 4, 88, 5, -1, 16, 4, 51, 5, -1, -1, 52, 51, -1, 51, 1, -1, -1, 41, 9, 53, 41, 8, -1, -1, 41, -1, 54, 10, 41, -1, 54, 1, -1, -1, 56, 55, -1, 55, 1, -1, - 58, -1, 94, -1, 89, -1, 90, -1, 57, -1, + 58, -1, 95, -1, 90, -1, 91, -1, 57, -1, 52, -1, 41, 1, -1, 8, -1, 17, 24, 41, - 8, -1, 41, 24, 69, -1, 30, 41, 24, 69, - -1, 31, 6, 66, 7, 41, 24, 69, -1, 30, - 31, 6, 66, 7, 41, 24, 69, -1, -1, 69, - 59, -1, 59, 1, -1, 66, 11, 66, 11, 66, - -1, 41, -1, 60, 13, 66, 13, 66, 13, 66, + 8, -1, 41, 24, 70, -1, 30, 41, 24, 70, + -1, 31, 6, 66, 7, 41, 24, 70, -1, 30, + 31, 6, 66, 7, 41, 24, 70, -1, -1, 70, + 59, -1, 59, 1, -1, 67, 11, 67, 11, 67, + -1, 41, -1, 60, 13, 67, 13, 67, 13, 67, -1, -1, 6, 63, 65, 7, -1, 19, 62, -1, 22, 62, -1, 20, 6, 61, 7, -1, 41, -1, - 41, 41, -1, 41, -1, 41, 41, -1, 41, 41, - 41, -1, 41, -1, 41, 41, -1, 67, 11, 41, - -1, 18, 62, 4, 85, 5, -1, 4, 59, 5, - -1, 52, -1, 25, 75, 8, -1, 26, 77, 8, - -1, 41, 11, -1, -1, -1, -1, 32, 6, 70, - 41, 8, 71, 41, 8, 72, 41, 7, 69, -1, - 33, 62, 69, -1, 68, -1, 12, 78, 8, -1, - 82, 8, -1, 41, 8, -1, -1, 82, 9, 73, - 41, 8, -1, 28, 8, -1, 27, 8, -1, 29, - 8, -1, 64, 69, 74, -1, 8, -1, 21, 69, - -1, -1, 67, -1, 67, 13, 67, -1, 67, 10, - 67, -1, 67, 13, 67, 13, 67, -1, 67, 10, - 67, 10, 67, -1, 36, 13, 67, 13, 67, -1, - 36, 10, 67, 10, 67, -1, -1, 10, 41, -1, - 67, 76, -1, 67, 76, 14, 46, -1, -1, 41, - 6, 79, 84, 7, -1, 41, 6, 7, -1, -1, - 41, 6, 81, -1, 80, 84, 7, -1, 80, 7, - -1, 41, -1, -1, 65, -1, -1, 84, 10, 83, - -1, -1, 86, 85, -1, 34, 41, 11, 59, -1, - 36, 11, 59, -1, 35, 41, 11, 59, -1, -1, - 88, 87, -1, 69, -1, 37, 41, 4, 59, 5, - -1, 38, 4, 91, 5, -1, 39, 4, 91, 5, - -1, -1, 41, 8, 91, -1, 91, 1, -1, 46, - -1, 46, 13, 61, -1, 92, 8, -1, 93, 92, - 8, -1, 93, 1, -1, 40, 4, 93, 5, -1, - 40, 4, 5, -1 + 41, 41, -1, 41, -1, 66, 41, -1, 66, 12, + 41, -1, 41, -1, 41, 41, -1, 41, 41, 41, + -1, 41, -1, 41, 41, -1, 68, 11, 41, -1, + 18, 62, 4, 86, 5, -1, 4, 59, 5, -1, + 52, -1, 25, 76, 8, -1, 26, 78, 8, -1, + 41, 11, -1, -1, -1, -1, 32, 6, 71, 41, + 8, 72, 41, 8, 73, 41, 7, 70, -1, 33, + 62, 70, -1, 69, -1, 12, 79, 8, -1, 83, + 8, -1, 41, 8, -1, -1, 83, 9, 74, 41, + 8, -1, 28, 8, -1, 27, 8, -1, 29, 8, + -1, 64, 70, 75, -1, 8, -1, 21, 70, -1, + -1, 68, -1, 68, 13, 68, -1, 68, 10, 68, + -1, 68, 13, 68, 13, 68, -1, 68, 10, 68, + 10, 68, -1, 36, 13, 68, 13, 68, -1, 36, + 10, 68, 10, 68, -1, -1, 10, 41, -1, 68, + 77, -1, 68, 77, 14, 46, -1, -1, 41, 6, + 80, 85, 7, -1, 41, 6, 7, -1, -1, 41, + 6, 82, -1, 81, 85, 7, -1, 81, 7, -1, + 41, -1, -1, 65, -1, -1, 85, 10, 84, -1, + -1, 87, 86, -1, 34, 41, 11, 59, -1, 36, + 11, 59, -1, 35, 41, 11, 59, -1, -1, 89, + 88, -1, 70, -1, 37, 41, 4, 59, 5, -1, + 38, 4, 92, 5, -1, 39, 4, 92, 5, -1, + -1, 41, 8, 92, -1, 92, 1, -1, 46, -1, + 46, 13, 61, -1, 93, 8, -1, 94, 93, 8, + -1, 94, 1, -1, 40, 4, 94, 5, -1, 40, + 4, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -619,14 +621,15 @@ static const yytype_uint16 yyrline[] = 233, 233, 240, 241, 242, 243, 246, 247, 248, 251, 252, 253, 254, 255, 256, 257, 258, 261, 266, 270, 275, 280, 290, 291, 292, 298, 303, 307, 315, 315, - 319, 322, 325, 336, 337, 344, 345, 350, 358, 359, - 363, 369, 378, 381, 382, 385, 388, 391, 392, 393, - 391, 399, 403, 404, 405, 406, 409, 409, 442, 443, - 444, 445, 449, 452, 453, 456, 457, 460, 463, 467, - 471, 475, 481, 482, 486, 489, 495, 495, 500, 508, - 508, 519, 526, 529, 530, 533, 534, 537, 540, 541, - 544, 548, 552, 558, 559, 562, 563, 569, 574, 579, - 580, 581, 584, 585, 592, 593, 594, 597, 600 + 319, 322, 325, 336, 337, 344, 345, 349, 355, 356, + 361, 369, 370, 374, 380, 389, 392, 393, 396, 399, + 402, 403, 404, 402, 410, 414, 415, 416, 417, 420, + 420, 453, 454, 455, 456, 460, 463, 464, 467, 468, + 471, 474, 478, 482, 486, 492, 493, 497, 500, 506, + 506, 511, 519, 519, 530, 537, 540, 541, 544, 545, + 548, 551, 552, 555, 559, 563, 569, 570, 573, 574, + 580, 585, 590, 591, 592, 595, 596, 603, 604, 605, + 608, 611 }; #endif @@ -646,12 +649,12 @@ static const char *const yytname[] = "globals", "global_statements", "assignment", "@1", "arglist", "elements", "element", "ignorepat", "extension", "statements", "timerange", "timespec", "test_expr", "@2", "if_like_head", "word_list", - "word3_list", "goto_word", "switch_statement", "statement", "@3", "@4", - "@5", "@6", "opt_else", "target", "opt_pri", "jumptarget", "macro_call", - "@7", "application_call_head", "@8", "application_call", "opt_word", - "eval_arglist", "case_statements", "case_statement", "macro_statements", - "macro_statement", "switches", "eswitches", "switchlist", - "included_entry", "includeslist", "includes", 0 + "hint_word", "word3_list", "goto_word", "switch_statement", "statement", + "@3", "@4", "@5", "@6", "opt_else", "target", "opt_pri", "jumptarget", + "macro_call", "@7", "application_call_head", "@8", "application_call", + "opt_word", "eval_arglist", "case_statements", "case_statement", + "macro_statements", "macro_statement", "switches", "eswitches", + "switchlist", "included_entry", "includeslist", "includes", 0 }; #endif @@ -677,13 +680,14 @@ static const yytype_uint8 yyr1[] = 56, 56, 56, 56, 56, 56, 56, 57, 58, 58, 58, 58, 59, 59, 59, 60, 60, 61, 63, 62, 64, 64, 64, 65, 65, 66, 66, 66, 67, 67, - 67, 68, 69, 69, 69, 69, 69, 70, 71, 72, - 69, 69, 69, 69, 69, 69, 73, 69, 69, 69, - 69, 69, 69, 74, 74, 75, 75, 75, 75, 75, - 75, 75, 76, 76, 77, 77, 79, 78, 78, 81, - 80, 82, 82, 83, 83, 84, 84, 84, 85, 85, - 86, 86, 86, 87, 87, 88, 88, 89, 90, 91, - 91, 91, 92, 92, 93, 93, 93, 94, 94 + 67, 68, 68, 68, 69, 70, 70, 70, 70, 70, + 71, 72, 73, 70, 70, 70, 70, 70, 70, 74, + 70, 70, 70, 70, 70, 70, 75, 75, 76, 76, + 76, 76, 76, 76, 76, 77, 77, 78, 78, 80, + 79, 79, 82, 81, 83, 83, 84, 84, 85, 85, + 85, 86, 86, 87, 87, 87, 88, 88, 89, 89, + 90, 91, 92, 92, 92, 93, 93, 94, 94, 94, + 95, 95 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -695,13 +699,14 @@ static const yytype_uint8 yyr2[] = 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, 1, 2, - 3, 5, 3, 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, 5, 4, 4, 0, - 3, 2, 1, 3, 2, 3, 2, 4, 3 + 3, 1, 2, 3, 5, 3, 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, 5, + 4, 4, 0, 3, 2, 1, 3, 2, 3, 2, + 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -714,155 +719,157 @@ static const yytype_uint8 yydefact[] = 0, 17, 11, 10, 0, 23, 0, 20, 19, 16, 0, 26, 25, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 34, 0, 26, 33, 29, 31, - 32, 30, 113, 24, 0, 0, 0, 0, 0, 119, - 119, 0, 35, 0, 28, 12, 0, 42, 82, 0, + 32, 30, 116, 24, 0, 0, 0, 0, 0, 122, + 122, 0, 35, 0, 28, 12, 0, 42, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 72, 115, 106, 0, 0, - 113, 21, 0, 0, 0, 55, 0, 0, 0, 0, - 128, 122, 0, 0, 38, 0, 42, 0, 0, 48, - 0, 50, 0, 51, 0, 58, 85, 0, 92, 0, - 79, 78, 80, 67, 0, 0, 99, 75, 66, 84, - 102, 53, 105, 0, 74, 76, 15, 114, 37, 0, - 39, 56, 0, 119, 121, 117, 118, 0, 124, 126, - 127, 0, 44, 62, 0, 96, 73, 0, 108, 46, - 0, 0, 0, 0, 0, 59, 0, 0, 0, 64, - 0, 94, 65, 0, 71, 42, 100, 0, 81, 54, - 101, 104, 0, 0, 57, 0, 0, 123, 125, 98, - 106, 0, 0, 0, 0, 0, 108, 0, 52, 0, - 0, 0, 87, 60, 86, 93, 0, 0, 0, 83, - 103, 107, 0, 0, 0, 0, 49, 0, 0, 42, - 61, 109, 0, 0, 0, 0, 0, 0, 95, 68, - 116, 77, 0, 40, 97, 42, 42, 0, 0, 0, - 91, 90, 89, 88, 0, 41, 0, 0, 0, 45, - 0, 0, 69, 47, 0, 0, 0, 70 + 0, 0, 0, 66, 0, 75, 118, 109, 0, 0, + 116, 21, 0, 0, 0, 55, 0, 0, 0, 0, + 131, 125, 0, 0, 38, 0, 42, 0, 0, 48, + 0, 50, 0, 51, 0, 61, 88, 0, 95, 0, + 82, 81, 83, 70, 0, 0, 102, 78, 69, 87, + 105, 53, 108, 0, 77, 79, 15, 117, 37, 0, + 39, 0, 0, 56, 122, 124, 120, 121, 0, 127, + 129, 130, 0, 44, 65, 0, 99, 76, 0, 111, + 46, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 67, 0, 97, 68, 0, 74, 42, 103, 0, 84, + 54, 104, 107, 0, 0, 0, 57, 0, 126, 128, + 101, 109, 0, 0, 0, 0, 0, 111, 59, 0, + 52, 0, 0, 0, 90, 63, 89, 96, 0, 0, + 0, 86, 106, 110, 0, 0, 0, 0, 49, 0, + 0, 42, 64, 112, 60, 58, 0, 0, 0, 0, + 0, 0, 98, 71, 119, 80, 0, 40, 100, 42, + 42, 0, 0, 0, 94, 93, 92, 91, 0, 41, + 0, 0, 0, 45, 0, 0, 72, 47, 0, 0, + 0, 73 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 5, 6, 7, 101, 8, 9, 10, 11, 20, - 83, 35, 26, 45, 46, 47, 48, 105, 160, 161, - 110, 157, 84, 132, 162, 116, 85, 106, 173, 244, - 254, 182, 178, 117, 171, 119, 108, 190, 87, 176, - 88, 211, 133, 195, 196, 89, 90, 49, 50, 98, - 102, 103, 51 + 83, 35, 26, 45, 46, 47, 48, 105, 161, 162, + 110, 158, 84, 132, 96, 163, 116, 85, 106, 174, + 248, 258, 183, 179, 117, 172, 119, 108, 191, 87, + 177, 88, 213, 133, 196, 197, 89, 90, 49, 50, + 98, 102, 103, 51 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -103 +#define YYPACT_NINF -195 static const yytype_int16 yypact[] = { - 142, -103, -7, 45, -103, 56, 148, -103, -103, 60, - -103, -103, 62, 39, -103, -103, -103, -10, 46, 86, - 106, 39, -103, -103, 108, -103, 12, -103, -103, -103, - 118, 91, -103, 132, 97, 105, -103, 123, -23, 161, - 171, 180, 193, 11, -103, 119, 91, -103, -103, -103, - -103, -103, 25, -103, 181, 157, 194, 175, 160, 162, - 162, 19, -103, 57, -103, -103, 134, 57, -103, 164, - 196, 196, 200, 196, 23, 169, 199, 201, 203, 202, - 196, 172, 107, -103, 57, -103, -103, 7, 8, 207, - 25, -103, 206, 160, 57, 178, 208, 209, 136, 165, - -103, 205, 212, 5, -103, 167, 57, 210, 213, -103, - 218, -103, 183, -103, 68, 184, 166, 215, 17, 219, - -103, -103, -103, -103, 57, 222, -103, -103, -103, 211, - -103, 187, -103, 99, -103, -103, -103, -103, -103, 223, - -103, 188, 190, 162, -103, -103, -103, 183, -103, -103, - -103, 225, -103, -103, 66, 227, -103, 195, 125, -2, - 224, 228, 229, 169, 169, -103, 169, 197, 169, -103, - 198, 230, -103, 204, -103, 57, -103, 57, -103, -103, - -103, 214, 216, 217, -103, 226, 168, -103, -103, -103, - 195, 234, 220, 221, 231, 238, 125, 160, -103, 160, - 182, 174, 185, -103, 177, -103, -10, 239, 173, -103, - -103, -103, 240, 232, 57, 176, -103, 235, 241, 57, - -103, -103, 236, 242, 169, 169, 169, 169, -103, -103, - -103, -103, 57, -103, -103, 57, 57, 69, 160, 160, - 243, 243, 243, 243, 233, -103, 92, 109, 246, -103, - 252, 160, -103, -103, 237, 244, 57, -103 + 136, -195, -27, 22, -195, 67, 127, -195, -195, 79, + -195, -195, 89, 76, -195, -195, -195, -21, 88, 125, + 12, 76, -195, -195, 156, -195, 11, -195, -195, -195, + 35, 108, -195, 193, 99, 129, -195, 147, -22, 176, + 194, 195, 196, 7, -195, 110, 108, -195, -195, -195, + -195, -195, 25, -195, 197, 163, 200, 179, 169, 170, + 170, 19, -195, 81, -195, -195, 140, 81, -195, 172, + 201, 201, 203, 201, -13, 174, 204, 206, 208, 211, + 201, 180, 72, -195, 81, -195, -195, 18, 115, 213, + 25, -195, 212, 169, 81, -195, 15, 214, 160, 161, + -195, 188, 215, 5, -195, 162, 81, 218, 217, -195, + 198, -195, 186, -195, 166, 187, 164, 221, 143, 222, + -195, -195, -195, -195, 81, 227, -195, -195, -195, 205, + -195, 191, -195, 171, -195, -195, -195, -195, -195, 64, + -195, 192, 199, -195, 170, -195, -195, -195, 186, -195, + -195, -195, 226, -195, -195, 29, 228, -195, 202, 151, + 63, 223, 230, 231, 174, 174, -195, 174, 207, 174, + -195, 209, 224, -195, 210, -195, 81, -195, 81, -195, + -195, -195, 216, 219, 220, 225, -195, 167, -195, -195, + -195, 202, 232, 229, 233, 234, 236, 151, 235, 237, + -195, 237, 183, 177, 185, -195, 178, -195, -21, 238, + 168, -195, -195, -195, 239, 240, 81, 173, -195, 241, + 242, 81, -195, -195, -195, 243, 245, 244, 174, 174, + 174, 174, -195, -195, -195, -195, 81, -195, -195, 81, + 81, 34, 237, 237, 248, 248, 248, 248, 246, -195, + 85, 97, 249, -195, 255, 237, -195, -195, 247, 258, + 81, -195 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -103, -103, -103, 257, -15, -103, -103, -103, -103, 245, - -6, -103, -103, 247, -103, -103, -103, -102, -103, 117, - -50, -103, -103, 110, -57, -72, -103, -52, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, 75, 72, -103, 179, -103, -103, -103, -55, - 170, -103, -103 + -195, -195, -195, 250, -16, -195, -195, -195, -195, 251, + 66, -195, -195, 252, -195, -195, -195, -103, -195, 71, + 4, -195, -195, 86, 175, -194, -73, -195, -52, -195, + -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, + -195, -195, -195, 75, 57, -195, 181, -195, -195, -195, + -56, 182, -195, -195 }; /* 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 -121 +#define YYTABLE_NINF -124 static const yytype_int16 yytable[] = { - 86, 96, 24, 118, 154, 99, 149, 21, 56, -55, - 150, 104, 62, 32, 130, 21, 134, 135, 57, 33, - 27, 111, 34, 113, 100, 44, 22, 170, 167, 67, - 124, 23, 129, 68, 12, 63, 139, 69, 86, 141, - 44, 22, 140, 70, 71, 72, 23, 73, 131, 13, - 74, 75, 76, 77, 78, 22, 14, 79, 80, 114, - 23, 67, 81, 17, 115, 68, 82, 152, 18, 69, - 152, -43, 174, 208, -111, 70, 71, 72, 163, 73, - 19, 164, 74, 75, 76, 77, 78, 25, 186, 79, - 80, 200, 201, 152, 202, 27, 204, -110, 82, 36, - -43, -43, -43, -111, -111, -111, 180, 28, 37, 181, - 152, 29, 31, 126, -112, 127, 27, 237, 128, 28, - 64, 38, 39, -18, 65, 209, -110, -110, -110, 40, - 41, 42, 43, 246, 247, 64, 52, 144, 53, -27, - 222, 145, 223, -112, -112, -112, 54, 55, -2, 15, - 1, -14, 240, 241, 242, 243, 1, 2, 3, 192, - 193, 194, 233, 2, 3, 4, 144, 58, 152, 144, - 146, 4, 153, -120, 152, 59, 166, 167, 230, 168, - 245, 248, 249, 234, 60, 167, 181, 225, 167, 91, - 227, 228, 224, 167, 253, 226, 167, 61, 92, 94, - 93, 95, 109, 97, 257, 107, 112, 120, 123, 121, - 115, 122, 136, 125, 138, 142, 155, 143, 147, 141, - 148, 156, 158, 169, 159, 165, 175, 172, 179, 184, - 183, 185, 177, 188, 189, 198, 131, 197, 203, 205, - 199, 216, 219, 220, 206, 207, 235, 229, 231, 238, - 214, 256, 236, 239, 167, 210, 232, 212, 213, 251, - 252, 217, 218, 16, 187, 215, 30, 191, 221, 137, - 0, 0, 0, 151, 250, 0, 0, 0, 255, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66 + 86, 24, 118, 155, 99, 226, 150, 227, 62, 56, + 151, 104, 32, 28, 12, 22, 27, 29, 33, 57, + 23, 34, 141, 114, 100, 130, 13, 142, 115, 67, + 153, 63, 129, 68, -43, 153, 28, 69, 86, -114, + -18, 22, 140, 70, 71, 72, 23, 73, 252, 253, + 74, 75, 76, 77, 78, 22, 143, 79, 80, 131, + 23, 257, 81, -43, -43, -43, 82, 14, -114, -114, + -114, 184, 175, 210, -58, 111, 142, 113, 126, 21, + 127, 27, 17, 128, 124, 67, 153, 21, 187, 68, + -113, 202, 203, 69, 204, 18, 206, 44, 153, 70, + 71, 72, -115, 73, 198, 143, 74, 75, 76, 77, + 78, 64, 44, 79, 80, 65, 36, 19, 241, -113, + -113, -113, 82, 134, 135, 37, 211, -2, 15, 25, + -14, -115, -115, -115, 27, 1, 250, 251, 38, 39, + 53, 64, 2, 3, 1, -27, 40, 41, 42, 43, + 4, 2, 3, 171, 168, 244, 245, 246, 247, 4, + 31, 145, 145, 153, 237, 146, 147, 154, 145, 153, + 54, 55, -123, 234, 167, 168, 164, 169, 181, 165, + 238, 182, 58, 182, 249, 193, 194, 195, 168, 168, + 229, 231, 232, 228, 168, 230, 168, 52, 59, 60, + 61, 148, 159, 94, 92, 91, 93, 109, 261, 112, + 95, 97, 120, 107, 121, 115, 122, 123, 136, 188, + 138, 125, 144, 149, 156, 157, 178, 160, 166, 170, + 173, 176, 180, 185, 189, 190, 199, 200, 208, 218, + 186, 222, 201, 131, 192, 221, 233, 235, 205, 216, + 207, 209, 239, 240, 223, 243, 16, 212, 242, 168, + 214, 215, 255, 256, 236, 260, 217, 0, 139, 0, + 219, 137, 30, 0, 220, 0, 224, 0, 225, 0, + 0, 0, 0, 0, 198, 152, 0, 254, 259, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66 }; static const yytype_int16 yycheck[] = { - 52, 58, 17, 75, 106, 60, 1, 13, 31, 11, - 5, 63, 1, 1, 7, 21, 8, 9, 41, 7, - 9, 71, 10, 73, 5, 31, 36, 10, 11, 4, - 80, 41, 84, 8, 41, 24, 93, 12, 90, 41, - 46, 36, 94, 18, 19, 20, 41, 22, 41, 4, - 25, 26, 27, 28, 29, 36, 0, 32, 33, 36, - 41, 4, 37, 3, 41, 8, 41, 1, 6, 12, - 1, 5, 124, 175, 5, 18, 19, 20, 10, 22, - 41, 13, 25, 26, 27, 28, 29, 41, 143, 32, - 33, 163, 164, 1, 166, 9, 168, 5, 41, 8, - 34, 35, 36, 34, 35, 36, 7, 1, 17, 10, - 1, 5, 4, 6, 5, 8, 9, 219, 11, 1, - 1, 30, 31, 5, 5, 177, 34, 35, 36, 38, - 39, 40, 41, 235, 236, 1, 4, 1, 41, 5, - 197, 5, 199, 34, 35, 36, 41, 24, 0, 1, - 8, 3, 224, 225, 226, 227, 8, 15, 16, 34, - 35, 36, 214, 15, 16, 23, 1, 6, 1, 1, - 5, 23, 5, 5, 1, 4, 10, 11, 5, 13, - 232, 238, 239, 7, 4, 11, 10, 13, 11, 8, - 13, 206, 10, 11, 251, 10, 11, 4, 41, 24, - 6, 41, 6, 41, 256, 41, 6, 8, 6, 8, - 41, 8, 5, 41, 8, 7, 6, 8, 13, 41, - 8, 8, 4, 8, 41, 41, 4, 8, 41, 41, - 7, 41, 21, 8, 7, 7, 41, 13, 41, 41, - 11, 7, 11, 5, 14, 41, 11, 8, 8, 13, - 24, 7, 11, 11, 11, 41, 24, 41, 41, 13, - 8, 41, 41, 6, 147, 190, 21, 157, 196, 90, - -1, -1, -1, 103, 41, -1, -1, -1, 41, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 46 + 52, 17, 75, 106, 60, 199, 1, 201, 1, 31, + 5, 63, 1, 1, 41, 36, 9, 5, 7, 41, + 41, 10, 7, 36, 5, 7, 4, 12, 41, 4, + 1, 24, 84, 8, 5, 1, 1, 12, 90, 5, + 5, 36, 94, 18, 19, 20, 41, 22, 242, 243, + 25, 26, 27, 28, 29, 36, 41, 32, 33, 41, + 41, 255, 37, 34, 35, 36, 41, 0, 34, 35, + 36, 7, 124, 176, 11, 71, 12, 73, 6, 13, + 8, 9, 3, 11, 80, 4, 1, 21, 144, 8, + 5, 164, 165, 12, 167, 6, 169, 31, 1, 18, + 19, 20, 5, 22, 41, 41, 25, 26, 27, 28, + 29, 1, 46, 32, 33, 5, 8, 41, 221, 34, + 35, 36, 41, 8, 9, 17, 178, 0, 1, 41, + 3, 34, 35, 36, 9, 8, 239, 240, 30, 31, + 41, 1, 15, 16, 8, 5, 38, 39, 40, 41, + 23, 15, 16, 10, 11, 228, 229, 230, 231, 23, + 4, 1, 1, 1, 216, 5, 5, 5, 1, 1, + 41, 24, 5, 5, 10, 11, 10, 13, 7, 13, + 7, 10, 6, 10, 236, 34, 35, 36, 11, 11, + 13, 13, 208, 10, 11, 10, 11, 4, 4, 4, + 4, 13, 4, 24, 41, 8, 6, 6, 260, 6, + 41, 41, 8, 41, 8, 41, 8, 6, 5, 148, + 8, 41, 8, 8, 6, 8, 21, 41, 41, 8, + 8, 4, 41, 41, 8, 7, 13, 7, 14, 7, + 41, 5, 11, 41, 158, 11, 8, 8, 41, 24, + 41, 41, 11, 11, 197, 11, 6, 41, 13, 11, + 41, 41, 13, 8, 24, 7, 191, -1, 93, -1, + 41, 90, 21, -1, 41, -1, 41, -1, 41, -1, + -1, -1, -1, -1, 41, 103, -1, 41, 41, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 46 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -873,28 +880,29 @@ static const yytype_uint8 yystos[] = 49, 50, 41, 4, 0, 1, 45, 3, 6, 41, 51, 52, 36, 41, 46, 41, 54, 9, 1, 5, 51, 4, 1, 7, 10, 53, 8, 17, 30, 31, - 38, 39, 40, 41, 52, 55, 56, 57, 58, 89, - 90, 94, 4, 41, 41, 24, 31, 41, 6, 4, + 38, 39, 40, 41, 52, 55, 56, 57, 58, 90, + 91, 95, 4, 41, 41, 24, 31, 41, 6, 4, 4, 4, 1, 24, 1, 5, 55, 4, 8, 12, 18, 19, 20, 22, 25, 26, 27, 28, 29, 32, - 33, 37, 41, 52, 64, 68, 69, 80, 82, 87, - 88, 8, 41, 6, 24, 41, 66, 41, 91, 91, - 5, 46, 92, 93, 69, 59, 69, 41, 78, 6, - 62, 62, 6, 62, 36, 41, 67, 75, 67, 77, - 8, 8, 8, 6, 62, 41, 6, 8, 11, 69, - 7, 41, 65, 84, 8, 9, 5, 87, 8, 66, - 69, 41, 7, 8, 1, 5, 5, 13, 8, 1, - 5, 92, 1, 5, 59, 6, 8, 63, 4, 41, - 60, 61, 66, 10, 13, 41, 10, 11, 13, 8, - 10, 76, 8, 70, 69, 4, 81, 21, 74, 41, - 7, 10, 73, 7, 41, 41, 91, 61, 8, 7, - 79, 65, 34, 35, 36, 85, 86, 13, 7, 11, - 67, 67, 67, 41, 67, 41, 14, 41, 59, 69, - 41, 83, 41, 41, 24, 84, 7, 41, 41, 11, - 5, 85, 66, 66, 10, 13, 10, 13, 46, 8, - 5, 8, 24, 69, 7, 11, 11, 59, 13, 11, - 67, 67, 67, 67, 71, 69, 59, 59, 66, 66, - 41, 13, 8, 66, 72, 41, 7, 69 + 33, 37, 41, 52, 64, 69, 70, 81, 83, 88, + 89, 8, 41, 6, 24, 41, 66, 41, 92, 92, + 5, 46, 93, 94, 70, 59, 70, 41, 79, 6, + 62, 62, 6, 62, 36, 41, 68, 76, 68, 78, + 8, 8, 8, 6, 62, 41, 6, 8, 11, 70, + 7, 41, 65, 85, 8, 9, 5, 88, 8, 66, + 70, 7, 12, 41, 8, 1, 5, 5, 13, 8, + 1, 5, 93, 1, 5, 59, 6, 8, 63, 4, + 41, 60, 61, 67, 10, 13, 41, 10, 11, 13, + 8, 10, 77, 8, 71, 70, 4, 82, 21, 75, + 41, 7, 10, 74, 7, 41, 41, 92, 61, 8, + 7, 80, 65, 34, 35, 36, 86, 87, 41, 13, + 7, 11, 68, 68, 68, 41, 68, 41, 14, 41, + 59, 70, 41, 84, 41, 41, 24, 85, 7, 41, + 41, 11, 5, 86, 41, 41, 67, 67, 10, 13, + 10, 13, 46, 8, 5, 8, 24, 70, 7, 11, + 11, 59, 13, 11, 68, 68, 68, 68, 72, 70, + 59, 59, 67, 67, 41, 13, 8, 67, 73, 41, + 7, 70 }; #define yyerrok (yyerrstatus = 0) @@ -1419,7 +1427,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) case 41: /* "word" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1423 "ael.tab.c" +#line 1431 "ael.tab.c" break; case 44: /* "objects" */ #line 164 "ael.y" @@ -1427,7 +1435,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1431 "ael.tab.c" +#line 1439 "ael.tab.c" break; case 45: /* "object" */ #line 164 "ael.y" @@ -1435,12 +1443,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1439 "ael.tab.c" +#line 1447 "ael.tab.c" break; case 46: /* "context_name" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1444 "ael.tab.c" +#line 1452 "ael.tab.c" break; case 47: /* "context" */ #line 164 "ael.y" @@ -1448,7 +1456,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1452 "ael.tab.c" +#line 1460 "ael.tab.c" break; case 49: /* "macro" */ #line 164 "ael.y" @@ -1456,7 +1464,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1460 "ael.tab.c" +#line 1468 "ael.tab.c" break; case 50: /* "globals" */ #line 164 "ael.y" @@ -1464,7 +1472,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1468 "ael.tab.c" +#line 1476 "ael.tab.c" break; case 51: /* "global_statements" */ #line 164 "ael.y" @@ -1472,7 +1480,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1476 "ael.tab.c" +#line 1484 "ael.tab.c" break; case 52: /* "assignment" */ #line 164 "ael.y" @@ -1480,7 +1488,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1484 "ael.tab.c" +#line 1492 "ael.tab.c" break; case 54: /* "arglist" */ #line 164 "ael.y" @@ -1488,7 +1496,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1492 "ael.tab.c" +#line 1500 "ael.tab.c" break; case 55: /* "elements" */ #line 164 "ael.y" @@ -1496,7 +1504,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1500 "ael.tab.c" +#line 1508 "ael.tab.c" break; case 56: /* "element" */ #line 164 "ael.y" @@ -1504,7 +1512,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1508 "ael.tab.c" +#line 1516 "ael.tab.c" break; case 57: /* "ignorepat" */ #line 164 "ael.y" @@ -1512,7 +1520,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1516 "ael.tab.c" +#line 1524 "ael.tab.c" break; case 58: /* "extension" */ #line 164 "ael.y" @@ -1520,7 +1528,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1524 "ael.tab.c" +#line 1532 "ael.tab.c" break; case 59: /* "statements" */ #line 164 "ael.y" @@ -1528,12 +1536,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1532 "ael.tab.c" +#line 1540 "ael.tab.c" break; case 60: /* "timerange" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1537 "ael.tab.c" +#line 1545 "ael.tab.c" break; case 61: /* "timespec" */ #line 164 "ael.y" @@ -1541,12 +1549,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1545 "ael.tab.c" +#line 1553 "ael.tab.c" break; case 62: /* "test_expr" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1550 "ael.tab.c" +#line 1558 "ael.tab.c" break; case 64: /* "if_like_head" */ #line 164 "ael.y" @@ -1554,32 +1562,24 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1558 "ael.tab.c" +#line 1566 "ael.tab.c" break; case 65: /* "word_list" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1563 "ael.tab.c" +#line 1571 "ael.tab.c" break; - case 66: /* "word3_list" */ + case 67: /* "word3_list" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1568 "ael.tab.c" +#line 1576 "ael.tab.c" break; - case 67: /* "goto_word" */ + case 68: /* "goto_word" */ #line 177 "ael.y" { free((yyvaluep->str));}; -#line 1573 "ael.tab.c" - break; - case 68: /* "switch_statement" */ -#line 164 "ael.y" - { - destroy_pval((yyvaluep->pval)); - prev_word=0; - }; #line 1581 "ael.tab.c" break; - case 69: /* "statement" */ + case 69: /* "switch_statement" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1587,7 +1587,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1589 "ael.tab.c" break; - case 74: /* "opt_else" */ + case 70: /* "statement" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1595,7 +1595,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1597 "ael.tab.c" break; - case 75: /* "target" */ + case 75: /* "opt_else" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1603,20 +1603,20 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1605 "ael.tab.c" break; - case 76: /* "opt_pri" */ -#line 177 "ael.y" - { free((yyvaluep->str));}; -#line 1610 "ael.tab.c" - break; - case 77: /* "jumptarget" */ + case 76: /* "target" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; +#line 1613 "ael.tab.c" + break; + case 77: /* "opt_pri" */ +#line 177 "ael.y" + { free((yyvaluep->str));}; #line 1618 "ael.tab.c" break; - case 78: /* "macro_call" */ + case 78: /* "jumptarget" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1624,7 +1624,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1626 "ael.tab.c" break; - case 80: /* "application_call_head" */ + case 79: /* "macro_call" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1632,7 +1632,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1634 "ael.tab.c" break; - case 82: /* "application_call" */ + case 81: /* "application_call_head" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1640,20 +1640,20 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1642 "ael.tab.c" break; - case 83: /* "opt_word" */ -#line 177 "ael.y" - { free((yyvaluep->str));}; -#line 1647 "ael.tab.c" - break; - case 84: /* "eval_arglist" */ + case 83: /* "application_call" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; +#line 1650 "ael.tab.c" + break; + case 84: /* "opt_word" */ +#line 177 "ael.y" + { free((yyvaluep->str));}; #line 1655 "ael.tab.c" break; - case 85: /* "case_statements" */ + case 85: /* "eval_arglist" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1661,7 +1661,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1663 "ael.tab.c" break; - case 86: /* "case_statement" */ + case 86: /* "case_statements" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1669,7 +1669,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1671 "ael.tab.c" break; - case 87: /* "macro_statements" */ + case 87: /* "case_statement" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1677,7 +1677,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1679 "ael.tab.c" break; - case 88: /* "macro_statement" */ + case 88: /* "macro_statements" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1685,7 +1685,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1687 "ael.tab.c" break; - case 89: /* "switches" */ + case 89: /* "macro_statement" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1693,7 +1693,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1695 "ael.tab.c" break; - case 90: /* "eswitches" */ + case 90: /* "switches" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1701,7 +1701,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1703 "ael.tab.c" break; - case 91: /* "switchlist" */ + case 91: /* "eswitches" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1709,7 +1709,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1711 "ael.tab.c" break; - case 92: /* "included_entry" */ + case 92: /* "switchlist" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1717,7 +1717,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1719 "ael.tab.c" break; - case 93: /* "includeslist" */ + case 93: /* "included_entry" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1725,7 +1725,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1727 "ael.tab.c" break; - case 94: /* "includes" */ + case 94: /* "includeslist" */ #line 164 "ael.y" { destroy_pval((yyvaluep->pval)); @@ -1733,6 +1733,14 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio) }; #line 1735 "ael.tab.c" break; + case 95: /* "includes" */ +#line 164 "ael.y" + { + destroy_pval((yyvaluep->pval)); + prev_word=0; + }; +#line 1743 "ael.tab.c" + break; default: break; @@ -2371,20 +2379,41 @@ yyreduce: case 55: #line 344 "ael.y" - { (yyval.str) = (yyvsp[(1) - (1)].str);;} + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 56: #line 345 "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 57: +#line 349 "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 58: +#line 355 "ael.y" + { (yyval.str) = (yyvsp[(1) - (1)].str);;} + break; + + case 59: +#line 356 "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)); prev_word = (yyval.str);;} break; - case 57: -#line 350 "ael.y" + case 60: +#line 361 "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)); @@ -2393,85 +2422,85 @@ yyreduce: prev_word=(yyval.str);;} break; - case 58: -#line 358 "ael.y" + case 61: +#line 369 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str);;} break; - case 59: -#line 359 "ael.y" + case 62: +#line 370 "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 60: -#line 363 "ael.y" + case 63: +#line 374 "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 61: -#line 369 "ael.y" + case 64: +#line 380 "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 62: -#line 378 "ael.y" + case 65: +#line 389 "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 63: -#line 381 "ael.y" + case 66: +#line 392 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 64: -#line 382 "ael.y" + case 67: +#line 393 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;} break; - case 65: -#line 385 "ael.y" + case 68: +#line 396 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;} break; - case 66: -#line 388 "ael.y" + case 69: +#line 399 "ael.y" { (yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;} break; - case 67: -#line 391 "ael.y" + case 70: +#line 402 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 68: -#line 392 "ael.y" + case 71: +#line 403 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 69: -#line 393 "ael.y" + case 72: +#line 404 "ael.y" {reset_parencount(parseio->scanner);;} break; - case 70: -#line 393 "ael.y" + case 73: +#line 404 "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); @@ -2480,43 +2509,43 @@ yyreduce: (yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));;} break; - case 71: -#line 399 "ael.y" + case 74: +#line 410 "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 72: -#line 403 "ael.y" + case 75: +#line 414 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 73: -#line 404 "ael.y" + case 76: +#line 415 "ael.y" { (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;} break; - case 74: -#line 405 "ael.y" + case 77: +#line 416 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;} break; - case 75: -#line 406 "ael.y" + case 78: +#line 417 "ael.y" { (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;} break; - case 76: -#line 409 "ael.y" + case 79: +#line 420 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 77: -#line 409 "ael.y" + case 80: +#line 420 "ael.y" { char *bufx; int tot=0; @@ -2552,127 +2581,127 @@ yyreduce: ;} break; - case 78: -#line 442 "ael.y" + case 81: +#line 453 "ael.y" { (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 79: -#line 443 "ael.y" + case 82: +#line 454 "ael.y" { (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 80: -#line 444 "ael.y" + case 83: +#line 455 "ael.y" { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 81: -#line 445 "ael.y" + case 84: +#line 456 "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 82: -#line 449 "ael.y" + case 85: +#line 460 "ael.y" { (yyval.pval)=0; ;} break; - case 83: -#line 452 "ael.y" + case 86: +#line 463 "ael.y" { (yyval.pval) = (yyvsp[(2) - (2)].pval); ;} break; - case 84: -#line 453 "ael.y" + case 87: +#line 464 "ael.y" { (yyval.pval) = NULL ; ;} break; - case 85: -#line 456 "ael.y" + case 88: +#line 467 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 86: -#line 457 "ael.y" + case 89: +#line 468 "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 87: -#line 460 "ael.y" + case 90: +#line 471 "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 88: -#line 463 "ael.y" + case 91: +#line 474 "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 89: -#line 467 "ael.y" + case 92: +#line 478 "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 90: -#line 471 "ael.y" + case 93: +#line 482 "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 91: -#line 475 "ael.y" + case 94: +#line 486 "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 92: -#line 481 "ael.y" + case 95: +#line 492 "ael.y" { (yyval.str) = strdup("1"); ;} break; - case 93: -#line 482 "ael.y" + case 96: +#line 493 "ael.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 94: -#line 486 "ael.y" + case 97: +#line 497 "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 95: -#line 489 "ael.y" + case 98: +#line 500 "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 96: -#line 495 "ael.y" + case 99: +#line 506 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 97: -#line 495 "ael.y" + case 100: +#line 506 "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)])); @@ -2680,20 +2709,20 @@ yyreduce: (yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].pval);;} break; - case 98: -#line 500 "ael.y" + case 101: +#line 511 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;} break; - case 99: -#line 508 "ael.y" + case 102: +#line 519 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 100: -#line 508 "ael.y" + case 103: +#line 519 "ael.y" { if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)])); @@ -2705,8 +2734,8 @@ yyreduce: } ;} break; - case 101: -#line 519 "ael.y" + case 104: +#line 530 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)])); if( (yyval.pval)->type == PV_GOTO ) @@ -2716,168 +2745,168 @@ yyreduce: ;} break; - case 102: -#line 526 "ael.y" + case 105: +#line 537 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;} break; - case 103: -#line 529 "ael.y" + case 106: +#line 540 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str) ;} break; - case 104: -#line 530 "ael.y" + case 107: +#line 541 "ael.y" { (yyval.str) = strdup(""); ;} break; - case 105: -#line 533 "ael.y" + case 108: +#line 544 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 106: -#line 534 "ael.y" + case 109: +#line 545 "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 107: -#line 537 "ael.y" + case 110: +#line 548 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;} break; - case 108: -#line 540 "ael.y" + case 111: +#line 551 "ael.y" { (yyval.pval) = NULL; ;} break; - case 109: -#line 541 "ael.y" + case 112: +#line 552 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 110: -#line 544 "ael.y" + case 113: +#line 555 "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 111: -#line 548 "ael.y" + case 114: +#line 559 "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 112: -#line 552 "ael.y" + case 115: +#line 563 "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 113: -#line 558 "ael.y" + case 116: +#line 569 "ael.y" { (yyval.pval) = NULL; ;} break; - case 114: -#line 559 "ael.y" + case 117: +#line 570 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 115: -#line 562 "ael.y" + case 118: +#line 573 "ael.y" {(yyval.pval)=(yyvsp[(1) - (1)].pval);;} break; - case 116: -#line 563 "ael.y" + case 119: +#line 574 "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 117: -#line 569 "ael.y" + case 120: +#line 580 "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 118: -#line 574 "ael.y" + case 121: +#line 585 "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 119: -#line 579 "ael.y" + case 122: +#line 590 "ael.y" { (yyval.pval) = NULL; ;} break; - case 120: -#line 580 "ael.y" + case 123: +#line 591 "ael.y" { (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;} break; - case 121: -#line 581 "ael.y" + case 124: +#line 592 "ael.y" {(yyval.pval)=(yyvsp[(1) - (2)].pval);;} break; - case 122: -#line 584 "ael.y" + case 125: +#line 595 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 123: -#line 585 "ael.y" + case 126: +#line 596 "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 124: -#line 592 "ael.y" + case 127: +#line 603 "ael.y" { (yyval.pval) = (yyvsp[(1) - (2)].pval); ;} break; - case 125: -#line 593 "ael.y" + case 128: +#line 604 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;} break; - case 126: -#line 594 "ael.y" + case 129: +#line 605 "ael.y" {(yyval.pval)=(yyvsp[(1) - (2)].pval);;} break; - case 127: -#line 597 "ael.y" + case 130: +#line 608 "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 128: -#line 600 "ael.y" + case 131: +#line 611 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;} break; /* Line 1270 of yacc.c. */ -#line 2881 "ael.tab.c" +#line 2910 "ael.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3096,7 +3125,7 @@ yyreturn: } -#line 605 "ael.y" +#line 616 "ael.y" static char *token_equivs1[] = diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index 309cc939a..81a76fd33 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -132,7 +132,7 @@ static pval *update_last(pval *, YYLTYPE *); %type <str>goto_word %type <str>word_list -%type <str>word3_list +%type <str>word3_list hint_word %type <str>test_expr %type <str>opt_pri @@ -272,12 +272,12 @@ extension : word EXTENMARK statement { $$->u1.str = $2; $$->u2.statements = $4; set_dads($$,$4); $$->u4.regexten=1;} - | KW_HINT LP word3_list RP word EXTENMARK statement { + | KW_HINT LP hint_word RP word EXTENMARK statement { $$ = npval2(PV_EXTENSION, &@1, &@7); $$->u1.str = $5; $$->u2.statements = $7; set_dads($$,$7); $$->u3.hints = $3;} - | KW_REGEXTEN KW_HINT LP word3_list RP word EXTENMARK statement { + | KW_REGEXTEN KW_HINT LP hint_word RP word EXTENMARK statement { $$ = npval2(PV_EXTENSION, &@1, &@8); $$->u1.str = $6; $$->u2.statements = $8; set_dads($$,$8); @@ -341,6 +341,17 @@ word_list : word { $$ = $1;} prev_word = $$;} ; +hint_word : word { $$ = $1; } + | hint_word word { + asprintf(&($$), "%s %s", $1, $2); + free($1); + free($2); } + | hint_word AMPER word { /* there are often '&' in hints */ + asprintf(&($$), "%s&%s", $1, $3); + free($1); + free($3);} + + word3_list : word { $$ = $1;} | word word { asprintf(&($$), "%s%s", $1, $2); |