From b569ebd593e4a790306236323ae2ccb9483610a4 Mon Sep 17 00:00:00 2001 From: Luigi Rizzo Date: Wed, 3 May 2006 17:07:56 +0000 Subject: more simplifications git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24460 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx/ael/ael.tab.c | 757 +++++++++++++++++++++++++++--------------------------- pbx/ael/ael.y | 32 +-- 2 files changed, 391 insertions(+), 398 deletions(-) (limited to 'pbx/ael') diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c index e62b35fa5..999818cff 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 273 +#define YYLAST 275 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 42 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 52 +#define YYNNTS 53 /* YYNRULES -- Number of rules. */ #define YYNRULES 128 /* YYNRULES -- Number of states. */ -#define YYNSTATES 259 +#define YYNSTATES 258 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -487,10 +487,10 @@ static const unsigned short int yyprhs[] = 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, 308, 312, 318, 322, 323, 329, 333, - 334, 338, 342, 345, 347, 348, 350, 351, 355, 356, - 359, 364, 368, 373, 374, 377, 379, 385, 390, 395, - 396, 400, 403, 405, 409, 412, 416, 419, 424 + 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 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -500,11 +500,11 @@ static const yysigned_char 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, 86, 5, -1, 16, 4, 51, 5, -1, -1, + 4, 87, 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, 93, -1, 88, -1, 89, -1, 57, -1, + 58, -1, 94, -1, 89, -1, 90, -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, @@ -515,48 +515,48 @@ static const yysigned_char yyrhs[] = 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, 41, 11, 41, - -1, 18, 62, 4, 84, 5, -1, 4, 59, 5, - -1, 52, -1, 25, 75, 8, -1, 26, 76, 8, + -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, 77, 8, -1, - 81, 8, -1, 41, 8, -1, -1, 81, 9, 73, + 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, 67, -1, 67, 10, - 41, -1, 67, 10, 41, 14, 46, -1, 67, 14, - 46, -1, -1, 41, 6, 78, 83, 7, -1, 41, - 6, 7, -1, -1, 41, 6, 80, -1, 79, 83, - 7, -1, 79, 7, -1, 41, -1, -1, 65, -1, - -1, 83, 10, 82, -1, -1, 85, 84, -1, 34, - 41, 11, 59, -1, 36, 11, 59, -1, 35, 41, - 11, 59, -1, -1, 87, 86, -1, 69, -1, 37, - 41, 4, 59, 5, -1, 38, 4, 90, 5, -1, - 39, 4, 90, 5, -1, -1, 41, 8, 90, -1, - 90, 1, -1, 46, -1, 46, 13, 61, -1, 91, - 8, -1, 92, 91, 8, -1, 92, 1, -1, 40, - 4, 92, 5, -1, 40, 4, 5, -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 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 177, 177, 180, 181, 182, 185, 186, 187, 188, - 191, 192, 195, 203, 204, 207, 212, 217, 218, 219, - 222, 222, 229, 230, 231, 232, 235, 236, 237, 240, - 241, 242, 243, 244, 245, 246, 247, 250, 255, 259, - 264, 269, 279, 280, 281, 287, 292, 296, 304, 304, - 309, 312, 315, 326, 327, 334, 335, 340, 348, 349, - 353, 359, 368, 371, 372, 375, 378, 381, 382, 383, - 381, 389, 393, 394, 396, 398, 401, 401, 434, 435, - 436, 437, 441, 444, 445, 450, 451, 454, 457, 461, - 465, 469, 476, 479, 482, 486, 492, 492, 497, 505, - 505, 516, 523, 526, 527, 530, 531, 534, 537, 538, - 541, 545, 549, 555, 556, 559, 560, 566, 571, 576, - 577, 578, 581, 582, 589, 590, 591, 594, 597 + 0, 179, 179, 182, 183, 184, 187, 188, 189, 190, + 193, 194, 197, 205, 206, 209, 214, 219, 220, 221, + 224, 224, 231, 232, 233, 234, 237, 238, 239, 242, + 243, 244, 245, 246, 247, 248, 249, 252, 257, 261, + 266, 271, 281, 282, 283, 289, 294, 298, 306, 306, + 310, 313, 316, 327, 328, 335, 336, 341, 349, 350, + 354, 360, 369, 372, 373, 376, 379, 382, 383, 384, + 382, 390, 394, 395, 396, 397, 400, 400, 433, 434, + 435, 436, 440, 443, 444, 449, 450, 453, 456, 460, + 464, 468, 474, 475, 479, 482, 488, 488, 493, 501, + 501, 512, 519, 522, 523, 526, 527, 530, 533, 534, + 537, 541, 545, 551, 552, 555, 556, 562, 567, 572, + 573, 574, 577, 578, 585, 586, 587, 590, 593 }; #endif @@ -577,8 +577,8 @@ static const char *const yytname[] = "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", "jumptarget", "macro_call", "@7", - "application_call_head", "@8", "application_call", "opt_word", + "@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 @@ -610,10 +610,10 @@ static const unsigned char yyr1[] = 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, 76, 76, 78, 77, 77, 80, - 79, 81, 81, 82, 82, 83, 83, 83, 84, 84, - 85, 85, 85, 86, 86, 87, 87, 88, 89, 90, - 90, 90, 91, 91, 92, 92, 92, 93, 93 + 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 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -628,7 +628,7 @@ static const unsigned char yyr2[] = 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, 1, 3, 5, 3, 0, 5, 3, 0, + 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 @@ -656,15 +656,15 @@ static const unsigned char yydefact[] = 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, 0, 59, 0, 0, 64, - 0, 0, 65, 0, 71, 42, 100, 0, 81, 54, + 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, 60, 87, 86, 93, 95, 0, 0, 83, + 0, 0, 60, 87, 86, 93, 0, 0, 0, 83, 103, 107, 0, 0, 0, 0, 49, 0, 0, 42, - 61, 109, 0, 0, 0, 0, 0, 0, 0, 68, + 61, 109, 0, 0, 0, 0, 0, 0, 95, 68, 116, 77, 0, 40, 97, 42, 42, 0, 0, 0, - 91, 90, 89, 88, 94, 0, 41, 0, 0, 0, - 45, 0, 0, 69, 47, 0, 0, 0, 70 + 91, 90, 89, 88, 0, 41, 0, 0, 0, 45, + 0, 0, 69, 47, 0, 0, 0, 70 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -672,54 +672,54 @@ static const short int 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, 245, - 255, 182, 178, 117, 119, 108, 190, 87, 176, 88, - 211, 133, 195, 196, 89, 90, 49, 50, 98, 102, - 103, 51 + 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 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -104 +#define YYPACT_NINF -103 static const short int yypact[] = { - 2, -104, -27, 19, -104, 32, 61, -104, -104, 83, - -104, -104, 113, 39, -104, -104, -104, -12, 66, 129, - 80, 39, -104, -104, 148, -104, 21, -104, -104, -104, - 82, 84, -104, 149, 119, 120, -104, 142, -22, 161, - 164, 165, 167, 12, -104, 92, 84, -104, -104, -104, - -104, -104, 26, -104, 168, 131, 169, 153, 146, 159, - 159, -1, -104, 166, -104, -104, 95, 166, -104, 160, - 173, 173, 174, 173, 30, 162, 181, 182, 189, 196, - 173, 163, 128, -104, 166, -104, -104, 8, 156, 200, - 26, -104, 201, 146, 166, 171, 203, 205, 101, 116, - -104, 195, 206, 6, -104, 130, 166, 209, 208, -104, - 213, -104, 177, -104, 137, 9, 138, 211, 132, 212, - -104, -104, -104, -104, 166, 217, -104, -104, -104, 202, - -104, 183, -104, 58, -104, -104, -104, -104, -104, 215, - -104, 184, 185, 159, -104, -104, -104, 177, -104, -104, - -104, 219, -104, -104, 55, 221, -104, 188, 94, 16, - 218, 223, 222, 162, 162, 191, -104, 162, 162, -104, - 193, -12, -104, 194, -104, 166, -104, 166, -104, -104, - -104, 197, 198, 199, -104, 220, 139, -104, -104, -104, - 188, 229, 204, 207, 226, 236, 94, 146, -104, 146, - 232, 230, -104, 237, 233, 235, -104, 242, 144, -104, - -104, -104, 243, 228, 166, 152, -104, 244, 245, 166, - -104, -104, 240, 246, 162, 162, 162, 162, -12, -104, - -104, -104, 166, -104, -104, 166, 166, 69, 146, 146, - -104, -104, -104, -104, -104, 224, -104, 74, 77, 241, - -104, 250, 146, -104, -104, 225, 252, 166, -104 + 142, -103, -28, 52, -103, 80, 148, -103, -103, 84, + -103, -103, 88, 65, -103, -103, -103, -20, 77, 126, + 29, 65, -103, -103, 133, -103, 16, -103, -103, -103, + 58, 91, -103, 143, 105, 134, -103, 150, -23, 161, + 173, 174, 180, 11, -103, 63, 91, -103, -103, -103, + -103, -103, 25, -103, 177, 146, 182, 166, 151, 152, + 152, 19, -103, 57, -103, -103, 110, 57, -103, 154, + 183, 183, 190, 183, -14, 156, 191, 192, 193, 196, + 183, 157, 130, -103, 57, -103, -103, 7, 104, 198, + 25, -103, 197, 151, 57, 170, 199, 200, 118, 119, + -103, 194, 201, 5, -103, 165, 57, 204, 205, -103, + 208, -103, 175, -103, 18, -2, 68, 206, 207, 210, + -103, -103, -103, -103, 57, 211, -103, -103, -103, 202, + -103, 178, -103, 169, -103, -103, -103, -103, -103, 213, + -103, 181, 184, 152, -103, -103, -103, 175, -103, -103, + -103, 216, -103, -103, 66, 214, -103, 185, 125, 8, + 215, 220, 218, 156, 156, 189, -103, 156, 156, -103, + 195, 217, -103, 203, -103, 57, -103, 57, -103, -103, + -103, 209, 212, 219, -103, 221, 167, -103, -103, -103, + 185, 225, 222, 223, 224, 228, 125, 151, -103, 151, + 227, 226, -103, 230, 229, -103, -20, 233, 168, -103, + -103, -103, 235, 231, 57, 176, -103, 236, 237, 57, + -103, -103, 238, 241, 156, 156, 156, 156, -103, -103, + -103, -103, 57, -103, -103, 57, 57, 69, 151, 151, + -103, -103, -103, -103, 232, -103, 92, 109, 243, -103, + 246, 151, -103, -103, 234, 239, 57, -103 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { - -104, -104, -104, 254, -17, -104, -104, -104, -104, 247, - -5, -104, -104, 127, -104, -104, -104, -103, -104, 114, - 47, -104, -104, 105, -56, -69, -104, -51, -104, -104, - -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, - -104, 73, 68, -104, 179, -104, -104, -104, -55, 170, - -104, -104 + -103, -103, -103, 251, -15, -103, -103, -103, -103, 240, + -6, -103, -103, 188, -103, -103, -103, -102, -103, 102, + 36, -103, -103, 81, -57, -72, -103, -52, -103, -103, + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, 72, 62, -103, 179, -103, -103, -103, -55, + 162, -103, -103 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -729,66 +729,66 @@ static const short int yypgoto[] = #define YYTABLE_NINF -121 static const short int yytable[] = { - 24, 86, 96, 154, 100, 99, 118, 149, 21, 56, - 1, 150, 104, 62, 12, 130, 21, 2, 3, 57, - 165, 27, 32, 13, 22, 4, 44, -55, 33, 23, - 67, 34, 14, 129, 68, 22, 63, 139, 69, 86, - 23, 44, 22, 140, 70, 71, 72, 23, 73, 131, - 166, 74, 75, 76, 77, 78, 152, 141, 79, 80, - -43, -2, 15, 81, -14, 180, 114, 82, 181, 1, - 152, 115, 208, 174, -111, 152, 2, 3, 152, -110, - 19, 28, -112, 28, 4, 29, 17, -18, 186, -43, - -43, -43, 36, 64, 200, 201, 64, 65, 203, 204, - -27, 37, 144, -111, -111, -111, 145, 25, -110, -110, - -110, -112, -112, -112, 38, 39, 237, 144, 111, 18, - 113, 146, 40, 41, 42, 43, 209, 124, 192, 193, - 194, 152, 247, 248, 126, 153, 127, 27, 27, 128, - 144, 222, 170, 223, -120, 152, 171, 163, 167, 230, - 164, 168, 31, 52, 206, 240, 241, 242, 243, 234, - 53, 54, 181, 233, 134, 135, 55, 58, 59, 60, - 67, 61, 92, 66, 68, 93, 91, 94, 69, 109, - 112, 246, 249, 250, 70, 71, 72, 95, 73, 120, - 121, 74, 75, 76, 77, 78, 254, 122, 79, 80, - 97, 107, 123, 115, 125, 136, 258, 82, 147, 138, - 142, 244, 141, 143, 148, 155, 156, 158, 159, 169, - 172, 175, 183, 177, 179, 184, 185, 188, 189, 131, - 198, 197, 202, 199, 205, 207, 216, 219, 210, 212, - 213, 220, 224, 225, 214, 217, 227, 226, 218, 228, - 229, 231, 232, 238, 252, 235, 236, 239, 253, 257, - 16, 187, 191, 215, 221, 251, 256, 0, 30, 137, - 0, 0, 0, 151 + 86, 96, 24, 118, 154, 99, 149, 21, 56, 165, + 150, 104, 62, 12, 130, 21, 22, 32, 57, -55, + 27, 23, 114, 33, 100, 44, 34, 115, 163, 67, + 28, 164, 129, 68, 29, 63, 139, 69, 86, 166, + 44, 22, 140, 70, 71, 72, 23, 73, 131, 141, + 74, 75, 76, 77, 78, 22, 13, 79, 80, 28, + 23, 67, 81, -18, 64, 68, 82, 152, 65, 69, + 152, -43, 174, 208, -111, 70, 71, 72, 167, 73, + 14, 168, 74, 75, 76, 77, 78, 17, 186, 79, + 80, 200, 201, 152, 18, 203, 204, -110, 82, 36, + -43, -43, -43, -111, -111, -111, 19, 111, 37, 113, + 152, 64, 134, 135, -112, -27, 124, 237, 25, 144, + 144, 38, 39, 145, 146, 209, -110, -110, -110, 40, + 41, 42, 43, 246, 247, 27, 126, 31, 127, 27, + 222, 128, 223, -112, -112, -112, 53, 52, -2, 15, + 1, -14, 240, 241, 242, 243, 1, 2, 3, 192, + 193, 194, 233, 2, 3, 4, 152, 58, 144, 152, + 153, 4, -120, 230, 55, 54, 180, 59, 60, 181, + 245, 248, 249, 234, 61, 91, 181, 92, 93, 109, + 94, 228, 95, 97, 253, 107, 112, 115, 125, 120, + 121, 122, 123, 136, 257, 138, 142, 147, 143, 148, + 155, 141, 158, 156, 169, 175, 159, 170, 172, 179, + 183, 189, 184, 177, 188, 185, 131, 198, 197, 199, + 202, 206, 216, 220, 66, 219, 205, 224, 191, 225, + 226, 229, 227, 231, 207, 214, 256, 235, 236, 187, + 210, 238, 239, 212, 252, 232, 251, 16, 221, 0, + 213, 30, 215, 217, 218, 151, 0, 0, 0, 137, + 0, 0, 0, 250, 0, 255 }; static const short int yycheck[] = { - 17, 52, 58, 106, 5, 60, 75, 1, 13, 31, - 8, 5, 63, 1, 41, 7, 21, 15, 16, 41, - 11, 9, 1, 4, 36, 23, 31, 11, 7, 41, - 4, 10, 0, 84, 8, 36, 24, 93, 12, 90, - 41, 46, 36, 94, 18, 19, 20, 41, 22, 41, - 41, 25, 26, 27, 28, 29, 1, 41, 32, 33, - 5, 0, 1, 37, 3, 7, 36, 41, 10, 8, - 1, 41, 175, 124, 5, 1, 15, 16, 1, 5, - 41, 1, 5, 1, 23, 5, 3, 5, 143, 34, - 35, 36, 8, 1, 163, 164, 1, 5, 167, 168, - 5, 17, 1, 34, 35, 36, 5, 41, 34, 35, - 36, 34, 35, 36, 30, 31, 219, 1, 71, 6, - 73, 5, 38, 39, 40, 41, 177, 80, 34, 35, - 36, 1, 235, 236, 6, 5, 8, 9, 9, 11, - 1, 197, 10, 199, 5, 1, 14, 10, 10, 5, - 13, 13, 4, 4, 171, 224, 225, 226, 227, 7, - 41, 41, 10, 214, 8, 9, 24, 6, 4, 4, - 4, 4, 41, 46, 8, 6, 8, 24, 12, 6, - 6, 232, 238, 239, 18, 19, 20, 41, 22, 8, - 8, 25, 26, 27, 28, 29, 252, 8, 32, 33, - 41, 41, 6, 41, 41, 5, 257, 41, 13, 8, - 7, 228, 41, 8, 8, 6, 8, 4, 41, 8, - 8, 4, 7, 21, 41, 41, 41, 8, 7, 41, - 7, 13, 41, 11, 41, 41, 7, 11, 41, 41, - 41, 5, 10, 13, 24, 41, 13, 10, 41, 14, - 8, 8, 24, 13, 13, 11, 11, 11, 8, 7, - 6, 147, 157, 190, 196, 41, 41, -1, 21, 90, - -1, -1, -1, 103 + 52, 58, 17, 75, 106, 60, 1, 13, 31, 11, + 5, 63, 1, 41, 7, 21, 36, 1, 41, 11, + 9, 41, 36, 7, 5, 31, 10, 41, 10, 4, + 1, 13, 84, 8, 5, 24, 93, 12, 90, 41, + 46, 36, 94, 18, 19, 20, 41, 22, 41, 41, + 25, 26, 27, 28, 29, 36, 4, 32, 33, 1, + 41, 4, 37, 5, 1, 8, 41, 1, 5, 12, + 1, 5, 124, 175, 5, 18, 19, 20, 10, 22, + 0, 13, 25, 26, 27, 28, 29, 3, 143, 32, + 33, 163, 164, 1, 6, 167, 168, 5, 41, 8, + 34, 35, 36, 34, 35, 36, 41, 71, 17, 73, + 1, 1, 8, 9, 5, 5, 80, 219, 41, 1, + 1, 30, 31, 5, 5, 177, 34, 35, 36, 38, + 39, 40, 41, 235, 236, 9, 6, 4, 8, 9, + 197, 11, 199, 34, 35, 36, 41, 4, 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, 24, 41, 7, 4, 4, 10, + 232, 238, 239, 7, 4, 8, 10, 41, 6, 6, + 24, 206, 41, 41, 251, 41, 6, 41, 41, 8, + 8, 8, 6, 5, 256, 8, 7, 13, 8, 8, + 6, 41, 4, 8, 8, 4, 41, 10, 8, 41, + 7, 7, 41, 21, 8, 41, 41, 7, 13, 11, + 41, 14, 7, 5, 46, 11, 41, 10, 157, 13, + 10, 8, 13, 8, 41, 24, 7, 11, 11, 147, + 41, 13, 11, 41, 8, 24, 13, 6, 196, -1, + 41, 21, 190, 41, 41, 103, -1, -1, -1, 90, + -1, -1, -1, 41, -1, 41 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -799,28 +799,28 @@ static const unsigned char 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, 88, - 89, 93, 4, 41, 41, 24, 31, 41, 6, 4, + 38, 39, 40, 41, 52, 55, 56, 57, 58, 89, + 90, 94, 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, 79, 81, 86, - 87, 8, 41, 6, 24, 41, 66, 41, 90, 90, - 5, 46, 91, 92, 69, 59, 69, 41, 77, 6, - 62, 62, 6, 62, 36, 41, 67, 75, 67, 76, + 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, 83, 8, 9, 5, 86, 8, 66, + 7, 41, 65, 84, 8, 9, 5, 87, 8, 66, 69, 41, 7, 8, 1, 5, 5, 13, 8, 1, - 5, 91, 1, 5, 59, 6, 8, 63, 4, 41, + 5, 92, 1, 5, 59, 6, 8, 63, 4, 41, 60, 61, 66, 10, 13, 11, 41, 10, 13, 8, - 10, 14, 8, 70, 69, 4, 80, 21, 74, 41, - 7, 10, 73, 7, 41, 41, 90, 61, 8, 7, - 78, 65, 34, 35, 36, 84, 85, 13, 7, 11, - 67, 67, 41, 67, 67, 41, 46, 41, 59, 69, - 41, 82, 41, 41, 24, 83, 7, 41, 41, 11, - 5, 84, 66, 66, 10, 13, 10, 13, 14, 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, 41, 67, 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, 46, 71, 69, 59, 59, 66, - 66, 41, 13, 8, 66, 72, 41, 7, 69 + 67, 67, 67, 67, 71, 69, 59, 59, 66, 66, + 41, 13, 8, 66, 72, 41, 7, 69 }; #define yyerrok (yyerrstatus = 0) @@ -1196,12 +1196,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) switch (yytype) { case 41: /* "word" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1202 "ael.tab.c" break; case 44: /* "objects" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1209,7 +1209,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1210 "ael.tab.c" break; case 45: /* "object" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1217,12 +1217,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1218 "ael.tab.c" break; case 46: /* "context_name" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1223 "ael.tab.c" break; case 47: /* "context" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1230,7 +1230,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1231 "ael.tab.c" break; case 49: /* "macro" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1238,7 +1238,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1239 "ael.tab.c" break; case 50: /* "globals" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1246,7 +1246,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1247 "ael.tab.c" break; case 51: /* "global_statements" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1254,7 +1254,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1255 "ael.tab.c" break; case 52: /* "assignment" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1262,7 +1262,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1263 "ael.tab.c" break; case 54: /* "arglist" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1270,7 +1270,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1271 "ael.tab.c" break; case 55: /* "elements" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1278,7 +1278,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1279 "ael.tab.c" break; case 56: /* "element" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1286,7 +1286,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1287 "ael.tab.c" break; case 57: /* "ignorepat" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1294,7 +1294,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1295 "ael.tab.c" break; case 58: /* "extension" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1302,7 +1302,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1303 "ael.tab.c" break; case 59: /* "statements" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1310,12 +1310,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1311 "ael.tab.c" break; case 60: /* "timerange" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1316 "ael.tab.c" break; case 61: /* "timespec" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1323,12 +1323,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1324 "ael.tab.c" break; case 62: /* "test_expr" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1329 "ael.tab.c" break; case 64: /* "if_like_head" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1336,22 +1336,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1337 "ael.tab.c" break; case 65: /* "word_list" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1342 "ael.tab.c" break; case 66: /* "word3_list" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1347 "ael.tab.c" break; case 67: /* "goto_word" */ -#line 170 "ael.y" +#line 171 "ael.y" { free((yyvaluep->str));}; #line 1352 "ael.tab.c" break; case 68: /* "switch_statement" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1359,7 +1359,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1360 "ael.tab.c" break; case 69: /* "statement" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1367,7 +1367,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1368 "ael.tab.c" break; case 74: /* "opt_else" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; @@ -1375,137 +1375,142 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) #line 1376 "ael.tab.c" break; case 75: /* "target" */ -#line 157 "ael.y" +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1384 "ael.tab.c" break; - case 76: /* "jumptarget" */ -#line 157 "ael.y" + case 76: /* "opt_pri" */ +#line 171 "ael.y" + { free((yyvaluep->str));}; +#line 1389 "ael.tab.c" + break; + case 77: /* "jumptarget" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1392 "ael.tab.c" +#line 1397 "ael.tab.c" break; - case 77: /* "macro_call" */ -#line 157 "ael.y" + case 78: /* "macro_call" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1400 "ael.tab.c" +#line 1405 "ael.tab.c" break; - case 79: /* "application_call_head" */ -#line 157 "ael.y" + case 80: /* "application_call_head" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1408 "ael.tab.c" +#line 1413 "ael.tab.c" break; - case 81: /* "application_call" */ -#line 157 "ael.y" + case 82: /* "application_call" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1416 "ael.tab.c" +#line 1421 "ael.tab.c" break; - case 82: /* "opt_word" */ -#line 170 "ael.y" + case 83: /* "opt_word" */ +#line 171 "ael.y" { free((yyvaluep->str));}; -#line 1421 "ael.tab.c" +#line 1426 "ael.tab.c" break; - case 83: /* "eval_arglist" */ -#line 157 "ael.y" + case 84: /* "eval_arglist" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1429 "ael.tab.c" +#line 1434 "ael.tab.c" break; - case 84: /* "case_statements" */ -#line 157 "ael.y" + case 85: /* "case_statements" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1437 "ael.tab.c" +#line 1442 "ael.tab.c" break; - case 85: /* "case_statement" */ -#line 157 "ael.y" + case 86: /* "case_statement" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1445 "ael.tab.c" +#line 1450 "ael.tab.c" break; - case 86: /* "macro_statements" */ -#line 157 "ael.y" + case 87: /* "macro_statements" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1453 "ael.tab.c" +#line 1458 "ael.tab.c" break; - case 87: /* "macro_statement" */ -#line 157 "ael.y" + case 88: /* "macro_statement" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1461 "ael.tab.c" +#line 1466 "ael.tab.c" break; - case 88: /* "switches" */ -#line 157 "ael.y" + case 89: /* "switches" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1469 "ael.tab.c" +#line 1474 "ael.tab.c" break; - case 89: /* "eswitches" */ -#line 157 "ael.y" + case 90: /* "eswitches" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1477 "ael.tab.c" +#line 1482 "ael.tab.c" break; - case 90: /* "switchlist" */ -#line 157 "ael.y" + case 91: /* "switchlist" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1485 "ael.tab.c" +#line 1490 "ael.tab.c" break; - case 91: /* "included_entry" */ -#line 157 "ael.y" + case 92: /* "included_entry" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1493 "ael.tab.c" +#line 1498 "ael.tab.c" break; - case 92: /* "includeslist" */ -#line 157 "ael.y" + case 93: /* "includeslist" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1501 "ael.tab.c" +#line 1506 "ael.tab.c" break; - case 93: /* "includes" */ -#line 157 "ael.y" + case 94: /* "includes" */ +#line 158 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1509 "ael.tab.c" +#line 1514 "ael.tab.c" break; default: @@ -1822,57 +1827,57 @@ yyreduce: switch (yyn) { case 2: -#line 177 "ael.y" +#line 179 "ael.y" { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;} break; case 3: -#line 180 "ael.y" +#line 182 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 4: -#line 181 "ael.y" +#line 183 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 5: -#line 182 "ael.y" +#line 184 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 6: -#line 185 "ael.y" +#line 187 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 7: -#line 186 "ael.y" +#line 188 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 8: -#line 187 "ael.y" +#line 189 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 9: -#line 188 "ael.y" +#line 190 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 10: -#line 191 "ael.y" +#line 193 "ael.y" { (yyval.str) = (yyvsp[0].str); ;} break; case 11: -#line 192 "ael.y" +#line 194 "ael.y" { (yyval.str) = strdup("default"); ;} break; case 12: -#line 195 "ael.y" +#line 197 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); @@ -1881,51 +1886,51 @@ yyreduce: break; case 13: -#line 203 "ael.y" +#line 205 "ael.y" { (yyval.intval) = 1; ;} break; case 14: -#line 204 "ael.y" +#line 206 "ael.y" { (yyval.intval) = 0; ;} break; case 15: -#line 207 "ael.y" +#line 209 "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 212 "ael.y" +#line 214 "ael.y" { (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.statements = (yyvsp[-1].pval);;} break; case 17: -#line 217 "ael.y" +#line 219 "ael.y" { (yyval.pval) = NULL; ;} break; case 18: -#line 218 "ael.y" +#line 220 "ael.y" {(yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 19: -#line 219 "ael.y" +#line 221 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 20: -#line 222 "ael.y" +#line 224 "ael.y" { reset_semicount(parseio->scanner); ;} break; case 21: -#line 222 "ael.y" +#line 224 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); @@ -1933,89 +1938,89 @@ yyreduce: break; case 22: -#line 229 "ael.y" +#line 231 "ael.y" { (yyval.pval) = NULL; ;} break; case 23: -#line 230 "ael.y" +#line 232 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 24: -#line 231 "ael.y" +#line 233 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;} break; case 25: -#line 232 "ael.y" +#line 234 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 26: -#line 235 "ael.y" +#line 237 "ael.y" {(yyval.pval)=0;;} break; case 27: -#line 236 "ael.y" +#line 238 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 28: -#line 237 "ael.y" +#line 239 "ael.y" { (yyval.pval)=(yyvsp[-1].pval);;} break; case 29: -#line 240 "ael.y" +#line 242 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 30: -#line 241 "ael.y" +#line 243 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 31: -#line 242 "ael.y" +#line 244 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 32: -#line 243 "ael.y" +#line 245 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 33: -#line 244 "ael.y" +#line 246 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 34: -#line 245 "ael.y" +#line 247 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 35: -#line 246 "ael.y" +#line 248 "ael.y" {free((yyvsp[-1].str)); (yyval.pval)=0;;} break; case 36: -#line 247 "ael.y" +#line 249 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 37: -#line 250 "ael.y" +#line 252 "ael.y" { (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 38: -#line 255 "ael.y" +#line 257 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2023,7 +2028,7 @@ yyreduce: break; case 39: -#line 259 "ael.y" +#line 261 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2032,7 +2037,7 @@ yyreduce: break; case 40: -#line 264 "ael.y" +#line 266 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2041,7 +2046,7 @@ yyreduce: break; case 41: -#line 269 "ael.y" +#line 271 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2051,22 +2056,22 @@ yyreduce: break; case 42: -#line 279 "ael.y" +#line 281 "ael.y" { (yyval.pval) = NULL; ;} break; case 43: -#line 280 "ael.y" +#line 282 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 44: -#line 281 "ael.y" +#line 283 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 45: -#line 287 "ael.y" +#line 289 "ael.y" { asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[-4].str), (yyvsp[-2].str), (yyvsp[0].str)); free((yyvsp[-4].str)); @@ -2075,12 +2080,12 @@ yyreduce: break; case 46: -#line 292 "ael.y" +#line 294 "ael.y" { (yyval.str) = (yyvsp[0].str); ;} break; case 47: -#line 296 "ael.y" +#line 298 "ael.y" { (yyval.pval) = nword((yyvsp[-6].str), &(yylsp[-6])); (yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4])); @@ -2089,32 +2094,31 @@ yyreduce: break; case 48: -#line 304 "ael.y" +#line 306 "ael.y" { reset_parencount(parseio->scanner); ;} break; case 49: -#line 304 "ael.y" - { - (yyval.str) = (yyvsp[-1].str); ;} +#line 306 "ael.y" + { (yyval.str) = (yyvsp[-1].str); ;} break; case 50: -#line 309 "ael.y" +#line 310 "ael.y" { (yyval.pval)= npval2(PV_IF, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[0].str); ;} break; case 51: -#line 312 "ael.y" +#line 313 "ael.y" { (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str=(yyvsp[0].str);;} break; case 52: -#line 315 "ael.y" +#line 316 "ael.y" { (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval); @@ -2122,12 +2126,12 @@ yyreduce: break; case 53: -#line 326 "ael.y" +#line 327 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 54: -#line 327 "ael.y" +#line 328 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2136,12 +2140,12 @@ yyreduce: break; case 55: -#line 334 "ael.y" +#line 335 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 56: -#line 335 "ael.y" +#line 336 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2150,7 +2154,7 @@ yyreduce: break; case 57: -#line 340 "ael.y" +#line 341 "ael.y" { asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-2].str)); @@ -2160,12 +2164,12 @@ yyreduce: break; case 58: -#line 348 "ael.y" +#line 349 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 59: -#line 349 "ael.y" +#line 350 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2173,7 +2177,7 @@ yyreduce: break; case 60: -#line 353 "ael.y" +#line 354 "ael.y" { asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str)); free((yyvsp[-2].str)); @@ -2181,7 +2185,7 @@ yyreduce: break; case 61: -#line 359 "ael.y" +#line 360 "ael.y" { (yyval.pval) = npval2(PV_SWITCH, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); @@ -2189,55 +2193,55 @@ yyreduce: break; case 62: -#line 368 "ael.y" +#line 369 "ael.y" { (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;} break; case 63: -#line 371 "ael.y" +#line 372 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; case 64: -#line 372 "ael.y" +#line 373 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 65: -#line 375 "ael.y" +#line 376 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 66: -#line 378 "ael.y" +#line 379 "ael.y" { (yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); ;} break; case 67: -#line 381 "ael.y" +#line 382 "ael.y" {reset_semicount(parseio->scanner);;} break; case 68: -#line 382 "ael.y" +#line 383 "ael.y" {reset_semicount(parseio->scanner);;} break; case 69: -#line 383 "ael.y" +#line 384 "ael.y" {reset_parencount(parseio->scanner);;} break; case 70: -#line 383 "ael.y" +#line 384 "ael.y" { /* XXX word_list maybe ? */ (yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0])); (yyval.pval)->u1.for_init = (yyvsp[-8].str); @@ -2247,7 +2251,7 @@ yyreduce: break; case 71: -#line 389 "ael.y" +#line 390 "ael.y" { (yyval.pval) = npval2(PV_WHILE, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); @@ -2255,36 +2259,34 @@ yyreduce: break; case 72: -#line 393 "ael.y" +#line 394 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; case 73: -#line 394 "ael.y" - { - (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;} +#line 395 "ael.y" + { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;} break; case 74: #line 396 "ael.y" - { - (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} + { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; case 75: -#line 398 "ael.y" +#line 397 "ael.y" { (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 76: -#line 401 "ael.y" +#line 400 "ael.y" {reset_semicount(parseio->scanner);;} break; case 77: -#line 401 "ael.y" +#line 400 "ael.y" { char *bufx; int tot=0; @@ -2321,22 +2323,22 @@ yyreduce: break; case 78: -#line 434 "ael.y" +#line 433 "ael.y" { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;} break; case 79: -#line 435 "ael.y" +#line 434 "ael.y" { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;} break; case 80: -#line 436 "ael.y" +#line 435 "ael.y" { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;} break; case 81: -#line 437 "ael.y" +#line 436 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); (yyval.pval)->u2.statements = (yyvsp[-1].pval); @@ -2344,41 +2346,41 @@ yyreduce: break; case 82: -#line 441 "ael.y" +#line 440 "ael.y" { (yyval.pval)=0; ;} break; case 83: -#line 444 "ael.y" +#line 443 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; case 84: -#line 445 "ael.y" +#line 444 "ael.y" { (yyval.pval) = NULL ; ;} break; case 85: -#line 450 "ael.y" +#line 449 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 86: -#line 451 "ael.y" +#line 450 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 87: -#line 454 "ael.y" +#line 453 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 88: -#line 457 "ael.y" +#line 456 "ael.y" { (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2386,7 +2388,7 @@ yyreduce: break; case 89: -#line 461 "ael.y" +#line 460 "ael.y" { (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2394,7 +2396,7 @@ yyreduce: break; case 90: -#line 465 "ael.y" +#line 464 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2402,7 +2404,7 @@ yyreduce: break; case 91: -#line 469 "ael.y" +#line 468 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2410,42 +2412,37 @@ yyreduce: break; case 92: -#line 476 "ael.y" - { /* ext, 1 */ - (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); - (yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;} +#line 474 "ael.y" + { (yyval.str) = strdup("1"); ;} break; case 93: +#line 475 "ael.y" + { (yyval.str) = (yyvsp[0].str); ;} + break; + + case 94: #line 479 "ael.y" - { /* ext, pri */ - (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); + { /* ext[, pri] default 1 */ + (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; - case 94: + case 95: #line 482 "ael.y" { /* context, ext, pri */ (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); - (yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4])); + (yyval.pval)->next = nword((yyvsp[-3].str), &(yylsp[-3])); (yyval.pval)->next->next = nword((yyvsp[-2].str), &(yylsp[-2])); ;} break; - case 95: -#line 486 "ael.y" - { /* context, ext, 1 */ - (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); - (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); - (yyval.pval)->next->next = nword(strdup("1"), &(yylsp[0])); ;} - break; - case 96: -#line 492 "ael.y" +#line 488 "ael.y" {reset_argcount(parseio->scanner);;} break; case 97: -#line 492 "ael.y" +#line 488 "ael.y" { /* XXX original code had @2 but i think we need @5 */ (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0])); @@ -2454,19 +2451,19 @@ yyreduce: break; case 98: -#line 497 "ael.y" +#line 493 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); ;} break; case 99: -#line 505 "ael.y" +#line 501 "ael.y" {reset_argcount(parseio->scanner);;} break; case 100: -#line 505 "ael.y" +#line 501 "ael.y" { if (strcasecmp((yyvsp[-2].str),"goto") == 0) { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[-1])); @@ -2479,7 +2476,7 @@ yyreduce: break; case 101: -#line 516 "ael.y" +#line 512 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0])); if( (yyval.pval)->type == PV_GOTO ) @@ -2490,49 +2487,49 @@ yyreduce: break; case 102: -#line 523 "ael.y" +#line 519 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; case 103: -#line 526 "ael.y" +#line 522 "ael.y" { (yyval.str) = (yyvsp[0].str) ;} break; case 104: -#line 527 "ael.y" +#line 523 "ael.y" { (yyval.str) = strdup(""); ;} break; case 105: -#line 530 "ael.y" +#line 526 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 106: -#line 531 "ael.y" +#line 527 "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 534 "ael.y" +#line 530 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;} break; case 108: -#line 537 "ael.y" +#line 533 "ael.y" { (yyval.pval) = NULL; ;} break; case 109: -#line 538 "ael.y" +#line 534 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 110: -#line 541 "ael.y" +#line 537 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */ (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2540,7 +2537,7 @@ yyreduce: break; case 111: -#line 545 "ael.y" +#line 541 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = NULL; @@ -2548,7 +2545,7 @@ yyreduce: break; case 112: -#line 549 "ael.y" +#line 545 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */ (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2556,22 +2553,22 @@ yyreduce: break; case 113: -#line 555 "ael.y" +#line 551 "ael.y" { (yyval.pval) = NULL; ;} break; case 114: -#line 556 "ael.y" +#line 552 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 115: -#line 559 "ael.y" +#line 555 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 116: -#line 560 "ael.y" +#line 556 "ael.y" { (yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); @@ -2579,41 +2576,41 @@ yyreduce: break; case 117: -#line 566 "ael.y" +#line 562 "ael.y" { (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-3]), &(yylsp[-2])); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;} break; case 118: -#line 571 "ael.y" +#line 567 "ael.y" { (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-3]), &(yylsp[-2])); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;} break; case 119: -#line 576 "ael.y" +#line 572 "ael.y" { (yyval.pval) = NULL; ;} break; case 120: -#line 577 "ael.y" +#line 573 "ael.y" { (yyval.pval) = linku1(nword((yyvsp[-2].str), &(yylsp[-2])), (yyvsp[0].pval)); ;} break; case 121: -#line 578 "ael.y" +#line 574 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 122: -#line 581 "ael.y" +#line 577 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 123: -#line 582 "ael.y" +#line 578 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->u2.arglist = (yyvsp[0].pval); @@ -2621,29 +2618,29 @@ yyreduce: break; case 124: -#line 589 "ael.y" +#line 585 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); ;} break; case 125: -#line 590 "ael.y" +#line 586 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), (yyvsp[-1].pval)); ;} break; case 126: -#line 591 "ael.y" +#line 587 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 127: -#line 594 "ael.y" +#line 590 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 128: -#line 597 "ael.y" +#line 593 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;} break; @@ -2653,7 +2650,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 2657 "ael.tab.c" +#line 2654 "ael.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -2928,7 +2925,7 @@ yyreturn: } -#line 602 "ael.y" +#line 598 "ael.y" static char *token_equivs1[] = diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index 75cffb053..1b129f80b 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -128,6 +128,7 @@ static pval *update_last(pval *, YYLTYPE *); %type word_list %type word3_list %type test_expr +%type opt_pri %type opt_abstract @@ -170,6 +171,7 @@ static pval *update_last(pval *, YYLTYPE *); %destructor { free($$);} word word_list goto_word word3_list opt_word context_name timerange test_expr + opt_pri %% @@ -301,8 +303,7 @@ timespec : timerange BAR word3_list BAR word3_list BAR word3_list { ; /* expression used in if, random, while, switch */ -test_expr : LP { reset_parencount(parseio->scanner); } word_list RP { - $$ = $3; } +test_expr : LP { reset_parencount(parseio->scanner); } word_list RP { $$ = $3; } ; /* 'if' like statements: if, iftime, random */ @@ -391,10 +392,8 @@ statement : LC statements RC { $$->u1.str = $2; $$->u2.statements = $3; } | switch_statement { $$ = $1; } - | AMPER macro_call SEMI { - $$ = update_last($2, &@2); } - | application_call SEMI { - $$ = update_last($1, &@2); } + | AMPER macro_call SEMI { $$ = update_last($2, &@2); } + | application_call SEMI { $$ = update_last($1, &@2); } | word SEMI { $$= npval2(PV_APPLICATION_CALL, &@1, &@2); $$->u1.str = $1;} @@ -472,21 +471,18 @@ target : goto_word { $$ = nword($1, &@1); } $$->next->next = nword($5, &@5); } ; +opt_pri : /* empty */ { $$ = strdup("1"); } + | COMMA word { $$ = $2; } + ; + /* XXX please document the form of jumptarget */ -jumptarget : goto_word { /* ext, 1 */ - $$ = nword($1, &@1); - $$->next = nword(strdup("1"), &@1); } /* jump extension[,priority][@context] */ - | goto_word COMMA word { /* ext, pri */ +jumptarget : goto_word opt_pri { /* ext[, pri] default 1 */ $$ = nword($1, &@1); - $$->next = nword($3, &@3); } - | goto_word COMMA word AT context_name { /* context, ext, pri */ - $$ = nword($5, &@5); - $$->next = nword($1, &@1); - $$->next->next = nword($3, &@3); } - | goto_word AT context_name { /* context, ext, 1 */ - $$ = nword($3, &@3); + $$->next = nword($2, &@2); } /* jump extension[,priority][@context] */ + | goto_word opt_pri AT context_name { /* context, ext, pri */ + $$ = nword($4, &@4); $$->next = nword($1, &@1); - $$->next->next = nword(strdup("1"), &@3); } + $$->next->next = nword($2, &@2); } ; macro_call : word LP {reset_argcount(parseio->scanner);} eval_arglist RP { -- cgit v1.2.3