diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c index 07836dbb6e2a7d2867bd898ad6e3bd50930bddd3..16438ce43f7fc311ef8b10137a580a5826a6e596 100644 --- a/pbx/ael/ael.tab.c +++ b/pbx/ael/ael.tab.c @@ -420,16 +420,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 510 +#define YYLAST 477 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 42 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 55 +#define YYNNTS 56 /* YYNRULES -- Number of rules. */ -#define YYNRULES 146 +#define YYNRULES 145 /* YYNRULES -- Number of states. */ -#define YYNSTATES 332 +#define YYNSTATES 302 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -483,16 +483,16 @@ static const unsigned short int yyprhs[] = 70, 74, 76, 79, 82, 83, 89, 91, 95, 98, 101, 105, 107, 109, 112, 115, 117, 119, 121, 123, 125, 126, 132, 135, 137, 142, 146, 151, 159, 168, - 170, 173, 176, 177, 183, 184, 190, 205, 216, 218, - 221, 223, 226, 230, 232, 235, 239, 240, 247, 251, - 252, 258, 262, 266, 269, 270, 271, 272, 285, 286, - 293, 296, 300, 304, 307, 310, 311, 317, 320, 323, - 326, 330, 332, 335, 336, 338, 342, 346, 352, 358, - 364, 370, 372, 376, 382, 386, 392, 396, 397, 403, - 407, 408, 412, 416, 419, 421, 422, 424, 425, 429, - 431, 434, 439, 443, 448, 452, 455, 459, 461, 464, - 466, 472, 475, 478, 482, 485, 488, 492, 495, 498, - 513, 524, 528, 544, 556, 559, 564 + 170, 173, 176, 182, 184, 185, 191, 192, 198, 209, + 211, 214, 216, 219, 223, 225, 228, 232, 233, 240, + 244, 245, 251, 255, 259, 262, 263, 264, 265, 278, + 279, 286, 289, 293, 297, 300, 303, 304, 310, 313, + 316, 319, 323, 325, 328, 329, 331, 335, 339, 345, + 351, 357, 363, 365, 369, 375, 379, 385, 389, 390, + 396, 400, 401, 405, 409, 412, 414, 415, 417, 418, + 422, 424, 427, 432, 436, 441, 445, 448, 452, 454, + 457, 459, 465, 468, 471, 475, 478, 481, 485, 488, + 491, 502, 506, 518, 521, 526 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -501,80 +501,76 @@ static const yysigned_char yyrhs[] = 43, 0, -1, 44, -1, 45, -1, 44, 45, -1, 44, 1, -1, 47, -1, 49, -1, 50, -1, 8, -1, 41, -1, 36, -1, 48, 3, 46, 55, -1, - 23, -1, -1, 15, 41, 6, 54, 7, 4, 89, + 23, -1, -1, 15, 41, 6, 54, 7, 4, 90, 5, -1, 15, 41, 6, 54, 7, 4, 5, -1, - 15, 41, 6, 7, 4, 89, 5, -1, 15, 41, + 15, 41, 6, 7, 4, 90, 5, -1, 15, 41, 6, 7, 4, 5, -1, 16, 4, 51, 5, -1, 16, 4, 5, -1, 52, -1, 51, 52, -1, 51, 1, -1, -1, 41, 9, 53, 41, 8, -1, 41, -1, 54, 10, 41, -1, 54, 1, -1, 4, 5, -1, 4, 56, 5, -1, 57, -1, 1, -1, 56, - 57, -1, 56, 1, -1, 60, -1, 96, -1, 91, - -1, 92, -1, 59, -1, -1, 41, 9, 58, 41, + 57, -1, 56, 1, -1, 60, -1, 97, -1, 92, + -1, 93, -1, 59, -1, -1, 41, 9, 58, 41, 8, -1, 41, 1, -1, 8, -1, 17, 24, 41, - 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, 70, -1, - 61, 70, -1, 61, 1, -1, -1, 19, 6, 63, - 65, 7, -1, -1, 22, 6, 64, 65, 7, -1, - 20, 6, 66, 11, 66, 11, 66, 13, 66, 13, - 66, 13, 66, 7, -1, 20, 6, 41, 13, 66, - 13, 66, 13, 66, 7, -1, 41, -1, 41, 41, - -1, 41, -1, 41, 41, -1, 41, 41, 41, -1, - 41, -1, 41, 41, -1, 41, 11, 41, -1, -1, - 18, 6, 69, 41, 7, 4, -1, 4, 61, 5, - -1, -1, 41, 9, 71, 41, 8, -1, 25, 78, - 8, -1, 26, 79, 8, -1, 41, 11, -1, -1, - -1, -1, 32, 6, 72, 41, 8, 73, 41, 8, - 74, 41, 7, 70, -1, -1, 33, 6, 75, 41, - 7, 70, -1, 68, 5, -1, 68, 87, 5, -1, - 12, 80, 8, -1, 84, 8, -1, 41, 8, -1, - -1, 84, 9, 76, 41, 8, -1, 28, 8, -1, - 27, 8, -1, 29, 8, -1, 62, 70, 77, -1, - 8, -1, 21, 70, -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, - 67, -1, 67, 10, 67, -1, 67, 10, 41, 14, - 41, -1, 67, 14, 67, -1, 67, 10, 41, 14, - 36, -1, 67, 14, 36, -1, -1, 41, 6, 81, - 86, 7, -1, 41, 6, 7, -1, -1, 41, 6, - 83, -1, 82, 86, 7, -1, 82, 7, -1, 41, - -1, -1, 65, -1, -1, 86, 10, 85, -1, 88, - -1, 87, 88, -1, 34, 41, 11, 61, -1, 36, - 11, 61, -1, 35, 41, 11, 61, -1, 34, 41, - 11, -1, 36, 11, -1, 35, 41, 11, -1, 90, - -1, 89, 90, -1, 70, -1, 37, 41, 4, 61, - 5, -1, 38, 93, -1, 39, 93, -1, 4, 94, - 5, -1, 4, 5, -1, 41, 8, -1, 94, 41, - 8, -1, 94, 1, -1, 46, 8, -1, 46, 13, - 66, 11, 66, 11, 66, 13, 66, 13, 66, 13, - 66, 8, -1, 46, 13, 41, 13, 66, 13, 66, - 13, 66, 8, -1, 95, 46, 8, -1, 95, 46, - 13, 66, 11, 66, 11, 66, 13, 66, 13, 66, - 13, 66, 8, -1, 95, 46, 13, 41, 13, 66, - 13, 66, 13, 66, 8, -1, 95, 1, -1, 40, - 4, 95, 5, -1, 40, 4, 5, -1 + 8, -1, 41, 24, 71, -1, 30, 41, 24, 71, + -1, 31, 6, 67, 7, 41, 24, 71, -1, 30, + 31, 6, 67, 7, 41, 24, 71, -1, 71, -1, + 61, 71, -1, 61, 1, -1, 67, 11, 67, 11, + 67, -1, 41, -1, -1, 19, 6, 64, 66, 7, + -1, -1, 22, 6, 65, 66, 7, -1, 20, 6, + 62, 13, 67, 13, 67, 13, 67, 7, -1, 41, + -1, 41, 41, -1, 41, -1, 41, 41, -1, 41, + 41, 41, -1, 41, -1, 41, 41, -1, 41, 11, + 41, -1, -1, 18, 6, 70, 41, 7, 4, -1, + 4, 61, 5, -1, -1, 41, 9, 72, 41, 8, + -1, 25, 79, 8, -1, 26, 80, 8, -1, 41, + 11, -1, -1, -1, -1, 32, 6, 73, 41, 8, + 74, 41, 8, 75, 41, 7, 71, -1, -1, 33, + 6, 76, 41, 7, 71, -1, 69, 5, -1, 69, + 88, 5, -1, 12, 81, 8, -1, 85, 8, -1, + 41, 8, -1, -1, 85, 9, 77, 41, 8, -1, + 28, 8, -1, 27, 8, -1, 29, 8, -1, 63, + 71, 78, -1, 8, -1, 21, 71, -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, 68, -1, 68, 10, 68, -1, 68, + 10, 41, 14, 41, -1, 68, 14, 68, -1, 68, + 10, 41, 14, 36, -1, 68, 14, 36, -1, -1, + 41, 6, 82, 87, 7, -1, 41, 6, 7, -1, + -1, 41, 6, 84, -1, 83, 87, 7, -1, 83, + 7, -1, 41, -1, -1, 66, -1, -1, 87, 10, + 86, -1, 89, -1, 88, 89, -1, 34, 41, 11, + 61, -1, 36, 11, 61, -1, 35, 41, 11, 61, + -1, 34, 41, 11, -1, 36, 11, -1, 35, 41, + 11, -1, 91, -1, 90, 91, -1, 71, -1, 37, + 41, 4, 61, 5, -1, 38, 94, -1, 39, 94, + -1, 4, 95, 5, -1, 4, 5, -1, 41, 8, + -1, 95, 41, 8, -1, 95, 1, -1, 46, 8, + -1, 46, 13, 62, 13, 67, 13, 67, 13, 67, + 8, -1, 96, 46, 8, -1, 96, 46, 13, 62, + 13, 67, 13, 67, 13, 67, 8, -1, 96, 1, + -1, 40, 4, 96, 5, -1, 40, 4, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 173, 173, 176, 177, 178, 181, 182, 183, 184, - 187, 188, 191, 199, 200, 203, 206, 209, 213, 218, - 221, 225, 226, 227, 230, 230, 236, 237, 238, 241, - 242, 245, 246, 247, 248, 251, 252, 253, 254, 255, - 256, 256, 260, 261, 264, 269, 273, 278, 283, 292, - 293, 294, 298, 298, 301, 301, 304, 317, 333, 334, - 341, 342, 347, 355, 356, 360, 366, 366, 374, 377, - 377, 381, 384, 387, 390, 391, 392, 390, 398, 398, - 402, 404, 407, 409, 411, 414, 414, 447, 448, 449, - 450, 454, 457, 458, 463, 464, 467, 470, 474, 478, - 482, 489, 492, 495, 499, 503, 507, 513, 513, 518, - 526, 526, 537, 544, 547, 548, 551, 552, 555, 558, - 559, 562, 566, 570, 574, 577, 580, 585, 586, 589, - 590, 596, 601, 606, 607, 610, 611, 612, 615, 616, - 629, 637, 638, 652, 663, 666, 669 + 0, 175, 175, 178, 179, 180, 183, 184, 185, 186, + 189, 190, 193, 201, 202, 205, 208, 211, 215, 220, + 223, 227, 228, 229, 232, 232, 238, 239, 240, 243, + 244, 247, 248, 249, 250, 253, 254, 255, 256, 257, + 258, 258, 262, 263, 266, 271, 275, 280, 285, 294, + 295, 296, 302, 307, 311, 311, 314, 314, 317, 333, + 334, 341, 342, 347, 355, 356, 360, 366, 366, 374, + 377, 377, 381, 384, 387, 390, 391, 392, 390, 398, + 398, 402, 404, 407, 409, 411, 414, 414, 447, 448, + 449, 450, 454, 457, 458, 463, 464, 467, 470, 474, + 478, 482, 489, 492, 495, 499, 503, 507, 513, 513, + 518, 526, 526, 537, 544, 547, 548, 551, 552, 555, + 558, 559, 562, 566, 570, 574, 577, 580, 585, 586, + 589, 590, 596, 601, 606, 607, 610, 611, 612, 615, + 616, 624, 625, 634, 637, 640 }; #endif @@ -593,9 +589,9 @@ static const char *const yytname[] = "objects", "object", "word_or_default", "context", "opt_abstract", "macro", "globals", "global_statements", "global_statement", "@1", "arglist", "elements_block", "elements", "element", "@2", "ignorepat", - "extension", "statements", "if_like_head", "@3", "@4", "word_list", - "word3_list", "goto_word", "switch_head", "@5", "statement", "@6", "@7", - "@8", "@9", "@10", "@11", "opt_else", "target", "jumptarget", + "extension", "statements", "timerange", "if_like_head", "@3", "@4", + "word_list", "word3_list", "goto_word", "switch_head", "@5", "statement", + "@6", "@7", "@8", "@9", "@10", "@11", "opt_else", "target", "jumptarget", "macro_call", "@12", "application_call_head", "@13", "application_call", "opt_word", "eval_arglist", "case_statements", "case_statement", "macro_statements", "macro_statement", "switches", "eswitches", @@ -624,16 +620,16 @@ static const unsigned char yyr1[] = 50, 51, 51, 51, 53, 52, 54, 54, 54, 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 57, 58, 57, 57, 57, 59, 60, 60, 60, 60, 61, - 61, 61, 63, 62, 64, 62, 62, 62, 65, 65, - 66, 66, 66, 67, 67, 67, 69, 68, 70, 71, - 70, 70, 70, 70, 72, 73, 74, 70, 75, 70, - 70, 70, 70, 70, 70, 76, 70, 70, 70, 70, - 70, 70, 77, 77, 78, 78, 78, 78, 78, 78, - 78, 79, 79, 79, 79, 79, 79, 81, 80, 80, - 83, 82, 84, 84, 85, 85, 86, 86, 86, 87, - 87, 88, 88, 88, 88, 88, 88, 89, 89, 90, - 90, 91, 92, 93, 93, 94, 94, 94, 95, 95, - 95, 95, 95, 95, 95, 96, 96 + 61, 61, 62, 62, 64, 63, 65, 63, 63, 66, + 66, 67, 67, 67, 68, 68, 68, 70, 69, 71, + 72, 71, 71, 71, 71, 73, 74, 75, 71, 76, + 71, 71, 71, 71, 71, 71, 77, 71, 71, 71, + 71, 71, 71, 78, 78, 79, 79, 79, 79, 79, + 79, 79, 80, 80, 80, 80, 80, 80, 82, 81, + 81, 84, 83, 85, 85, 86, 86, 87, 87, 87, + 88, 88, 89, 89, 89, 89, 89, 89, 90, 90, + 91, 91, 92, 93, 94, 94, 95, 95, 95, 96, + 96, 96, 96, 96, 97, 97 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -644,16 +640,16 @@ static const unsigned char yyr2[] = 3, 1, 2, 2, 0, 5, 1, 3, 2, 2, 3, 1, 1, 2, 2, 1, 1, 1, 1, 1, 0, 5, 2, 1, 4, 3, 4, 7, 8, 1, - 2, 2, 0, 5, 0, 5, 14, 10, 1, 2, - 1, 2, 3, 1, 2, 3, 0, 6, 3, 0, - 5, 3, 3, 2, 0, 0, 0, 12, 0, 6, - 2, 3, 3, 2, 2, 0, 5, 2, 2, 2, - 3, 1, 2, 0, 1, 3, 3, 5, 5, 5, - 5, 1, 3, 5, 3, 5, 3, 0, 5, 3, - 0, 3, 3, 2, 1, 0, 1, 0, 3, 1, - 2, 4, 3, 4, 3, 2, 3, 1, 2, 1, - 5, 2, 2, 3, 2, 2, 3, 2, 2, 14, - 10, 3, 15, 11, 2, 4, 3 + 2, 2, 5, 1, 0, 5, 0, 5, 10, 1, + 2, 1, 2, 3, 1, 2, 3, 0, 6, 3, + 0, 5, 3, 3, 2, 0, 0, 0, 12, 0, + 6, 2, 3, 3, 2, 2, 0, 5, 2, 2, + 2, 3, 1, 2, 0, 1, 3, 3, 5, 5, + 5, 5, 1, 3, 5, 3, 5, 3, 0, 5, + 3, 0, 3, 3, 2, 1, 0, 1, 0, 3, + 1, 2, 4, 3, 4, 3, 2, 3, 1, 2, + 1, 5, 2, 2, 3, 2, 2, 3, 2, 2, + 10, 3, 11, 2, 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -666,35 +662,32 @@ static const unsigned char yydefact[] = 0, 0, 21, 11, 10, 0, 0, 26, 0, 24, 23, 19, 22, 0, 12, 0, 28, 0, 0, 0, 32, 29, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 31, 39, 35, 37, 38, 36, 0, 18, 91, + 0, 31, 39, 35, 37, 38, 36, 0, 18, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 117, 0, 0, - 127, 0, 27, 0, 0, 0, 0, 0, 0, 131, - 132, 0, 42, 40, 0, 34, 30, 33, 0, 49, - 0, 0, 66, 52, 0, 54, 0, 63, 94, 0, - 101, 0, 88, 87, 89, 74, 78, 0, 110, 84, - 69, 73, 93, 80, 0, 0, 0, 0, 119, 113, - 58, 116, 0, 83, 85, 17, 128, 16, 0, 25, - 0, 0, 0, 60, 0, 134, 0, 0, 146, 0, - 0, 0, 45, 51, 68, 50, 107, 82, 0, 0, - 60, 0, 0, 0, 0, 0, 64, 0, 0, 71, - 0, 0, 72, 0, 0, 0, 111, 0, 0, 90, - 0, 0, 125, 81, 120, 59, 112, 115, 0, 15, - 44, 0, 46, 61, 0, 135, 137, 133, 0, 138, - 0, 144, 145, 0, 0, 109, 117, 0, 0, 0, - 0, 0, 0, 0, 65, 96, 95, 63, 102, 106, - 104, 0, 0, 0, 0, 92, 124, 126, 0, 114, - 118, 0, 0, 62, 0, 136, 60, 0, 141, 0, - 41, 0, 0, 53, 0, 0, 55, 0, 0, 0, - 0, 0, 75, 0, 130, 70, 0, 0, 86, 0, - 0, 0, 0, 60, 0, 108, 67, 0, 0, 100, - 99, 98, 97, 105, 103, 0, 79, 0, 47, 0, - 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, - 0, 0, 0, 0, 140, 0, 0, 0, 0, 77, - 0, 143, 0, 0, 0, 0, 56, 0, 0, 139, - 0, 142 + 0, 0, 0, 0, 0, 0, 130, 118, 0, 0, + 128, 0, 27, 0, 0, 0, 0, 0, 0, 132, + 133, 0, 42, 40, 0, 34, 30, 33, 0, 49, + 0, 0, 67, 54, 0, 56, 0, 64, 95, 0, + 102, 0, 89, 88, 90, 75, 79, 0, 111, 85, + 70, 74, 94, 81, 0, 0, 0, 0, 120, 114, + 59, 117, 0, 84, 86, 17, 129, 16, 0, 25, + 0, 0, 0, 61, 0, 135, 0, 0, 145, 0, + 0, 0, 45, 51, 69, 50, 108, 83, 0, 0, + 53, 0, 0, 0, 0, 0, 0, 65, 0, 0, + 72, 0, 0, 73, 0, 0, 0, 112, 0, 0, + 91, 0, 0, 126, 82, 121, 60, 113, 116, 0, + 15, 44, 0, 46, 62, 0, 136, 138, 134, 0, + 139, 0, 143, 144, 0, 0, 110, 118, 0, 0, + 0, 0, 0, 0, 0, 66, 97, 96, 64, 103, + 107, 105, 0, 0, 0, 0, 93, 125, 127, 0, + 115, 119, 0, 0, 63, 0, 137, 0, 141, 0, + 41, 0, 0, 55, 0, 0, 57, 0, 0, 0, + 0, 0, 76, 0, 131, 71, 0, 0, 87, 0, + 0, 0, 0, 109, 68, 0, 0, 101, 100, 99, + 98, 106, 104, 0, 80, 0, 47, 0, 0, 0, + 52, 0, 48, 0, 0, 0, 77, 0, 0, 0, + 0, 0, 0, 58, 0, 0, 0, 0, 140, 0, + 78, 142 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -702,179 +695,168 @@ static const short int yydefgoto[] = { -1, 5, 6, 7, 25, 8, 9, 10, 11, 21, 22, 39, 28, 34, 50, 51, 151, 52, 53, 98, - 74, 159, 162, 131, 144, 108, 75, 158, 99, 177, - 173, 275, 300, 174, 188, 179, 109, 111, 101, 206, - 77, 176, 78, 230, 132, 127, 128, 79, 80, 54, - 55, 89, 147, 150, 56 + 161, 74, 159, 163, 131, 162, 108, 75, 158, 99, + 178, 174, 273, 290, 175, 189, 180, 109, 111, 101, + 207, 77, 177, 78, 231, 132, 127, 128, 79, 80, + 54, 55, 89, 147, 150, 56 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -173 +#define YYPACT_NINF -186 static const short int yypact[] = { - 117, -173, -23, 2, -173, 27, 164, -173, -173, 55, - -173, -173, 72, 10, -173, -173, -173, 70, 7, -173, - 76, 33, -173, -173, -173, 87, 104, -173, 146, -173, - -173, -173, -173, 322, -173, 365, -173, 112, 79, 81, - -173, -173, -173, 100, 41, 124, 135, 135, 145, 19, - 327, -173, -173, -173, -173, -173, -173, 469, -173, -173, - 119, 160, 169, 201, 202, 116, 157, 143, 204, 205, - 203, 208, 176, 175, 469, 65, -173, 34, 195, 391, - -173, 417, -173, 215, 187, 210, 206, 188, 12, -173, - -173, -1, -173, -173, 469, -173, -173, -173, 4, -173, - 220, 224, -173, -173, 193, -173, 54, 8, 113, 227, - 11, 228, -173, -173, -173, -173, -173, 239, -173, -173, - -173, -173, 223, -173, 209, 212, 234, 110, -173, -173, - 213, -173, 185, -173, -173, -173, -173, -173, 443, -173, - 238, 188, 469, 216, 240, -173, 241, 51, -173, 155, - 6, 217, -173, -173, -173, -173, 249, -173, 219, 221, - 63, 250, 221, 157, 157, 222, -173, 157, 157, -173, - 229, 133, -173, 230, 236, 469, -173, 243, 469, -173, - 253, 257, 469, -173, -173, -173, -173, 244, 246, -173, - -173, 284, -173, 251, 254, -173, -173, -173, 286, -173, - 255, -173, -173, 165, 290, -173, 221, 292, 293, 188, - 188, 294, 296, 289, -173, 298, 302, 57, -173, -173, - -173, 301, 309, 109, 314, -173, 469, 469, 61, -173, - -173, 316, 288, -173, 307, -173, 64, 323, -173, 295, - -173, 192, 321, -173, 320, 326, -173, 157, 157, 157, - 157, 153, -173, 469, -173, -173, 247, 285, -173, 317, - 469, 188, 188, 71, 329, -173, -173, 188, 188, -173, - -173, -173, -173, -173, -173, 297, -173, 469, -173, 330, - 331, 188, 188, 332, 333, 339, -173, 188, 188, 335, - 338, 188, 188, -173, 337, 341, 188, 188, 344, 342, - 315, 188, 188, 346, 351, -173, 188, 364, 366, 359, - 188, 188, 362, 469, -173, 188, 368, 367, 188, -173, - 369, -173, 188, 371, 188, 373, -173, 380, 188, -173, - 381, -173 + 11, -186, -23, 20, -186, 43, 454, -186, -186, 69, + -186, -186, 72, 4, -186, -186, -186, -19, 21, -186, + 70, 7, -186, -186, -186, 81, 89, -186, 22, -186, + -186, -186, -186, 173, -186, 316, -186, 108, 50, 63, + -186, -186, -186, 96, -11, 107, 117, 117, 125, 87, + 266, -186, -186, -186, -186, -186, -186, 420, -186, -186, + 97, 131, 139, 160, 161, -3, 128, 119, 162, 163, + 166, 167, 135, 86, 420, 64, -186, 24, 28, 342, + -186, 368, -186, 169, 141, 177, 164, 152, 10, -186, + -186, -1, -186, -186, 420, -186, -186, -186, 260, -186, + 185, 187, -186, -186, 155, -186, 148, 30, 150, 190, + 100, 192, -186, -186, -186, -186, -186, 197, -186, -186, + -186, -186, 186, -186, 165, 168, 204, 118, -186, -186, + 175, -186, 121, -186, -186, -186, -186, -186, 394, -186, + 200, 152, 420, 176, 212, -186, 218, 9, -186, 122, + 6, 188, -186, -186, -186, -186, 221, -186, 189, 191, + 75, 220, 223, 191, 128, 128, 194, -186, 128, 128, + -186, 195, 115, -186, 201, 202, 420, -186, 208, 420, + -186, 239, 245, 420, -186, -186, -186, -186, 216, 217, + -186, -186, 252, -186, 222, 225, -186, -186, -186, 261, + -186, 155, -186, -186, 149, 262, -186, 191, 268, 269, + 152, 152, 270, 263, 271, -186, 280, 286, 76, -186, + -186, -186, 273, 293, 290, 295, -186, 420, 420, 48, + -186, -186, 303, 272, -186, 301, -186, 313, -186, 155, + -186, 158, 310, -186, 314, 318, -186, 128, 128, 128, + 128, 123, -186, 420, -186, -186, 114, 219, -186, 306, + 420, 152, 319, -186, -186, 152, 152, -186, -186, -186, + -186, -186, -186, 292, -186, 420, -186, 324, 152, 326, + -186, 332, -186, 152, 338, 152, -186, 339, 152, 348, + 315, 152, 345, -186, 352, 355, 152, 420, -186, 357, + -186, -186 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { - -173, -173, -173, 375, -90, -173, -173, -173, -173, -173, - 358, -173, -173, -173, -173, 350, -173, -173, -173, -172, - -173, -173, -173, 23, -91, -9, -173, -173, -35, -173, - -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, - -173, -173, -173, -173, 198, -173, 274, 324, -77, -173, - -173, 360, -173, -173, -173 + -186, -186, -186, 360, -89, -186, -186, -186, -186, -186, + 356, -186, -186, -186, -186, 328, -186, -186, -186, -170, + -185, -186, -186, -186, -138, -86, -63, -186, -186, -35, + -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, + -186, -186, -186, -186, -186, 174, -186, 255, 304, -74, + -186, -186, 337, -186, -186, -186 }; /* 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 -124 +#define YYTABLE_NINF -125 static const short int yytable[] = { - 76, 149, 136, 223, 148, 153, 13, 201, 57, 154, - 228, 202, 59, 161, 26, 19, 60, 145, 12, 165, - 92, 170, 61, 62, 63, 171, 64, 14, 93, 65, - 66, 67, 68, 69, 30, 23, 70, 71, 31, 122, - 24, 129, 23, 94, 76, 73, 76, 24, 27, 166, - 191, 20, 196, 146, 256, 257, 197, 110, 17, 152, - 203, 136, 153, 155, 163, 57, -122, 164, 165, 59, - 123, 251, 85, 60, 20, 130, 209, 261, 18, 61, - 62, 63, 86, 64, 281, 29, 65, 66, 67, 68, - 69, 33, 198, 70, 71, -122, -122, -122, 166, 124, - 125, 126, 73, 76, 193, 193, 23, 192, 35, 237, - 153, 24, 193, 57, 254, 183, 81, 59, 244, 245, - 82, 60, 83, 167, 84, 1, 168, 61, 62, 63, - 87, 64, 2, 3, 65, 66, 67, 68, 69, 88, - 4, 70, 71, 225, 124, 125, 126, 36, 264, 91, - 73, 112, 106, 37, 212, 213, 38, 107, 215, 216, - 100, 218, 220, 199, -2, 15, 102, -14, 200, 219, - 279, 280, 1, 238, 107, 103, 283, 284, 239, 2, - 3, 118, 208, 119, 120, 211, 121, 4, 155, 273, - 289, 290, 186, 155, 274, 187, 294, 295, 107, 265, - 298, 299, 187, 133, 134, 303, 304, 104, 105, 115, - 308, 309, 113, 114, 116, 312, 141, 117, 276, 316, - 317, 155, 155, 139, 320, 278, 156, 323, 140, 143, - 142, 325, 157, 327, 160, 169, 172, 330, 269, 270, - 271, 272, 286, 175, 178, 182, 190, 194, 153, 195, - 180, 57, -121, 181, 185, 59, 205, 193, 204, 60, - 207, 210, 130, 214, 226, 61, 62, 63, 227, 64, - 217, 221, 65, 66, 67, 68, 69, 222, 319, 70, - 71, -121, -121, -121, 224, 229, 153, 231, 73, 57, - -123, 232, 233, 59, 235, 234, 236, 60, 240, 242, - 243, 246, 248, 61, 62, 63, 247, 64, 249, 252, - 65, 66, 67, 68, 69, 250, 253, 70, 71, -123, - -123, -123, 255, 40, 258, 266, 73, 41, 95, 259, - 42, 260, 96, 267, 262, 42, 263, 268, 285, 43, - 282, 277, 288, 287, 43, 291, 292, 293, 296, 297, - 301, 305, 44, 45, 302, 306, 307, 44, 45, 310, - 46, 47, 48, 49, 311, 46, 47, 48, 49, 57, - 58, 313, 315, 59, 314, 318, 321, 60, 326, 32, - 322, 16, 324, 61, 62, 63, 328, 64, 329, 331, - 65, 66, 67, 68, 69, 57, 135, 70, 71, 59, - 97, 184, 72, 60, 241, 138, 73, 90, 0, 61, - 62, 63, 0, 64, 0, 0, 65, 66, 67, 68, - 69, 57, 137, 70, 71, 59, 0, 0, 72, 60, - 0, 0, 73, 0, 0, 61, 62, 63, 0, 64, - 0, 0, 65, 66, 67, 68, 69, 57, 189, 70, - 71, 59, 0, 0, 72, 60, 0, 0, 73, 0, - 0, 61, 62, 63, 0, 64, 0, 0, 65, 66, - 67, 68, 69, 57, 0, 70, 71, 59, 0, 0, - 72, 60, 0, 0, 73, 0, 0, 61, 62, 63, - 0, 64, 0, 0, 65, 66, 67, 68, 69, 0, - 0, 70, 71, 0, 0, 0, 0, 0, 0, 0, - 73 + 76, 144, 149, 110, 148, 136, 224, 202, 30, 19, + 197, 203, 31, 229, 198, 145, 237, 23, 12, 1, + 85, 209, 24, 36, 13, 212, 2, 3, 26, 37, + 86, 129, 38, 106, 4, 23, 133, 134, 107, 122, + 24, 166, 23, 14, 76, 20, 76, 24, 20, 153, + 199, 146, 57, -123, 262, 192, 59, 256, 257, 152, + 60, 204, 27, 155, 136, 130, 61, 62, 63, 123, + 64, 167, 17, 65, 66, 67, 68, 69, 18, 29, + 70, 71, -123, -123, -123, 33, -61, 166, 92, 73, + 251, 82, 118, 35, 119, 120, 93, 121, 124, 125, + 126, 213, 214, 76, 83, 216, 217, 193, 219, 221, + 171, 94, 81, 87, 172, 153, 194, 167, 57, -122, + 84, 88, 59, 184, 244, 245, 60, 112, 187, 91, + 200, 188, 61, 62, 63, 201, 64, 102, 100, 65, + 66, 67, 68, 69, 226, 103, 70, 71, -122, -122, + -122, 220, 124, 125, 126, 73, 107, 238, 164, 271, + 168, 165, 239, 169, 272, 263, 104, 105, 188, 107, + 113, 114, 115, 116, 40, 277, 117, 139, 41, 279, + 280, 42, 140, 141, 267, 268, 269, 270, 142, 155, + 43, 156, 284, 143, 155, 157, 160, 287, 170, 289, + 173, 176, 292, 44, 45, 295, 181, 179, 191, 182, + 299, 46, 47, 48, 49, 183, 186, 194, 274, 195, + 153, 155, 155, 57, -124, 276, 196, 59, 206, 205, + 208, 60, 130, 210, 211, 215, 218, 61, 62, 63, + 282, 64, 222, 223, 65, 66, 67, 68, 69, 225, + 227, 70, 71, -124, -124, -124, 228, 230, 232, 233, + 73, 153, 300, 234, 57, 154, 235, 95, 59, 236, + 240, 96, 60, 247, 42, 242, 243, 246, 61, 62, + 63, 252, 64, 43, 248, 65, 66, 67, 68, 69, + 249, 153, 70, 71, 57, 254, 44, 45, 59, 250, + 253, 73, 60, 255, 46, 47, 48, 49, 61, 62, + 63, 258, 64, 259, 264, 65, 66, 67, 68, 69, + 57, 58, 70, 71, 59, 260, 261, 265, 60, 266, + 275, 73, 278, 281, 61, 62, 63, 283, 64, 285, + 286, 65, 66, 67, 68, 69, 57, 135, 70, 71, + 59, 288, 291, 72, 60, 293, 294, 73, 296, 297, + 61, 62, 63, 298, 64, 301, 16, 65, 66, 67, + 68, 69, 57, 137, 70, 71, 59, 32, 97, 72, + 60, 241, 185, 73, 90, 138, 61, 62, 63, 0, + 64, 0, 0, 65, 66, 67, 68, 69, 57, 190, + 70, 71, 59, 0, 0, 72, 60, 0, 0, 73, + 0, 0, 61, 62, 63, 0, 64, 0, 0, 65, + 66, 67, 68, 69, 57, 0, 70, 71, 59, 0, + 0, 72, 60, 0, 0, 73, 0, 0, 61, 62, + 63, 0, 64, 0, 0, 65, 66, 67, 68, 69, + 0, 0, 70, 71, -2, 15, 0, -14, 0, 0, + 0, 73, 1, 0, 0, 0, 0, 0, 0, 2, + 3, 0, 0, 0, 0, 0, 0, 4 }; static const short int yycheck[] = { - 35, 91, 79, 175, 5, 1, 4, 1, 4, 5, - 182, 5, 8, 104, 7, 5, 12, 5, 41, 11, - 1, 10, 18, 19, 20, 14, 22, 0, 9, 25, - 26, 27, 28, 29, 1, 36, 32, 33, 5, 74, - 41, 7, 36, 24, 79, 41, 81, 41, 41, 41, - 141, 41, 1, 41, 226, 227, 5, 66, 3, 94, - 150, 138, 1, 98, 10, 4, 5, 13, 11, 8, - 5, 14, 31, 12, 41, 41, 13, 13, 6, 18, - 19, 20, 41, 22, 13, 9, 25, 26, 27, 28, - 29, 4, 41, 32, 33, 34, 35, 36, 41, 34, - 35, 36, 41, 138, 41, 41, 36, 142, 4, 200, - 1, 41, 41, 4, 5, 5, 4, 8, 209, 210, - 41, 12, 41, 10, 24, 8, 13, 18, 19, 20, - 6, 22, 15, 16, 25, 26, 27, 28, 29, 4, - 23, 32, 33, 178, 34, 35, 36, 1, 239, 4, - 41, 8, 36, 7, 163, 164, 10, 41, 167, 168, - 41, 170, 171, 8, 0, 1, 6, 3, 13, 36, - 261, 262, 8, 8, 41, 6, 267, 268, 13, 15, - 16, 6, 159, 8, 9, 162, 11, 23, 223, 36, - 281, 282, 7, 228, 41, 10, 287, 288, 41, 7, - 291, 292, 10, 8, 9, 296, 297, 6, 6, 6, - 301, 302, 8, 8, 6, 306, 6, 41, 253, 310, - 311, 256, 257, 8, 315, 260, 6, 318, 41, 41, - 24, 322, 8, 324, 41, 8, 8, 328, 247, 248, - 249, 250, 277, 4, 21, 11, 8, 7, 1, 8, - 41, 4, 5, 41, 41, 8, 7, 41, 41, 12, - 41, 11, 41, 41, 11, 18, 19, 20, 11, 22, - 41, 41, 25, 26, 27, 28, 29, 41, 313, 32, - 33, 34, 35, 36, 41, 41, 1, 41, 41, 4, - 5, 7, 41, 8, 8, 41, 41, 12, 8, 7, - 7, 7, 13, 18, 19, 20, 10, 22, 10, 8, - 25, 26, 27, 28, 29, 13, 7, 32, 33, 34, - 35, 36, 8, 1, 8, 4, 41, 5, 1, 41, - 8, 24, 5, 13, 11, 8, 41, 11, 41, 17, - 11, 24, 11, 13, 17, 13, 13, 8, 13, 11, - 13, 7, 30, 31, 13, 13, 41, 30, 31, 13, - 38, 39, 40, 41, 13, 38, 39, 40, 41, 4, - 5, 7, 13, 8, 8, 13, 8, 12, 7, 21, - 13, 6, 13, 18, 19, 20, 13, 22, 8, 8, - 25, 26, 27, 28, 29, 4, 5, 32, 33, 8, - 50, 127, 37, 12, 206, 81, 41, 47, -1, 18, - 19, 20, -1, 22, -1, -1, 25, 26, 27, 28, - 29, 4, 5, 32, 33, 8, -1, -1, 37, 12, - -1, -1, 41, -1, -1, 18, 19, 20, -1, 22, - -1, -1, 25, 26, 27, 28, 29, 4, 5, 32, - 33, 8, -1, -1, 37, 12, -1, -1, 41, -1, - -1, 18, 19, 20, -1, 22, -1, -1, 25, 26, - 27, 28, 29, 4, -1, 32, 33, 8, -1, -1, - 37, 12, -1, -1, 41, -1, -1, 18, 19, 20, - -1, 22, -1, -1, 25, 26, 27, 28, 29, -1, - -1, 32, 33, -1, -1, -1, -1, -1, -1, -1, - 41 + 35, 87, 91, 66, 5, 79, 176, 1, 1, 5, + 1, 5, 5, 183, 5, 5, 201, 36, 41, 8, + 31, 159, 41, 1, 4, 163, 15, 16, 7, 7, + 41, 7, 10, 36, 23, 36, 8, 9, 41, 74, + 41, 11, 36, 0, 79, 41, 81, 41, 41, 1, + 41, 41, 4, 5, 239, 141, 8, 227, 228, 94, + 12, 150, 41, 98, 138, 41, 18, 19, 20, 5, + 22, 41, 3, 25, 26, 27, 28, 29, 6, 9, + 32, 33, 34, 35, 36, 4, 11, 11, 1, 41, + 14, 41, 6, 4, 8, 9, 9, 11, 34, 35, + 36, 164, 165, 138, 41, 168, 169, 142, 171, 172, + 10, 24, 4, 6, 14, 1, 41, 41, 4, 5, + 24, 4, 8, 5, 210, 211, 12, 8, 7, 4, + 8, 10, 18, 19, 20, 13, 22, 6, 41, 25, + 26, 27, 28, 29, 179, 6, 32, 33, 34, 35, + 36, 36, 34, 35, 36, 41, 41, 8, 10, 36, + 10, 13, 13, 13, 41, 7, 6, 6, 10, 41, + 8, 8, 6, 6, 1, 261, 41, 8, 5, 265, + 266, 8, 41, 6, 247, 248, 249, 250, 24, 224, + 17, 6, 278, 41, 229, 8, 41, 283, 8, 285, + 8, 4, 288, 30, 31, 291, 41, 21, 8, 41, + 296, 38, 39, 40, 41, 11, 41, 41, 253, 7, + 1, 256, 257, 4, 5, 260, 8, 8, 7, 41, + 41, 12, 41, 13, 11, 41, 41, 18, 19, 20, + 275, 22, 41, 41, 25, 26, 27, 28, 29, 41, + 11, 32, 33, 34, 35, 36, 11, 41, 41, 7, + 41, 1, 297, 41, 4, 5, 41, 1, 8, 8, + 8, 5, 12, 10, 8, 7, 7, 7, 18, 19, + 20, 8, 22, 17, 13, 25, 26, 27, 28, 29, + 10, 1, 32, 33, 4, 5, 30, 31, 8, 13, + 7, 41, 12, 8, 38, 39, 40, 41, 18, 19, + 20, 8, 22, 41, 4, 25, 26, 27, 28, 29, + 4, 5, 32, 33, 8, 24, 13, 13, 12, 11, + 24, 41, 13, 41, 18, 19, 20, 13, 22, 13, + 8, 25, 26, 27, 28, 29, 4, 5, 32, 33, + 8, 13, 13, 37, 12, 7, 41, 41, 13, 7, + 18, 19, 20, 8, 22, 8, 6, 25, 26, 27, + 28, 29, 4, 5, 32, 33, 8, 21, 50, 37, + 12, 207, 127, 41, 47, 81, 18, 19, 20, -1, + 22, -1, -1, 25, 26, 27, 28, 29, 4, 5, + 32, 33, 8, -1, -1, 37, 12, -1, -1, 41, + -1, -1, 18, 19, 20, -1, 22, -1, -1, 25, + 26, 27, 28, 29, 4, -1, 32, 33, 8, -1, + -1, 37, 12, -1, -1, 41, -1, -1, 18, 19, + 20, -1, 22, -1, -1, 25, 26, 27, 28, 29, + -1, -1, 32, 33, 0, 1, -1, 3, -1, -1, + -1, 41, 8, -1, -1, -1, -1, -1, -1, 15, + 16, -1, -1, -1, -1, -1, -1, 23 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -886,35 +868,32 @@ static const unsigned char yystos[] = 41, 51, 52, 36, 41, 46, 7, 41, 54, 9, 1, 5, 52, 4, 55, 4, 1, 7, 10, 53, 1, 5, 8, 17, 30, 31, 38, 39, 40, 41, - 56, 57, 59, 60, 91, 92, 96, 4, 5, 8, + 56, 57, 59, 60, 92, 93, 97, 4, 5, 8, 12, 18, 19, 20, 22, 25, 26, 27, 28, 29, - 32, 33, 37, 41, 62, 68, 70, 82, 84, 89, - 90, 4, 41, 41, 24, 31, 41, 6, 4, 93, - 93, 4, 1, 9, 24, 1, 5, 57, 61, 70, - 41, 80, 6, 6, 6, 6, 36, 41, 67, 78, - 67, 79, 8, 8, 8, 6, 6, 41, 6, 8, - 9, 11, 70, 5, 34, 35, 36, 87, 88, 7, - 41, 65, 86, 8, 9, 5, 90, 5, 89, 8, - 41, 6, 24, 41, 66, 5, 41, 94, 5, 46, - 95, 58, 70, 1, 5, 70, 6, 8, 69, 63, - 41, 66, 64, 10, 13, 11, 41, 10, 13, 8, - 10, 14, 8, 72, 75, 4, 83, 71, 21, 77, - 41, 41, 11, 5, 88, 41, 7, 10, 76, 5, - 8, 66, 70, 41, 7, 8, 1, 5, 41, 8, - 13, 1, 5, 46, 41, 7, 81, 41, 65, 13, - 11, 65, 67, 67, 41, 67, 67, 41, 67, 36, - 67, 41, 41, 61, 41, 70, 11, 11, 61, 41, - 85, 41, 7, 41, 41, 8, 41, 66, 8, 13, - 8, 86, 7, 7, 66, 66, 7, 10, 13, 10, + 32, 33, 37, 41, 63, 69, 71, 83, 85, 90, + 91, 4, 41, 41, 24, 31, 41, 6, 4, 94, + 94, 4, 1, 9, 24, 1, 5, 57, 61, 71, + 41, 81, 6, 6, 6, 6, 36, 41, 68, 79, + 68, 80, 8, 8, 8, 6, 6, 41, 6, 8, + 9, 11, 71, 5, 34, 35, 36, 88, 89, 7, + 41, 66, 87, 8, 9, 5, 91, 5, 90, 8, + 41, 6, 24, 41, 67, 5, 41, 95, 5, 46, + 96, 58, 71, 1, 5, 71, 6, 8, 70, 64, + 41, 62, 67, 65, 10, 13, 11, 41, 10, 13, + 8, 10, 14, 8, 73, 76, 4, 84, 72, 21, + 78, 41, 41, 11, 5, 89, 41, 7, 10, 77, + 5, 8, 67, 71, 41, 7, 8, 1, 5, 41, + 8, 13, 1, 5, 46, 41, 7, 82, 41, 66, + 13, 11, 66, 68, 68, 41, 68, 68, 41, 68, + 36, 68, 41, 41, 61, 41, 71, 11, 11, 61, + 41, 86, 41, 7, 41, 41, 8, 62, 8, 13, + 8, 87, 7, 7, 67, 67, 7, 10, 13, 10, 13, 14, 8, 7, 5, 8, 61, 61, 8, 41, - 24, 13, 11, 41, 66, 7, 4, 13, 11, 67, - 67, 67, 67, 36, 41, 73, 70, 24, 70, 66, - 66, 13, 11, 66, 66, 41, 70, 13, 11, 66, - 66, 13, 13, 8, 66, 66, 13, 11, 66, 66, - 74, 13, 13, 66, 66, 7, 13, 41, 66, 66, - 13, 13, 66, 7, 8, 13, 66, 66, 13, 70, - 66, 8, 13, 66, 13, 66, 7, 66, 13, 8, - 66, 8 + 24, 13, 62, 7, 4, 13, 11, 68, 68, 68, + 68, 36, 41, 74, 71, 24, 71, 67, 13, 67, + 67, 41, 71, 13, 67, 13, 8, 67, 13, 67, + 75, 13, 67, 7, 41, 67, 13, 7, 8, 67, + 71, 8 }; #define yyerrok (yyerrstatus = 0) @@ -1290,307 +1269,312 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) switch (yytype) { case 41: /* "word" */ -#line 168 "ael.y" +#line 169 "ael.y" { free((yyvaluep->str));}; -#line 1296 "ael.tab.c" +#line 1275 "ael.tab.c" break; case 44: /* "objects" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1304 "ael.tab.c" +#line 1283 "ael.tab.c" break; case 45: /* "object" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1312 "ael.tab.c" +#line 1291 "ael.tab.c" break; case 46: /* "word_or_default" */ -#line 168 "ael.y" +#line 169 "ael.y" { free((yyvaluep->str));}; -#line 1317 "ael.tab.c" +#line 1296 "ael.tab.c" break; case 47: /* "context" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1325 "ael.tab.c" +#line 1304 "ael.tab.c" break; case 49: /* "macro" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1333 "ael.tab.c" +#line 1312 "ael.tab.c" break; case 50: /* "globals" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1341 "ael.tab.c" +#line 1320 "ael.tab.c" break; case 51: /* "global_statements" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1349 "ael.tab.c" +#line 1328 "ael.tab.c" break; case 52: /* "global_statement" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1357 "ael.tab.c" +#line 1336 "ael.tab.c" break; case 54: /* "arglist" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1365 "ael.tab.c" +#line 1344 "ael.tab.c" break; case 55: /* "elements_block" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1373 "ael.tab.c" +#line 1352 "ael.tab.c" break; case 56: /* "elements" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1381 "ael.tab.c" +#line 1360 "ael.tab.c" break; case 57: /* "element" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1389 "ael.tab.c" +#line 1368 "ael.tab.c" break; case 59: /* "ignorepat" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1397 "ael.tab.c" +#line 1376 "ael.tab.c" break; case 60: /* "extension" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1405 "ael.tab.c" +#line 1384 "ael.tab.c" break; case 61: /* "statements" */ -#line 155 "ael.y" +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1413 "ael.tab.c" +#line 1392 "ael.tab.c" break; - case 62: /* "if_like_head" */ -#line 155 "ael.y" + case 62: /* "timerange" */ +#line 169 "ael.y" + { free((yyvaluep->str));}; +#line 1397 "ael.tab.c" + break; + case 63: /* "if_like_head" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1421 "ael.tab.c" +#line 1405 "ael.tab.c" break; - case 65: /* "word_list" */ -#line 168 "ael.y" + case 66: /* "word_list" */ +#line 169 "ael.y" { free((yyvaluep->str));}; -#line 1426 "ael.tab.c" +#line 1410 "ael.tab.c" break; - case 66: /* "word3_list" */ -#line 168 "ael.y" + case 67: /* "word3_list" */ +#line 169 "ael.y" { free((yyvaluep->str));}; -#line 1431 "ael.tab.c" +#line 1415 "ael.tab.c" break; - case 67: /* "goto_word" */ -#line 168 "ael.y" + case 68: /* "goto_word" */ +#line 169 "ael.y" { free((yyvaluep->str));}; +#line 1420 "ael.tab.c" + break; + case 69: /* "switch_head" */ +#line 156 "ael.y" + { + destroy_pval((yyvaluep->pval)); + prev_word=0; + }; +#line 1428 "ael.tab.c" + break; + case 71: /* "statement" */ +#line 156 "ael.y" + { + destroy_pval((yyvaluep->pval)); + prev_word=0; + }; #line 1436 "ael.tab.c" break; - case 68: /* "switch_head" */ -#line 155 "ael.y" + case 78: /* "opt_else" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1444 "ael.tab.c" break; - case 70: /* "statement" */ -#line 155 "ael.y" + case 79: /* "target" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1452 "ael.tab.c" break; - case 77: /* "opt_else" */ -#line 155 "ael.y" + case 80: /* "jumptarget" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1460 "ael.tab.c" break; - case 78: /* "target" */ -#line 155 "ael.y" + case 81: /* "macro_call" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1468 "ael.tab.c" break; - case 79: /* "jumptarget" */ -#line 155 "ael.y" + case 83: /* "application_call_head" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1476 "ael.tab.c" break; - case 80: /* "macro_call" */ -#line 155 "ael.y" + case 85: /* "application_call" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1484 "ael.tab.c" break; - case 82: /* "application_call_head" */ -#line 155 "ael.y" + case 86: /* "opt_word" */ +#line 169 "ael.y" + { free((yyvaluep->str));}; +#line 1489 "ael.tab.c" + break; + case 87: /* "eval_arglist" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1492 "ael.tab.c" +#line 1497 "ael.tab.c" break; - case 84: /* "application_call" */ -#line 155 "ael.y" + case 88: /* "case_statements" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1500 "ael.tab.c" - break; - case 85: /* "opt_word" */ -#line 168 "ael.y" - { free((yyvaluep->str));}; #line 1505 "ael.tab.c" break; - case 86: /* "eval_arglist" */ -#line 155 "ael.y" + case 89: /* "case_statement" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1513 "ael.tab.c" break; - case 87: /* "case_statements" */ -#line 155 "ael.y" + case 90: /* "macro_statements" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1521 "ael.tab.c" break; - case 88: /* "case_statement" */ -#line 155 "ael.y" + case 91: /* "macro_statement" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1529 "ael.tab.c" break; - case 89: /* "macro_statements" */ -#line 155 "ael.y" + case 92: /* "switches" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1537 "ael.tab.c" break; - case 90: /* "macro_statement" */ -#line 155 "ael.y" + case 93: /* "eswitches" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1545 "ael.tab.c" break; - case 91: /* "switches" */ -#line 155 "ael.y" + case 94: /* "switchlist_block" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1553 "ael.tab.c" break; - case 92: /* "eswitches" */ -#line 155 "ael.y" + case 95: /* "switchlist" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1561 "ael.tab.c" break; - case 93: /* "switchlist_block" */ -#line 155 "ael.y" + case 96: /* "includeslist" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1569 "ael.tab.c" break; - case 94: /* "switchlist" */ -#line 155 "ael.y" + case 97: /* "includes" */ +#line 156 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1577 "ael.tab.c" break; - case 95: /* "includeslist" */ -#line 155 "ael.y" - { - destroy_pval((yyvaluep->pval)); - prev_word=0; - }; -#line 1585 "ael.tab.c" - break; - case 96: /* "includes" */ -#line 155 "ael.y" - { - destroy_pval((yyvaluep->pval)); - prev_word=0; - }; -#line 1593 "ael.tab.c" - break; default: break; @@ -1906,57 +1890,57 @@ yyreduce: switch (yyn) { case 2: -#line 173 "ael.y" +#line 175 "ael.y" { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;} break; case 3: -#line 176 "ael.y" +#line 178 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 4: -#line 177 "ael.y" +#line 179 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 5: -#line 178 "ael.y" +#line 180 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 6: -#line 181 "ael.y" +#line 183 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 7: -#line 182 "ael.y" +#line 184 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 8: -#line 183 "ael.y" +#line 185 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 9: -#line 184 "ael.y" +#line 186 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 10: -#line 187 "ael.y" +#line 189 "ael.y" { (yyval.str) = (yyvsp[0].str); ;} break; case 11: -#line 188 "ael.y" +#line 190 "ael.y" { (yyval.str) = strdup("default"); ;} break; case 12: -#line 191 "ael.y" +#line 193 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); @@ -1965,31 +1949,31 @@ yyreduce: break; case 13: -#line 199 "ael.y" +#line 201 "ael.y" { (yyval.intval) = 1; ;} break; case 14: -#line 200 "ael.y" +#line 202 "ael.y" { (yyval.intval) = 0; ;} break; case 15: -#line 203 "ael.y" +#line 205 "ael.y" { (yyval.pval) = npval2(PV_MACRO, &(yylsp[-7]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-6].str); (yyval.pval)->u2.arglist = (yyvsp[-4].pval); (yyval.pval)->u3.macro_statements = (yyvsp[-1].pval); ;} break; case 16: -#line 206 "ael.y" +#line 208 "ael.y" { (yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u2.arglist = (yyvsp[-3].pval); ;} break; case 17: -#line 209 "ael.y" +#line 211 "ael.y" { (yyval.pval) = npval2(PV_MACRO, &(yylsp[-6]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-5].str); @@ -1997,47 +1981,47 @@ yyreduce: break; case 18: -#line 213 "ael.y" +#line 215 "ael.y" { (yyval.pval) = npval2(PV_MACRO, &(yylsp[-5]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); ;} break; case 19: -#line 218 "ael.y" +#line 220 "ael.y" { (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.statements = (yyvsp[-1].pval);;} break; case 20: -#line 221 "ael.y" +#line 223 "ael.y" { /* empty globals is OK */ (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-2]), &(yylsp[0])); ;} break; case 21: -#line 225 "ael.y" +#line 227 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 22: -#line 226 "ael.y" +#line 228 "ael.y" {(yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 23: -#line 227 "ael.y" +#line 229 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 24: -#line 230 "ael.y" +#line 232 "ael.y" { reset_semicount(parseio->scanner); ;} break; case 25: -#line 230 "ael.y" +#line 232 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); @@ -2045,82 +2029,82 @@ yyreduce: break; case 26: -#line 236 "ael.y" +#line 238 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 27: -#line 237 "ael.y" +#line 239 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;} break; case 28: -#line 238 "ael.y" +#line 240 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 29: -#line 241 "ael.y" +#line 243 "ael.y" { (yyval.pval) = NULL; ;} break; case 30: -#line 242 "ael.y" +#line 244 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); ;} break; case 31: -#line 245 "ael.y" +#line 247 "ael.y" { (yyval.pval)=(yyvsp[0].pval);;} break; case 32: -#line 246 "ael.y" +#line 248 "ael.y" {(yyval.pval)=0;;} break; case 33: -#line 247 "ael.y" +#line 249 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 34: -#line 248 "ael.y" +#line 250 "ael.y" { (yyval.pval)=(yyvsp[-1].pval);;} break; case 35: -#line 251 "ael.y" +#line 253 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 36: -#line 252 "ael.y" +#line 254 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 37: -#line 253 "ael.y" +#line 255 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 38: -#line 254 "ael.y" +#line 256 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 39: -#line 255 "ael.y" +#line 257 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 40: -#line 256 "ael.y" +#line 258 "ael.y" { reset_semicount(parseio->scanner); ;} break; case 41: -#line 256 "ael.y" +#line 258 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); @@ -2128,24 +2112,24 @@ yyreduce: break; case 42: -#line 260 "ael.y" +#line 262 "ael.y" {free((yyvsp[-1].str)); (yyval.pval)=0;;} break; case 43: -#line 261 "ael.y" +#line 263 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 44: -#line 264 "ael.y" +#line 266 "ael.y" { (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 45: -#line 269 "ael.y" +#line 271 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2153,7 +2137,7 @@ yyreduce: break; case 46: -#line 273 "ael.y" +#line 275 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2162,7 +2146,7 @@ yyreduce: break; case 47: -#line 278 "ael.y" +#line 280 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2171,7 +2155,7 @@ yyreduce: break; case 48: -#line 283 "ael.y" +#line 285 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2181,61 +2165,59 @@ yyreduce: break; case 49: -#line 292 "ael.y" +#line 294 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 50: -#line 293 "ael.y" +#line 295 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 51: -#line 294 "ael.y" +#line 296 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 52: -#line 298 "ael.y" - { reset_parencount(parseio->scanner); ;} +#line 302 "ael.y" + { + asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[-4].str), (yyvsp[-2].str), (yyvsp[0].str)); + free((yyvsp[-4].str)); + free((yyvsp[-2].str)); + free((yyvsp[0].str)); ;} break; case 53: -#line 298 "ael.y" - { - (yyval.pval)= npval2(PV_IF, &(yylsp[-4]), &(yylsp[0])); - (yyval.pval)->u1.str = (yyvsp[-1].str); ;} +#line 307 "ael.y" + { (yyval.str) = (yyvsp[0].str); ;} break; case 54: -#line 301 "ael.y" +#line 311 "ael.y" { reset_parencount(parseio->scanner); ;} break; case 55: -#line 301 "ael.y" +#line 311 "ael.y" { - (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-4]), &(yylsp[0])); - (yyval.pval)->u1.str=(yyvsp[-1].str);;} + (yyval.pval)= npval2(PV_IF, &(yylsp[-4]), &(yylsp[0])); + (yyval.pval)->u1.str = (yyvsp[-1].str); ;} break; case 56: -#line 305 "ael.y" - { - (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-13]), &(yylsp[-13])); - (yyval.pval)->u1.list = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-7])); - asprintf(&((yyval.pval)->u1.list->u1.str), "%s:%s:%s", (yyvsp[-11].str), (yyvsp[-9].str), (yyvsp[-7].str)); - free((yyvsp[-11].str)); - free((yyvsp[-9].str)); - free((yyvsp[-7].str)); - (yyval.pval)->u1.list->next = nword((yyvsp[-5].str), &(yylsp[-5])); - (yyval.pval)->u1.list->next->next = nword((yyvsp[-3].str), &(yylsp[-3])); - (yyval.pval)->u1.list->next->next->next = nword((yyvsp[-1].str), &(yylsp[-1])); - prev_word = 0; - ;} +#line 314 "ael.y" + { reset_parencount(parseio->scanner); ;} break; case 57: +#line 314 "ael.y" + { + (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-4]), &(yylsp[0])); + (yyval.pval)->u1.str=(yyvsp[-1].str);;} + break; + + case 58: #line 317 "ael.y" { (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-9]), &(yylsp[-5])); /* XXX @5 or greater ? */ @@ -2247,12 +2229,12 @@ yyreduce: ;} break; - case 58: + case 59: #line 333 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; - case 59: + case 60: #line 334 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); @@ -2261,12 +2243,12 @@ yyreduce: prev_word = (yyval.str);;} break; - case 60: + case 61: #line 341 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; - case 61: + case 62: #line 342 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); @@ -2275,7 +2257,7 @@ yyreduce: prev_word = (yyval.str);;} break; - case 62: + case 63: #line 347 "ael.y" { asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)); @@ -2285,12 +2267,12 @@ yyreduce: prev_word=(yyval.str);;} break; - case 63: + case 64: #line 355 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; - case 64: + case 65: #line 356 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); @@ -2298,7 +2280,7 @@ yyreduce: free((yyvsp[0].str));;} break; - case 65: + case 66: #line 360 "ael.y" { asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str)); @@ -2306,31 +2288,31 @@ yyreduce: free((yyvsp[0].str));;} break; - case 66: + case 67: #line 366 "ael.y" { reset_parencount(parseio->scanner); ;} break; - case 67: + case 68: #line 366 "ael.y" { (yyval.pval) = npval2(PV_SWITCH, &(yylsp[-5]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); ;} break; - case 68: + case 69: #line 374 "ael.y" { (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;} break; - case 69: + case 70: #line 377 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 70: + case 71: #line 377 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); @@ -2338,43 +2320,43 @@ yyreduce: (yyval.pval)->u2.val = (yyvsp[-1].str); ;} break; - case 71: + case 72: #line 381 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; - case 72: + case 73: #line 384 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; - case 73: + case 74: #line 387 "ael.y" { (yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); ;} break; - case 74: + case 75: #line 390 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 75: + case 76: #line 391 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 76: + case 77: #line 392 "ael.y" {reset_parencount(parseio->scanner);;} break; - case 77: + case 78: #line 392 "ael.y" { (yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0])); @@ -2384,12 +2366,12 @@ yyreduce: (yyval.pval)->u4.for_statements = (yyvsp[0].pval);;} break; - case 78: + case 79: #line 398 "ael.y" {reset_parencount(parseio->scanner);;} break; - case 79: + case 80: #line 398 "ael.y" { (yyval.pval) = npval2(PV_WHILE, &(yylsp[-5]), &(yylsp[0])); @@ -2397,44 +2379,44 @@ yyreduce: (yyval.pval)->u2.statements = (yyvsp[0].pval); ;} break; - case 80: + case 81: #line 402 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; - case 81: + case 82: #line 404 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0])); (yyval.pval)->u2.statements = (yyvsp[-1].pval);;} break; - case 82: + case 83: #line 407 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;} break; - case 83: + case 84: #line 409 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; - case 84: + case 85: #line 411 "ael.y" { (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; - case 85: + case 86: #line 414 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 86: + case 87: #line 414 "ael.y" { char *bufx; @@ -2471,22 +2453,22 @@ yyreduce: ;} break; - case 87: + case 88: #line 447 "ael.y" { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;} break; - case 88: + case 89: #line 448 "ael.y" { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;} break; - case 89: + case 90: #line 449 "ael.y" { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;} break; - case 90: + case 91: #line 450 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); @@ -2494,41 +2476,41 @@ yyreduce: (yyval.pval)->u3.else_statements = (yyvsp[0].pval);;} break; - case 91: + case 92: #line 454 "ael.y" { (yyval.pval)=0; ;} break; - case 92: + case 93: #line 457 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; - case 93: + case 94: #line 458 "ael.y" { (yyval.pval) = NULL ; ;} break; - case 94: + case 95: #line 463 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 95: + case 96: #line 464 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 96: + case 97: #line 467 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 97: + case 98: #line 470 "ael.y" { (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4])); @@ -2536,7 +2518,7 @@ yyreduce: (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 98: + case 99: #line 474 "ael.y" { (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4])); @@ -2544,7 +2526,7 @@ yyreduce: (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 99: + case 100: #line 478 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); @@ -2552,7 +2534,7 @@ yyreduce: (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 100: + case 101: #line 482 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); @@ -2560,21 +2542,21 @@ yyreduce: (yyval.pval)->next->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 101: + case 102: #line 489 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); (yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;} break; - case 102: + case 103: #line 492 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 103: + case 104: #line 495 "ael.y" { /* XXX they are stored in a different order */ (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); @@ -2582,7 +2564,7 @@ yyreduce: (yyval.pval)->next->next = nword((yyvsp[-2].str), &(yylsp[-2])); ;} break; - case 104: + case 105: #line 499 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); @@ -2590,7 +2572,7 @@ yyreduce: (yyval.pval)->next->next = nword(strdup("1"), &(yylsp[0])); ;} break; - case 105: + case 106: #line 503 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); @@ -2598,7 +2580,7 @@ yyreduce: (yyval.pval)->next->next = nword((yyvsp[-2].str), &(yylsp[-2])); ;} break; - case 106: + case 107: #line 507 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-2])); @@ -2606,12 +2588,12 @@ yyreduce: (yyval.pval)->next->next = nword( strdup("1"), &(yylsp[0])); ;} break; - case 107: + case 108: #line 513 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 108: + case 109: #line 513 "ael.y" { /* XXX original code had @2 but i think we need @5 */ @@ -2620,19 +2602,19 @@ yyreduce: (yyval.pval)->u2.arglist = (yyvsp[-1].pval);;} break; - case 109: + case 110: #line 518 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); ;} break; - case 110: + case 111: #line 526 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 111: + case 112: #line 526 "ael.y" { if (strcasecmp((yyvsp[-2].str),"goto") == 0) { @@ -2645,7 +2627,7 @@ yyreduce: } ;} break; - case 112: + case 113: #line 537 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0])); @@ -2656,49 +2638,49 @@ yyreduce: ;} break; - case 113: + case 114: #line 544 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; - case 114: + case 115: #line 547 "ael.y" { (yyval.str) = (yyvsp[0].str) ;} break; - case 115: + case 116: #line 548 "ael.y" { (yyval.str) = strdup(""); ;} break; - case 116: + case 117: #line 551 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 117: + case 118: #line 552 "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: + case 119: #line 555 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;} break; - case 119: + case 120: #line 558 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; - case 120: + case 121: #line 559 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; - case 121: + case 122: #line 562 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */ @@ -2706,7 +2688,7 @@ yyreduce: (yyval.pval)->u2.statements = (yyvsp[0].pval);;} break; - case 122: + case 123: #line 566 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0])); @@ -2714,7 +2696,7 @@ yyreduce: (yyval.pval)->u2.statements = (yyvsp[0].pval);;} break; - case 123: + case 124: #line 570 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */ @@ -2722,43 +2704,43 @@ yyreduce: (yyval.pval)->u2.statements = (yyvsp[0].pval);;} break; - case 124: + case 125: #line 574 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; - case 125: + case 126: #line 577 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = NULL;;} break; - case 126: + case 127: #line 580 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; - case 127: + case 128: #line 585 "ael.y" {(yyval.pval) = (yyvsp[0].pval);;} break; - case 128: + case 129: #line 586 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; - case 129: + case 130: #line 589 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; - case 130: + case 131: #line 590 "ael.y" { (yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0])); @@ -2766,68 +2748,52 @@ yyreduce: (yyval.pval)->u2.statements = (yyvsp[-1].pval);;} break; - case 131: + case 132: #line 596 "ael.y" { (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[0].pval); ;} break; - case 132: + case 133: #line 601 "ael.y" { (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[0].pval); ;} break; - case 133: + case 134: #line 606 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); ;} break; - case 134: + case 135: #line 607 "ael.y" { (yyval.pval) = NULL; ;} break; - case 135: + case 136: #line 610 "ael.y" { (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); ;} break; - case 136: + case 137: #line 611 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[-1].str), &(yylsp[-1]))); ;} break; - case 137: + case 138: #line 612 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; - case 138: + case 139: #line 615 "ael.y" { (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); ;} break; - case 139: -#line 617 "ael.y" - { - (yyval.pval) = nword((yyvsp[-13].str), &(yylsp[-13])); - (yyval.pval)->u2.arglist = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-7])); - asprintf( &((yyval.pval)->u2.arglist->u1.str), "%s:%s:%s", (yyvsp[-11].str), (yyvsp[-9].str), (yyvsp[-7].str)); - free((yyvsp[-11].str)); - free((yyvsp[-9].str)); - free((yyvsp[-7].str)); - (yyval.pval)->u2.arglist->next = nword((yyvsp[-5].str), &(yylsp[-5])); - (yyval.pval)->u2.arglist->next->next = nword((yyvsp[-3].str), &(yylsp[-3])); - (yyval.pval)->u2.arglist->next->next->next = nword((yyvsp[-1].str), &(yylsp[-1])); - prev_word=0; - ;} - break; - case 140: -#line 629 "ael.y" +#line 616 "ael.y" { (yyval.pval) = nword((yyvsp[-9].str), &(yylsp[-9])); (yyval.pval)->u2.arglist = nword((yyvsp[-7].str), &(yylsp[-7])); @@ -2839,35 +2805,16 @@ yyreduce: break; case 141: -#line 637 "ael.y" +#line 624 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[-1].str), &(yylsp[-1]))); ;} break; case 142: -#line 639 "ael.y" - { - pval *z = nword((yyvsp[-13].str), &(yylsp[-13])); - (yyval.pval) = linku1((yyvsp[-14].pval), z); - z->u2.arglist = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-7])); - asprintf( &((yyval.pval)->u2.arglist->u1.str), "%s:%s:%s", (yyvsp[-11].str), (yyvsp[-9].str), (yyvsp[-7].str)); - free((yyvsp[-11].str)); - free((yyvsp[-9].str)); - free((yyvsp[-7].str)); - z->u2.arglist->next = nword((yyvsp[-5].str), &(yylsp[-5])); - z->u2.arglist->next->next = nword((yyvsp[-3].str), &(yylsp[-3])); - z->u2.arglist->next->next->next = nword((yyvsp[-1].str), &(yylsp[-1])); - prev_word=0; - ;} - break; - - case 143: -#line 652 "ael.y" +#line 625 "ael.y" { - pval *z = npval2(PV_WORD, &(yylsp[-9]), &(yylsp[-8])); + pval *z = nword((yyvsp[-9].str), &(yylsp[-9])); (yyval.pval) = linku1((yyvsp[-10].pval), z); - (yyval.pval)->u2.arglist->u1.str = (yyvsp[-7].str); /* XXX maybe too early ? */ - z->u1.str = (yyvsp[-9].str); - z->u2.arglist = npval2(PV_WORD, &(yylsp[-7]), &(yylsp[-7])); /* XXX is this correct ? */ + z->u2.arglist = nword((yyvsp[-7].str), &(yylsp[-7])); z->u2.arglist->next = nword((yyvsp[-5].str), &(yylsp[-5])); z->u2.arglist->next->next = nword((yyvsp[-3].str), &(yylsp[-3])); z->u2.arglist->next->next->next = nword((yyvsp[-1].str), &(yylsp[-1])); @@ -2875,20 +2822,20 @@ yyreduce: ;} break; - case 144: -#line 663 "ael.y" + case 143: +#line 634 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; - case 145: -#line 666 "ael.y" + case 144: +#line 637 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; - case 146: -#line 669 "ael.y" + case 145: +#line 640 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;} break; @@ -2898,7 +2845,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 2902 "ael.tab.c" +#line 2849 "ael.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -3173,7 +3120,7 @@ yyreturn: } -#line 674 "ael.y" +#line 645 "ael.y" static char *token_equivs1[] = diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index 9eebf4ea0f48bd549ed77a3ff399c0dc86e91a1c..7073da18b9492bc0ae45b6cc6b94312df05ce33a 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -122,6 +122,7 @@ static pval *update_last(pval *, YYLTYPE *); %type <str>opt_word %type <str>word_or_default +%type <str>timerange %type <str>goto_word %type <str>word_list @@ -166,6 +167,7 @@ static pval *update_last(pval *, YYLTYPE *); elements_block switchlist_block %destructor { free($$);} word word_list goto_word word3_list opt_word word_or_default + timerange %% @@ -294,6 +296,17 @@ statements : statement {$$=$1;} | statements error {$$=$1;} ; +/* hh:mm-hh:mm, due to the way the parser works we do not + * detect the '-' but only the ':' as separator + */ +timerange: word3_list COLON word3_list COLON word3_list { + asprintf(&$$, "%s:%s:%s", $1, $3, $5); + free($1); + free($3); + free($5); } + | word { $$ = $1; } + ; + /* 'if' like statements: if, iftime, random */ if_like_head : KW_IF LP { reset_parencount(parseio->scanner); } word_list RP { $$= npval2(PV_IF, &@1, &@5); @@ -301,20 +314,7 @@ if_like_head : KW_IF LP { reset_parencount(parseio->scanner); } word_list RP { | KW_RANDOM LP { reset_parencount(parseio->scanner); } word_list RP { $$ = npval2(PV_RANDOM, &@1, &@5); $$->u1.str=$4;} - | KW_IFTIME LP word3_list COLON word3_list COLON word3_list - BAR word3_list BAR word3_list BAR word3_list RP { - $$ = npval2(PV_IFTIME, &@1, &@1); - $$->u1.list = npval2(PV_WORD, &@3, &@7); - asprintf(&($$->u1.list->u1.str), "%s:%s:%s", $3, $5, $7); - free($3); - free($5); - free($7); - $$->u1.list->next = nword($9, &@9); - $$->u1.list->next->next = nword($11, &@11); - $$->u1.list->next->next->next = nword($13, &@13); - prev_word = 0; - } - | KW_IFTIME LP word BAR word3_list BAR word3_list BAR word3_list RP { + | KW_IFTIME LP timerange BAR word3_list BAR word3_list BAR word3_list RP { $$ = npval2(PV_IFTIME, &@1, &@5); /* XXX @5 or greater ? */ $$->u1.list = nword($3, &@3); $$->u1.list->next = nword($5, &@5); @@ -613,20 +613,7 @@ switchlist : word SEMI { $$ = nword($1, &@1); } ; includeslist : word_or_default SEMI { $$ = nword($1, &@1); } - | word_or_default BAR word3_list COLON word3_list COLON word3_list - BAR word3_list BAR word3_list BAR word3_list SEMI { - $$ = nword($1, &@1); - $$->u2.arglist = npval2(PV_WORD, &@3, &@7); - asprintf( &($$->u2.arglist->u1.str), "%s:%s:%s", $3, $5, $7); - free($3); - free($5); - free($7); - $$->u2.arglist->next = nword($9, &@9); - $$->u2.arglist->next->next = nword($11, &@11); - $$->u2.arglist->next->next->next = nword($13, &@13); - prev_word=0; - } - | word_or_default BAR word BAR word3_list BAR word3_list BAR word3_list SEMI { + | word_or_default BAR timerange BAR word3_list BAR word3_list BAR word3_list SEMI { $$ = nword($1, &@1); $$->u2.arglist = nword($3, &@3); $$->u2.arglist->next = nword($5, &@5); @@ -635,26 +622,10 @@ includeslist : word_or_default SEMI { $$ = nword($1, &@1); } prev_word=0; } | includeslist word_or_default SEMI { $$ = linku1($1, nword($2, &@2)); } - | includeslist word_or_default BAR word3_list COLON word3_list COLON word3_list - BAR word3_list BAR word3_list BAR word3_list SEMI { + | includeslist word_or_default BAR timerange BAR word3_list BAR word3_list BAR word3_list SEMI { pval *z = nword($2, &@2); $$ = linku1($1, z); - z->u2.arglist = npval2(PV_WORD, &@4, &@8); - asprintf( &($$->u2.arglist->u1.str), "%s:%s:%s", $4, $6, $8); - free($4); - free($6); - free($8); - z->u2.arglist->next = nword($10, &@10); - z->u2.arglist->next->next = nword($12, &@12); - z->u2.arglist->next->next->next = nword($14, &@14); - prev_word=0; - } - | includeslist word_or_default BAR word BAR word3_list BAR word3_list BAR word3_list SEMI { - pval *z = npval2(PV_WORD, &@2, &@3); - $$ = linku1($1, z); - $$->u2.arglist->u1.str = $4; /* XXX maybe too early ? */ - z->u1.str = $2; - z->u2.arglist = npval2(PV_WORD, &@4, &@4); /* XXX is this correct ? */ + z->u2.arglist = nword($4, &@4); z->u2.arglist->next = nword($6, &@6); z->u2.arglist->next->next = nword($8, &@8); z->u2.arglist->next->next->next = nword($10, &@10);