From e74239070632a3acdac75987d26306165db51019 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Mon, 20 Apr 2009 21:09:59 +0000 Subject: Merged revisions 189462 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r189462 | seanbright | 2009-04-20 16:58:39 -0400 (Mon, 20 Apr 2009) | 13 lines Properly handle @s within hints in AEL. AEL was not handling the case of a device hint containing an @ symbol, which caused parking hints (e.g. hint(park:exten@context)) to error out the parser. This patch makes AEL treat the @ the same way it treats colon and ampersand now, meaning the characters are included in verbatim. (closes issue #14941) Reported by: bpgoldsb Patches: bug14941.patch uploaded by seanbright (license 71) Tested by: bpgoldsb ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@189464 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/ael/ael.tab.c | 763 +++++++++++++++++++++++++++--------------------------- res/ael/ael.y | 9 + 2 files changed, 397 insertions(+), 375 deletions(-) (limited to 'res/ael') diff --git a/res/ael/ael.tab.c b/res/ael/ael.tab.c index 34900acb0..cbe9d8c33 100644 --- a/res/ael/ael.tab.c +++ b/res/ael/ael.tab.c @@ -511,16 +511,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 17 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 373 +#define YYLAST 371 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 44 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 56 /* YYNRULES -- Number of rules. */ -#define YYNRULES 142 +#define YYNRULES 143 /* YYNRULES -- Number of states. */ -#define YYNSTATES 281 +#define YYNSTATES 283 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -575,15 +575,15 @@ static const yytype_uint16 yyprhs[] = 86, 89, 90, 93, 96, 98, 100, 102, 104, 106, 108, 110, 113, 115, 120, 124, 130, 135, 143, 152, 153, 156, 159, 165, 167, 175, 176, 181, 184, 187, - 192, 194, 197, 199, 202, 206, 210, 212, 215, 219, - 221, 224, 228, 234, 238, 240, 242, 246, 250, 253, - 254, 255, 256, 269, 273, 275, 279, 282, 285, 286, - 292, 295, 298, 301, 305, 307, 310, 311, 313, 317, - 321, 327, 333, 339, 345, 346, 349, 352, 357, 358, - 364, 368, 369, 373, 377, 380, 382, 383, 385, 386, - 390, 391, 394, 399, 403, 408, 409, 412, 414, 416, - 422, 427, 432, 433, 437, 443, 446, 448, 452, 455, - 459, 462, 467 + 192, 194, 197, 199, 202, 206, 210, 214, 216, 219, + 223, 225, 228, 232, 238, 242, 244, 246, 250, 254, + 257, 258, 259, 260, 273, 277, 279, 283, 286, 289, + 290, 296, 299, 302, 305, 309, 311, 314, 315, 317, + 321, 325, 331, 337, 343, 349, 350, 353, 356, 361, + 362, 368, 372, 373, 377, 381, 384, 386, 387, 389, + 390, 394, 395, 398, 403, 407, 412, 413, 416, 418, + 420, 426, 431, 436, 437, 441, 447, 450, 452, 456, + 459, 463, 466, 471 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -610,33 +610,33 @@ static const yytype_int8 yyrhs[] = -1, 19, 66, -1, 22, 66, -1, 20, 6, 65, 7, -1, 43, -1, 43, 43, -1, 43, -1, 70, 43, -1, 70, 11, 43, -1, 70, 12, 43, -1, - 43, -1, 43, 43, -1, 43, 43, 43, -1, 43, - -1, 43, 43, -1, 72, 11, 43, -1, 18, 66, - 4, 90, 5, -1, 4, 63, 5, -1, 54, -1, - 56, -1, 26, 80, 8, -1, 27, 82, 8, -1, - 43, 11, -1, -1, -1, -1, 33, 6, 75, 43, - 8, 76, 43, 8, 77, 43, 7, 74, -1, 34, - 66, 74, -1, 73, -1, 12, 83, 8, -1, 87, - 8, -1, 43, 8, -1, -1, 87, 9, 78, 43, - 8, -1, 29, 8, -1, 28, 8, -1, 30, 8, - -1, 68, 74, 79, -1, 8, -1, 21, 74, -1, - -1, 72, -1, 72, 13, 72, -1, 72, 10, 72, - -1, 72, 13, 72, 13, 72, -1, 72, 10, 72, - 10, 72, -1, 37, 13, 72, 13, 72, -1, 37, - 10, 72, 10, 72, -1, -1, 10, 43, -1, 72, - 81, -1, 72, 81, 14, 48, -1, -1, 43, 6, - 84, 89, 7, -1, 43, 6, 7, -1, -1, 43, - 6, 86, -1, 85, 89, 7, -1, 85, 7, -1, - 43, -1, -1, 69, -1, -1, 89, 10, 88, -1, - -1, 90, 91, -1, 35, 43, 11, 63, -1, 37, - 11, 63, -1, 36, 43, 11, 63, -1, -1, 92, - 93, -1, 74, -1, 99, -1, 38, 43, 4, 63, - 5, -1, 39, 4, 96, 5, -1, 40, 4, 96, - 5, -1, -1, 96, 43, 8, -1, 96, 43, 14, - 43, 8, -1, 1, 96, -1, 48, -1, 48, 13, - 65, -1, 97, 8, -1, 98, 97, 8, -1, 98, - 1, -1, 41, 4, 98, 5, -1, 41, 4, 5, - -1 + 70, 14, 43, -1, 43, -1, 43, 43, -1, 43, + 43, 43, -1, 43, -1, 43, 43, -1, 72, 11, + 43, -1, 18, 66, 4, 90, 5, -1, 4, 63, + 5, -1, 54, -1, 56, -1, 26, 80, 8, -1, + 27, 82, 8, -1, 43, 11, -1, -1, -1, -1, + 33, 6, 75, 43, 8, 76, 43, 8, 77, 43, + 7, 74, -1, 34, 66, 74, -1, 73, -1, 12, + 83, 8, -1, 87, 8, -1, 43, 8, -1, -1, + 87, 9, 78, 43, 8, -1, 29, 8, -1, 28, + 8, -1, 30, 8, -1, 68, 74, 79, -1, 8, + -1, 21, 74, -1, -1, 72, -1, 72, 13, 72, + -1, 72, 10, 72, -1, 72, 13, 72, 13, 72, + -1, 72, 10, 72, 10, 72, -1, 37, 13, 72, + 13, 72, -1, 37, 10, 72, 10, 72, -1, -1, + 10, 43, -1, 72, 81, -1, 72, 81, 14, 48, + -1, -1, 43, 6, 84, 89, 7, -1, 43, 6, + 7, -1, -1, 43, 6, 86, -1, 85, 89, 7, + -1, 85, 7, -1, 43, -1, -1, 69, -1, -1, + 89, 10, 88, -1, -1, 90, 91, -1, 35, 43, + 11, 63, -1, 37, 11, 63, -1, 36, 43, 11, + 63, -1, -1, 92, 93, -1, 74, -1, 99, -1, + 38, 43, 4, 63, 5, -1, 39, 4, 96, 5, + -1, 40, 4, 96, 5, -1, -1, 96, 43, 8, + -1, 96, 43, 14, 43, 8, -1, 1, 96, -1, + 48, -1, 48, 13, 65, -1, 97, 8, -1, 98, + 97, 8, -1, 98, 1, -1, 41, 4, 98, 5, + -1, 41, 4, 5, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -648,15 +648,15 @@ static const yytype_uint16 yyrline[] = 258, 261, 262, 263, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 282, 286, 294, 299, 304, 313, 314, 315, 321, 331, 335, 343, 343, 347, 350, 353, - 364, 365, 377, 378, 387, 396, 407, 408, 418, 431, - 432, 441, 452, 461, 464, 465, 466, 469, 472, 475, - 476, 477, 475, 483, 487, 488, 489, 490, 493, 493, - 526, 527, 528, 529, 533, 536, 537, 540, 541, 544, - 547, 551, 555, 559, 565, 566, 570, 573, 579, 579, - 584, 592, 592, 603, 610, 613, 614, 617, 618, 621, - 624, 625, 628, 632, 636, 642, 643, 646, 647, 648, - 654, 659, 664, 665, 666, 677, 680, 681, 688, 689, - 690, 693, 696 + 364, 365, 377, 378, 387, 396, 405, 416, 417, 427, + 440, 441, 450, 461, 470, 473, 474, 475, 478, 481, + 484, 485, 486, 484, 492, 496, 497, 498, 499, 502, + 502, 535, 536, 537, 538, 542, 545, 546, 549, 550, + 553, 556, 560, 564, 568, 574, 575, 579, 582, 588, + 588, 593, 601, 601, 612, 619, 622, 623, 626, 627, + 630, 633, 634, 637, 641, 645, 651, 652, 655, 656, + 657, 663, 668, 673, 674, 675, 686, 689, 690, 697, + 698, 699, 702, 705 }; #endif @@ -708,15 +708,15 @@ static const yytype_uint8 yyr1[] = 58, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 62, 62, 62, 62, 62, 63, 63, 63, 64, 64, 65, 67, 66, 68, 68, 68, - 69, 69, 70, 70, 70, 70, 71, 71, 71, 72, - 72, 72, 73, 74, 74, 74, 74, 74, 74, 75, - 76, 77, 74, 74, 74, 74, 74, 74, 78, 74, - 74, 74, 74, 74, 74, 79, 79, 80, 80, 80, - 80, 80, 80, 80, 81, 81, 82, 82, 84, 83, - 83, 86, 85, 87, 87, 88, 88, 89, 89, 89, - 90, 90, 91, 91, 91, 92, 92, 93, 93, 93, - 94, 95, 96, 96, 96, 96, 97, 97, 98, 98, - 98, 99, 99 + 69, 69, 70, 70, 70, 70, 70, 71, 71, 71, + 72, 72, 72, 73, 74, 74, 74, 74, 74, 74, + 75, 76, 77, 74, 74, 74, 74, 74, 74, 78, + 74, 74, 74, 74, 74, 74, 79, 79, 80, 80, + 80, 80, 80, 80, 80, 81, 81, 82, 82, 84, + 83, 83, 86, 85, 87, 87, 88, 88, 89, 89, + 89, 90, 90, 91, 91, 91, 92, 92, 93, 93, + 93, 94, 95, 96, 96, 96, 96, 97, 97, 98, + 98, 98, 99, 99 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -728,15 +728,15 @@ static const yytype_uint8 yyr2[] = 2, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 3, 5, 4, 7, 8, 0, 2, 2, 5, 1, 7, 0, 4, 2, 2, 4, - 1, 2, 1, 2, 3, 3, 1, 2, 3, 1, - 2, 3, 5, 3, 1, 1, 3, 3, 2, 0, - 0, 0, 12, 3, 1, 3, 2, 2, 0, 5, - 2, 2, 2, 3, 1, 2, 0, 1, 3, 3, - 5, 5, 5, 5, 0, 2, 2, 4, 0, 5, - 3, 0, 3, 3, 2, 1, 0, 1, 0, 3, - 0, 2, 4, 3, 4, 0, 2, 1, 1, 5, - 4, 4, 0, 3, 5, 2, 1, 3, 2, 3, - 2, 4, 3 + 1, 2, 1, 2, 3, 3, 3, 1, 2, 3, + 1, 2, 3, 5, 3, 1, 1, 3, 3, 2, + 0, 0, 0, 12, 3, 1, 3, 2, 2, 0, + 5, 2, 2, 2, 3, 1, 2, 0, 1, 3, + 3, 5, 5, 5, 5, 0, 2, 2, 4, 0, + 5, 3, 0, 3, 3, 2, 1, 0, 1, 0, + 3, 0, 2, 4, 3, 4, 0, 2, 1, 1, + 5, 4, 4, 0, 3, 5, 2, 1, 3, 2, + 3, 2, 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -748,178 +748,178 @@ static const yytype_uint8 yydefact[] = 0, 7, 8, 0, 0, 17, 16, 1, 5, 4, 0, 27, 0, 0, 11, 10, 0, 28, 0, 22, 19, 0, 21, 0, 30, 0, 0, 23, 0, 0, - 125, 29, 0, 33, 12, 42, 0, 0, 0, 0, + 126, 29, 0, 33, 12, 42, 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, 32, 38, 34, 36, 37, 35, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 0, 0, 0, 18, 94, 0, 0, + 0, 0, 41, 0, 0, 0, 18, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 74, 75, 0, 84, 127, 118, 0, 126, - 128, 24, 0, 0, 0, 62, 0, 0, 0, 0, - 142, 136, 0, 0, 25, 0, 44, 0, 0, 0, - 0, 55, 0, 57, 0, 58, 0, 69, 97, 0, - 104, 0, 91, 90, 92, 79, 0, 0, 111, 87, - 78, 96, 114, 60, 117, 0, 86, 88, 43, 0, - 46, 0, 0, 0, 63, 135, 130, 0, 131, 0, - 138, 140, 141, 0, 0, 0, 51, 73, 50, 108, - 85, 0, 120, 53, 0, 0, 0, 0, 0, 70, - 0, 0, 0, 76, 0, 106, 77, 0, 83, 0, - 112, 0, 93, 61, 113, 116, 0, 0, 0, 64, - 65, 133, 0, 137, 139, 0, 45, 110, 118, 0, - 0, 67, 0, 59, 0, 0, 0, 99, 71, 98, - 105, 0, 0, 0, 95, 115, 119, 0, 0, 0, - 0, 26, 0, 56, 72, 0, 0, 0, 121, 68, - 66, 0, 0, 0, 0, 0, 0, 107, 80, 129, - 89, 0, 47, 134, 109, 0, 0, 0, 0, 0, - 103, 102, 101, 100, 0, 48, 0, 0, 123, 0, - 52, 0, 122, 124, 0, 81, 54, 0, 0, 0, - 82 + 0, 0, 75, 76, 0, 85, 128, 119, 0, 127, + 129, 24, 0, 0, 0, 62, 0, 0, 0, 0, + 143, 137, 0, 0, 25, 0, 44, 0, 0, 0, + 0, 55, 0, 57, 0, 58, 0, 70, 98, 0, + 105, 0, 92, 91, 93, 80, 0, 0, 112, 88, + 79, 97, 115, 60, 118, 0, 87, 89, 43, 0, + 46, 0, 0, 0, 0, 63, 136, 131, 0, 132, + 0, 139, 141, 142, 0, 0, 0, 51, 74, 50, + 109, 86, 0, 121, 53, 0, 0, 0, 0, 0, + 71, 0, 0, 0, 77, 0, 107, 78, 0, 84, + 0, 113, 0, 94, 61, 114, 117, 0, 0, 0, + 64, 65, 66, 134, 0, 138, 140, 0, 45, 111, + 119, 0, 0, 68, 0, 59, 0, 0, 0, 100, + 72, 99, 106, 0, 0, 0, 96, 116, 120, 0, + 0, 0, 0, 26, 0, 56, 73, 0, 0, 0, + 122, 69, 67, 0, 0, 0, 0, 0, 0, 108, + 81, 130, 90, 0, 47, 135, 110, 0, 0, 0, + 0, 0, 104, 103, 102, 101, 0, 48, 0, 0, + 124, 0, 52, 0, 123, 125, 0, 82, 54, 0, + 0, 0, 83 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 6, 7, 8, 111, 9, 10, 11, 12, 23, - 92, 42, 93, 164, 28, 39, 56, 57, 58, 118, - 174, 175, 122, 171, 94, 144, 106, 176, 128, 95, - 168, 187, 264, 277, 196, 192, 129, 185, 131, 120, - 208, 97, 190, 98, 226, 145, 210, 238, 62, 99, + 92, 42, 93, 165, 28, 39, 56, 57, 58, 118, + 175, 176, 122, 172, 94, 144, 106, 177, 128, 95, + 169, 188, 266, 279, 197, 193, 129, 186, 131, 120, + 210, 97, 191, 98, 228, 145, 212, 240, 62, 99, 59, 60, 108, 112, 113, 61 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -209 +#define YYPACT_NINF -211 static const yytype_int16 yypact[] = { - 262, -209, -32, 21, 5, 13, 69, 296, -209, -209, - 112, -209, -209, 115, 14, -209, -209, -209, -209, -209, - -29, 85, 14, 0, -209, -209, 129, -209, 116, 92, - -209, 140, -209, 105, -209, 147, 125, -209, 105, 99, - -209, -209, 132, 252, -209, -209, 163, -25, 159, 182, - 186, 197, 162, 242, -209, -209, -209, -209, -209, -209, - -209, -209, 165, 201, 170, 222, 204, 187, 16, 16, - 68, 223, -209, 190, 246, 59, -209, -209, 193, 234, - 234, 236, 234, -27, 212, 249, 251, 255, 238, 234, - 228, 292, -209, -209, 246, -209, -209, 15, 146, -209, - -209, -209, 273, 187, 246, -209, 107, 16, 25, 29, - -209, 269, 279, 39, -209, 265, -209, 19, 192, 299, - 294, -209, 302, -209, 264, -209, 70, 266, 161, 300, - 168, 305, -209, -209, -209, -209, 246, 306, -209, -209, - -209, 293, -209, 272, -209, 84, -209, -209, -209, 113, - -209, 274, 275, 278, -209, 280, -209, 76, -209, 264, - -209, -209, -209, 308, 281, 246, 246, -209, -209, 315, - -209, 282, -209, 22, 313, 320, 317, 212, 212, -209, - 212, 286, 212, -209, 287, 318, -209, 288, -209, 59, - -209, 246, -209, -209, -209, 290, 291, 295, 310, -209, - -209, -209, 297, -209, -209, 328, -209, -209, 282, 330, - 122, 298, 301, -209, 301, 171, 86, 205, -209, 121, - -209, -29, 331, 219, -209, -209, -209, 334, 321, 246, - 335, -209, 102, -209, -209, 304, 307, 337, -209, -209, - 309, 332, 338, 212, 212, 212, 212, -209, -209, -209, - -209, 246, -209, -209, -209, 340, 342, 19, 301, 301, - 343, 343, 343, 343, 312, -209, 19, 19, 246, 344, - -209, 348, 246, 246, 301, -209, -209, 316, 351, 246, - -209 + 166, -211, -32, 15, 12, 36, 40, 316, -211, -211, + 75, -211, -211, 82, 17, -211, -211, -211, -211, -211, + -28, 57, 17, 0, -211, -211, 127, -211, 6, 109, + -211, 152, -211, 136, -211, 169, 143, -211, 136, 117, + -211, -211, 144, 272, -211, -211, 170, -15, 191, 197, + 199, 201, 168, 137, -211, -211, -211, -211, -211, -211, + -211, -211, 180, 204, 172, 219, 202, 185, 25, 25, + 28, 217, -211, 186, 266, 90, -211, -211, 190, 229, + 229, 230, 229, 21, 194, 240, 241, 242, 246, 229, + 210, 312, -211, -211, 266, -211, -211, 1, 61, -211, + -211, -211, 248, 185, 266, -211, 68, 25, 24, 29, + -211, 247, 254, 20, -211, 238, -211, 19, 212, 258, + 263, -211, 271, -211, 233, -211, 126, 234, 183, 275, + 95, 279, -211, -211, -211, -211, 266, 286, -211, -211, + -211, 270, -211, 236, -211, 140, -211, -211, -211, 78, + -211, 255, 259, 262, 264, -211, 267, -211, 69, -211, + 233, -211, -211, -211, 289, 282, 266, 266, -211, -211, + 294, -211, 283, -211, 70, 293, 315, 317, 194, 194, + -211, 194, 284, 194, -211, 287, 319, -211, 291, -211, + 90, -211, 266, -211, -211, -211, 292, 295, 298, 304, + -211, -211, -211, -211, 299, -211, -211, 328, -211, -211, + 283, 330, 135, 300, 301, -211, 301, 104, 73, 132, + -211, 116, -211, -28, 337, 239, -211, -211, -211, 338, + 322, 266, 340, -211, 173, -211, -211, 306, 307, 341, + -211, -211, 308, 342, 343, 194, 194, 194, 194, -211, + -211, -211, -211, 266, -211, -211, -211, 345, 346, 19, + 301, 301, 347, 347, 347, 347, 310, -211, 19, 19, + 266, 348, -211, 351, 266, 266, 301, -211, -211, 320, + 353, 266, -211 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -209, -209, -209, 353, -19, -209, -209, -209, -209, 339, - 137, -209, -30, -209, -209, 324, -209, -209, -209, -114, - -209, 206, -54, -209, -209, 195, 260, -208, -82, -209, - -62, -209, -209, -209, -209, -209, -209, -209, -209, -209, - -209, -209, -209, -209, -209, 156, -209, -209, -209, -209, - -209, -209, 1, 254, -209, 311 + -211, -211, -211, 355, -19, -211, -211, -211, -211, 344, + 64, -211, -29, -211, -211, 326, -211, -211, -211, -114, + -211, 205, 46, -211, -211, 195, 265, -210, -82, -211, + -62, -211, -211, -211, -211, -211, -211, -211, -211, -211, + -211, -211, -211, -211, -211, 159, -211, -211, -211, -211, + -211, -211, -34, 257, -211, 309 }; /* 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 -133 +#define YYTABLE_NINF -134 static const yytype_int16 yytable[] = { - 96, 26, 130, 166, 241, 30, 242, 65, 24, 55, - 126, 13, 116, 55, 25, 22, 127, 107, 66, -20, - 117, -132, 142, -49, -49, 14, 123, -49, 125, 15, - 156, -49, 141, -66, 158, 136, 16, -49, -49, -49, - 161, -49, 150, 31, 162, -49, -49, -49, -49, -49, - 269, 270, -49, -49, -49, -49, -49, -20, 143, -132, - 117, -49, -49, -49, -49, 211, 276, -49, 157, 17, - 109, -49, 157, 110, 188, 223, 24, -49, -49, -49, - 177, -49, 25, 178, 201, -49, -49, -49, -49, -49, - 202, 194, -49, -49, 195, 215, 216, 181, 217, 244, - 219, -49, -49, 206, 44, 24, 38, 45, 155, 254, - -31, 25, 195, -31, 151, 20, 46, 34, 152, 153, - 197, 21, -31, 35, 152, 153, 36, 234, 27, 224, - 47, 48, 181, 33, 246, 31, -31, -31, 49, 50, - 51, 52, 53, 268, -31, -31, -31, -31, -31, 37, - 154, 40, 272, 273, 146, 147, 154, 235, 236, 237, - 32, 260, 261, 262, 263, 67, 32, 252, 41, 75, - 76, 180, 181, 77, 182, 63, 54, 78, 184, 181, - 54, 243, 181, 79, 80, 81, 68, 82, 64, 265, - 69, 83, 84, 85, 86, 87, 75, 167, 88, 89, - 77, 70, 247, 90, 78, 71, 51, 52, 91, 101, - 79, 80, 81, 102, 82, 245, 181, 280, 83, 84, - 85, 86, 87, 75, 249, 88, 89, 77, 103, 104, - 105, 78, 114, 115, 52, 91, 119, 79, 80, 81, - 121, 82, 124, 72, 135, 83, 84, 85, 86, 87, - 75, 37, 88, 89, 77, 127, 73, 132, 78, 133, - 45, 52, 91, 134, 79, 80, 81, 74, 82, 46, - 1, 137, 83, 84, 85, 86, 87, 2, 3, 88, - 89, 148, 159, 47, 48, 4, 5, 160, 52, 91, - 165, 49, 50, 51, 52, 53, -2, 18, 138, -14, - 139, 37, 170, 140, 1, 169, 172, 173, 183, 179, - 189, 2, 3, 186, 191, 193, 204, 198, 199, 4, - 5, 200, 207, 157, 205, 143, 212, 213, 214, 218, - 220, 222, 221, 225, 227, 229, 231, 233, 228, 248, - 230, 239, 250, 253, 240, 258, 251, 255, 257, 259, - 256, 266, 211, 267, 181, 271, 275, 274, 279, 278, - 19, 29, 43, 149, 232, 203, 209, 163, 0, 0, - 0, 0, 0, 100 + 96, 26, 130, 167, 243, 30, 244, 34, 142, 24, + 55, 13, 116, 35, 55, 25, 36, 65, 22, 14, + 117, 162, -20, -49, -49, 163, 107, -49, 66, 157, + -133, -49, 141, 110, 159, 109, 15, -49, -49, -49, + 17, -49, 150, 31, 143, -49, -49, -49, -49, -49, + 271, 272, -49, -49, -49, -49, -49, 24, 126, 16, + -20, -49, -49, 25, 127, 24, 278, 158, -133, 146, + 147, 25, 158, 156, 189, 151, 225, 203, 20, 152, + 153, -67, 154, 204, 182, 198, 246, 32, 21, 152, + 153, 117, 154, 32, -49, -49, 217, 218, -49, 219, + 27, 221, -49, 54, 208, 185, 182, 54, -49, -49, + -49, 155, -49, 213, 245, 182, -49, -49, -49, -49, + -49, 155, 44, -49, -49, 45, 123, 182, 125, 248, + 226, 33, -49, -49, 46, 136, 178, 38, 72, 179, + 236, -31, 247, 182, -31, 270, 37, 195, 47, 48, + 196, 73, 31, -31, 274, 275, 49, 50, 51, 52, + 53, 37, 74, 262, 263, 264, 265, -31, -31, 254, + 237, 238, 239, 40, 1, -31, -31, -31, -31, -31, + 256, 2, 3, 196, 75, 76, 41, 63, 77, 4, + 5, 267, 78, 181, 182, 64, 183, 67, 79, 80, + 81, 68, 82, 69, 249, 70, 83, 84, 85, 86, + 87, 71, 101, 88, 89, 102, 75, 168, 90, 282, + 77, 51, 52, 91, 78, 103, 114, 104, 105, 115, + 79, 80, 81, 119, 82, 121, 124, 127, 83, 84, + 85, 86, 87, 75, 251, 88, 89, 77, 132, 133, + 134, 78, 135, 137, 52, 91, 148, 79, 80, 81, + 160, 82, 161, 166, 170, 83, 84, 85, 86, 87, + 75, 171, 88, 89, 77, 173, 174, 180, 78, 194, + 45, 52, 91, 184, 79, 80, 81, 187, 82, 46, + 190, 192, 83, 84, 85, 86, 87, 206, 199, 88, + 89, 209, 200, 47, 48, 201, 214, 202, 52, 91, + 158, 49, 50, 51, 52, 53, -2, 18, 138, -14, + 139, 37, 215, 140, 1, 207, 143, 220, 216, 231, + 222, 2, 3, 223, 224, 227, 233, 235, 229, 4, + 5, 230, 232, 241, 242, 250, 252, 253, 255, 257, + 258, 213, 259, 273, 261, 260, 268, 269, 182, 277, + 281, 276, 19, 280, 43, 205, 29, 211, 149, 234, + 164, 100 }; -static const yytype_int16 yycheck[] = +static const yytype_uint16 yycheck[] = { - 62, 20, 84, 117, 212, 5, 214, 32, 37, 39, - 37, 43, 74, 43, 43, 1, 43, 1, 43, 5, - 1, 5, 7, 4, 5, 4, 80, 8, 82, 24, - 5, 12, 94, 11, 5, 89, 23, 18, 19, 20, - 1, 22, 104, 43, 5, 26, 27, 28, 29, 30, - 258, 259, 33, 34, 35, 36, 37, 43, 43, 43, - 1, 42, 43, 4, 5, 43, 274, 8, 43, 0, - 69, 12, 43, 5, 136, 189, 37, 18, 19, 20, - 10, 22, 43, 13, 8, 26, 27, 28, 29, 30, - 14, 7, 33, 34, 10, 177, 178, 11, 180, 13, - 182, 42, 43, 165, 5, 37, 1, 8, 107, 7, - 5, 43, 10, 8, 7, 3, 17, 1, 11, 12, - 7, 6, 17, 7, 11, 12, 10, 5, 43, 191, - 31, 32, 11, 4, 13, 43, 31, 32, 39, 40, - 41, 42, 43, 257, 39, 40, 41, 42, 43, 9, - 43, 4, 266, 267, 8, 9, 43, 35, 36, 37, - 23, 243, 244, 245, 246, 6, 29, 229, 43, 4, - 5, 10, 11, 8, 13, 43, 39, 12, 10, 11, - 43, 10, 11, 18, 19, 20, 4, 22, 25, 251, - 4, 26, 27, 28, 29, 30, 4, 5, 33, 34, - 8, 4, 221, 38, 12, 43, 41, 42, 43, 8, - 18, 19, 20, 43, 22, 10, 11, 279, 26, 27, - 28, 29, 30, 4, 5, 33, 34, 8, 6, 25, - 43, 12, 9, 43, 42, 43, 43, 18, 19, 20, - 6, 22, 6, 1, 6, 26, 27, 28, 29, 30, - 4, 9, 33, 34, 8, 43, 14, 8, 12, 8, - 8, 42, 43, 8, 18, 19, 20, 25, 22, 17, - 8, 43, 26, 27, 28, 29, 30, 15, 16, 33, - 34, 8, 13, 31, 32, 23, 24, 8, 42, 43, - 25, 39, 40, 41, 42, 43, 0, 1, 6, 3, - 8, 9, 8, 11, 8, 6, 4, 43, 8, 43, - 4, 15, 16, 8, 21, 43, 8, 43, 43, 23, - 24, 43, 7, 43, 43, 43, 13, 7, 11, 43, - 43, 43, 14, 43, 43, 25, 8, 7, 43, 8, - 43, 43, 8, 8, 43, 13, 25, 43, 11, 11, - 43, 11, 43, 11, 11, 43, 8, 13, 7, 43, - 7, 22, 38, 103, 208, 159, 171, 113, -1, -1, - -1, -1, -1, 62 + 62, 20, 84, 117, 214, 5, 216, 1, 7, 37, + 39, 43, 74, 7, 43, 43, 10, 32, 1, 4, + 1, 1, 5, 4, 5, 5, 1, 8, 43, 5, + 5, 12, 94, 5, 5, 69, 24, 18, 19, 20, + 0, 22, 104, 43, 43, 26, 27, 28, 29, 30, + 260, 261, 33, 34, 35, 36, 37, 37, 37, 23, + 43, 42, 43, 43, 43, 37, 276, 43, 43, 8, + 9, 43, 43, 107, 136, 7, 190, 8, 3, 11, + 12, 11, 14, 14, 11, 7, 13, 23, 6, 11, + 12, 1, 14, 29, 4, 5, 178, 179, 8, 181, + 43, 183, 12, 39, 166, 10, 11, 43, 18, 19, + 20, 43, 22, 43, 10, 11, 26, 27, 28, 29, + 30, 43, 5, 33, 34, 8, 80, 11, 82, 13, + 192, 4, 42, 43, 17, 89, 10, 1, 1, 13, + 5, 5, 10, 11, 8, 259, 9, 7, 31, 32, + 10, 14, 43, 17, 268, 269, 39, 40, 41, 42, + 43, 9, 25, 245, 246, 247, 248, 31, 32, 231, + 35, 36, 37, 4, 8, 39, 40, 41, 42, 43, + 7, 15, 16, 10, 4, 5, 43, 43, 8, 23, + 24, 253, 12, 10, 11, 25, 13, 6, 18, 19, + 20, 4, 22, 4, 223, 4, 26, 27, 28, 29, + 30, 43, 8, 33, 34, 43, 4, 5, 38, 281, + 8, 41, 42, 43, 12, 6, 9, 25, 43, 43, + 18, 19, 20, 43, 22, 6, 6, 43, 26, 27, + 28, 29, 30, 4, 5, 33, 34, 8, 8, 8, + 8, 12, 6, 43, 42, 43, 8, 18, 19, 20, + 13, 22, 8, 25, 6, 26, 27, 28, 29, 30, + 4, 8, 33, 34, 8, 4, 43, 43, 12, 43, + 8, 42, 43, 8, 18, 19, 20, 8, 22, 17, + 4, 21, 26, 27, 28, 29, 30, 8, 43, 33, + 34, 7, 43, 31, 32, 43, 13, 43, 42, 43, + 43, 39, 40, 41, 42, 43, 0, 1, 6, 3, + 8, 9, 7, 11, 8, 43, 43, 43, 11, 25, + 43, 15, 16, 14, 43, 43, 8, 7, 43, 23, + 24, 43, 43, 43, 43, 8, 8, 25, 8, 43, + 43, 43, 11, 43, 11, 13, 11, 11, 11, 8, + 7, 13, 7, 43, 38, 160, 22, 172, 103, 210, + 113, 62 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -941,20 +941,20 @@ static const yytype_uint8 yystos[] = 83, 6, 66, 66, 6, 66, 37, 43, 72, 80, 72, 82, 8, 8, 8, 6, 66, 43, 6, 8, 11, 74, 7, 43, 69, 89, 8, 9, 8, 70, - 74, 7, 11, 12, 43, 96, 5, 43, 5, 13, - 8, 1, 5, 97, 57, 25, 63, 5, 74, 6, - 8, 67, 4, 43, 64, 65, 71, 10, 13, 43, - 10, 11, 13, 8, 10, 81, 8, 75, 74, 4, - 86, 21, 79, 43, 7, 10, 78, 7, 43, 43, - 43, 8, 14, 65, 8, 43, 74, 7, 84, 69, - 90, 43, 13, 7, 11, 72, 72, 72, 43, 72, - 43, 14, 43, 63, 74, 43, 88, 43, 43, 25, - 43, 8, 89, 7, 5, 35, 36, 37, 91, 43, - 43, 71, 71, 10, 13, 10, 13, 48, 8, 5, - 8, 25, 74, 8, 7, 43, 43, 11, 13, 11, - 72, 72, 72, 72, 76, 74, 11, 11, 63, 71, - 71, 43, 63, 63, 13, 8, 71, 77, 43, 7, - 74 + 74, 7, 11, 12, 14, 43, 96, 5, 43, 5, + 13, 8, 1, 5, 97, 57, 25, 63, 5, 74, + 6, 8, 67, 4, 43, 64, 65, 71, 10, 13, + 43, 10, 11, 13, 8, 10, 81, 8, 75, 74, + 4, 86, 21, 79, 43, 7, 10, 78, 7, 43, + 43, 43, 43, 8, 14, 65, 8, 43, 74, 7, + 84, 69, 90, 43, 13, 7, 11, 72, 72, 72, + 43, 72, 43, 14, 43, 63, 74, 43, 88, 43, + 43, 25, 43, 8, 89, 7, 5, 35, 36, 37, + 91, 43, 43, 71, 71, 10, 13, 10, 13, 48, + 8, 5, 8, 25, 74, 8, 7, 43, 43, 11, + 13, 11, 72, 72, 72, 72, 76, 74, 11, 11, + 63, 71, 71, 43, 63, 63, 13, 8, 71, 77, + 43, 7, 74 }; #define yyerrok (yyerrstatus = 0) @@ -2537,12 +2537,25 @@ yyreduce: break; case 66: -#line 407 "ael.y" - { (yyval.str) = (yyvsp[(1) - (1)].str);;} +#line 405 "ael.y" + { + if (asprintf(&((yyval.str)), "%s@%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) { + ast_log(LOG_WARNING, "asprintf() failed\n"); + (yyval.str) = NULL; + } else { + free((yyvsp[(1) - (3)].str)); + free((yyvsp[(3) - (3)].str)); + } + ;} break; case 67: -#line 408 "ael.y" +#line 416 "ael.y" + { (yyval.str) = (yyvsp[(1) - (1)].str);;} + break; + + case 68: +#line 417 "ael.y" { if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) { ast_log(LOG_WARNING, "asprintf() failed\n"); @@ -2555,8 +2568,8 @@ yyreduce: ;} break; - case 68: -#line 418 "ael.y" + case 69: +#line 427 "ael.y" { if (asprintf(&((yyval.str)), "%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) { ast_log(LOG_WARNING, "asprintf() failed\n"); @@ -2570,13 +2583,13 @@ yyreduce: ;} break; - case 69: -#line 431 "ael.y" + case 70: +#line 440 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str);;} break; - case 70: -#line 432 "ael.y" + case 71: +#line 441 "ael.y" { if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) { ast_log(LOG_WARNING, "asprintf() failed\n"); @@ -2588,8 +2601,8 @@ yyreduce: ;} break; - case 71: -#line 441 "ael.y" + case 72: +#line 450 "ael.y" { if (asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) { ast_log(LOG_WARNING, "asprintf() failed\n"); @@ -2601,69 +2614,69 @@ yyreduce: ;} break; - case 72: -#line 452 "ael.y" + case 73: +#line 461 "ael.y" { (yyval.pval) = npval2(PV_SWITCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)])); (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (5)].pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));;} break; - case 73: -#line 461 "ael.y" + case 74: +#line 470 "ael.y" { (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));;} break; - case 74: -#line 464 "ael.y" + case 75: +#line 473 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 75: -#line 465 "ael.y" + case 76: +#line 474 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 76: -#line 466 "ael.y" + case 77: +#line 475 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;} break; - case 77: -#line 469 "ael.y" + case 78: +#line 478 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;} break; - case 78: -#line 472 "ael.y" + case 79: +#line 481 "ael.y" { (yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;} break; - case 79: -#line 475 "ael.y" + case 80: +#line 484 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 80: -#line 476 "ael.y" + case 81: +#line 485 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 81: -#line 477 "ael.y" + case 82: +#line 486 "ael.y" {reset_parencount(parseio->scanner);;} break; - case 82: -#line 477 "ael.y" + case 83: +#line 486 "ael.y" { /* XXX word_list maybe ? */ (yyval.pval) = npval2(PV_FOR, &(yylsp[(1) - (12)]), &(yylsp[(12) - (12)])); (yyval.pval)->u1.for_init = (yyvsp[(4) - (12)].str); @@ -2672,43 +2685,43 @@ yyreduce: (yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));;} break; - case 83: -#line 483 "ael.y" + case 84: +#line 492 "ael.y" { (yyval.pval) = npval2(PV_WHILE, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = (yyvsp[(2) - (3)].str); (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval); set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;} break; - case 84: -#line 487 "ael.y" + case 85: +#line 496 "ael.y" { (yyval.pval) = (yyvsp[(1) - (1)].pval); ;} break; - case 85: -#line 488 "ael.y" + case 86: +#line 497 "ael.y" { (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;} break; - case 86: -#line 489 "ael.y" + case 87: +#line 498 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;} break; - case 87: -#line 490 "ael.y" + case 88: +#line 499 "ael.y" { (yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); (yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;} break; - case 88: -#line 493 "ael.y" + case 89: +#line 502 "ael.y" {reset_semicount(parseio->scanner);;} break; - case 89: -#line 493 "ael.y" + case 90: +#line 502 "ael.y" { char *bufx; int tot=0; @@ -2744,127 +2757,127 @@ yyreduce: ;} break; - case 90: -#line 526 "ael.y" + case 91: +#line 535 "ael.y" { (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 91: -#line 527 "ael.y" + case 92: +#line 536 "ael.y" { (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 92: -#line 528 "ael.y" + case 93: +#line 537 "ael.y" { (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;} break; - case 93: -#line 529 "ael.y" + case 94: +#line 538 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(2) - (3)])); (yyval.pval)->u2.statements = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval)); (yyval.pval)->u3.else_statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;} break; - case 94: -#line 533 "ael.y" + case 95: +#line 542 "ael.y" { (yyval.pval)=0; ;} break; - case 95: -#line 536 "ael.y" + case 96: +#line 545 "ael.y" { (yyval.pval) = (yyvsp[(2) - (2)].pval); ;} break; - case 96: -#line 537 "ael.y" + case 97: +#line 546 "ael.y" { (yyval.pval) = NULL ; ;} break; - case 97: -#line 540 "ael.y" + case 98: +#line 549 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 98: -#line 541 "ael.y" + case 99: +#line 550 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])); (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;} break; - case 99: -#line 544 "ael.y" + case 100: +#line 553 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])); (yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;} break; - case 100: -#line 547 "ael.y" + case 101: +#line 556 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 101: -#line 551 "ael.y" + case 102: +#line 560 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 102: -#line 555 "ael.y" + case 103: +#line 564 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 103: -#line 559 "ael.y" + case 104: +#line 568 "ael.y" { (yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)])); (yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)])); (yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;} break; - case 104: -#line 565 "ael.y" + case 105: +#line 574 "ael.y" { (yyval.str) = strdup("1"); ;} break; - case 105: -#line 566 "ael.y" + case 106: +#line 575 "ael.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 106: -#line 570 "ael.y" + case 107: +#line 579 "ael.y" { /* ext[, pri] default 1 */ (yyval.pval) = nword((yyvsp[(1) - (2)].str), &(yylsp[(1) - (2)])); (yyval.pval)->next = nword((yyvsp[(2) - (2)].str), &(yylsp[(2) - (2)])); ;} break; - case 107: -#line 573 "ael.y" + case 108: +#line 582 "ael.y" { /* context, ext, pri */ (yyval.pval) = nword((yyvsp[(4) - (4)].str), &(yylsp[(4) - (4)])); (yyval.pval)->next = nword((yyvsp[(1) - (4)].str), &(yylsp[(1) - (4)])); (yyval.pval)->next->next = nword((yyvsp[(2) - (4)].str), &(yylsp[(2) - (4)])); ;} break; - case 108: -#line 579 "ael.y" + case 109: +#line 588 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 109: -#line 579 "ael.y" + case 110: +#line 588 "ael.y" { /* XXX original code had @2 but i think we need @5 */ (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)])); @@ -2872,20 +2885,20 @@ yyreduce: (yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].pval);;} break; - case 110: -#line 584 "ael.y" + case 111: +#line 593 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;} break; - case 111: -#line 592 "ael.y" + case 112: +#line 601 "ael.y" {reset_argcount(parseio->scanner);;} break; - case 112: -#line 592 "ael.y" + case 113: +#line 601 "ael.y" { if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) { (yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)])); @@ -2897,8 +2910,8 @@ yyreduce: } ;} break; - case 113: -#line 603 "ael.y" + case 114: +#line 612 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)])); if( (yyval.pval)->type == PV_GOTO ) @@ -2908,126 +2921,126 @@ yyreduce: ;} break; - case 114: -#line 610 "ael.y" + case 115: +#line 619 "ael.y" { (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;} break; - case 115: -#line 613 "ael.y" + case 116: +#line 622 "ael.y" { (yyval.str) = (yyvsp[(1) - (1)].str) ;} break; - case 116: -#line 614 "ael.y" + case 117: +#line 623 "ael.y" { (yyval.str) = strdup(""); ;} break; - case 117: -#line 617 "ael.y" + case 118: +#line 626 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 118: -#line 618 "ael.y" + case 119: +#line 627 "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 119: -#line 621 "ael.y" + case 120: +#line 630 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;} break; - case 120: -#line 624 "ael.y" + case 121: +#line 633 "ael.y" { (yyval.pval) = NULL; ;} break; - case 121: -#line 625 "ael.y" + case 122: +#line 634 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 122: -#line 628 "ael.y" + case 123: +#line 637 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[(1) - (4)]), &(yylsp[(3) - (4)])); /* XXX 3 or 4 ? */ (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].pval); set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));;} break; - case 123: -#line 632 "ael.y" + case 124: +#line 641 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)])); (yyval.pval)->u1.str = NULL; (yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;} break; - case 124: -#line 636 "ael.y" + case 125: +#line 645 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); /* XXX@3 or @4 ? */ (yyval.pval)->u1.str = (yyvsp[(2) - (4)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (4)].pval);set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));;} break; - case 125: -#line 642 "ael.y" + case 126: +#line 651 "ael.y" { (yyval.pval) = NULL; ;} break; - case 126: -#line 643 "ael.y" + case 127: +#line 652 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;} break; - case 127: -#line 646 "ael.y" + case 128: +#line 655 "ael.y" {(yyval.pval)=(yyvsp[(1) - (1)].pval);;} break; - case 128: -#line 647 "ael.y" + case 129: +#line 656 "ael.y" { (yyval.pval)=(yyvsp[(1) - (1)].pval);;} break; - case 129: -#line 648 "ael.y" + case 130: +#line 657 "ael.y" { (yyval.pval) = npval2(PV_CATCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)])); (yyval.pval)->u1.str = (yyvsp[(2) - (5)].str); (yyval.pval)->u2.statements = (yyvsp[(4) - (5)].pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));;} break; - case 130: -#line 654 "ael.y" + case 131: +#line 663 "ael.y" { (yyval.pval) = npval2(PV_SWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;} break; - case 131: -#line 659 "ael.y" + case 132: +#line 668 "ael.y" { (yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;} break; - case 132: -#line 664 "ael.y" + case 133: +#line 673 "ael.y" { (yyval.pval) = NULL; ;} break; - case 133: -#line 665 "ael.y" + case 134: +#line 674 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval),nword((yyvsp[(2) - (3)].str), &(yylsp[(2) - (3)]))); ;} break; - case 134: -#line 666 "ael.y" + case 135: +#line 675 "ael.y" { char *x; if (asprintf(&x,"%s@%s", (yyvsp[(2) - (5)].str), (yyvsp[(4) - (5)].str)) < 0) { @@ -3041,55 +3054,55 @@ yyreduce: ;} break; - case 135: -#line 677 "ael.y" + case 136: +#line 686 "ael.y" {(yyval.pval)=(yyvsp[(2) - (2)].pval);;} break; - case 136: -#line 680 "ael.y" + case 137: +#line 689 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;} break; - case 137: -#line 681 "ael.y" + case 138: +#line 690 "ael.y" { (yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])); (yyval.pval)->u2.arglist = (yyvsp[(3) - (3)].pval); prev_word=0; /* XXX sure ? */ ;} break; - case 138: -#line 688 "ael.y" + case 139: +#line 697 "ael.y" { (yyval.pval) = (yyvsp[(1) - (2)].pval); ;} break; - case 139: -#line 689 "ael.y" + case 140: +#line 698 "ael.y" { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;} break; - case 140: -#line 690 "ael.y" + case 141: +#line 699 "ael.y" {(yyval.pval)=(yyvsp[(1) - (2)].pval);;} break; - case 141: -#line 693 "ael.y" + case 142: +#line 702 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); (yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;} break; - case 142: -#line 696 "ael.y" + case 143: +#line 705 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;} break; /* Line 1267 of yacc.c. */ -#line 3093 "ael.tab.c" +#line 3106 "ael.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3309,7 +3322,7 @@ yyreturn: } -#line 701 "ael.y" +#line 710 "ael.y" static char *token_equivs1[] = diff --git a/res/ael/ael.y b/res/ael/ael.y index f8398dd2e..c8bc9c78e 100644 --- a/res/ael/ael.y +++ b/res/ael/ael.y @@ -402,6 +402,15 @@ hint_word : word { $$ = $1; } free($3); } } + | hint_word AT word { + if (asprintf(&($$), "%s@%s", $1, $3) < 0) { + ast_log(LOG_WARNING, "asprintf() failed\n"); + $$ = NULL; + } else { + free($1); + free($3); + } + } ; word3_list : word { $$ = $1;} -- cgit v1.2.3