aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/ael
diff options
context:
space:
mode:
authorseanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-20 20:58:39 +0000
committerseanbright <seanbright@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-20 20:58:39 +0000
commit38baf534db6b8e186f6da5bbb7c485756da2846c (patch)
tree8d1241ca76fccc3f1bc6c98d4c9a194a17ebda27 /pbx/ael
parentfe4f992c054c2a3adb75730e1c9e6f207d124445 (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.4@189462 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael')
-rw-r--r--pbx/ael/ael.tab.c820
-rw-r--r--pbx/ael/ael.y9
2 files changed, 427 insertions, 402 deletions
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index 44ca3f2a9..941e334ec 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -506,16 +506,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 17
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 350
+#define YYLAST 353
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 43
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 54
/* YYNRULES -- Number of rules. */
-#define YYNRULES 137
+#define YYNRULES 138
/* YYNRULES -- Number of states. */
-#define YYNSTATES 269
+#define YYNSTATES 271
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -570,14 +570,14 @@ static const yytype_uint16 yyprhs[] =
82, 85, 88, 90, 92, 94, 96, 98, 100, 103,
105, 110, 114, 119, 127, 136, 137, 140, 143, 149,
151, 159, 160, 165, 168, 171, 176, 178, 181, 183,
- 186, 190, 194, 196, 199, 203, 205, 208, 212, 218,
- 222, 224, 228, 232, 235, 236, 237, 238, 251, 255,
- 257, 261, 264, 267, 268, 274, 277, 280, 283, 287,
- 289, 292, 293, 295, 299, 303, 309, 315, 321, 327,
- 328, 331, 334, 339, 340, 346, 350, 351, 355, 359,
- 362, 364, 365, 367, 368, 372, 373, 376, 381, 385,
- 390, 391, 394, 396, 398, 404, 409, 414, 415, 419,
- 425, 428, 430, 434, 437, 441, 444, 449
+ 186, 190, 194, 198, 200, 203, 207, 209, 212, 216,
+ 222, 226, 228, 232, 236, 239, 240, 241, 242, 255,
+ 259, 261, 265, 268, 271, 272, 278, 281, 284, 287,
+ 291, 293, 296, 297, 299, 303, 307, 313, 319, 325,
+ 331, 332, 335, 338, 343, 344, 350, 354, 355, 359,
+ 363, 366, 368, 369, 371, 372, 376, 377, 380, 385,
+ 389, 394, 395, 398, 400, 402, 408, 413, 418, 419,
+ 423, 429, 432, 434, 438, 441, 445, 448, 453
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -602,33 +602,33 @@ static const yytype_int8 yyrhs[] =
6, 64, 66, 7, -1, 19, 63, -1, 22, 63,
-1, 20, 6, 62, 7, -1, 42, -1, 42, 42,
-1, 42, -1, 67, 42, -1, 67, 11, 42, -1,
- 67, 12, 42, -1, 42, -1, 42, 42, -1, 42,
- 42, 42, -1, 42, -1, 42, 42, -1, 69, 11,
- 42, -1, 18, 63, 4, 87, 5, -1, 4, 60,
- 5, -1, 53, -1, 26, 77, 8, -1, 27, 79,
- 8, -1, 42, 11, -1, -1, -1, -1, 33, 6,
- 72, 42, 8, 73, 42, 8, 74, 42, 7, 71,
- -1, 34, 63, 71, -1, 70, -1, 12, 80, 8,
- -1, 84, 8, -1, 42, 8, -1, -1, 84, 9,
- 75, 42, 8, -1, 29, 8, -1, 28, 8, -1,
- 30, 8, -1, 65, 71, 76, -1, 8, -1, 21,
- 71, -1, -1, 69, -1, 69, 13, 69, -1, 69,
- 10, 69, -1, 69, 13, 69, 13, 69, -1, 69,
- 10, 69, 10, 69, -1, 37, 13, 69, 13, 69,
- -1, 37, 10, 69, 10, 69, -1, -1, 10, 42,
- -1, 69, 78, -1, 69, 78, 14, 47, -1, -1,
- 42, 6, 81, 86, 7, -1, 42, 6, 7, -1,
- -1, 42, 6, 83, -1, 82, 86, 7, -1, 82,
- 7, -1, 42, -1, -1, 66, -1, -1, 86, 10,
- 85, -1, -1, 87, 88, -1, 35, 42, 11, 60,
- -1, 37, 11, 60, -1, 36, 42, 11, 60, -1,
- -1, 89, 90, -1, 71, -1, 96, -1, 38, 42,
- 4, 60, 5, -1, 39, 4, 93, 5, -1, 40,
- 4, 93, 5, -1, -1, 93, 42, 8, -1, 93,
- 42, 14, 42, 8, -1, 1, 93, -1, 47, -1,
- 47, 13, 62, -1, 94, 8, -1, 95, 94, 8,
- -1, 95, 1, -1, 41, 4, 95, 5, -1, 41,
- 4, 5, -1
+ 67, 12, 42, -1, 67, 14, 42, -1, 42, -1,
+ 42, 42, -1, 42, 42, 42, -1, 42, -1, 42,
+ 42, -1, 69, 11, 42, -1, 18, 63, 4, 87,
+ 5, -1, 4, 60, 5, -1, 53, -1, 26, 77,
+ 8, -1, 27, 79, 8, -1, 42, 11, -1, -1,
+ -1, -1, 33, 6, 72, 42, 8, 73, 42, 8,
+ 74, 42, 7, 71, -1, 34, 63, 71, -1, 70,
+ -1, 12, 80, 8, -1, 84, 8, -1, 42, 8,
+ -1, -1, 84, 9, 75, 42, 8, -1, 29, 8,
+ -1, 28, 8, -1, 30, 8, -1, 65, 71, 76,
+ -1, 8, -1, 21, 71, -1, -1, 69, -1, 69,
+ 13, 69, -1, 69, 10, 69, -1, 69, 13, 69,
+ 13, 69, -1, 69, 10, 69, 10, 69, -1, 37,
+ 13, 69, 13, 69, -1, 37, 10, 69, 10, 69,
+ -1, -1, 10, 42, -1, 69, 78, -1, 69, 78,
+ 14, 47, -1, -1, 42, 6, 81, 86, 7, -1,
+ 42, 6, 7, -1, -1, 42, 6, 83, -1, 82,
+ 86, 7, -1, 82, 7, -1, 42, -1, -1, 66,
+ -1, -1, 86, 10, 85, -1, -1, 87, 88, -1,
+ 35, 42, 11, 60, -1, 37, 11, 60, -1, 36,
+ 42, 11, 60, -1, -1, 89, 90, -1, 71, -1,
+ 96, -1, 38, 42, 4, 60, 5, -1, 39, 4,
+ 93, 5, -1, 40, 4, 93, 5, -1, -1, 93,
+ 42, 8, -1, 93, 42, 14, 42, 8, -1, 1,
+ 93, -1, 47, -1, 47, 13, 62, -1, 94, 8,
+ -1, 95, 94, 8, -1, 95, 1, -1, 41, 4,
+ 95, 5, -1, 41, 4, 5, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -640,14 +640,14 @@ static const yytype_uint16 yyrline[] =
252, 253, 256, 257, 258, 259, 260, 261, 262, 263,
266, 271, 275, 280, 285, 295, 296, 297, 303, 313,
317, 325, 325, 329, 332, 335, 346, 347, 359, 360,
- 369, 378, 389, 390, 400, 413, 414, 423, 434, 443,
- 446, 447, 450, 453, 456, 457, 458, 456, 464, 468,
- 469, 470, 471, 474, 474, 507, 508, 509, 510, 514,
- 517, 518, 521, 522, 525, 528, 532, 536, 540, 546,
- 547, 551, 554, 560, 560, 565, 573, 573, 584, 591,
- 594, 595, 598, 599, 602, 605, 606, 609, 613, 617,
- 623, 624, 627, 628, 629, 635, 640, 645, 646, 647,
- 658, 661, 662, 669, 670, 671, 674, 677
+ 369, 378, 387, 398, 399, 409, 422, 423, 432, 443,
+ 452, 455, 456, 459, 462, 465, 466, 467, 465, 473,
+ 477, 478, 479, 480, 483, 483, 516, 517, 518, 519,
+ 523, 526, 527, 530, 531, 534, 537, 541, 545, 549,
+ 555, 556, 560, 563, 569, 569, 574, 582, 582, 593,
+ 600, 603, 604, 607, 608, 611, 614, 615, 618, 622,
+ 626, 632, 633, 636, 637, 638, 644, 649, 654, 655,
+ 656, 667, 670, 671, 678, 679, 680, 683, 686
};
#endif
@@ -699,14 +699,14 @@ static const yytype_uint8 yyr1[] =
56, 56, 57, 57, 57, 57, 57, 57, 57, 57,
58, 59, 59, 59, 59, 60, 60, 60, 61, 61,
62, 64, 63, 65, 65, 65, 66, 66, 67, 67,
- 67, 67, 68, 68, 68, 69, 69, 69, 70, 71,
- 71, 71, 71, 71, 72, 73, 74, 71, 71, 71,
- 71, 71, 71, 75, 71, 71, 71, 71, 71, 71,
- 76, 76, 77, 77, 77, 77, 77, 77, 77, 78,
- 78, 79, 79, 81, 80, 80, 83, 82, 84, 84,
- 85, 85, 86, 86, 86, 87, 87, 88, 88, 88,
- 89, 89, 90, 90, 90, 91, 92, 93, 93, 93,
- 93, 94, 94, 95, 95, 95, 96, 96
+ 67, 67, 67, 68, 68, 68, 69, 69, 69, 70,
+ 71, 71, 71, 71, 71, 72, 73, 74, 71, 71,
+ 71, 71, 71, 71, 75, 71, 71, 71, 71, 71,
+ 71, 76, 76, 77, 77, 77, 77, 77, 77, 77,
+ 78, 78, 79, 79, 81, 80, 80, 83, 82, 84,
+ 84, 85, 85, 86, 86, 86, 87, 87, 88, 88,
+ 88, 89, 89, 90, 90, 90, 91, 92, 93, 93,
+ 93, 93, 94, 94, 95, 95, 95, 96, 96
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -718,14 +718,14 @@ static const yytype_uint8 yyr2[] =
2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
4, 3, 4, 7, 8, 0, 2, 2, 5, 1,
7, 0, 4, 2, 2, 4, 1, 2, 1, 2,
- 3, 3, 1, 2, 3, 1, 2, 3, 5, 3,
- 1, 3, 3, 2, 0, 0, 0, 12, 3, 1,
- 3, 2, 2, 0, 5, 2, 2, 2, 3, 1,
- 2, 0, 1, 3, 3, 5, 5, 5, 5, 0,
- 2, 2, 4, 0, 5, 3, 0, 3, 3, 2,
- 1, 0, 1, 0, 3, 0, 2, 4, 3, 4,
- 0, 2, 1, 1, 5, 4, 4, 0, 3, 5,
- 2, 1, 3, 2, 3, 2, 4, 3
+ 3, 3, 3, 1, 2, 3, 1, 2, 3, 5,
+ 3, 1, 3, 3, 2, 0, 0, 0, 12, 3,
+ 1, 3, 2, 2, 0, 5, 2, 2, 2, 3,
+ 1, 2, 0, 1, 3, 3, 5, 5, 5, 5,
+ 0, 2, 2, 4, 0, 5, 3, 0, 3, 3,
+ 2, 1, 0, 1, 0, 3, 0, 2, 4, 3,
+ 4, 0, 2, 1, 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
@@ -737,170 +737,172 @@ static const yytype_uint8 yydefact[] =
0, 7, 8, 0, 0, 17, 16, 1, 5, 4,
0, 25, 0, 0, 11, 10, 0, 26, 0, 22,
19, 0, 21, 0, 28, 0, 0, 23, 0, 0,
- 120, 27, 0, 31, 12, 39, 0, 0, 0, 0,
+ 121, 27, 0, 31, 12, 39, 0, 0, 0, 0,
0, 0, 0, 37, 30, 36, 32, 34, 35, 33,
0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
- 0, 0, 18, 89, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
- 79, 122, 113, 0, 121, 123, 24, 0, 0, 0,
- 58, 0, 0, 0, 0, 137, 131, 0, 0, 41,
+ 0, 0, 18, 90, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 71, 0,
+ 80, 123, 114, 0, 122, 124, 24, 0, 0, 0,
+ 58, 0, 0, 0, 0, 138, 132, 0, 0, 41,
0, 0, 0, 0, 51, 0, 53, 0, 54, 0,
- 65, 92, 0, 99, 0, 86, 85, 87, 74, 0,
- 0, 106, 82, 73, 91, 109, 56, 112, 0, 81,
- 83, 40, 0, 42, 0, 0, 0, 59, 130, 125,
- 0, 126, 0, 133, 135, 136, 0, 47, 69, 46,
- 103, 80, 0, 115, 49, 0, 0, 0, 0, 0,
- 66, 0, 0, 0, 71, 0, 101, 72, 0, 78,
- 0, 107, 0, 88, 57, 108, 111, 0, 0, 0,
- 60, 61, 128, 0, 132, 134, 105, 113, 0, 0,
- 63, 0, 55, 0, 0, 0, 94, 67, 93, 100,
- 0, 0, 0, 90, 110, 114, 0, 0, 0, 0,
- 0, 52, 68, 0, 0, 0, 116, 64, 62, 0,
- 0, 0, 0, 0, 0, 102, 75, 124, 84, 0,
- 43, 129, 104, 0, 0, 0, 0, 0, 98, 97,
- 96, 95, 0, 44, 0, 0, 118, 0, 48, 0,
- 117, 119, 0, 76, 50, 0, 0, 0, 77
+ 66, 93, 0, 100, 0, 87, 86, 88, 75, 0,
+ 0, 107, 83, 74, 92, 110, 56, 113, 0, 82,
+ 84, 40, 0, 42, 0, 0, 0, 0, 59, 131,
+ 126, 0, 127, 0, 134, 136, 137, 0, 47, 70,
+ 46, 104, 81, 0, 116, 49, 0, 0, 0, 0,
+ 0, 67, 0, 0, 0, 72, 0, 102, 73, 0,
+ 79, 0, 108, 0, 89, 57, 109, 112, 0, 0,
+ 0, 60, 61, 62, 129, 0, 133, 135, 106, 114,
+ 0, 0, 64, 0, 55, 0, 0, 0, 95, 68,
+ 94, 101, 0, 0, 0, 91, 111, 115, 0, 0,
+ 0, 0, 0, 52, 69, 0, 0, 0, 117, 65,
+ 63, 0, 0, 0, 0, 0, 0, 103, 76, 125,
+ 85, 0, 43, 130, 105, 0, 0, 0, 0, 0,
+ 99, 98, 97, 96, 0, 44, 0, 0, 119, 0,
+ 48, 0, 118, 120, 0, 77, 50, 0, 0, 0,
+ 78
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 6, 7, 8, 106, 9, 10, 11, 12, 23,
- 88, 42, 28, 39, 54, 55, 56, 111, 165, 166,
- 115, 162, 89, 137, 101, 167, 121, 90, 159, 178,
- 252, 265, 187, 183, 122, 176, 124, 113, 197, 92,
- 181, 93, 215, 138, 199, 226, 60, 94, 57, 58,
+ 88, 42, 28, 39, 54, 55, 56, 111, 166, 167,
+ 115, 163, 89, 137, 101, 168, 121, 90, 160, 179,
+ 254, 267, 188, 184, 122, 177, 124, 113, 199, 92,
+ 182, 93, 217, 138, 201, 228, 60, 94, 57, 58,
103, 107, 108, 59
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -198
+#define YYPACT_NINF -200
static const yytype_int16 yypact[] =
{
- 169, -198, -27, 112, 77, 106, 140, 303, -198, -198,
- 142, -198, -198, 114, 16, -198, -198, -198, -198, -198,
- 38, 94, 16, 0, -198, -198, 166, -198, 71, 115,
- -198, 165, -198, 120, -198, 171, 147, -198, 120, 92,
- -198, -198, 157, 260, -198, -198, 175, -14, 172, 178,
- 199, 207, 73, -198, -198, -198, -198, -198, -198, -198,
- 168, 206, 174, 211, 196, 181, 26, 26, 20, -198,
- 254, 84, -198, -198, 182, 219, 219, 230, 219, 42,
- 195, 232, 233, 235, 238, 219, 208, 133, -198, 254,
- -198, -198, 25, 78, -198, -198, -198, 240, 181, 254,
- -198, 1, 26, 28, 29, -198, 225, 243, 19, -198,
- 18, 200, 246, 251, -198, 259, -198, 222, -198, 117,
- 223, 158, 262, 97, 263, -198, -198, -198, -198, 254,
- 271, -198, -198, -198, 257, -198, 237, -198, 4, -198,
- -198, -198, 52, -198, 244, 247, 248, -198, 252, -198,
- 69, -198, 222, -198, -198, -198, 277, 254, -198, -198,
- 286, -198, 253, -198, 24, 284, 291, 256, 195, 195,
- -198, 195, 265, 195, -198, 266, 295, -198, 268, -198,
- 84, -198, 254, -198, -198, -198, 270, 272, 273, 280,
- -198, -198, -198, 274, -198, -198, -198, 253, 306, 130,
- 275, 278, -198, 278, 139, 170, 153, -198, 202, -198,
- 38, 313, 227, -198, -198, -198, 314, 298, 254, 316,
- 136, -198, -198, 283, 287, 317, -198, -198, 288, 318,
- 321, 195, 195, 195, 195, -198, -198, -198, -198, 254,
- -198, -198, -198, 322, 323, 18, 278, 278, 324, 324,
- 324, 324, 294, -198, 18, 18, 254, 325, -198, 329,
- 254, 254, 278, -198, -198, 297, 333, 254, -198
+ 171, -200, -24, 37, 35, 53, 83, 305, -200, -200,
+ 95, -200, -200, 103, 16, -200, -200, -200, -200, -200,
+ 45, 88, 16, 0, -200, -200, 141, -200, 74, 117,
+ -200, 128, -200, 130, -200, 160, 125, -200, 130, 112,
+ -200, -200, 131, 262, -200, -200, 155, 68, 178, 187,
+ 201, 209, 63, -200, -200, -200, -200, -200, -200, -200,
+ 170, 210, 175, 213, 198, 183, 26, 26, 20, -200,
+ 256, 85, -200, -200, 184, 221, 221, 232, 221, 64,
+ 197, 234, 235, 237, 240, 221, 208, 157, -200, 256,
+ -200, -200, 21, 133, -200, -200, -200, 244, 183, 256,
+ -200, 1, 26, 28, 29, -200, 227, 245, 19, -200,
+ 18, 202, 248, 253, -200, 261, -200, 224, -200, 111,
+ 225, 115, 264, 166, 265, -200, -200, -200, -200, 256,
+ 273, -200, -200, -200, 259, -200, 239, -200, 4, -200,
+ -200, -200, 66, -200, 246, 249, 250, 254, -200, 255,
+ -200, 108, -200, 224, -200, -200, -200, 279, 256, -200,
+ -200, 288, -200, 257, -200, 24, 287, 300, 258, 197,
+ 197, -200, 197, 267, 197, -200, 268, 297, -200, 270,
+ -200, 85, -200, 256, -200, -200, -200, 272, 274, 275,
+ 290, -200, -200, -200, -200, 276, -200, -200, -200, 257,
+ 312, 97, 280, 281, -200, 281, 191, 135, 205, -200,
+ 172, -200, 45, 316, 229, -200, -200, -200, 317, 301,
+ 256, 319, 129, -200, -200, 289, 291, 321, -200, -200,
+ 292, 322, 325, 197, 197, 197, 197, -200, -200, -200,
+ -200, 256, -200, -200, -200, 326, 327, 18, 281, 281,
+ 328, 328, 328, 328, 298, -200, 18, 18, 256, 329,
+ -200, 333, 256, 256, 281, -200, -200, 302, 323, 256,
+ -200
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -198, -198, -198, 334, -19, -198, -198, -198, -198, 320,
- 76, -198, -198, 305, -198, -198, -198, -107, -198, 192,
- -69, -198, -198, 183, 249, -197, -78, -198, -60, -198,
- -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
- -198, -198, -198, 149, -198, -198, -198, -198, -198, -198,
- -26, 241, -198, 290
+ -200, -200, -200, 336, -19, -200, -200, -200, -200, 324,
+ 56, -200, -200, 307, -200, -200, -200, -107, -200, 194,
+ -69, -200, -200, 185, 251, -199, -78, -200, -60, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, 151, -200, -200, -200, -200, -200, -200,
+ -35, 243, -200, 293
};
/* 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 -128
+#define YYTABLE_NINF -129
static const yytype_int16 yytable[] =
{
- 91, 26, 123, 157, 229, 30, 230, 116, 144, 118,
- 109, 185, 145, 146, 186, 13, 129, 22, 63, 110,
- 154, -20, -45, -45, 155, 105, -45, 102, 64, 134,
- -45, -127, 135, 149, 151, -62, -45, -45, -45, 143,
- -45, 104, 31, 147, -45, -45, -45, -45, -45, 257,
- 258, -45, -45, -45, -45, -45, 24, 24, -20, 188,
- -45, 25, 25, 145, 146, 264, 200, 136, -127, 179,
- 150, 150, 34, 212, 69, 24, 148, 192, 35, 119,
- 25, 36, 37, 193, 120, 110, 139, 140, -45, -45,
- 204, 205, -45, 206, 147, 208, -45, 44, 70, 32,
- 45, 15, -45, -45, -45, 32, -45, 175, 172, 46,
- -45, -45, -45, -45, -45, 53, 14, -45, -45, 53,
- 21, 38, 213, 47, 48, -29, -45, 168, -29, 16,
- 169, 49, 50, 51, 52, 222, 27, -29, 256, 131,
- 17, 132, 37, 242, 133, 20, 186, 260, 261, 231,
- 172, -29, -29, 248, 249, 250, 251, 31, 240, -29,
- -29, -29, -29, 233, 172, 223, 224, 225, 171, 172,
- 33, 173, 71, 72, 37, 40, 73, 1, 65, 253,
- 74, 172, 66, 232, 2, 3, 75, 76, 77, 41,
- 78, 235, 4, 5, 79, 80, 81, 82, 83, 61,
- 62, 84, 85, 67, 71, 158, 86, 268, 73, 51,
- 87, 68, 74, 172, 96, 234, 97, 98, 75, 76,
- 77, 99, 78, 100, 112, 114, 79, 80, 81, 82,
- 83, 71, 237, 84, 85, 73, 117, 120, 152, 74,
- 125, 126, 87, 127, 128, 75, 76, 77, 141, 78,
- 130, 153, 160, 79, 80, 81, 82, 83, 71, 161,
- 84, 85, 73, 163, 164, 170, 74, 203, 45, 87,
- 174, 177, 75, 76, 77, 180, 78, 46, 182, 184,
- 79, 80, 81, 82, 83, 195, 189, 84, 85, 190,
- 191, 47, 48, 196, 150, 136, 87, 201, 202, 49,
- 50, 51, 52, -2, 18, 218, -14, 207, 209, 210,
- 211, 1, 214, 221, 216, 217, 219, 227, 2, 3,
- 228, 236, 238, 239, 241, 243, 4, 5, 245, 244,
- 200, 246, 247, 254, 255, 172, 259, 263, 262, 266,
- 267, 19, 29, 43, 194, 198, 220, 142, 0, 156,
- 95
+ 91, 26, 123, 158, 231, 30, 232, 116, 144, 118,
+ 109, 186, 145, 146, 187, 147, 129, 22, 13, 110,
+ 155, -20, -45, -45, 156, 105, -45, 102, 135, 134,
+ -45, -128, 104, 150, 152, -63, -45, -45, -45, 143,
+ -45, 14, 31, 148, -45, -45, -45, -45, -45, 259,
+ 260, -45, -45, -45, -45, -45, 24, 24, -20, 15,
+ -45, 25, 25, 136, 69, 266, 202, 149, -128, 180,
+ 151, 151, 37, 189, 214, 34, 16, 145, 146, 32,
+ 147, 35, 24, 17, 36, 32, 110, 25, 70, -45,
+ -45, 206, 207, -45, 208, 53, 210, -45, 20, 53,
+ 63, 119, 224, -45, -45, -45, 120, -45, 148, 21,
+ 64, -45, -45, -45, -45, -45, 194, 44, -45, -45,
+ 45, 169, 195, 215, 170, 172, 173, -45, 174, 46,
+ 27, 38, 225, 226, 227, -29, 244, 37, -29, 187,
+ 258, 139, 140, 47, 48, 33, 173, -29, 234, 262,
+ 263, 49, 50, 51, 52, 250, 251, 252, 253, 31,
+ 242, -29, -29, 131, 40, 132, 37, 41, 133, -29,
+ -29, -29, -29, 61, 71, 72, 176, 173, 73, 1,
+ 62, 255, 74, 173, 65, 236, 2, 3, 75, 76,
+ 77, 66, 78, 237, 4, 5, 79, 80, 81, 82,
+ 83, 233, 173, 84, 85, 67, 71, 159, 86, 270,
+ 73, 51, 87, 68, 74, 235, 173, 97, 96, 98,
+ 75, 76, 77, 99, 78, 100, 112, 114, 79, 80,
+ 81, 82, 83, 71, 239, 84, 85, 73, 117, 120,
+ 153, 74, 125, 126, 87, 127, 128, 75, 76, 77,
+ 130, 78, 141, 154, 161, 79, 80, 81, 82, 83,
+ 71, 162, 84, 85, 73, 164, 165, 171, 74, 205,
+ 45, 87, 175, 178, 75, 76, 77, 181, 78, 46,
+ 183, 185, 79, 80, 81, 82, 83, 197, 190, 84,
+ 85, 191, 192, 47, 48, 198, 193, 151, 87, 136,
+ 203, 49, 50, 51, 52, -2, 18, 204, -14, 209,
+ 211, 212, 213, 1, 216, 220, 218, 219, 221, 223,
+ 2, 3, 229, 230, 238, 240, 241, 243, 4, 5,
+ 269, 245, 247, 246, 202, 248, 249, 256, 257, 173,
+ 261, 265, 264, 19, 268, 43, 29, 196, 200, 142,
+ 222, 157, 0, 95
};
static const yytype_int16 yycheck[] =
{
- 60, 20, 80, 110, 201, 5, 203, 76, 7, 78,
- 70, 7, 11, 12, 10, 42, 85, 1, 32, 1,
- 1, 5, 4, 5, 5, 5, 8, 1, 42, 89,
- 12, 5, 7, 5, 5, 11, 18, 19, 20, 99,
- 22, 67, 42, 42, 26, 27, 28, 29, 30, 246,
- 247, 33, 34, 35, 36, 37, 37, 37, 42, 7,
- 42, 42, 42, 11, 12, 262, 42, 42, 42, 129,
- 42, 42, 1, 180, 1, 37, 102, 8, 7, 37,
- 42, 10, 9, 14, 42, 1, 8, 9, 4, 5,
- 168, 169, 8, 171, 42, 173, 12, 5, 25, 23,
- 8, 24, 18, 19, 20, 29, 22, 10, 11, 17,
- 26, 27, 28, 29, 30, 39, 4, 33, 34, 43,
- 6, 1, 182, 31, 32, 5, 42, 10, 8, 23,
- 13, 39, 40, 41, 42, 5, 42, 17, 245, 6,
- 0, 8, 9, 7, 11, 3, 10, 254, 255, 10,
- 11, 31, 32, 231, 232, 233, 234, 42, 218, 39,
- 40, 41, 42, 10, 11, 35, 36, 37, 10, 11,
- 4, 13, 4, 5, 9, 4, 8, 8, 6, 239,
- 12, 11, 4, 13, 15, 16, 18, 19, 20, 42,
- 22, 210, 23, 24, 26, 27, 28, 29, 30, 42,
- 25, 33, 34, 4, 4, 5, 38, 267, 8, 41,
- 42, 4, 12, 11, 8, 13, 42, 6, 18, 19,
- 20, 25, 22, 42, 42, 6, 26, 27, 28, 29,
- 30, 4, 5, 33, 34, 8, 6, 42, 13, 12,
- 8, 8, 42, 8, 6, 18, 19, 20, 8, 22,
- 42, 8, 6, 26, 27, 28, 29, 30, 4, 8,
- 33, 34, 8, 4, 42, 42, 12, 11, 8, 42,
- 8, 8, 18, 19, 20, 4, 22, 17, 21, 42,
- 26, 27, 28, 29, 30, 8, 42, 33, 34, 42,
- 42, 31, 32, 7, 42, 42, 42, 13, 7, 39,
- 40, 41, 42, 0, 1, 25, 3, 42, 42, 14,
- 42, 8, 42, 7, 42, 42, 42, 42, 15, 16,
- 42, 8, 8, 25, 8, 42, 23, 24, 11, 42,
- 42, 13, 11, 11, 11, 11, 42, 8, 13, 42,
- 7, 7, 22, 38, 152, 162, 197, 98, -1, 108,
- 60
+ 60, 20, 80, 110, 203, 5, 205, 76, 7, 78,
+ 70, 7, 11, 12, 10, 14, 85, 1, 42, 1,
+ 1, 5, 4, 5, 5, 5, 8, 1, 7, 89,
+ 12, 5, 67, 5, 5, 11, 18, 19, 20, 99,
+ 22, 4, 42, 42, 26, 27, 28, 29, 30, 248,
+ 249, 33, 34, 35, 36, 37, 37, 37, 42, 24,
+ 42, 42, 42, 42, 1, 264, 42, 102, 42, 129,
+ 42, 42, 9, 7, 181, 1, 23, 11, 12, 23,
+ 14, 7, 37, 0, 10, 29, 1, 42, 25, 4,
+ 5, 169, 170, 8, 172, 39, 174, 12, 3, 43,
+ 32, 37, 5, 18, 19, 20, 42, 22, 42, 6,
+ 42, 26, 27, 28, 29, 30, 8, 5, 33, 34,
+ 8, 10, 14, 183, 13, 10, 11, 42, 13, 17,
+ 42, 1, 35, 36, 37, 5, 7, 9, 8, 10,
+ 247, 8, 9, 31, 32, 4, 11, 17, 13, 256,
+ 257, 39, 40, 41, 42, 233, 234, 235, 236, 42,
+ 220, 31, 32, 6, 4, 8, 9, 42, 11, 39,
+ 40, 41, 42, 42, 4, 5, 10, 11, 8, 8,
+ 25, 241, 12, 11, 6, 13, 15, 16, 18, 19,
+ 20, 4, 22, 212, 23, 24, 26, 27, 28, 29,
+ 30, 10, 11, 33, 34, 4, 4, 5, 38, 269,
+ 8, 41, 42, 4, 12, 10, 11, 42, 8, 6,
+ 18, 19, 20, 25, 22, 42, 42, 6, 26, 27,
+ 28, 29, 30, 4, 5, 33, 34, 8, 6, 42,
+ 13, 12, 8, 8, 42, 8, 6, 18, 19, 20,
+ 42, 22, 8, 8, 6, 26, 27, 28, 29, 30,
+ 4, 8, 33, 34, 8, 4, 42, 42, 12, 11,
+ 8, 42, 8, 8, 18, 19, 20, 4, 22, 17,
+ 21, 42, 26, 27, 28, 29, 30, 8, 42, 33,
+ 34, 42, 42, 31, 32, 7, 42, 42, 42, 42,
+ 13, 39, 40, 41, 42, 0, 1, 7, 3, 42,
+ 42, 14, 42, 8, 42, 25, 42, 42, 42, 7,
+ 15, 16, 42, 42, 8, 8, 25, 8, 23, 24,
+ 7, 42, 11, 42, 42, 13, 11, 11, 11, 11,
+ 42, 8, 13, 7, 42, 38, 22, 153, 163, 98,
+ 199, 108, -1, 60
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -921,19 +923,20 @@ static const yytype_uint8 yystos[] =
1, 60, 42, 80, 6, 63, 63, 6, 63, 37,
42, 69, 77, 69, 79, 8, 8, 8, 6, 63,
42, 6, 8, 11, 71, 7, 42, 66, 86, 8,
- 9, 8, 67, 71, 7, 11, 12, 42, 93, 5,
- 42, 5, 13, 8, 1, 5, 94, 60, 5, 71,
- 6, 8, 64, 4, 42, 61, 62, 68, 10, 13,
- 42, 10, 11, 13, 8, 10, 78, 8, 72, 71,
- 4, 83, 21, 76, 42, 7, 10, 75, 7, 42,
- 42, 42, 8, 14, 62, 8, 7, 81, 66, 87,
- 42, 13, 7, 11, 69, 69, 69, 42, 69, 42,
- 14, 42, 60, 71, 42, 85, 42, 42, 25, 42,
- 86, 7, 5, 35, 36, 37, 88, 42, 42, 68,
- 68, 10, 13, 10, 13, 47, 8, 5, 8, 25,
- 71, 8, 7, 42, 42, 11, 13, 11, 69, 69,
- 69, 69, 73, 71, 11, 11, 60, 68, 68, 42,
- 60, 60, 13, 8, 68, 74, 42, 7, 71
+ 9, 8, 67, 71, 7, 11, 12, 14, 42, 93,
+ 5, 42, 5, 13, 8, 1, 5, 94, 60, 5,
+ 71, 6, 8, 64, 4, 42, 61, 62, 68, 10,
+ 13, 42, 10, 11, 13, 8, 10, 78, 8, 72,
+ 71, 4, 83, 21, 76, 42, 7, 10, 75, 7,
+ 42, 42, 42, 42, 8, 14, 62, 8, 7, 81,
+ 66, 87, 42, 13, 7, 11, 69, 69, 69, 42,
+ 69, 42, 14, 42, 60, 71, 42, 85, 42, 42,
+ 25, 42, 86, 7, 5, 35, 36, 37, 88, 42,
+ 42, 68, 68, 10, 13, 10, 13, 47, 8, 5,
+ 8, 25, 71, 8, 7, 42, 42, 11, 13, 11,
+ 69, 69, 69, 69, 73, 71, 11, 11, 60, 68,
+ 68, 42, 60, 60, 13, 8, 68, 74, 42, 7,
+ 71
};
#define yyerrok (yyerrstatus = 0)
@@ -1458,7 +1461,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
case 42: /* "word" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1462 "ael.tab.c"
+#line 1465 "ael.tab.c"
break;
case 45: /* "objects" */
#line 166 "ael.y"
@@ -1466,7 +1469,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1470 "ael.tab.c"
+#line 1473 "ael.tab.c"
break;
case 46: /* "object" */
#line 166 "ael.y"
@@ -1474,12 +1477,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1478 "ael.tab.c"
+#line 1481 "ael.tab.c"
break;
case 47: /* "context_name" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1483 "ael.tab.c"
+#line 1486 "ael.tab.c"
break;
case 48: /* "context" */
#line 166 "ael.y"
@@ -1487,7 +1490,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1491 "ael.tab.c"
+#line 1494 "ael.tab.c"
break;
case 50: /* "macro" */
#line 166 "ael.y"
@@ -1495,7 +1498,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1499 "ael.tab.c"
+#line 1502 "ael.tab.c"
break;
case 51: /* "globals" */
#line 166 "ael.y"
@@ -1503,7 +1506,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1507 "ael.tab.c"
+#line 1510 "ael.tab.c"
break;
case 52: /* "global_statements" */
#line 166 "ael.y"
@@ -1511,7 +1514,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1515 "ael.tab.c"
+#line 1518 "ael.tab.c"
break;
case 53: /* "assignment" */
#line 166 "ael.y"
@@ -1519,7 +1522,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1523 "ael.tab.c"
+#line 1526 "ael.tab.c"
break;
case 55: /* "arglist" */
#line 166 "ael.y"
@@ -1527,7 +1530,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1531 "ael.tab.c"
+#line 1534 "ael.tab.c"
break;
case 56: /* "elements" */
#line 166 "ael.y"
@@ -1535,7 +1538,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1539 "ael.tab.c"
+#line 1542 "ael.tab.c"
break;
case 57: /* "element" */
#line 166 "ael.y"
@@ -1543,7 +1546,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1547 "ael.tab.c"
+#line 1550 "ael.tab.c"
break;
case 58: /* "ignorepat" */
#line 166 "ael.y"
@@ -1551,7 +1554,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1555 "ael.tab.c"
+#line 1558 "ael.tab.c"
break;
case 59: /* "extension" */
#line 166 "ael.y"
@@ -1559,7 +1562,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1563 "ael.tab.c"
+#line 1566 "ael.tab.c"
break;
case 60: /* "statements" */
#line 166 "ael.y"
@@ -1567,12 +1570,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1571 "ael.tab.c"
+#line 1574 "ael.tab.c"
break;
case 61: /* "timerange" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1576 "ael.tab.c"
+#line 1579 "ael.tab.c"
break;
case 62: /* "timespec" */
#line 166 "ael.y"
@@ -1580,12 +1583,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1584 "ael.tab.c"
+#line 1587 "ael.tab.c"
break;
case 63: /* "test_expr" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1589 "ael.tab.c"
+#line 1592 "ael.tab.c"
break;
case 65: /* "if_like_head" */
#line 166 "ael.y"
@@ -1593,22 +1596,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1597 "ael.tab.c"
+#line 1600 "ael.tab.c"
break;
case 66: /* "word_list" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1602 "ael.tab.c"
+#line 1605 "ael.tab.c"
break;
case 68: /* "word3_list" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1607 "ael.tab.c"
+#line 1610 "ael.tab.c"
break;
case 69: /* "goto_word" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1612 "ael.tab.c"
+#line 1615 "ael.tab.c"
break;
case 70: /* "switch_statement" */
#line 166 "ael.y"
@@ -1616,7 +1619,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1620 "ael.tab.c"
+#line 1623 "ael.tab.c"
break;
case 71: /* "statement" */
#line 166 "ael.y"
@@ -1624,7 +1627,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1628 "ael.tab.c"
+#line 1631 "ael.tab.c"
break;
case 76: /* "opt_else" */
#line 166 "ael.y"
@@ -1632,7 +1635,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1636 "ael.tab.c"
+#line 1639 "ael.tab.c"
break;
case 77: /* "target" */
#line 166 "ael.y"
@@ -1640,12 +1643,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1644 "ael.tab.c"
+#line 1647 "ael.tab.c"
break;
case 78: /* "opt_pri" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1649 "ael.tab.c"
+#line 1652 "ael.tab.c"
break;
case 79: /* "jumptarget" */
#line 166 "ael.y"
@@ -1653,7 +1656,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1657 "ael.tab.c"
+#line 1660 "ael.tab.c"
break;
case 80: /* "macro_call" */
#line 166 "ael.y"
@@ -1661,7 +1664,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1665 "ael.tab.c"
+#line 1668 "ael.tab.c"
break;
case 82: /* "application_call_head" */
#line 166 "ael.y"
@@ -1669,7 +1672,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1673 "ael.tab.c"
+#line 1676 "ael.tab.c"
break;
case 84: /* "application_call" */
#line 166 "ael.y"
@@ -1677,12 +1680,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1681 "ael.tab.c"
+#line 1684 "ael.tab.c"
break;
case 85: /* "opt_word" */
#line 179 "ael.y"
{ free((yyvaluep->str));};
-#line 1686 "ael.tab.c"
+#line 1689 "ael.tab.c"
break;
case 86: /* "eval_arglist" */
#line 166 "ael.y"
@@ -1690,7 +1693,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1694 "ael.tab.c"
+#line 1697 "ael.tab.c"
break;
case 87: /* "case_statements" */
#line 166 "ael.y"
@@ -1698,7 +1701,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1702 "ael.tab.c"
+#line 1705 "ael.tab.c"
break;
case 88: /* "case_statement" */
#line 166 "ael.y"
@@ -1706,7 +1709,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1710 "ael.tab.c"
+#line 1713 "ael.tab.c"
break;
case 89: /* "macro_statements" */
#line 166 "ael.y"
@@ -1714,7 +1717,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1718 "ael.tab.c"
+#line 1721 "ael.tab.c"
break;
case 90: /* "macro_statement" */
#line 166 "ael.y"
@@ -1722,7 +1725,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1726 "ael.tab.c"
+#line 1729 "ael.tab.c"
break;
case 91: /* "switches" */
#line 166 "ael.y"
@@ -1730,7 +1733,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1734 "ael.tab.c"
+#line 1737 "ael.tab.c"
break;
case 92: /* "eswitches" */
#line 166 "ael.y"
@@ -1738,7 +1741,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1742 "ael.tab.c"
+#line 1745 "ael.tab.c"
break;
case 93: /* "switchlist" */
#line 166 "ael.y"
@@ -1746,7 +1749,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1750 "ael.tab.c"
+#line 1753 "ael.tab.c"
break;
case 94: /* "included_entry" */
#line 166 "ael.y"
@@ -1754,7 +1757,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1758 "ael.tab.c"
+#line 1761 "ael.tab.c"
break;
case 95: /* "includeslist" */
#line 166 "ael.y"
@@ -1762,7 +1765,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1766 "ael.tab.c"
+#line 1769 "ael.tab.c"
break;
case 96: /* "includes" */
#line 166 "ael.y"
@@ -1770,7 +1773,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1774 "ael.tab.c"
+#line 1777 "ael.tab.c"
break;
default:
@@ -2478,12 +2481,25 @@ yyreduce:
break;
case 62:
-#line 389 "ael.y"
- { (yyval.str) = (yyvsp[(1) - (1)].str);;}
+#line 387 "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 63:
-#line 390 "ael.y"
+#line 398 "ael.y"
+ { (yyval.str) = (yyvsp[(1) - (1)].str);;}
+ break;
+
+ case 64:
+#line 399 "ael.y"
{
if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
ast_log(LOG_WARNING, "asprintf() failed\n");
@@ -2496,8 +2512,8 @@ yyreduce:
;}
break;
- case 64:
-#line 400 "ael.y"
+ case 65:
+#line 409 "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");
@@ -2511,13 +2527,13 @@ yyreduce:
;}
break;
- case 65:
-#line 413 "ael.y"
+ case 66:
+#line 422 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
- case 66:
-#line 414 "ael.y"
+ case 67:
+#line 423 "ael.y"
{
if (asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str)) < 0) {
ast_log(LOG_WARNING, "asprintf() failed\n");
@@ -2529,8 +2545,8 @@ yyreduce:
;}
break;
- case 67:
-#line 423 "ael.y"
+ case 68:
+#line 432 "ael.y"
{
if (asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)) < 0) {
ast_log(LOG_WARNING, "asprintf() failed\n");
@@ -2542,64 +2558,64 @@ yyreduce:
;}
break;
- case 68:
-#line 434 "ael.y"
+ case 69:
+#line 443 "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 69:
-#line 443 "ael.y"
+ case 70:
+#line 452 "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 70:
-#line 446 "ael.y"
+ case 71:
+#line 455 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
- case 71:
-#line 447 "ael.y"
+ case 72:
+#line 456 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
- case 72:
-#line 450 "ael.y"
+ case 73:
+#line 459 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
- case 73:
-#line 453 "ael.y"
+ case 74:
+#line 462 "ael.y"
{
(yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;}
break;
- case 74:
-#line 456 "ael.y"
+ case 75:
+#line 465 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 75:
-#line 457 "ael.y"
+ case 76:
+#line 466 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 76:
-#line 458 "ael.y"
+ case 77:
+#line 467 "ael.y"
{reset_parencount(parseio->scanner);;}
break;
- case 77:
-#line 458 "ael.y"
+ case 78:
+#line 467 "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);
@@ -2608,43 +2624,43 @@ yyreduce:
(yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));;}
break;
- case 78:
-#line 464 "ael.y"
+ case 79:
+#line 473 "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 79:
-#line 468 "ael.y"
+ case 80:
+#line 477 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
- case 80:
-#line 469 "ael.y"
+ case 81:
+#line 478 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;}
break;
- case 81:
-#line 470 "ael.y"
+ case 82:
+#line 479 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
- case 82:
-#line 471 "ael.y"
+ case 83:
+#line 480 "ael.y"
{
(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;}
break;
- case 83:
-#line 474 "ael.y"
+ case 84:
+#line 483 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 84:
-#line 474 "ael.y"
+ case 85:
+#line 483 "ael.y"
{
char *bufx;
int tot=0;
@@ -2680,127 +2696,127 @@ yyreduce:
;}
break;
- case 85:
-#line 507 "ael.y"
+ case 86:
+#line 516 "ael.y"
{ (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 86:
-#line 508 "ael.y"
+ case 87:
+#line 517 "ael.y"
{ (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 87:
-#line 509 "ael.y"
+ case 88:
+#line 518 "ael.y"
{ (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 88:
-#line 510 "ael.y"
+ case 89:
+#line 519 "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 89:
-#line 514 "ael.y"
+ case 90:
+#line 523 "ael.y"
{ (yyval.pval)=0; ;}
break;
- case 90:
-#line 517 "ael.y"
+ case 91:
+#line 526 "ael.y"
{ (yyval.pval) = (yyvsp[(2) - (2)].pval); ;}
break;
- case 91:
-#line 518 "ael.y"
+ case 92:
+#line 527 "ael.y"
{ (yyval.pval) = NULL ; ;}
break;
- case 92:
-#line 521 "ael.y"
+ case 93:
+#line 530 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 93:
-#line 522 "ael.y"
+ case 94:
+#line 531 "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 94:
-#line 525 "ael.y"
+ case 95:
+#line 534 "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 95:
-#line 528 "ael.y"
+ case 96:
+#line 537 "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 96:
-#line 532 "ael.y"
+ case 97:
+#line 541 "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 97:
-#line 536 "ael.y"
+ case 98:
+#line 545 "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 98:
-#line 540 "ael.y"
+ case 99:
+#line 549 "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 99:
-#line 546 "ael.y"
+ case 100:
+#line 555 "ael.y"
{ (yyval.str) = strdup("1"); ;}
break;
- case 100:
-#line 547 "ael.y"
+ case 101:
+#line 556 "ael.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); ;}
break;
- case 101:
-#line 551 "ael.y"
+ case 102:
+#line 560 "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 102:
-#line 554 "ael.y"
+ case 103:
+#line 563 "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 103:
-#line 560 "ael.y"
+ case 104:
+#line 569 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
- case 104:
-#line 560 "ael.y"
+ case 105:
+#line 569 "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)]));
@@ -2808,20 +2824,20 @@ yyreduce:
(yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].pval);;}
break;
- case 105:
-#line 565 "ael.y"
+ case 106:
+#line 574 "ael.y"
{
(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;}
break;
- case 106:
-#line 573 "ael.y"
+ case 107:
+#line 582 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
- case 107:
-#line 573 "ael.y"
+ case 108:
+#line 582 "ael.y"
{
if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) {
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
@@ -2833,8 +2849,8 @@ yyreduce:
} ;}
break;
- case 108:
-#line 584 "ael.y"
+ case 109:
+#line 593 "ael.y"
{
(yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)]));
if( (yyval.pval)->type == PV_GOTO )
@@ -2844,126 +2860,126 @@ yyreduce:
;}
break;
- case 109:
-#line 591 "ael.y"
+ case 110:
+#line 600 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
- case 110:
-#line 594 "ael.y"
+ case 111:
+#line 603 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str) ;}
break;
- case 111:
-#line 595 "ael.y"
+ case 112:
+#line 604 "ael.y"
{ (yyval.str) = strdup(""); ;}
break;
- case 112:
-#line 598 "ael.y"
+ case 113:
+#line 607 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 113:
-#line 599 "ael.y"
+ case 114:
+#line 608 "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 114:
-#line 602 "ael.y"
+ case 115:
+#line 611 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
break;
- case 115:
-#line 605 "ael.y"
+ case 116:
+#line 614 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 116:
-#line 606 "ael.y"
+ case 117:
+#line 615 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 117:
-#line 609 "ael.y"
+ case 118:
+#line 618 "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 118:
-#line 613 "ael.y"
+ case 119:
+#line 622 "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 119:
-#line 617 "ael.y"
+ case 120:
+#line 626 "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 120:
-#line 623 "ael.y"
+ case 121:
+#line 632 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 121:
-#line 624 "ael.y"
+ case 122:
+#line 633 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 122:
-#line 627 "ael.y"
+ case 123:
+#line 636 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 123:
-#line 628 "ael.y"
+ case 124:
+#line 637 "ael.y"
{ (yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 124:
-#line 629 "ael.y"
+ case 125:
+#line 638 "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 125:
-#line 635 "ael.y"
+ case 126:
+#line 644 "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 126:
-#line 640 "ael.y"
+ case 127:
+#line 649 "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 127:
-#line 645 "ael.y"
+ case 128:
+#line 654 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 128:
-#line 646 "ael.y"
+ case 129:
+#line 655 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval),nword((yyvsp[(2) - (3)].str), &(yylsp[(2) - (3)]))); ;}
break;
- case 129:
-#line 647 "ael.y"
+ case 130:
+#line 656 "ael.y"
{
char *x;
if (asprintf(&x,"%s@%s", (yyvsp[(2) - (5)].str), (yyvsp[(4) - (5)].str)) < 0) {
@@ -2977,55 +2993,55 @@ yyreduce:
;}
break;
- case 130:
-#line 658 "ael.y"
+ case 131:
+#line 667 "ael.y"
{(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
- case 131:
-#line 661 "ael.y"
+ case 132:
+#line 670 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 132:
-#line 662 "ael.y"
+ case 133:
+#line 671 "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 133:
-#line 669 "ael.y"
+ case 134:
+#line 678 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (2)].pval); ;}
break;
- case 134:
-#line 670 "ael.y"
+ case 135:
+#line 679 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;}
break;
- case 135:
-#line 671 "ael.y"
+ case 136:
+#line 680 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
- case 136:
-#line 674 "ael.y"
+ case 137:
+#line 683 "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 137:
-#line 677 "ael.y"
+ case 138:
+#line 686 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;}
break;
/* Line 1267 of yacc.c. */
-#line 3029 "ael.tab.c"
+#line 3045 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3245,7 +3261,7 @@ yyreturn:
}
-#line 682 "ael.y"
+#line 691 "ael.y"
static char *token_equivs1[] =
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index e2ddda1ad..57f0e085c 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -384,6 +384,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;}