aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2009-02-19 00:05:07 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2009-02-19 00:05:07 +0000
commite33fec2e146732b934af76a7a64204e731c7f046 (patch)
tree988fb2bb07d485a3fa7cafc05d0a8fd1dda69063 /res
parente600b0b9514562ec717c48bdf0e65e072a84a2ef (diff)
Merged revisions 177286 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r177286 | murf | 2009-02-18 16:50:57 -0700 (Wed, 18 Feb 2009) | 39 lines Merged revisions 177225 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r177225 | murf | 2009-02-18 15:43:14 -0700 (Wed, 18 Feb 2009) | 34 lines This patch fixes a regression of sorts that was introduced in rev 24425. It basically fixes AST-190/ABE-1782. What was wrong: the user has 6000 extensions in one context; and then 6000 contexts, one per extension. The parser could only handle about 4893 of the 6000 extens in the single context. This was due to the regression I mentioned. To get rid of shift/reduce conflicts, Luigi set up right-recursive lists for globals, context elements, switch lists, and statements. Right recursive lists got rid of the warnings, but instead, they use up a tremendous amount of stack space when the lists are long. I saw this a few years back, and resolved not to fix it until someone complained. That day has arrived! After the changes were made, I ran the regression test suite, and there were no problems. I took the test case the user provided, and added 100,000 extensions to the single context, that already had 6,000 extens in it. (I'll see your 6, and raise you 100!) It takes a few minutes to read it all in, check it and generate code for it, but no problems. So, I think I can say that fundamentally, there are no longer any limits on the number of items you can place in contexts, statement blocks, switches, or globals, beyond your virt mem constraints. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@177289 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/ael/ael.tab.c442
-rw-r--r--res/ael/ael.y24
2 files changed, 238 insertions, 228 deletions
diff --git a/res/ael/ael.tab.c b/res/ael/ael.tab.c
index d8af39cee..9c6b9e65d 100644
--- a/res/ael/ael.tab.c
+++ b/res/ael/ael.tab.c
@@ -512,7 +512,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 17
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 327
+#define YYLAST 373
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 44
@@ -521,7 +521,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 142
/* YYNRULES -- Number of states. */
-#define YYNSTATES 288
+#define YYNSTATES 281
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -595,17 +595,17 @@ static const yytype_int8 yyrhs[] =
-1, 43, -1, 37, -1, 50, 3, 48, 4, 59,
5, -1, 23, -1, -1, 24, -1, 24, 23, -1,
23, 24, -1, 15, 43, 6, 58, 7, 4, 92,
- 5, -1, 16, 4, 53, 5, -1, -1, 54, 53,
+ 5, -1, 16, 4, 53, 5, -1, -1, 53, 54,
-1, 1, 53, -1, -1, 43, 9, 55, 43, 8,
-1, -1, 42, 43, 9, 57, 43, 8, -1, -1,
43, -1, 58, 10, 43, -1, 58, 1, -1, -1,
- 60, 59, -1, 1, 59, -1, 62, -1, 99, -1,
+ 59, 60, -1, 1, 59, -1, 62, -1, 99, -1,
94, -1, 95, -1, 61, -1, 54, -1, 56, -1,
43, 1, -1, 8, -1, 17, 25, 43, 8, -1,
43, 25, 74, -1, 43, 14, 43, 25, 74, -1,
31, 43, 25, 74, -1, 32, 6, 70, 7, 43,
25, 74, -1, 31, 32, 6, 70, 7, 43, 25,
- 74, -1, -1, 74, 63, -1, 1, 63, -1, 71,
+ 74, -1, -1, 63, 74, -1, 1, 63, -1, 71,
11, 71, 11, 71, -1, 43, -1, 64, 13, 71,
13, 71, 13, 71, -1, -1, 6, 67, 69, 7,
-1, 19, 66, -1, 22, 66, -1, 20, 6, 65,
@@ -629,12 +629,12 @@ static const yytype_int8 yyrhs[] =
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, 91, 90, -1, 35, 43, 11, 63, -1, 37,
- 11, 63, -1, 36, 43, 11, 63, -1, -1, 93,
- 92, -1, 74, -1, 99, -1, 38, 43, 4, 63,
+ -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, 43, 8, 96, -1, 43, 14, 43,
- 8, 96, -1, 1, 96, -1, 48, -1, 48, 13,
+ 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
@@ -747,91 +747,91 @@ static const yytype_uint8 yydefact[] =
{
14, 9, 0, 0, 13, 15, 0, 0, 3, 6,
0, 7, 8, 0, 0, 17, 16, 1, 5, 4,
- 0, 27, 0, 0, 0, 0, 11, 10, 0, 28,
- 0, 22, 23, 19, 21, 0, 30, 0, 0, 0,
- 0, 42, 0, 0, 0, 0, 0, 0, 0, 0,
- 39, 40, 0, 0, 38, 34, 36, 37, 35, 125,
- 29, 0, 33, 0, 0, 0, 0, 0, 0, 0,
- 0, 41, 0, 0, 12, 32, 0, 94, 0, 0,
+ 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,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 74, 75, 0, 84, 127, 118, 0, 0,
- 125, 128, 24, 0, 0, 0, 62, 0, 0, 0,
- 0, 0, 142, 136, 0, 0, 25, 0, 44, 0,
- 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, 18, 126, 43, 0, 46, 0, 0, 0, 63,
- 135, 0, 0, 130, 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, 0, 0, 0,
- 120, 67, 0, 59, 0, 0, 0, 99, 71, 98,
+ 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, 0, 0, 0, 72, 121, 68,
+ 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, 123, 0, 0,
- 103, 102, 101, 100, 0, 48, 122, 124, 0, 52,
- 0, 0, 81, 54, 0, 0, 0, 82
+ 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
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 6, 7, 8, 113, 9, 10, 11, 12, 24,
- 92, 39, 93, 170, 30, 52, 53, 54, 55, 120,
- 180, 181, 125, 177, 94, 147, 107, 182, 131, 95,
- 121, 193, 274, 284, 202, 198, 132, 191, 134, 123,
- 214, 97, 196, 98, 236, 148, 219, 220, 99, 100,
- 56, 57, 110, 114, 115, 58
+ -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,
+ 59, 60, 108, 112, 113, 61
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -219
+#define YYPACT_NINF -209
static const yytype_int16 yypact[] =
{
- 102, -219, -25, 40, 24, 29, 70, 249, -219, -219,
- 74, -219, -219, 107, 11, -219, -219, -219, -219, -219,
- -6, 65, 11, 137, 148, 11, -219, -219, 152, -219,
- 87, -219, -219, -219, -219, 123, -219, 173, 126, 136,
- 123, -219, 159, -11, 186, 190, 194, 196, 158, 86,
- -219, -219, 203, 123, -219, -219, -219, -219, -219, 177,
- -219, 201, -219, 170, 208, 191, 179, 12, 12, 19,
- 214, -219, 181, 213, -219, -219, 115, -219, 183, 222,
- 222, 223, 222, 36, 187, 226, 228, 229, 232, 222,
- 202, 182, -219, -219, 213, -219, -219, 16, 113, 239,
- 177, -219, -219, 240, 179, 213, -219, 22, 12, 101,
- 246, 248, -219, 241, 250, 10, -219, 234, -219, 56,
- 255, 56, 256, 253, -219, 259, -219, 224, -219, 26,
- 225, 157, 258, 119, 261, -219, -219, -219, -219, 213,
- 266, -219, -219, -219, 254, -219, 231, -219, 59, -219,
- -219, -219, -219, -219, 60, -219, 233, 235, 236, -219,
- -219, 12, 237, -219, -219, 224, -219, -219, -219, 263,
- 238, 213, -219, -219, -219, 270, -219, 242, 124, -1,
- 269, 276, 273, 187, 187, -219, 187, 243, 187, -219,
- 244, 274, -219, 247, -219, 115, -219, 213, -219, -219,
- -219, 251, 252, 257, 264, -219, -219, -219, 283, -219,
- -219, 284, -219, -219, 242, 286, 260, 262, 285, 292,
- 124, 265, 267, -219, 267, 172, 15, 176, -219, 165,
- -219, -6, 290, 294, -219, -219, -219, 293, 277, 213,
- 12, -219, 129, -219, 295, 296, 56, -219, -219, -219,
- 268, 291, 298, 187, 187, 187, 187, -219, -219, -219,
- -219, 213, -219, -219, -219, 56, 56, -219, 267, 267,
- 301, 301, 301, 301, 271, -219, -219, -219, 300, -219,
- 307, 267, -219, -219, 275, 309, 213, -219
+ 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
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -219, -219, -219, 310, -19, -219, -219, -219, -219, 125,
- 5, -219, -15, -219, -219, -31, -219, -219, -219, -114,
- -219, 154, 25, -219, -219, 143, 217, -218, -82, -219,
- -59, -219, -219, -219, -219, -219, -219, -219, -219, -219,
- -219, -219, -219, -219, -219, 108, 103, -219, 227, -219,
- -219, -219, -65, 209, -219, -51
+ -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
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -841,76 +841,86 @@ static const yytype_int16 yypgoto[] =
#define YYTABLE_NINF -133
static const yytype_int16 yytable[] =
{
- 96, 28, 133, 111, 251, 172, 252, 174, 101, 62,
- -66, 167, 22, 108, 118, 168, -20, -132, 13, 25,
- 51, 64, 75, 145, 112, 51, 187, 25, 254, 156,
- 25, 26, 65, 157, 158, 144, 183, 27, 51, 184,
- 50, 96, 221, 160, 14, 50, 155, 26, 15, 101,
- 278, 279, 16, 27, 23, 109, 26, 119, 50, 146,
- 76, -49, 27, 283, 77, 159, 200, 203, 78, 201,
- 17, 157, 158, 129, 79, 80, 81, 20, 82, 130,
- 194, 233, 83, 84, 85, 86, 87, 71, 36, 88,
- 89, -49, -49, -49, 37, 32, 207, 38, 48, 91,
- 72, 225, 226, 159, 227, 126, 229, 128, 29, 161,
- 1, 73, 212, 21, 139, 162, 119, 2, 3, 76,
- -49, 149, 150, 77, 40, 4, 5, 78, -31, 190,
- 187, 41, 267, 79, 80, 81, 264, 82, 234, 201,
- 42, 83, 84, 85, 86, 87, 32, 31, 88, 89,
- 34, 276, 277, 33, 43, 44, 35, 48, 91, 216,
- 217, 218, 45, 46, 47, 48, 49, 186, 187, 60,
- 188, 270, 271, 272, 273, 263, 187, 59, 256, 61,
- 262, 76, 253, 187, 63, 77, 255, 187, 141, 78,
- 142, 32, 66, 143, 67, 79, 80, 81, 68, 82,
- 69, 70, 275, 83, 84, 85, 86, 87, 74, 102,
- 88, 89, 257, 103, 104, 90, 105, 76, 47, 48,
- 91, 77, 106, 116, 117, 78, 122, 287, 124, 127,
- 130, 79, 80, 81, 135, 82, 136, 137, 138, 83,
- 84, 85, 86, 87, 151, 140, 88, 89, 153, -2,
- 18, 163, -14, 164, 165, 48, 91, 1, 166, 171,
- 173, 176, 175, 178, 2, 3, 189, 179, 185, 192,
- 195, 210, 4, 5, 199, 197, 204, 213, 205, 206,
- 208, 211, 222, 223, 224, 146, 228, 230, 231, 239,
- 232, 240, 241, 243, 235, 237, 246, 247, 258, 259,
- 238, 260, 261, 244, 268, 245, 265, 266, 249, 269,
- 250, 221, 187, 281, 280, 282, 286, 19, 285, 209,
- 215, 154, 242, 248, 169, 0, 0, 152
+ 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
};
static const yytype_int16 yycheck[] =
{
- 59, 20, 84, 68, 222, 119, 224, 121, 59, 40,
- 11, 1, 1, 1, 73, 5, 5, 5, 43, 14,
- 35, 32, 53, 7, 5, 40, 11, 22, 13, 7,
- 25, 37, 43, 11, 12, 94, 10, 43, 53, 13,
- 35, 100, 43, 108, 4, 40, 105, 37, 24, 100,
- 268, 269, 23, 43, 43, 43, 37, 1, 53, 43,
- 4, 5, 43, 281, 8, 43, 7, 7, 12, 10,
- 0, 11, 12, 37, 18, 19, 20, 3, 22, 43,
- 139, 195, 26, 27, 28, 29, 30, 1, 1, 33,
- 34, 35, 36, 37, 7, 9, 161, 10, 42, 43,
- 14, 183, 184, 43, 186, 80, 188, 82, 43, 8,
- 8, 25, 171, 6, 89, 14, 1, 15, 16, 4,
- 5, 8, 9, 8, 1, 23, 24, 12, 5, 10,
- 11, 8, 246, 18, 19, 20, 7, 22, 197, 10,
- 17, 26, 27, 28, 29, 30, 9, 22, 33, 34,
- 25, 265, 266, 5, 31, 32, 4, 42, 43, 35,
- 36, 37, 39, 40, 41, 42, 43, 10, 11, 43,
- 13, 253, 254, 255, 256, 240, 11, 4, 13, 43,
- 239, 4, 10, 11, 25, 8, 10, 11, 6, 12,
- 8, 9, 6, 11, 4, 18, 19, 20, 4, 22,
- 4, 43, 261, 26, 27, 28, 29, 30, 5, 8,
- 33, 34, 231, 43, 6, 38, 25, 4, 41, 42,
- 43, 8, 43, 9, 43, 12, 43, 286, 6, 6,
- 43, 18, 19, 20, 8, 22, 8, 8, 6, 26,
- 27, 28, 29, 30, 5, 43, 33, 34, 8, 0,
- 1, 5, 3, 5, 13, 42, 43, 8, 8, 25,
- 5, 8, 6, 4, 15, 16, 8, 43, 43, 8,
- 4, 8, 23, 24, 43, 21, 43, 7, 43, 43,
- 43, 43, 13, 7, 11, 43, 43, 43, 14, 25,
- 43, 8, 8, 7, 43, 43, 11, 5, 8, 5,
- 43, 8, 25, 43, 13, 43, 11, 11, 43, 11,
- 43, 43, 11, 13, 43, 8, 7, 7, 43, 165,
- 177, 104, 214, 220, 115, -1, -1, 100
+ 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
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -919,33 +929,33 @@ static const yytype_uint8 yystos[] =
{
0, 8, 15, 16, 23, 24, 45, 46, 47, 49,
50, 51, 52, 43, 4, 24, 23, 0, 1, 47,
- 3, 6, 1, 43, 53, 54, 37, 43, 48, 43,
- 58, 53, 9, 5, 53, 4, 1, 7, 10, 55,
- 1, 8, 17, 31, 32, 39, 40, 41, 42, 43,
- 54, 56, 59, 60, 61, 62, 94, 95, 99, 4,
- 43, 43, 59, 25, 32, 43, 6, 4, 4, 4,
- 43, 1, 14, 25, 5, 59, 4, 8, 12, 18,
+ 3, 6, 1, 53, 37, 43, 48, 43, 58, 53,
+ 5, 43, 54, 4, 1, 7, 10, 9, 1, 59,
+ 4, 43, 55, 59, 5, 8, 17, 31, 32, 39,
+ 40, 41, 42, 43, 54, 56, 60, 61, 62, 94,
+ 95, 99, 92, 43, 25, 32, 43, 6, 4, 4,
+ 4, 43, 1, 14, 25, 4, 5, 8, 12, 18,
19, 20, 22, 26, 27, 28, 29, 30, 33, 34,
- 38, 43, 54, 56, 68, 73, 74, 85, 87, 92,
- 93, 99, 8, 43, 6, 25, 43, 70, 1, 43,
- 96, 96, 5, 48, 97, 98, 9, 43, 74, 1,
- 63, 74, 43, 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, 5, 92, 8, 70, 74, 7, 11, 12, 43,
- 96, 8, 14, 5, 5, 13, 8, 1, 5, 97,
- 57, 25, 63, 5, 63, 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, 96, 43, 65,
- 8, 43, 74, 7, 84, 69, 35, 36, 37, 90,
- 91, 43, 13, 7, 11, 72, 72, 72, 43, 72,
+ 38, 43, 54, 56, 68, 73, 74, 85, 87, 93,
+ 99, 8, 43, 6, 25, 43, 70, 1, 96, 96,
+ 5, 48, 97, 98, 9, 43, 74, 1, 63, 43,
+ 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,
- 8, 8, 89, 7, 43, 43, 11, 5, 90, 43,
+ 43, 8, 89, 7, 5, 35, 36, 37, 91, 43,
43, 71, 71, 10, 13, 10, 13, 48, 8, 5,
- 8, 25, 74, 96, 7, 11, 11, 63, 13, 11,
- 72, 72, 72, 72, 76, 74, 63, 63, 71, 71,
- 43, 13, 8, 71, 77, 43, 7, 74
+ 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)
@@ -1470,7 +1480,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
case 43: /* "word" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1474 "ael.tab.c"
+#line 1484 "ael.tab.c"
break;
case 46: /* "objects" */
#line 171 "ael.y"
@@ -1478,7 +1488,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1482 "ael.tab.c"
+#line 1492 "ael.tab.c"
break;
case 47: /* "object" */
#line 171 "ael.y"
@@ -1486,12 +1496,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1490 "ael.tab.c"
+#line 1500 "ael.tab.c"
break;
case 48: /* "context_name" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1495 "ael.tab.c"
+#line 1505 "ael.tab.c"
break;
case 49: /* "context" */
#line 171 "ael.y"
@@ -1499,7 +1509,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1503 "ael.tab.c"
+#line 1513 "ael.tab.c"
break;
case 51: /* "macro" */
#line 171 "ael.y"
@@ -1507,7 +1517,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1511 "ael.tab.c"
+#line 1521 "ael.tab.c"
break;
case 52: /* "globals" */
#line 171 "ael.y"
@@ -1515,7 +1525,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1519 "ael.tab.c"
+#line 1529 "ael.tab.c"
break;
case 53: /* "global_statements" */
#line 171 "ael.y"
@@ -1523,7 +1533,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1527 "ael.tab.c"
+#line 1537 "ael.tab.c"
break;
case 54: /* "assignment" */
#line 171 "ael.y"
@@ -1531,7 +1541,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1535 "ael.tab.c"
+#line 1545 "ael.tab.c"
break;
case 56: /* "local_assignment" */
#line 171 "ael.y"
@@ -1539,7 +1549,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1543 "ael.tab.c"
+#line 1553 "ael.tab.c"
break;
case 58: /* "arglist" */
#line 171 "ael.y"
@@ -1547,7 +1557,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1551 "ael.tab.c"
+#line 1561 "ael.tab.c"
break;
case 59: /* "elements" */
#line 171 "ael.y"
@@ -1555,7 +1565,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1559 "ael.tab.c"
+#line 1569 "ael.tab.c"
break;
case 60: /* "element" */
#line 171 "ael.y"
@@ -1563,7 +1573,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1567 "ael.tab.c"
+#line 1577 "ael.tab.c"
break;
case 61: /* "ignorepat" */
#line 171 "ael.y"
@@ -1571,7 +1581,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1575 "ael.tab.c"
+#line 1585 "ael.tab.c"
break;
case 62: /* "extension" */
#line 171 "ael.y"
@@ -1579,7 +1589,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1583 "ael.tab.c"
+#line 1593 "ael.tab.c"
break;
case 63: /* "statements" */
#line 171 "ael.y"
@@ -1587,12 +1597,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1591 "ael.tab.c"
+#line 1601 "ael.tab.c"
break;
case 64: /* "timerange" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1596 "ael.tab.c"
+#line 1606 "ael.tab.c"
break;
case 65: /* "timespec" */
#line 171 "ael.y"
@@ -1600,12 +1610,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1604 "ael.tab.c"
+#line 1614 "ael.tab.c"
break;
case 66: /* "test_expr" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1609 "ael.tab.c"
+#line 1619 "ael.tab.c"
break;
case 68: /* "if_like_head" */
#line 171 "ael.y"
@@ -1613,22 +1623,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1617 "ael.tab.c"
+#line 1627 "ael.tab.c"
break;
case 69: /* "word_list" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1622 "ael.tab.c"
+#line 1632 "ael.tab.c"
break;
case 71: /* "word3_list" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1627 "ael.tab.c"
+#line 1637 "ael.tab.c"
break;
case 72: /* "goto_word" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1632 "ael.tab.c"
+#line 1642 "ael.tab.c"
break;
case 73: /* "switch_statement" */
#line 171 "ael.y"
@@ -1636,7 +1646,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1640 "ael.tab.c"
+#line 1650 "ael.tab.c"
break;
case 74: /* "statement" */
#line 171 "ael.y"
@@ -1644,7 +1654,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1648 "ael.tab.c"
+#line 1658 "ael.tab.c"
break;
case 79: /* "opt_else" */
#line 171 "ael.y"
@@ -1652,7 +1662,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1656 "ael.tab.c"
+#line 1666 "ael.tab.c"
break;
case 80: /* "target" */
#line 171 "ael.y"
@@ -1660,12 +1670,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1664 "ael.tab.c"
+#line 1674 "ael.tab.c"
break;
case 81: /* "opt_pri" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1669 "ael.tab.c"
+#line 1679 "ael.tab.c"
break;
case 82: /* "jumptarget" */
#line 171 "ael.y"
@@ -1673,7 +1683,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1677 "ael.tab.c"
+#line 1687 "ael.tab.c"
break;
case 83: /* "macro_call" */
#line 171 "ael.y"
@@ -1681,7 +1691,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1685 "ael.tab.c"
+#line 1695 "ael.tab.c"
break;
case 85: /* "application_call_head" */
#line 171 "ael.y"
@@ -1689,7 +1699,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1693 "ael.tab.c"
+#line 1703 "ael.tab.c"
break;
case 87: /* "application_call" */
#line 171 "ael.y"
@@ -1697,12 +1707,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1701 "ael.tab.c"
+#line 1711 "ael.tab.c"
break;
case 88: /* "opt_word" */
#line 184 "ael.y"
{ free((yyvaluep->str));};
-#line 1706 "ael.tab.c"
+#line 1716 "ael.tab.c"
break;
case 89: /* "eval_arglist" */
#line 171 "ael.y"
@@ -1710,7 +1720,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1714 "ael.tab.c"
+#line 1724 "ael.tab.c"
break;
case 90: /* "case_statements" */
#line 171 "ael.y"
@@ -1718,7 +1728,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1722 "ael.tab.c"
+#line 1732 "ael.tab.c"
break;
case 91: /* "case_statement" */
#line 171 "ael.y"
@@ -1726,7 +1736,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1730 "ael.tab.c"
+#line 1740 "ael.tab.c"
break;
case 92: /* "macro_statements" */
#line 171 "ael.y"
@@ -1734,7 +1744,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1738 "ael.tab.c"
+#line 1748 "ael.tab.c"
break;
case 93: /* "macro_statement" */
#line 171 "ael.y"
@@ -1742,7 +1752,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1746 "ael.tab.c"
+#line 1756 "ael.tab.c"
break;
case 94: /* "switches" */
#line 171 "ael.y"
@@ -1750,7 +1760,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1754 "ael.tab.c"
+#line 1764 "ael.tab.c"
break;
case 95: /* "eswitches" */
#line 171 "ael.y"
@@ -1758,7 +1768,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1762 "ael.tab.c"
+#line 1772 "ael.tab.c"
break;
case 96: /* "switchlist" */
#line 171 "ael.y"
@@ -1766,7 +1776,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1770 "ael.tab.c"
+#line 1780 "ael.tab.c"
break;
case 97: /* "included_entry" */
#line 171 "ael.y"
@@ -1774,7 +1784,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1778 "ael.tab.c"
+#line 1788 "ael.tab.c"
break;
case 98: /* "includeslist" */
#line 171 "ael.y"
@@ -1782,7 +1792,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1786 "ael.tab.c"
+#line 1796 "ael.tab.c"
break;
case 99: /* "includes" */
#line 171 "ael.y"
@@ -1790,7 +1800,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1794 "ael.tab.c"
+#line 1804 "ael.tab.c"
break;
default:
@@ -3018,20 +3028,20 @@ yyreduce:
case 133:
#line 670 "ael.y"
- { (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;}
+ { (yyval.pval) = linku1((yyvsp[(1) - (3)].pval),nword((yyvsp[(2) - (3)].str), &(yylsp[(2) - (3)]))); ;}
break;
case 134:
#line 671 "ael.y"
{
char *x;
- if (asprintf(&x,"%s@%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str)) < 0) {
+ if (asprintf(&x,"%s@%s", (yyvsp[(2) - (5)].str), (yyvsp[(4) - (5)].str)) < 0) {
ast_log(LOG_WARNING, "asprintf() failed\n");
(yyval.pval) = NULL;
} else {
- free((yyvsp[(1) - (5)].str));
- free((yyvsp[(3) - (5)].str));
- (yyval.pval) = linku1(nword(x, &(yylsp[(1) - (5)])), (yyvsp[(5) - (5)].pval));
+ free((yyvsp[(2) - (5)].str));
+ free((yyvsp[(4) - (5)].str));
+ (yyval.pval) = linku1((yyvsp[(1) - (5)].pval),nword(x, &(yylsp[(2) - (5)])));
}
;}
break;
@@ -3084,7 +3094,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 3088 "ael.tab.c"
+#line 3098 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/res/ael/ael.y b/res/ael/ael.y
index c412e3cdf..4208ccf3c 100644
--- a/res/ael/ael.y
+++ b/res/ael/ael.y
@@ -160,7 +160,7 @@ static pval *update_last(pval *, YYLTYPE *);
/* there will be two shift/reduce conflicts, they involve the if statement, where a single statement occurs not wrapped in curlies in the "true" section
the default action to shift will attach the else to the preceeding if. */
-%expect 3
+%expect 30
%error-verbose
/*
@@ -236,7 +236,7 @@ globals : KW_GLOBALS LC global_statements RC {
;
global_statements : { $$ = NULL; }
- | assignment global_statements {$$ = linku1($1, $2); }
+ | global_statements assignment {$$ = linku1($1, $2); }
| error global_statements {$$=$2;}
;
@@ -264,7 +264,7 @@ arglist : /* empty */ { $$ = NULL; }
;
elements : {$$=0;}
- | element elements { $$ = linku1($1, $2); }
+ | elements element { $$ = linku1($1, $2); }
| error elements { $$=$2;}
;
@@ -316,7 +316,7 @@ extension : word EXTENMARK statement {
/* list of statements in a block or after a case label - can be empty */
statements : /* empty */ { $$ = NULL; }
- | statement statements { $$ = linku1($1, $2); }
+ | statements statement { $$ = linku1($1, $2); }
| error statements {$$=$2;}
;
@@ -627,7 +627,7 @@ eval_arglist : word_list { $$ = nword($1, &@1); }
;
case_statements: /* empty */ { $$ = NULL; }
- | case_statement case_statements { $$ = linku1($1, $2); }
+ | case_statements case_statement { $$ = linku1($1, $2); }
;
case_statement: KW_CASE word COLON statements {
@@ -645,7 +645,7 @@ case_statement: KW_CASE word COLON statements {
;
macro_statements: /* empty */ { $$ = NULL; }
- | macro_statement macro_statements { $$ = linku1($1, $2); }
+ | macro_statements macro_statement { $$ = linku1($1, $2); }
;
macro_statement : statement {$$=$1;}
@@ -667,16 +667,16 @@ eswitches : KW_ESWITCHES LC switchlist RC {
;
switchlist : /* empty */ { $$ = NULL; }
- | word SEMI switchlist { $$ = linku1(nword($1, &@1), $3); }
- | word AT word SEMI switchlist {
+ | switchlist word SEMI { $$ = linku1($1,nword($2, &@2)); }
+ | switchlist word AT word SEMI {
char *x;
- if (asprintf(&x,"%s@%s", $1, $3) < 0) {
+ if (asprintf(&x,"%s@%s", $2, $4) < 0) {
ast_log(LOG_WARNING, "asprintf() failed\n");
$$ = NULL;
} else {
- free($1);
- free($3);
- $$ = linku1(nword(x, &@1), $5);
+ free($2);
+ free($4);
+ $$ = linku1($1,nword(x, &@2));
}
}
| error switchlist {$$=$2;}