From 9ebc190fdc88d52bd7756e485b2d4cae270ff3cc Mon Sep 17 00:00:00 2001 From: Luigi Rizzo Date: Wed, 3 May 2006 16:12:31 +0000 Subject: simplify case_statements git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24424 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx/ael/ael.tab.c | 891 ++++++++++++++++++++++++++---------------------------- pbx/ael/ael.y | 22 +- 2 files changed, 446 insertions(+), 467 deletions(-) diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c index 251e1190a..5e8b38a75 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 400 +#define YYLAST 327 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 42 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 54 +#define YYNNTS 55 /* YYNRULES -- Number of rules. */ -#define YYNRULES 139 +#define YYNRULES 138 /* YYNRULES -- Number of states. */ -#define YYNSTATES 265 +#define YYNSTATES 266 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -489,9 +489,9 @@ static const unsigned short int yyprhs[] = 260, 261, 267, 270, 273, 276, 280, 282, 285, 286, 288, 292, 296, 302, 308, 314, 320, 322, 326, 332, 336, 337, 343, 347, 348, 352, 356, 359, 361, 362, - 364, 365, 369, 370, 372, 375, 380, 384, 389, 393, - 396, 400, 401, 403, 406, 408, 414, 417, 420, 424, - 427, 430, 434, 437, 440, 445, 447, 450, 453, 458 + 364, 365, 369, 370, 372, 375, 376, 378, 383, 387, + 392, 393, 395, 398, 400, 406, 409, 412, 416, 419, + 422, 426, 429, 432, 437, 439, 442, 445, 450 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -500,13 +500,13 @@ 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, 87, + 23, -1, -1, 15, 41, 6, 54, 7, 4, 88, 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, -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, 59, -1, 95, -1, 89, -1, 90, + 56, 1, -1, 59, -1, 96, -1, 90, -1, 91, -1, 58, -1, 52, -1, 41, 1, -1, 8, -1, 17, 24, 41, 8, -1, 41, 24, 70, -1, 30, 41, 24, 70, -1, 31, 6, 67, 7, 41, 24, @@ -534,35 +534,34 @@ static const yysigned_char yyrhs[] = 84, 7, -1, 41, 6, 7, -1, -1, 41, 6, 81, -1, 80, 84, 7, -1, 80, 7, -1, 41, -1, -1, 66, -1, -1, 84, 10, 83, -1, -1, - 86, -1, 85, 86, -1, 34, 41, 11, 60, -1, - 36, 11, 60, -1, 35, 41, 11, 60, -1, 34, - 41, 11, -1, 36, 11, -1, 35, 41, 11, -1, - -1, 88, -1, 87, 88, -1, 70, -1, 37, 41, - 4, 60, 5, -1, 38, 91, -1, 39, 91, -1, - 4, 92, 5, -1, 4, 5, -1, 41, 8, -1, - 92, 41, 8, -1, 92, 1, -1, 46, 8, -1, - 46, 13, 62, 8, -1, 93, -1, 94, 93, -1, - 94, 1, -1, 40, 4, 94, 5, -1, 40, 4, - 5, -1 + 87, -1, 85, 87, -1, -1, 60, -1, 34, 41, + 11, 86, -1, 36, 11, 86, -1, 35, 41, 11, + 86, -1, -1, 89, -1, 88, 89, -1, 70, -1, + 37, 41, 4, 60, 5, -1, 38, 92, -1, 39, + 92, -1, 4, 93, 5, -1, 4, 5, -1, 41, + 8, -1, 93, 41, 8, -1, 93, 1, -1, 46, + 8, -1, 46, 13, 62, 8, -1, 94, -1, 95, + 94, -1, 95, 1, -1, 40, 4, 95, 5, -1, + 40, 4, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { - 0, 180, 180, 183, 184, 185, 188, 189, 190, 191, - 194, 195, 198, 206, 207, 210, 215, 218, 222, 223, - 224, 227, 227, 233, 234, 235, 236, 239, 240, 243, - 244, 245, 246, 249, 250, 251, 252, 253, 254, 255, - 256, 259, 264, 268, 273, 278, 287, 288, 289, 295, - 300, 304, 312, 312, 317, 320, 323, 334, 335, 342, - 343, 348, 356, 357, 361, 367, 376, 379, 380, 383, - 386, 389, 390, 391, 389, 397, 401, 402, 404, 406, - 409, 409, 442, 443, 444, 445, 449, 452, 453, 458, - 459, 462, 465, 469, 473, 477, 484, 487, 490, 494, - 500, 500, 505, 513, 513, 524, 531, 534, 535, 538, - 539, 542, 545, 546, 547, 550, 554, 558, 562, 565, - 568, 573, 574, 575, 578, 579, 585, 590, 595, 596, - 599, 600, 601, 604, 605, 612, 613, 614, 617, 620 + 0, 182, 182, 185, 186, 187, 190, 191, 192, 193, + 196, 197, 200, 208, 209, 212, 217, 220, 224, 225, + 226, 229, 229, 235, 236, 237, 238, 241, 242, 245, + 246, 247, 248, 251, 252, 253, 254, 255, 256, 257, + 258, 261, 266, 270, 275, 280, 289, 290, 291, 297, + 302, 306, 314, 314, 319, 322, 325, 336, 337, 344, + 345, 350, 358, 359, 363, 369, 378, 381, 382, 385, + 388, 391, 392, 393, 391, 399, 403, 404, 406, 408, + 411, 411, 444, 445, 446, 447, 451, 454, 455, 460, + 461, 464, 467, 471, 475, 479, 486, 489, 492, 496, + 502, 502, 507, 515, 515, 526, 533, 536, 537, 540, + 541, 544, 547, 548, 549, 553, 554, 557, 561, 565, + 571, 572, 573, 576, 577, 583, 588, 593, 594, 597, + 598, 599, 602, 603, 610, 611, 612, 615, 618 }; #endif @@ -585,9 +584,10 @@ static const char *const yytname[] = "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", - "eval_arglist", "case_statements", "case_statement", "macro_statements", - "macro_statement", "switches", "eswitches", "switchlist_block", - "switchlist", "included_entry", "includeslist", "includes", 0 + "eval_arglist", "case_statements", "opt_statements", "case_statement", + "macro_statements", "macro_statement", "switches", "eswitches", + "switchlist_block", "switchlist", "included_entry", "includeslist", + "includes", 0 }; #endif @@ -618,9 +618,9 @@ static const unsigned char yyr1[] = 74, 70, 70, 70, 70, 70, 70, 75, 75, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 79, 78, 78, 81, 80, 82, 82, 83, 83, 84, - 84, 84, 85, 85, 85, 86, 86, 86, 86, 86, - 86, 87, 87, 87, 88, 88, 89, 90, 91, 91, - 92, 92, 92, 93, 93, 94, 94, 94, 95, 95 + 84, 84, 85, 85, 85, 86, 86, 87, 87, 87, + 88, 88, 88, 89, 89, 90, 91, 92, 92, 93, + 93, 93, 94, 94, 95, 95, 95, 96, 96 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -637,9 +637,9 @@ static const unsigned char yyr2[] = 0, 5, 2, 2, 2, 3, 1, 2, 0, 1, 3, 3, 5, 5, 5, 5, 1, 3, 5, 3, 0, 5, 3, 0, 3, 3, 2, 1, 0, 1, - 0, 3, 0, 1, 2, 4, 3, 4, 3, 2, - 3, 0, 1, 2, 1, 5, 2, 2, 3, 2, - 2, 3, 2, 2, 4, 1, 2, 2, 4, 3 + 0, 3, 0, 1, 2, 0, 1, 4, 3, 4, + 0, 1, 2, 1, 5, 2, 2, 3, 2, 2, + 3, 2, 2, 4, 1, 2, 2, 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -652,179 +652,163 @@ static const unsigned char yydefact[] = 0, 0, 18, 11, 10, 0, 24, 0, 21, 20, 16, 19, 0, 12, 26, 0, 0, 0, 30, 27, 40, 0, 0, 0, 0, 0, 0, 0, 38, 0, - 29, 37, 33, 35, 36, 34, 121, 25, 0, 0, - 0, 0, 0, 0, 126, 127, 0, 39, 0, 32, + 29, 37, 33, 35, 36, 34, 120, 25, 0, 0, + 0, 0, 0, 0, 125, 126, 0, 39, 0, 32, 28, 31, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, - 76, 124, 110, 0, 0, 122, 22, 0, 0, 0, - 59, 0, 129, 0, 0, 139, 0, 135, 0, 42, + 76, 123, 110, 0, 0, 121, 22, 0, 0, 0, + 59, 0, 128, 0, 0, 138, 0, 134, 0, 42, 0, 46, 0, 0, 52, 0, 54, 0, 55, 0, 62, 89, 0, 96, 0, 83, 82, 84, 71, 0, 0, 103, 79, 70, 88, 106, 57, 109, 0, 78, - 80, 15, 123, 41, 0, 43, 60, 0, 130, 132, - 128, 0, 133, 0, 137, 138, 136, 48, 66, 47, + 80, 15, 122, 41, 0, 43, 60, 0, 129, 131, + 127, 0, 132, 0, 136, 137, 135, 48, 66, 47, 100, 77, 0, 112, 50, 0, 0, 0, 0, 0, 0, 63, 0, 0, 68, 0, 0, 69, 0, 75, 0, 104, 0, 85, 58, 105, 108, 0, 0, 61, - 0, 131, 0, 102, 110, 0, 0, 0, 0, 0, + 0, 130, 0, 102, 110, 0, 0, 0, 0, 0, 113, 0, 56, 0, 0, 0, 64, 91, 90, 62, 97, 99, 0, 0, 87, 107, 111, 0, 0, 0, - 134, 0, 53, 0, 0, 119, 65, 114, 0, 0, - 0, 0, 0, 0, 0, 72, 125, 81, 0, 44, - 101, 118, 120, 0, 0, 0, 95, 94, 93, 92, - 98, 0, 45, 0, 0, 0, 49, 0, 0, 73, - 51, 0, 0, 0, 74 + 133, 0, 53, 0, 0, 115, 65, 114, 0, 0, + 0, 0, 0, 0, 0, 72, 124, 81, 0, 44, + 101, 115, 115, 0, 118, 0, 0, 95, 94, 93, + 92, 98, 0, 45, 117, 119, 0, 49, 0, 0, + 73, 51, 0, 0, 0, 74 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short int yydefgoto[] = { -1, 5, 6, 7, 106, 8, 9, 10, 11, 21, - 88, 37, 27, 33, 49, 50, 51, 52, 110, 165, + 88, 37, 27, 33, 49, 50, 51, 52, 243, 165, 166, 115, 162, 89, 137, 167, 121, 90, 111, 178, - 251, 261, 187, 183, 122, 124, 113, 194, 92, 181, - 93, 216, 138, 199, 200, 94, 95, 53, 54, 64, - 104, 107, 108, 55 + 252, 262, 187, 183, 122, 124, 113, 194, 92, 181, + 93, 216, 138, 199, 244, 200, 94, 95, 53, 54, + 64, 104, 107, 108, 55 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -178 +#define YYPACT_NINF -78 static const short int yypact[] = { - 64, -178, -22, 23, -178, 63, 117, -178, -178, 67, - -178, -178, 70, 12, -178, -178, -178, 30, 41, -178, - 95, 6, -178, -178, -178, 107, -178, 76, -178, -178, - -178, -178, 130, -178, -178, 146, 101, 116, -178, -178, - -178, 132, -6, 156, 159, 159, 161, 51, -178, 283, - -178, -178, -178, -178, -178, -178, 333, -178, 158, 126, - 169, 152, 137, 16, -178, -178, 15, -178, 359, -178, - -178, -178, 359, -178, 139, 171, 171, 173, 171, 83, - 140, 174, 176, 177, 183, 171, 149, 128, -178, 359, - -178, -178, 8, 121, 307, -178, -178, 184, 137, 359, - 150, 186, -178, 187, 13, -178, 115, -178, 5, -178, - 4, -178, 188, 189, -178, 192, -178, 160, -178, 131, - 17, 136, 195, 112, 196, -178, -178, -178, -178, 359, - 203, -178, -178, -178, 190, -178, 175, -178, 86, -178, - -178, -178, -178, -178, 205, -178, 181, 191, -178, -178, - -178, 202, -178, 160, -178, -178, -178, -178, -178, -178, - 207, -178, 197, 138, 32, 211, 208, 214, 140, 140, - 198, -178, 140, 140, -178, 200, 30, -178, 204, -178, - 359, -178, 359, -178, -178, -178, 209, 212, 213, -178, - 194, -178, 223, -178, 197, 241, 215, 219, 235, 33, - -178, 137, -178, 137, 242, 236, -178, 245, 249, 48, - -178, -178, 255, 277, -178, -178, -178, 261, 246, 359, - -178, 141, -178, 265, 266, 359, -178, -178, 270, 268, - 140, 140, 140, 140, 30, -178, -178, -178, 359, -178, - -178, 359, 359, 80, 137, 137, -178, -178, -178, -178, - -178, 251, -178, 201, 239, 273, -178, 279, 137, -178, - -178, 252, 287, 359, -178 + 105, -78, -25, 32, -78, 68, 302, -78, -78, 72, + -78, -78, 87, 24, -78, -78, -78, -21, 85, -78, + 125, 6, -78, -78, -78, 120, -78, 129, -78, -78, + -78, -78, 20, -78, -78, 146, 101, 103, -78, -78, + -78, 128, -19, 151, 159, 159, 171, 8, -78, 130, + -78, -78, -78, -78, -78, -78, 242, -78, 168, 136, + 172, 156, 141, 26, -78, -78, 48, -78, 268, -78, + -78, -78, 268, -78, 143, 173, 173, 175, 173, 96, + 148, 184, 185, 187, 190, 173, 160, 140, -78, 268, + -78, -78, 1, 73, 216, -78, -78, 189, 141, 268, + 161, 193, -78, 195, 13, -78, 132, -78, 5, -78, + 82, -78, 201, 202, -78, 212, -78, 181, -78, 30, + -6, 93, 215, 9, 217, -78, -78, -78, -78, 268, + 222, -78, -78, -78, 208, -78, 191, -78, 115, -78, + -78, -78, -78, -78, 223, -78, 192, 196, -78, -78, + -78, 231, -78, 181, -78, -78, -78, -78, -78, -78, + 224, -78, 199, 138, 88, 234, 244, 241, 148, 148, + 214, -78, 148, 148, -78, 218, -21, -78, 225, -78, + 268, -78, 268, -78, -78, -78, 232, 236, 237, -78, + 239, -78, 248, -78, 199, 251, 240, 243, 254, 83, + -78, 141, -78, 141, 272, 276, -78, 275, 278, 16, + -78, -78, 284, 186, -78, -78, -78, 290, 280, 268, + -78, 155, -78, 288, 295, 268, -78, -78, 294, 297, + 148, 148, 148, 148, -21, -78, -78, -78, 268, -78, + -78, 268, 268, 44, -78, 141, 141, -78, -78, -78, + -78, -78, 270, -78, -78, -78, 299, -78, 305, 141, + -78, -78, 273, 308, 268, -78 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { - -178, -178, -178, 284, -17, -178, -178, -178, -178, -178, - 29, -178, -178, -178, -178, 258, -178, -178, -177, -178, - 145, 25, -178, -178, 154, -58, -78, -178, -55, -178, - -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, - -178, -178, 114, -178, 102, -178, 226, -178, -178, 272, - -178, 220, -178, -178 + -78, -78, -78, 310, -17, -78, -78, -78, -78, -78, + 84, -78, -78, -78, -78, 271, -78, -78, -68, -78, + 166, -52, -78, -78, 162, -60, -77, -78, -55, -78, + -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, + -78, -78, 127, -78, -75, 123, -78, 229, -78, -78, + 281, -78, 219, -78, -78 }; /* 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 -118 +#define YYTABLE_NINF -117 static const short int yytable[] = { - 25, 91, 123, 213, 101, 157, 154, 29, 72, 158, - 155, 30, 73, 109, 149, 135, 74, 19, 150, 12, - 105, 102, 75, 76, 77, 60, 78, 13, 170, 79, - 80, 81, 82, 83, 134, 61, 84, 85, 226, 91, - 144, 23, 22, -59, 145, 87, 24, 20, 243, 136, - 31, 23, 67, 20, 151, 159, 24, 103, 171, 170, - 28, 48, 234, 14, 253, 254, 23, 196, 197, 198, - 17, 24, 1, 146, 179, 68, 18, 34, 48, 2, - 3, 157, 26, 35, 72, -116, 36, 4, 73, 171, - 204, 205, 74, 185, 207, 208, 186, 210, 75, 76, - 77, 116, 78, 118, 28, 79, 80, 81, 82, 83, - 129, 32, 84, 85, -116, -116, -116, -2, 15, 119, - -14, 87, 175, 152, 120, 1, 176, 214, 153, 139, - 140, 38, 2, 3, 131, 39, 132, 28, 40, 133, - 4, 168, 57, 228, 169, 229, 172, 41, 240, 173, - 56, 186, 246, 247, 248, 249, 59, 58, 159, 211, - 42, 43, 62, 63, 239, 66, 96, 97, 44, 45, - 46, 47, 196, 197, 198, 98, 99, 114, 100, 117, - 112, 120, 125, 252, 126, 127, 255, 256, 159, 128, - 130, 146, 143, 147, 160, 148, 163, 161, 159, 159, - 260, 164, 157, 174, 177, 72, -115, 180, 264, 73, - 191, 182, 188, 74, 193, 202, 184, 250, 219, 75, - 76, 77, 189, 78, 201, 203, 79, 80, 81, 82, - 83, 220, 190, 84, 85, -115, -115, -115, 136, 206, - 157, 209, 87, 72, -117, 212, 225, 73, 222, 231, - 215, 74, 230, 217, 218, 232, 223, 75, 76, 77, - 224, 78, 233, 235, 79, 80, 81, 82, 83, 237, - 238, 84, 85, -117, -117, -117, 241, 242, 157, 245, - 87, 72, 236, 244, 69, 73, 258, 259, 70, 74, - 16, 40, 257, 262, 263, 75, 76, 77, 192, 78, - 41, 227, 79, 80, 81, 82, 83, 71, 221, 84, - 85, 72, 141, 42, 43, 73, 195, 65, 87, 74, - 142, 44, 45, 46, 47, 75, 76, 77, 156, 78, - 0, 0, 79, 80, 81, 82, 83, 72, 0, 84, - 85, 73, 0, 0, 86, 74, 0, 0, 87, 0, - 0, 75, 76, 77, 0, 78, 0, 0, 79, 80, - 81, 82, 83, 72, 0, 84, 85, 73, 0, 0, - 86, 74, 0, 0, 87, 0, 0, 75, 76, 77, - 0, 78, 0, 0, 79, 80, 81, 82, 83, 0, - 0, 84, 85, 0, 0, 0, 0, 0, 0, 0, - 87 + 25, 91, 101, 123, 110, 170, 154, 29, 135, 67, + 155, 30, 60, 109, 149, 23, 12, 28, 150, 175, + 24, 38, 61, 176, 116, 39, 118, 170, 40, 19, + 234, 102, 68, 129, 134, 171, 13, 41, 144, 91, + 168, 23, 136, 169, 145, 157, 24, 20, 72, -116, + 42, 43, 73, 105, 151, 159, 74, 171, 44, 45, + 46, 47, 75, 76, 77, 20, 78, 103, 14, 79, + 80, 81, 82, 83, 179, 17, 84, 85, -116, -116, + -116, 139, 140, 157, 23, 87, 72, 158, 226, 24, + 73, 204, 205, 18, 74, 207, 208, 22, 210, -59, + 75, 76, 77, 172, 78, 31, 173, 79, 80, 81, + 82, 83, 213, 1, 84, 85, 48, 196, 197, 198, + 2, 3, 185, 87, 32, 186, 26, 214, 4, 146, + 34, 69, 119, 48, 28, 70, 35, 120, 40, 36, + 152, 228, 57, 229, 58, 153, 131, 41, 132, 28, + 56, 133, 59, 247, 248, 249, 250, 62, 159, 211, + 42, 43, 240, 63, 239, 186, 254, 255, 44, 45, + 46, 47, 196, 197, 198, 66, 96, 97, 98, 114, + 99, 117, 100, 253, 112, 256, 257, 157, 159, 120, + 72, 236, 125, 126, 73, 127, 128, 143, 74, 261, + 147, 130, 146, 148, 75, 76, 77, 160, 78, 265, + 161, 79, 80, 81, 82, 83, 163, 251, 84, 85, + 72, 141, 164, 174, 73, 177, 180, 87, 74, 182, + 188, 193, 184, 189, 75, 76, 77, 190, 78, 191, + 136, 79, 80, 81, 82, 83, 72, 201, 84, 85, + 73, 202, 203, 86, 74, 206, 220, 87, 222, 209, + 75, 76, 77, 219, 78, 225, 212, 79, 80, 81, + 82, 83, 72, 215, 84, 85, 73, 217, 218, 86, + 74, 223, 230, 87, 224, 232, 75, 76, 77, 231, + 78, 233, 235, 79, 80, 81, 82, 83, 237, 241, + 84, 85, -2, 15, 238, -14, 242, 245, 246, 87, + 1, 258, 259, 260, 263, 264, 16, 2, 3, 192, + 71, 221, 227, 142, 195, 4, 65, 156 }; -static const short int yycheck[] = +static const unsigned short int yycheck[] = { - 17, 56, 80, 180, 62, 1, 1, 1, 4, 5, - 5, 5, 8, 68, 1, 7, 12, 5, 5, 41, - 5, 5, 18, 19, 20, 31, 22, 4, 11, 25, - 26, 27, 28, 29, 89, 41, 32, 33, 5, 94, - 98, 36, 13, 11, 99, 41, 41, 41, 225, 41, - 21, 36, 1, 41, 41, 110, 41, 41, 41, 11, - 9, 32, 14, 0, 241, 242, 36, 34, 35, 36, - 3, 41, 8, 41, 129, 24, 6, 1, 49, 15, - 16, 1, 41, 7, 4, 5, 10, 23, 8, 41, - 168, 169, 12, 7, 172, 173, 10, 175, 18, 19, - 20, 76, 22, 78, 9, 25, 26, 27, 28, 29, - 85, 4, 32, 33, 34, 35, 36, 0, 1, 36, - 3, 41, 10, 8, 41, 8, 14, 182, 13, 8, - 9, 1, 15, 16, 6, 5, 8, 9, 8, 11, - 23, 10, 41, 201, 13, 203, 10, 17, 7, 13, - 4, 10, 230, 231, 232, 233, 24, 41, 213, 176, - 30, 31, 6, 4, 219, 4, 8, 41, 38, 39, - 40, 41, 34, 35, 36, 6, 24, 6, 41, 6, - 41, 41, 8, 238, 8, 8, 244, 245, 243, 6, - 41, 41, 8, 7, 6, 8, 4, 8, 253, 254, - 258, 41, 1, 8, 8, 4, 5, 4, 263, 8, - 8, 21, 7, 12, 7, 7, 41, 234, 24, 18, - 19, 20, 41, 22, 13, 11, 25, 26, 27, 28, - 29, 8, 41, 32, 33, 34, 35, 36, 41, 41, - 1, 41, 41, 4, 5, 41, 11, 8, 7, 13, - 41, 12, 10, 41, 41, 10, 41, 18, 19, 20, - 41, 22, 13, 8, 25, 26, 27, 28, 29, 8, - 24, 32, 33, 34, 35, 36, 11, 11, 1, 11, - 41, 4, 5, 13, 1, 8, 13, 8, 5, 12, - 6, 8, 41, 41, 7, 18, 19, 20, 153, 22, - 17, 199, 25, 26, 27, 28, 29, 49, 194, 32, - 33, 4, 5, 30, 31, 8, 162, 45, 41, 12, - 94, 38, 39, 40, 41, 18, 19, 20, 108, 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, 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 + 17, 56, 62, 80, 72, 11, 1, 1, 7, 1, + 5, 5, 31, 68, 1, 36, 41, 9, 5, 10, + 41, 1, 41, 14, 76, 5, 78, 11, 8, 5, + 14, 5, 24, 85, 89, 41, 4, 17, 98, 94, + 10, 36, 41, 13, 99, 1, 41, 41, 4, 5, + 30, 31, 8, 5, 41, 110, 12, 41, 38, 39, + 40, 41, 18, 19, 20, 41, 22, 41, 0, 25, + 26, 27, 28, 29, 129, 3, 32, 33, 34, 35, + 36, 8, 9, 1, 36, 41, 4, 5, 5, 41, + 8, 168, 169, 6, 12, 172, 173, 13, 175, 11, + 18, 19, 20, 10, 22, 21, 13, 25, 26, 27, + 28, 29, 180, 8, 32, 33, 32, 34, 35, 36, + 15, 16, 7, 41, 4, 10, 41, 182, 23, 41, + 1, 1, 36, 49, 9, 5, 7, 41, 8, 10, + 8, 201, 41, 203, 41, 13, 6, 17, 8, 9, + 4, 11, 24, 230, 231, 232, 233, 6, 213, 176, + 30, 31, 7, 4, 219, 10, 241, 242, 38, 39, + 40, 41, 34, 35, 36, 4, 8, 41, 6, 6, + 24, 6, 41, 238, 41, 245, 246, 1, 243, 41, + 4, 5, 8, 8, 8, 8, 6, 8, 12, 259, + 7, 41, 41, 8, 18, 19, 20, 6, 22, 264, + 8, 25, 26, 27, 28, 29, 4, 234, 32, 33, + 4, 5, 41, 8, 8, 8, 4, 41, 12, 21, + 7, 7, 41, 41, 18, 19, 20, 41, 22, 8, + 41, 25, 26, 27, 28, 29, 4, 13, 32, 33, + 8, 7, 11, 37, 12, 41, 8, 41, 7, 41, + 18, 19, 20, 24, 22, 11, 41, 25, 26, 27, + 28, 29, 4, 41, 32, 33, 8, 41, 41, 37, + 12, 41, 10, 41, 41, 10, 18, 19, 20, 13, + 22, 13, 8, 25, 26, 27, 28, 29, 8, 11, + 32, 33, 0, 1, 24, 3, 11, 13, 11, 41, + 8, 41, 13, 8, 41, 7, 6, 15, 16, 153, + 49, 194, 199, 94, 162, 23, 45, 108 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -836,28 +820,28 @@ static const unsigned char yystos[] = 41, 51, 52, 36, 41, 46, 41, 54, 9, 1, 5, 52, 4, 55, 1, 7, 10, 53, 1, 5, 8, 17, 30, 31, 38, 39, 40, 41, 52, 56, - 57, 58, 59, 89, 90, 95, 4, 41, 41, 24, - 31, 41, 6, 4, 91, 91, 4, 1, 24, 1, + 57, 58, 59, 90, 91, 96, 4, 41, 41, 24, + 31, 41, 6, 4, 92, 92, 4, 1, 24, 1, 5, 57, 4, 8, 12, 18, 19, 20, 22, 25, 26, 27, 28, 29, 32, 33, 37, 41, 52, 65, - 69, 70, 80, 82, 87, 88, 8, 41, 6, 24, - 41, 67, 5, 41, 92, 5, 46, 93, 94, 70, + 69, 70, 80, 82, 88, 89, 8, 41, 6, 24, + 41, 67, 5, 41, 93, 5, 46, 94, 95, 70, 60, 70, 41, 78, 6, 63, 63, 6, 63, 36, 41, 68, 76, 68, 77, 8, 8, 8, 6, 63, 41, 6, 8, 11, 70, 7, 41, 66, 84, 8, - 9, 5, 88, 8, 67, 70, 41, 7, 8, 1, - 5, 41, 8, 13, 1, 5, 93, 1, 5, 70, + 9, 5, 89, 8, 67, 70, 41, 7, 8, 1, + 5, 41, 8, 13, 1, 5, 94, 1, 5, 70, 6, 8, 64, 4, 41, 61, 62, 67, 10, 13, 11, 41, 10, 13, 8, 10, 14, 8, 71, 70, 4, 81, 21, 75, 41, 7, 10, 74, 7, 41, 41, 8, 62, 7, 79, 66, 34, 35, 36, 85, - 86, 13, 7, 11, 68, 68, 41, 68, 68, 41, + 87, 13, 7, 11, 68, 68, 41, 68, 68, 41, 68, 46, 41, 60, 70, 41, 83, 41, 41, 24, - 8, 84, 7, 41, 41, 11, 5, 86, 67, 67, + 8, 84, 7, 41, 41, 11, 5, 87, 67, 67, 10, 13, 10, 13, 14, 8, 5, 8, 24, 70, - 7, 11, 11, 60, 13, 11, 68, 68, 68, 68, - 46, 72, 70, 60, 60, 67, 67, 41, 13, 8, - 67, 73, 41, 7, 70 + 7, 11, 11, 60, 86, 13, 11, 68, 68, 68, + 68, 46, 72, 70, 86, 86, 67, 67, 41, 13, + 8, 67, 73, 41, 7, 70 }; #define yyerrok (yyerrstatus = 0) @@ -1233,333 +1217,341 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) switch (yytype) { case 41: /* "word" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1239 "ael.tab.c" +#line 1223 "ael.tab.c" break; case 44: /* "objects" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1247 "ael.tab.c" +#line 1231 "ael.tab.c" break; case 45: /* "object" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1255 "ael.tab.c" +#line 1239 "ael.tab.c" break; case 46: /* "context_name" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1260 "ael.tab.c" +#line 1244 "ael.tab.c" break; case 47: /* "context" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1268 "ael.tab.c" +#line 1252 "ael.tab.c" break; case 49: /* "macro" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1276 "ael.tab.c" +#line 1260 "ael.tab.c" break; case 50: /* "globals" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1284 "ael.tab.c" +#line 1268 "ael.tab.c" break; case 51: /* "global_statements" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1292 "ael.tab.c" +#line 1276 "ael.tab.c" break; case 52: /* "assignment" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1300 "ael.tab.c" +#line 1284 "ael.tab.c" break; case 54: /* "arglist" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1308 "ael.tab.c" +#line 1292 "ael.tab.c" break; case 55: /* "elements_block" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1316 "ael.tab.c" +#line 1300 "ael.tab.c" break; case 56: /* "elements" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1324 "ael.tab.c" +#line 1308 "ael.tab.c" break; case 57: /* "element" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1332 "ael.tab.c" +#line 1316 "ael.tab.c" break; case 58: /* "ignorepat" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1340 "ael.tab.c" +#line 1324 "ael.tab.c" break; case 59: /* "extension" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1348 "ael.tab.c" +#line 1332 "ael.tab.c" break; case 60: /* "statements" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1356 "ael.tab.c" +#line 1340 "ael.tab.c" break; case 61: /* "timerange" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1361 "ael.tab.c" +#line 1345 "ael.tab.c" break; case 62: /* "timespec" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1369 "ael.tab.c" +#line 1353 "ael.tab.c" break; case 63: /* "test_expr" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1374 "ael.tab.c" +#line 1358 "ael.tab.c" break; case 65: /* "if_like_head" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1382 "ael.tab.c" +#line 1366 "ael.tab.c" break; case 66: /* "word_list" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1387 "ael.tab.c" +#line 1371 "ael.tab.c" break; case 67: /* "word3_list" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1392 "ael.tab.c" +#line 1376 "ael.tab.c" break; case 68: /* "goto_word" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1397 "ael.tab.c" +#line 1381 "ael.tab.c" break; case 69: /* "switch_statement" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1405 "ael.tab.c" +#line 1389 "ael.tab.c" break; case 70: /* "statement" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1413 "ael.tab.c" +#line 1397 "ael.tab.c" break; case 75: /* "opt_else" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1421 "ael.tab.c" +#line 1405 "ael.tab.c" break; case 76: /* "target" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1429 "ael.tab.c" +#line 1413 "ael.tab.c" break; case 77: /* "jumptarget" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1437 "ael.tab.c" +#line 1421 "ael.tab.c" break; case 78: /* "macro_call" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1445 "ael.tab.c" +#line 1429 "ael.tab.c" break; case 80: /* "application_call_head" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1453 "ael.tab.c" +#line 1437 "ael.tab.c" break; case 82: /* "application_call" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1461 "ael.tab.c" +#line 1445 "ael.tab.c" break; case 83: /* "opt_word" */ -#line 173 "ael.y" +#line 175 "ael.y" { free((yyvaluep->str));}; -#line 1466 "ael.tab.c" +#line 1450 "ael.tab.c" break; case 84: /* "eval_arglist" */ -#line 159 "ael.y" +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; -#line 1474 "ael.tab.c" +#line 1458 "ael.tab.c" break; case 85: /* "case_statements" */ -#line 159 "ael.y" +#line 160 "ael.y" + { + destroy_pval((yyvaluep->pval)); + prev_word=0; + }; +#line 1466 "ael.tab.c" + break; + case 86: /* "opt_statements" */ +#line 160 "ael.y" + { + destroy_pval((yyvaluep->pval)); + prev_word=0; + }; +#line 1474 "ael.tab.c" + break; + case 87: /* "case_statement" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1482 "ael.tab.c" break; - case 86: /* "case_statement" */ -#line 159 "ael.y" + case 88: /* "macro_statements" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1490 "ael.tab.c" break; - case 87: /* "macro_statements" */ -#line 159 "ael.y" + case 89: /* "macro_statement" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1498 "ael.tab.c" break; - case 88: /* "macro_statement" */ -#line 159 "ael.y" + case 90: /* "switches" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1506 "ael.tab.c" break; - case 89: /* "switches" */ -#line 159 "ael.y" + case 91: /* "eswitches" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1514 "ael.tab.c" break; - case 90: /* "eswitches" */ -#line 159 "ael.y" + case 92: /* "switchlist_block" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1522 "ael.tab.c" break; - case 91: /* "switchlist_block" */ -#line 159 "ael.y" + case 93: /* "switchlist" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1530 "ael.tab.c" break; - case 92: /* "switchlist" */ -#line 159 "ael.y" + case 94: /* "included_entry" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1538 "ael.tab.c" break; - case 93: /* "included_entry" */ -#line 159 "ael.y" + case 95: /* "includeslist" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1546 "ael.tab.c" break; - case 94: /* "includeslist" */ -#line 159 "ael.y" + case 96: /* "includes" */ +#line 160 "ael.y" { destroy_pval((yyvaluep->pval)); prev_word=0; }; #line 1554 "ael.tab.c" break; - case 95: /* "includes" */ -#line 159 "ael.y" - { - destroy_pval((yyvaluep->pval)); - prev_word=0; - }; -#line 1562 "ael.tab.c" - break; default: break; @@ -1875,57 +1867,57 @@ yyreduce: switch (yyn) { case 2: -#line 180 "ael.y" +#line 182 "ael.y" { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;} break; case 3: -#line 183 "ael.y" +#line 185 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 4: -#line 184 "ael.y" +#line 186 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 5: -#line 185 "ael.y" +#line 187 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 6: -#line 188 "ael.y" +#line 190 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 7: -#line 189 "ael.y" +#line 191 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 8: -#line 190 "ael.y" +#line 192 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 9: -#line 191 "ael.y" +#line 193 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 10: -#line 194 "ael.y" +#line 196 "ael.y" { (yyval.str) = (yyvsp[0].str); ;} break; case 11: -#line 195 "ael.y" +#line 197 "ael.y" { (yyval.str) = strdup("default"); ;} break; case 12: -#line 198 "ael.y" +#line 200 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); @@ -1934,57 +1926,57 @@ yyreduce: break; case 13: -#line 206 "ael.y" +#line 208 "ael.y" { (yyval.intval) = 1; ;} break; case 14: -#line 207 "ael.y" +#line 209 "ael.y" { (yyval.intval) = 0; ;} break; case 15: -#line 210 "ael.y" +#line 212 "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 215 "ael.y" +#line 217 "ael.y" { (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.statements = (yyvsp[-1].pval);;} break; case 17: -#line 218 "ael.y" +#line 220 "ael.y" { /* empty globals is OK */ (yyval.pval) = npval2(PV_GLOBALS, &(yylsp[-2]), &(yylsp[0])); ;} break; case 18: -#line 222 "ael.y" +#line 224 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 19: -#line 223 "ael.y" +#line 225 "ael.y" {(yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 20: -#line 224 "ael.y" +#line 226 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 21: -#line 227 "ael.y" +#line 229 "ael.y" { reset_semicount(parseio->scanner); ;} break; case 22: -#line 227 "ael.y" +#line 229 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); @@ -1992,104 +1984,104 @@ yyreduce: break; case 23: -#line 233 "ael.y" +#line 235 "ael.y" { (yyval.pval) = NULL; ;} break; case 24: -#line 234 "ael.y" +#line 236 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 25: -#line 235 "ael.y" +#line 237 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;} break; case 26: -#line 236 "ael.y" +#line 238 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 27: -#line 239 "ael.y" +#line 241 "ael.y" { (yyval.pval) = NULL; ;} break; case 28: -#line 240 "ael.y" +#line 242 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); ;} break; case 29: -#line 243 "ael.y" +#line 245 "ael.y" { (yyval.pval)=(yyvsp[0].pval);;} break; case 30: -#line 244 "ael.y" +#line 246 "ael.y" {(yyval.pval)=0;;} break; case 31: -#line 245 "ael.y" +#line 247 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 32: -#line 246 "ael.y" +#line 248 "ael.y" { (yyval.pval)=(yyvsp[-1].pval);;} break; case 33: -#line 249 "ael.y" +#line 251 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 34: -#line 250 "ael.y" +#line 252 "ael.y" {(yyval.pval)=(yyvsp[0].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" {free((yyvsp[-1].str)); (yyval.pval)=0;;} break; case 40: -#line 256 "ael.y" +#line 258 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 41: -#line 259 "ael.y" +#line 261 "ael.y" { (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 42: -#line 264 "ael.y" +#line 266 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2097,7 +2089,7 @@ yyreduce: break; case 43: -#line 268 "ael.y" +#line 270 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2106,7 +2098,7 @@ yyreduce: break; case 44: -#line 273 "ael.y" +#line 275 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2115,7 +2107,7 @@ yyreduce: break; case 45: -#line 278 "ael.y" +#line 280 "ael.y" { (yyval.pval) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2125,22 +2117,22 @@ yyreduce: break; case 46: -#line 287 "ael.y" +#line 289 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 47: -#line 288 "ael.y" +#line 290 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 48: -#line 289 "ael.y" +#line 291 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 49: -#line 295 "ael.y" +#line 297 "ael.y" { asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[-4].str), (yyvsp[-2].str), (yyvsp[0].str)); free((yyvsp[-4].str)); @@ -2149,12 +2141,12 @@ yyreduce: break; case 50: -#line 300 "ael.y" +#line 302 "ael.y" { (yyval.str) = (yyvsp[0].str); ;} break; case 51: -#line 304 "ael.y" +#line 306 "ael.y" { (yyval.pval) = nword((yyvsp[-6].str), &(yylsp[-6])); (yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4])); @@ -2163,32 +2155,32 @@ yyreduce: break; case 52: -#line 312 "ael.y" +#line 314 "ael.y" { reset_parencount(parseio->scanner); ;} break; case 53: -#line 312 "ael.y" +#line 314 "ael.y" { (yyval.str) = (yyvsp[-1].str); ;} break; case 54: -#line 317 "ael.y" +#line 319 "ael.y" { (yyval.pval)= npval2(PV_IF, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[0].str); ;} break; case 55: -#line 320 "ael.y" +#line 322 "ael.y" { (yyval.pval) = npval2(PV_RANDOM, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str=(yyvsp[0].str);;} break; case 56: -#line 323 "ael.y" +#line 325 "ael.y" { (yyval.pval) = npval2(PV_IFTIME, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval); @@ -2196,12 +2188,12 @@ yyreduce: break; case 57: -#line 334 "ael.y" +#line 336 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 58: -#line 335 "ael.y" +#line 337 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2210,12 +2202,12 @@ yyreduce: break; case 59: -#line 342 "ael.y" +#line 344 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 60: -#line 343 "ael.y" +#line 345 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2224,7 +2216,7 @@ yyreduce: break; case 61: -#line 348 "ael.y" +#line 350 "ael.y" { asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-2].str)); @@ -2234,12 +2226,12 @@ yyreduce: break; case 62: -#line 356 "ael.y" +#line 358 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 63: -#line 357 "ael.y" +#line 359 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2247,7 +2239,7 @@ yyreduce: break; case 64: -#line 361 "ael.y" +#line 363 "ael.y" { asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str)); free((yyvsp[-2].str)); @@ -2255,7 +2247,7 @@ yyreduce: break; case 65: -#line 367 "ael.y" +#line 369 "ael.y" { (yyval.pval) = npval2(PV_SWITCH, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); @@ -2263,55 +2255,55 @@ yyreduce: break; case 66: -#line 376 "ael.y" +#line 378 "ael.y" { (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;} break; case 67: -#line 379 "ael.y" +#line 381 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; case 68: -#line 380 "ael.y" +#line 382 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 69: -#line 383 "ael.y" +#line 385 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 70: -#line 386 "ael.y" +#line 388 "ael.y" { (yyval.pval) = npval2(PV_LABEL, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); ;} break; case 71: -#line 389 "ael.y" +#line 391 "ael.y" {reset_semicount(parseio->scanner);;} break; case 72: -#line 390 "ael.y" +#line 392 "ael.y" {reset_semicount(parseio->scanner);;} break; case 73: -#line 391 "ael.y" +#line 393 "ael.y" {reset_parencount(parseio->scanner);;} break; case 74: -#line 391 "ael.y" +#line 393 "ael.y" { /* XXX word_list maybe ? */ (yyval.pval) = npval2(PV_FOR, &(yylsp[-11]), &(yylsp[0])); (yyval.pval)->u1.for_init = (yyvsp[-8].str); @@ -2321,7 +2313,7 @@ yyreduce: break; case 75: -#line 397 "ael.y" +#line 399 "ael.y" { (yyval.pval) = npval2(PV_WHILE, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str); @@ -2329,36 +2321,36 @@ yyreduce: break; case 76: -#line 401 "ael.y" +#line 403 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; case 77: -#line 402 "ael.y" +#line 404 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[-1])); ;} break; case 78: -#line 404 "ael.y" +#line 406 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; case 79: -#line 406 "ael.y" +#line 408 "ael.y" { (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 80: -#line 409 "ael.y" +#line 411 "ael.y" {reset_semicount(parseio->scanner);;} break; case 81: -#line 409 "ael.y" +#line 411 "ael.y" { char *bufx; int tot=0; @@ -2395,22 +2387,22 @@ yyreduce: break; case 82: -#line 442 "ael.y" +#line 444 "ael.y" { (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;} break; case 83: -#line 443 "ael.y" +#line 445 "ael.y" { (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;} break; case 84: -#line 444 "ael.y" +#line 446 "ael.y" { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;} break; case 85: -#line 445 "ael.y" +#line 447 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[-1])); (yyval.pval)->u2.statements = (yyvsp[-1].pval); @@ -2418,41 +2410,41 @@ yyreduce: break; case 86: -#line 449 "ael.y" +#line 451 "ael.y" { (yyval.pval)=0; ;} break; case 87: -#line 452 "ael.y" +#line 454 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; case 88: -#line 453 "ael.y" +#line 455 "ael.y" { (yyval.pval) = NULL ; ;} break; case 89: -#line 458 "ael.y" +#line 460 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 90: -#line 459 "ael.y" +#line 461 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 91: -#line 462 "ael.y" +#line 464 "ael.y" { (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 92: -#line 465 "ael.y" +#line 467 "ael.y" { (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2460,7 +2452,7 @@ yyreduce: break; case 93: -#line 469 "ael.y" +#line 471 "ael.y" { (yyval.pval) = nword((yyvsp[-4].str), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2468,7 +2460,7 @@ yyreduce: break; case 94: -#line 473 "ael.y" +#line 475 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2476,7 +2468,7 @@ yyreduce: break; case 95: -#line 477 "ael.y" +#line 479 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[-4])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2484,21 +2476,21 @@ yyreduce: break; case 96: -#line 484 "ael.y" +#line 486 "ael.y" { /* ext, 1 */ (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); (yyval.pval)->next = nword(strdup("1"), &(yylsp[0])); ;} break; case 97: -#line 487 "ael.y" +#line 489 "ael.y" { /* ext, pri */ (yyval.pval) = nword((yyvsp[-2].str), &(yylsp[-2])); (yyval.pval)->next = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 98: -#line 490 "ael.y" +#line 492 "ael.y" { /* context, ext, pri */ (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); (yyval.pval)->next = nword((yyvsp[-4].str), &(yylsp[-4])); @@ -2506,7 +2498,7 @@ yyreduce: break; case 99: -#line 494 "ael.y" +#line 496 "ael.y" { /* context, ext, 1 */ (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); (yyval.pval)->next = nword((yyvsp[-2].str), &(yylsp[-2])); @@ -2514,12 +2506,12 @@ yyreduce: break; case 100: -#line 500 "ael.y" +#line 502 "ael.y" {reset_argcount(parseio->scanner);;} break; case 101: -#line 500 "ael.y" +#line 502 "ael.y" { /* XXX original code had @2 but i think we need @5 */ (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0])); @@ -2528,19 +2520,19 @@ yyreduce: break; case 102: -#line 505 "ael.y" +#line 507 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); ;} break; case 103: -#line 513 "ael.y" +#line 515 "ael.y" {reset_argcount(parseio->scanner);;} break; case 104: -#line 513 "ael.y" +#line 515 "ael.y" { if (strcasecmp((yyvsp[-2].str),"goto") == 0) { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[-1])); @@ -2553,7 +2545,7 @@ yyreduce: break; case 105: -#line 524 "ael.y" +#line 526 "ael.y" { (yyval.pval) = update_last((yyvsp[-2].pval), &(yylsp[0])); if( (yyval.pval)->type == PV_GOTO ) @@ -2564,201 +2556,190 @@ yyreduce: break; case 106: -#line 531 "ael.y" +#line 533 "ael.y" { (yyval.pval) = update_last((yyvsp[-1].pval), &(yylsp[0])); ;} break; case 107: -#line 534 "ael.y" +#line 536 "ael.y" { (yyval.str) = (yyvsp[0].str) ;} break; case 108: -#line 535 "ael.y" +#line 537 "ael.y" { (yyval.str) = strdup(""); ;} break; case 109: -#line 538 "ael.y" +#line 540 "ael.y" { (yyval.pval) = nword((yyvsp[0].str), &(yylsp[0])); ;} break; case 110: -#line 539 "ael.y" +#line 541 "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 111: -#line 542 "ael.y" +#line 544 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[0].str), &(yylsp[0]))); ;} break; case 112: -#line 545 "ael.y" +#line 547 "ael.y" { (yyval.pval) = NULL; ;} break; case 113: -#line 546 "ael.y" +#line 548 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 114: -#line 547 "ael.y" +#line 549 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; case 115: -#line 550 "ael.y" - { - (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */ - (yyval.pval)->u1.str = (yyvsp[-2].str); - (yyval.pval)->u2.statements = (yyvsp[0].pval);;} +#line 553 "ael.y" + { (yyval.pval) = NULL; ;} break; case 116: #line 554 "ael.y" - { - (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0])); - (yyval.pval)->u1.str = NULL; - (yyval.pval)->u2.statements = (yyvsp[0].pval);;} + { (yyval.pval) = (yyvsp[0].pval); ;} break; case 117: -#line 558 "ael.y" +#line 557 "ael.y" { - (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */ + (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */ (yyval.pval)->u1.str = (yyvsp[-2].str); (yyval.pval)->u2.statements = (yyvsp[0].pval);;} break; case 118: -#line 562 "ael.y" +#line 561 "ael.y" { - (yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0])); - (yyval.pval)->u1.str = (yyvsp[-1].str);;} + (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0])); + (yyval.pval)->u1.str = NULL; + (yyval.pval)->u2.statements = (yyvsp[0].pval);;} break; case 119: #line 565 "ael.y" { - (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0])); - (yyval.pval)->u1.str = NULL;;} + (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */ + (yyval.pval)->u1.str = (yyvsp[-2].str); + (yyval.pval)->u2.statements = (yyvsp[0].pval);;} break; case 120: -#line 568 "ael.y" - { - (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0])); - (yyval.pval)->u1.str = (yyvsp[-1].str);;} - break; - - case 121: -#line 573 "ael.y" +#line 571 "ael.y" { (yyval.pval) = NULL; ;} break; - case 122: -#line 574 "ael.y" + case 121: +#line 572 "ael.y" {(yyval.pval) = (yyvsp[0].pval);;} break; - case 123: -#line 575 "ael.y" + case 122: +#line 573 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; - case 124: -#line 578 "ael.y" + case 123: +#line 576 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; - case 125: -#line 579 "ael.y" + case 124: +#line 577 "ael.y" { (yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); (yyval.pval)->u2.statements = (yyvsp[-1].pval);;} break; - case 126: -#line 585 "ael.y" + case 125: +#line 583 "ael.y" { (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[0].pval); ;} break; - case 127: -#line 590 "ael.y" + case 126: +#line 588 "ael.y" { (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[0].pval); ;} break; - case 128: -#line 595 "ael.y" + case 127: +#line 593 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); ;} break; - case 129: -#line 596 "ael.y" + case 128: +#line 594 "ael.y" { (yyval.pval) = NULL; ;} break; - case 130: -#line 599 "ael.y" + case 129: +#line 597 "ael.y" { (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); ;} break; - case 131: -#line 600 "ael.y" + case 130: +#line 598 "ael.y" { (yyval.pval) = linku1((yyvsp[-2].pval), nword((yyvsp[-1].str), &(yylsp[-1]))); ;} break; - case 132: -#line 601 "ael.y" + case 131: +#line 599 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; - case 133: -#line 604 "ael.y" + case 132: +#line 602 "ael.y" { (yyval.pval) = nword((yyvsp[-1].str), &(yylsp[-1])); ;} break; - case 134: -#line 605 "ael.y" + case 133: +#line 603 "ael.y" { (yyval.pval) = nword((yyvsp[-3].str), &(yylsp[-3])); (yyval.pval)->u2.arglist = (yyvsp[-1].pval); prev_word=0; /* XXX sure ? */ ;} break; - case 135: -#line 612 "ael.y" + case 134: +#line 610 "ael.y" { (yyval.pval) = (yyvsp[0].pval); ;} break; - case 136: -#line 613 "ael.y" + case 135: +#line 611 "ael.y" { (yyval.pval) = linku1((yyvsp[-1].pval), (yyvsp[0].pval)); ;} break; - case 137: -#line 614 "ael.y" + case 136: +#line 612 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; - case 138: -#line 617 "ael.y" + case 137: +#line 615 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; - case 139: -#line 620 "ael.y" + case 138: +#line 618 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;} break; @@ -2768,7 +2749,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 2772 "ael.tab.c" +#line 2753 "ael.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -3043,7 +3024,7 @@ yyreturn: } -#line 625 "ael.y" +#line 623 "ael.y" static char *token_equivs1[] = diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index f73b385aa..e46a002d3 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -121,6 +121,7 @@ static pval *update_last(pval *, YYLTYPE *); %type switchlist_block %type timespec %type included_entry +%type opt_statements %type opt_word %type context_name @@ -169,6 +170,7 @@ static pval *update_last(pval *, YYLTYPE *); opt_else elements_block switchlist_block timespec included_entry + opt_statements %destructor { free($$);} word word_list goto_word word3_list opt_word context_name timerange @@ -547,27 +549,23 @@ case_statements: /* empty */ { $$ = NULL; } | case_statements case_statement { $$ = linku1($1, $2); } ; -case_statement: KW_CASE word COLON statements { +/* statement in a switch body after a label */ +opt_statements : { $$ = NULL; } + | statements { $$ = $1; } + ; + +case_statement: KW_CASE word COLON opt_statements { $$ = npval2(PV_CASE, &@1, &@3); /* XXX 3 or 4 ? */ $$->u1.str = $2; $$->u2.statements = $4;} - | KW_DEFAULT COLON statements { + | KW_DEFAULT COLON opt_statements { $$ = npval2(PV_DEFAULT, &@1, &@3); $$->u1.str = NULL; $$->u2.statements = $3;} - | KW_PATTERN word COLON statements { + | KW_PATTERN word COLON opt_statements { $$ = npval2(PV_PATTERN, &@1, &@4); /* XXX@3 or @4 ? */ $$->u1.str = $2; $$->u2.statements = $4;} - | KW_CASE word COLON { - $$ = npval2(PV_CASE, &@1, &@3); - $$->u1.str = $2;} - | KW_DEFAULT COLON { - $$ = npval2(PV_DEFAULT, &@1, &@2); - $$->u1.str = NULL;} - | KW_PATTERN word COLON { - $$ = npval2(PV_PATTERN, &@1, &@3); - $$->u1.str = $2;} ; macro_statements: /* empty */ { $$ = NULL; } -- cgit v1.2.3