aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/ael
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-24 13:20:18 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-24 13:20:18 +0000
commit5d3035b69ea6c895b47eb0b9b67db07c0af58b4f (patch)
tree8af34e6492a2e7b9a63b0597c9d88ed3e43a0d43 /pbx/ael
parent711696d39a2a8c26431593bdd2ca99af00186690 (diff)
backport of 80649, a fix to an unreported problem in the ael parser, that results in a crash on a 64bit machine
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@80689 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael')
-rw-r--r--pbx/ael/ael-test/ref.ael-test621
-rw-r--r--pbx/ael/ael.tab.c433
-rw-r--r--pbx/ael/ael.y12
3 files changed, 230 insertions, 236 deletions
diff --git a/pbx/ael/ael-test/ref.ael-test6 b/pbx/ael/ael-test/ref.ael-test6
index b525d44f5..d63a78610 100644
--- a/pbx/ael/ael-test/ref.ael-test6
+++ b/pbx/ael/ael-test/ref.ael-test6
@@ -2,15 +2,16 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3978 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3985 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
-LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
-LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
+LOG: lev:4 file:ael.y line:755 func: ael_yyerror ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
+LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=174, column=49: Mismatched '}' in expression!
+LOG: lev:4 file:ael.y line:755 func: ael_yyerror ==== File: ./extensions.ael, Line 174, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
-LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
-LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
-LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
-LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:4 file:ael.y line:755 func: ael_yyerror ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
+LOG: lev:4 file:ael.y line:755 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
+LOG: lev:4 file:ael.y line:755 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 32-32: Error: syntax error, unexpected '|', expecting '(' or ';' or '=' or ':'
+LOG: lev:2 file:pbx_ael.c line:3993 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:4 file:pbx_ael.c line:4006 func: pbx_load_module Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:523 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index c5beb7b2f..cca6a39be 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -490,7 +490,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 14
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 350
+#define YYLAST 302
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 42
@@ -499,7 +499,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 133
/* YYNRULES -- Number of states. */
-#define YYNSTATES 267
+#define YYNSTATES 271
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -572,15 +572,15 @@ static const yytype_int8 yyrhs[] =
-1, 41, -1, 36, -1, 48, 3, 46, 4, 55,
5, -1, 23, -1, -1, 15, 41, 6, 54, 7,
4, 88, 5, -1, 16, 4, 51, 5, -1, -1,
- 52, 51, -1, 51, 1, -1, -1, 41, 9, 53,
+ 52, 51, -1, 1, 51, -1, -1, 41, 9, 53,
41, 8, -1, -1, 41, -1, 54, 10, 41, -1,
- 54, 1, -1, -1, 56, 55, -1, 55, 1, -1,
+ 54, 1, -1, -1, 56, 55, -1, 1, 55, -1,
58, -1, 95, -1, 90, -1, 91, -1, 57, -1,
52, -1, 41, 1, -1, 8, -1, 17, 24, 41,
8, -1, 41, 24, 70, -1, 30, 41, 24, 70,
-1, 31, 6, 66, 7, 41, 24, 70, -1, 30,
31, 6, 66, 7, 41, 24, 70, -1, -1, 70,
- 59, -1, 59, 1, -1, 67, 11, 67, 11, 67,
+ 59, -1, 1, 59, -1, 67, 11, 67, 11, 67,
-1, 41, -1, 60, 13, 67, 13, 67, 13, 67,
-1, -1, 6, 63, 65, 7, -1, 19, 62, -1,
22, 62, -1, 20, 6, 61, 7, -1, 41, -1,
@@ -608,7 +608,7 @@ static const yytype_int8 yyrhs[] =
88, -1, 70, -1, 95, -1, 37, 41, 4, 59,
5, -1, 38, 4, 92, 5, -1, 39, 4, 92,
5, -1, -1, 41, 8, 92, -1, 41, 14, 41,
- 8, 92, -1, 92, 1, -1, 46, -1, 46, 13,
+ 8, 92, -1, 1, 92, -1, 46, -1, 46, 13,
61, -1, 93, 8, -1, 94, 93, 8, -1, 94,
1, -1, 40, 4, 94, 5, -1, 40, 4, 5,
-1
@@ -716,173 +716,165 @@ static const yytype_uint8 yyr2[] =
static const yytype_uint8 yydefact[] =
{
14, 9, 0, 0, 13, 0, 0, 3, 6, 0,
- 7, 8, 0, 17, 1, 5, 4, 0, 22, 0,
- 0, 17, 11, 10, 0, 23, 0, 20, 19, 16,
- 0, 26, 25, 0, 0, 0, 36, 0, 0, 0,
- 0, 0, 0, 0, 34, 0, 26, 33, 29, 31,
- 32, 30, 116, 24, 0, 0, 0, 0, 0, 123,
- 123, 0, 35, 0, 28, 12, 0, 42, 85, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66, 0, 75, 118, 109, 0, 0,
- 116, 119, 21, 0, 0, 0, 55, 0, 0, 0,
- 0, 133, 127, 0, 0, 38, 0, 42, 0, 0,
- 48, 0, 50, 0, 51, 0, 61, 88, 0, 95,
- 0, 82, 81, 83, 70, 0, 0, 102, 78, 69,
- 87, 105, 53, 108, 0, 77, 79, 15, 117, 37,
- 0, 39, 0, 0, 56, 123, 0, 126, 121, 122,
- 0, 129, 131, 132, 0, 44, 65, 0, 99, 76,
- 0, 111, 46, 0, 0, 0, 0, 0, 62, 0,
- 0, 0, 67, 0, 97, 68, 0, 74, 42, 103,
- 0, 84, 54, 104, 107, 0, 0, 0, 57, 0,
- 0, 128, 130, 101, 109, 0, 0, 0, 0, 0,
- 111, 59, 0, 52, 0, 0, 0, 90, 63, 89,
- 96, 0, 0, 0, 86, 106, 110, 0, 0, 0,
- 123, 0, 49, 0, 0, 42, 64, 112, 60, 58,
- 0, 0, 0, 0, 0, 0, 98, 71, 120, 80,
- 0, 40, 0, 100, 42, 42, 0, 0, 0, 94,
- 93, 92, 91, 0, 41, 0, 0, 0, 45, 0,
- 0, 72, 47, 0, 0, 0, 73
+ 7, 8, 0, 0, 1, 5, 4, 0, 22, 0,
+ 0, 0, 0, 11, 10, 0, 23, 0, 19, 20,
+ 16, 18, 0, 25, 0, 0, 0, 0, 36, 0,
+ 0, 0, 0, 0, 0, 0, 34, 0, 0, 33,
+ 29, 31, 32, 30, 116, 24, 0, 28, 0, 0,
+ 0, 0, 0, 0, 0, 35, 0, 12, 27, 0,
+ 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 66, 0, 75, 118, 109,
+ 0, 0, 116, 119, 21, 0, 0, 0, 55, 0,
+ 0, 0, 0, 0, 133, 127, 0, 0, 38, 0,
+ 0, 0, 0, 0, 48, 0, 50, 0, 51, 0,
+ 61, 88, 0, 95, 0, 82, 81, 83, 70, 0,
+ 0, 102, 78, 69, 87, 105, 53, 108, 0, 77,
+ 79, 15, 117, 37, 0, 39, 0, 0, 56, 126,
+ 0, 0, 121, 122, 0, 129, 131, 132, 0, 44,
+ 65, 43, 99, 76, 0, 111, 46, 0, 0, 0,
+ 0, 0, 62, 0, 0, 0, 67, 0, 97, 68,
+ 0, 74, 0, 103, 0, 84, 54, 104, 107, 0,
+ 0, 0, 57, 124, 0, 128, 130, 101, 109, 0,
+ 0, 0, 0, 0, 111, 59, 0, 52, 0, 0,
+ 0, 90, 63, 89, 96, 0, 0, 0, 86, 106,
+ 110, 0, 0, 0, 0, 0, 49, 0, 0, 0,
+ 64, 112, 60, 58, 0, 0, 0, 0, 0, 0,
+ 98, 71, 120, 80, 0, 40, 125, 100, 0, 0,
+ 114, 0, 0, 94, 93, 92, 91, 0, 41, 113,
+ 115, 0, 45, 0, 0, 72, 47, 0, 0, 0,
+ 73
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 5, 6, 7, 102, 8, 9, 10, 11, 20,
- 83, 35, 26, 45, 46, 47, 48, 106, 163, 164,
- 111, 160, 84, 133, 97, 165, 117, 85, 107, 176,
- 253, 263, 185, 181, 118, 174, 120, 109, 194, 87,
- 179, 88, 216, 134, 199, 200, 89, 90, 49, 50,
- 99, 103, 104, 51
+ -1, 5, 6, 7, 105, 8, 9, 10, 11, 21,
+ 85, 36, 27, 47, 48, 49, 50, 110, 167, 168,
+ 115, 164, 86, 137, 99, 169, 121, 87, 111, 180,
+ 257, 267, 189, 185, 122, 178, 124, 113, 198, 89,
+ 183, 90, 220, 138, 203, 204, 91, 92, 51, 52,
+ 102, 106, 107, 53
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -198
+#define YYPACT_NINF -201
static const yytype_int16 yypact[] =
{
- 91, -198, -25, 14, -198, 37, 69, -198, -198, 65,
- -198, -198, 55, 78, -198, -198, -198, 26, 107, 140,
- 75, 78, -198, -198, 74, -198, 23, -198, -198, -198,
- 81, 138, -198, 152, 130, 133, -198, 159, -14, 184,
- 187, 201, 205, 12, -198, 116, 138, -198, -198, -198,
- -198, -198, 83, -198, 202, 146, 206, 191, 170, 173,
- 173, 3, -198, 125, -198, -198, 126, 125, -198, 175,
- 211, 211, 212, 211, 77, 178, 213, 214, 215, 218,
- 211, 185, 164, -198, 125, -198, -198, 7, 117, 220,
- 83, -198, -198, 219, 170, 125, -198, 8, 20, 129,
- 131, -198, 207, 221, 5, -198, 134, 125, 222, 223,
- -198, 226, -198, 192, -198, 87, 194, 183, 224, 154,
- 228, -198, -198, -198, -198, 125, 230, -198, -198, -198,
- 216, -198, 198, -198, 182, -198, -198, -198, -198, -198,
- 33, -198, 199, 200, -198, 173, 203, -198, -198, -198,
- 192, -198, -198, -198, 234, -198, -198, 18, 231, -198,
- 204, 167, 1, 233, 236, 237, 178, 178, -198, 178,
- 208, 178, -198, 209, 238, -198, 210, -198, 125, -198,
- 125, -198, -198, -198, 217, 225, 227, 229, -198, 179,
- 239, -198, -198, -198, 204, 247, 232, 235, 244, 251,
- 167, 240, 241, -198, 241, 188, 127, 197, -198, 193,
- -198, 26, 249, 180, -198, -198, -198, 252, 243, 125,
- 173, 190, -198, 248, 250, 125, -198, -198, -198, 242,
- 256, 253, 178, 178, 178, 178, -198, -198, -198, -198,
- 125, -198, 181, -198, 125, 125, 21, 241, 241, 254,
- 254, 254, 254, 245, -198, 24, 30, 257, -198, 255,
- 241, -198, -198, 246, 264, 125, -198
+ 136, -201, -30, 11, -201, 26, 233, -201, -201, 27,
+ -201, -201, 59, 9, -201, -201, -201, -17, 43, 9,
+ 141, 155, 9, -201, -201, 90, -201, 78, -201, -201,
+ -201, -201, 17, -201, 164, 99, 129, 17, -201, 115,
+ -14, 172, 175, 176, 178, 12, -201, 179, 17, -201,
+ -201, -201, -201, -201, 169, -201, 177, -201, 145, 186,
+ 180, 152, 30, 30, 96, -201, 199, -201, -201, 41,
+ -201, 159, 202, 202, 206, 202, 51, 173, 197, 205,
+ 208, 214, 202, 181, 147, -201, 199, -201, -201, 37,
+ 31, 218, 169, -201, -201, 221, 152, 199, -201, 21,
+ 30, 15, 225, 230, -201, 224, 231, 130, -201, 85,
+ 237, 85, 232, 235, -201, 240, -201, 204, -201, 89,
+ 209, 70, 238, 98, 239, -201, -201, -201, -201, 199,
+ 247, -201, -201, -201, 234, -201, 211, -201, 126, -201,
+ -201, -201, -201, -201, 65, -201, 212, 213, -201, -201,
+ 30, 216, -201, -201, 204, -201, -201, -201, 250, -201,
+ -201, -201, 252, -201, 219, 140, -4, 248, 255, 253,
+ 173, 173, -201, 173, 222, 173, -201, 226, 251, -201,
+ 227, -201, 41, -201, 199, -201, -201, -201, 228, 229,
+ 236, 242, -201, -201, 263, -201, -201, -201, 219, 265,
+ 241, 243, 262, 269, 140, 244, 245, -201, 245, 105,
+ 111, 118, -201, 134, -201, -17, 267, 271, -201, -201,
+ -201, 270, 256, 199, 30, 131, -201, 268, 272, 85,
+ -201, -201, -201, 246, 275, 278, 173, 173, 173, 173,
+ -201, -201, -201, -201, 199, -201, -201, -201, 85, 85,
+ -201, 245, 245, 279, 279, 279, 279, 254, -201, -201,
+ -201, 280, -201, 273, 245, -201, -201, 257, 284, 199,
+ -201
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -198, -198, -198, 266, -16, -198, -198, -198, -198, 258,
- 58, -198, -198, 259, -198, -198, -198, -103, -198, 112,
- 10, -198, -198, 114, 186, -197, -73, -198, -52, -198,
- -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
- -198, -198, -198, 84, 85, -198, 260, -198, -198, -198,
- -57, 171, -198, -43
+ -201, -201, -201, 286, -16, -201, -201, -201, -201, 127,
+ 135, -201, -201, -28, -201, -201, -201, -106, -201, 142,
+ 52, -201, -201, 133, 198, -200, -75, -201, -54, -201,
+ -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+ -201, -201, -201, 101, 97, -201, 210, -201, -201, -201,
+ -59, 193, -201, -38
};
/* 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 -126
+#define YYTABLE_NINF -124
static const yytype_int16 yytable[] =
{
- 86, 24, 119, 100, 157, 230, 152, 231, 101, 91,
- 153, 105, -58, 62, 131, 142, 12, 56, 13, 155,
- 143, 27, 155, -43, 32, 155, -114, 57, 145, -113,
- 33, 155, 130, 34, 146, -115, 63, 14, 86, 22,
- 186, 22, 201, 141, 23, 143, 23, 91, 132, 144,
- 257, 258, -43, -43, -43, -114, -114, -114, -113, -113,
- -113, 18, 22, 262, -115, -115, -115, 23, 17, -2,
- 15, 21, -14, 177, 144, 213, 28, 1, 31, 21,
- 29, 112, 28, 114, 2, 3, -18, 67, 189, 44,
- 125, 68, 4, 205, 206, 69, 207, 166, 209, 1,
- 167, 70, 71, 72, 44, 73, 2, 3, 74, 75,
- 76, 77, 78, 115, 4, 79, 80, 64, 116, 19,
- 81, 65, 246, 42, 82, 135, 136, 64, 214, 67,
- 147, -27, 147, 68, 148, 155, 149, 69, 170, 156,
- 233, 255, 256, 70, 71, 72, 36, 73, 25, 27,
- 74, 75, 76, 77, 78, 37, 52, 79, 80, 249,
- 250, 251, 252, 242, 173, 170, 82, 241, 38, 39,
- 127, 53, 128, 27, 54, 129, 40, 41, 42, 43,
- 147, 155, 147, 55, -124, 238, -125, 93, 254, 183,
- 58, 59, 184, 169, 170, 236, 171, 243, 232, 170,
- 184, 196, 197, 198, 170, 60, 235, 234, 170, 61,
- 92, 96, 94, 266, 98, 95, 108, 110, 113, 116,
- 150, 121, 122, 123, 124, 137, 126, 139, 158, 151,
- 161, 159, 172, 162, 178, 168, 175, 180, 193, 182,
- 187, 188, 192, 203, 190, 132, 202, 220, 204, 208,
- 210, 212, 211, 219, 222, 225, 226, 237, 215, 244,
- 239, 245, 191, 261, 248, 170, 217, 240, 218, 247,
- 260, 265, 16, 223, 195, 154, 224, 0, 221, 30,
- 140, 228, 229, 201, 0, 227, 259, 264, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 66, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 138
+ 88, 25, 123, 159, 103, 161, 234, -58, 235, 57,
+ 19, 12, 108, 65, -17, 13, 93, 59, 37, 23,
+ 68, 29, -26, 150, 24, 38, 14, 60, 146, 151,
+ 17, 100, 134, 147, 39, -123, 66, 205, 88, 139,
+ 140, 149, 109, 145, 135, 69, -42, 40, 41, 70,
+ 20, 261, 262, 71, 93, 42, 43, 44, 45, 72,
+ 73, 74, 148, 75, 266, 18, 76, 77, 78, 79,
+ 80, 101, 190, 81, 82, 181, 217, 147, 136, 33,
+ 173, 174, 84, 175, 26, 34, 109, 119, 35, 69,
+ -42, 193, 120, 70, 32, 209, 210, 71, 211, 170,
+ 213, 104, 171, 72, 73, 74, 148, 75, 177, 174,
+ 76, 77, 78, 79, 80, 236, 174, 81, 82, -42,
+ -42, -42, 174, 250, 237, 116, 84, 118, 238, 174,
+ 218, 156, 23, 187, 129, 157, 188, 24, 247, 58,
+ 55, 188, 259, 260, 1, 174, 28, 239, 22, 31,
+ 29, 2, 3, 131, 22, 132, 29, 22, 133, 4,
+ 30, 253, 254, 255, 256, 246, 23, 46, 54, 245,
+ 56, 24, 46, 69, 200, 201, 202, 70, 61, 62,
+ 63, 71, 64, 46, 67, 94, 95, 72, 73, 74,
+ 258, 75, 96, 98, 76, 77, 78, 79, 80, 240,
+ 112, 81, 82, 69, 97, 125, 83, 70, 114, 44,
+ 84, 71, 117, 126, 120, 270, 127, 72, 73, 74,
+ 128, 75, 130, 141, 76, 77, 78, 79, 80, 143,
+ 152, 81, 82, -2, 15, 153, -14, 154, 162, 155,
+ 84, 1, 160, 163, 165, 166, 176, 179, 2, 3,
+ 172, 182, 186, 191, 192, 184, 4, 194, 196, 197,
+ 136, 206, 207, 212, 208, 215, 223, 214, 216, 219,
+ 221, 224, 226, 229, 230, 241, 242, 222, 243, 248,
+ 244, 265, 227, 249, 228, 232, 233, 205, 251, 252,
+ 174, 269, 16, 264, 144, 263, 195, 199, 268, 225,
+ 158, 231, 142
};
-static const yytype_int16 yycheck[] =
+static const yytype_uint16 yycheck[] =
{
- 52, 17, 75, 60, 107, 202, 1, 204, 5, 52,
- 5, 63, 11, 1, 7, 7, 41, 31, 4, 1,
- 12, 9, 1, 5, 1, 1, 5, 41, 8, 5,
- 7, 1, 84, 10, 14, 5, 24, 0, 90, 36,
- 7, 36, 41, 95, 41, 12, 41, 90, 41, 41,
- 247, 248, 34, 35, 36, 34, 35, 36, 34, 35,
- 36, 6, 36, 260, 34, 35, 36, 41, 3, 0,
- 1, 13, 3, 125, 41, 178, 1, 8, 4, 21,
- 5, 71, 1, 73, 15, 16, 5, 4, 145, 31,
- 80, 8, 23, 166, 167, 12, 169, 10, 171, 8,
- 13, 18, 19, 20, 46, 22, 15, 16, 25, 26,
- 27, 28, 29, 36, 23, 32, 33, 1, 41, 41,
- 37, 5, 225, 40, 41, 8, 9, 1, 180, 4,
- 1, 5, 1, 8, 5, 1, 5, 12, 11, 5,
- 13, 244, 245, 18, 19, 20, 8, 22, 41, 9,
- 25, 26, 27, 28, 29, 17, 4, 32, 33, 232,
- 233, 234, 235, 220, 10, 11, 41, 219, 30, 31,
- 6, 41, 8, 9, 41, 11, 38, 39, 40, 41,
- 1, 1, 1, 24, 5, 5, 5, 41, 240, 7,
- 6, 4, 10, 10, 11, 211, 13, 7, 10, 11,
- 10, 34, 35, 36, 11, 4, 13, 10, 11, 4,
- 8, 41, 6, 265, 41, 24, 41, 6, 6, 41,
- 13, 8, 8, 8, 6, 5, 41, 8, 6, 8,
- 4, 8, 8, 41, 4, 41, 8, 21, 7, 41,
- 41, 41, 8, 7, 41, 41, 13, 8, 11, 41,
- 41, 41, 14, 24, 7, 11, 5, 8, 41, 11,
- 8, 11, 150, 8, 11, 11, 41, 24, 41, 13,
- 13, 7, 6, 41, 160, 104, 41, -1, 194, 21,
- 94, 41, 41, 41, -1, 200, 41, 41, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 46, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 90
+ 54, 17, 77, 109, 63, 111, 206, 11, 208, 37,
+ 1, 41, 66, 1, 5, 4, 54, 31, 1, 36,
+ 48, 9, 5, 8, 41, 8, 0, 41, 7, 14,
+ 3, 1, 86, 12, 17, 5, 24, 41, 92, 8,
+ 9, 100, 1, 97, 7, 4, 5, 30, 31, 8,
+ 41, 251, 252, 12, 92, 38, 39, 40, 41, 18,
+ 19, 20, 41, 22, 264, 6, 25, 26, 27, 28,
+ 29, 41, 7, 32, 33, 129, 182, 12, 41, 1,
+ 10, 11, 41, 13, 41, 7, 1, 36, 10, 4,
+ 5, 150, 41, 8, 4, 170, 171, 12, 173, 10,
+ 175, 5, 13, 18, 19, 20, 41, 22, 10, 11,
+ 25, 26, 27, 28, 29, 10, 11, 32, 33, 34,
+ 35, 36, 11, 229, 13, 73, 41, 75, 10, 11,
+ 184, 1, 36, 7, 82, 5, 10, 41, 7, 24,
+ 41, 10, 248, 249, 8, 11, 19, 13, 13, 22,
+ 9, 15, 16, 6, 19, 8, 9, 22, 11, 23,
+ 5, 236, 237, 238, 239, 224, 36, 32, 4, 223,
+ 41, 41, 37, 4, 34, 35, 36, 8, 6, 4,
+ 4, 12, 4, 48, 5, 8, 41, 18, 19, 20,
+ 244, 22, 6, 41, 25, 26, 27, 28, 29, 215,
+ 41, 32, 33, 4, 24, 8, 37, 8, 6, 40,
+ 41, 12, 6, 8, 41, 269, 8, 18, 19, 20,
+ 6, 22, 41, 5, 25, 26, 27, 28, 29, 8,
+ 5, 32, 33, 0, 1, 5, 3, 13, 6, 8,
+ 41, 8, 5, 8, 4, 41, 8, 8, 15, 16,
+ 41, 4, 41, 41, 41, 21, 23, 41, 8, 7,
+ 41, 13, 7, 41, 11, 14, 24, 41, 41, 41,
+ 41, 8, 7, 11, 5, 8, 5, 41, 8, 11,
+ 24, 8, 41, 11, 41, 41, 41, 41, 13, 11,
+ 11, 7, 6, 13, 96, 41, 154, 164, 41, 198,
+ 107, 204, 92
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -890,32 +882,33 @@ static const yytype_int16 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 8, 15, 16, 23, 43, 44, 45, 47, 48,
- 49, 50, 41, 4, 0, 1, 45, 3, 6, 41,
- 51, 52, 36, 41, 46, 41, 54, 9, 1, 5,
- 51, 4, 1, 7, 10, 53, 8, 17, 30, 31,
- 38, 39, 40, 41, 52, 55, 56, 57, 58, 90,
- 91, 95, 4, 41, 41, 24, 31, 41, 6, 4,
- 4, 4, 1, 24, 1, 5, 55, 4, 8, 12,
- 18, 19, 20, 22, 25, 26, 27, 28, 29, 32,
- 33, 37, 41, 52, 64, 69, 70, 81, 83, 88,
- 89, 95, 8, 41, 6, 24, 41, 66, 41, 92,
- 92, 5, 46, 93, 94, 70, 59, 70, 41, 79,
- 6, 62, 62, 6, 62, 36, 41, 68, 76, 68,
- 78, 8, 8, 8, 6, 62, 41, 6, 8, 11,
- 70, 7, 41, 65, 85, 8, 9, 5, 88, 8,
- 66, 70, 7, 12, 41, 8, 14, 1, 5, 5,
- 13, 8, 1, 5, 93, 1, 5, 59, 6, 8,
- 63, 4, 41, 60, 61, 67, 10, 13, 41, 10,
- 11, 13, 8, 10, 77, 8, 71, 70, 4, 82,
- 21, 75, 41, 7, 10, 74, 7, 41, 41, 92,
- 41, 61, 8, 7, 80, 65, 34, 35, 36, 86,
- 87, 41, 13, 7, 11, 68, 68, 68, 41, 68,
- 41, 14, 41, 59, 70, 41, 84, 41, 41, 24,
- 8, 85, 7, 41, 41, 11, 5, 86, 41, 41,
- 67, 67, 10, 13, 10, 13, 46, 8, 5, 8,
- 24, 70, 92, 7, 11, 11, 59, 13, 11, 68,
- 68, 68, 68, 72, 70, 59, 59, 67, 67, 41,
- 13, 8, 67, 73, 41, 7, 70
+ 49, 50, 41, 4, 0, 1, 45, 3, 6, 1,
+ 41, 51, 52, 36, 41, 46, 41, 54, 51, 9,
+ 5, 51, 4, 1, 7, 10, 53, 1, 8, 17,
+ 30, 31, 38, 39, 40, 41, 52, 55, 56, 57,
+ 58, 90, 91, 95, 4, 41, 41, 55, 24, 31,
+ 41, 6, 4, 4, 4, 1, 24, 5, 55, 4,
+ 8, 12, 18, 19, 20, 22, 25, 26, 27, 28,
+ 29, 32, 33, 37, 41, 52, 64, 69, 70, 81,
+ 83, 88, 89, 95, 8, 41, 6, 24, 41, 66,
+ 1, 41, 92, 92, 5, 46, 93, 94, 70, 1,
+ 59, 70, 41, 79, 6, 62, 62, 6, 62, 36,
+ 41, 68, 76, 68, 78, 8, 8, 8, 6, 62,
+ 41, 6, 8, 11, 70, 7, 41, 65, 85, 8,
+ 9, 5, 88, 8, 66, 70, 7, 12, 41, 92,
+ 8, 14, 5, 5, 13, 8, 1, 5, 93, 59,
+ 5, 59, 6, 8, 63, 4, 41, 60, 61, 67,
+ 10, 13, 41, 10, 11, 13, 8, 10, 77, 8,
+ 71, 70, 4, 82, 21, 75, 41, 7, 10, 74,
+ 7, 41, 41, 92, 41, 61, 8, 7, 80, 65,
+ 34, 35, 36, 86, 87, 41, 13, 7, 11, 68,
+ 68, 68, 41, 68, 41, 14, 41, 59, 70, 41,
+ 84, 41, 41, 24, 8, 85, 7, 41, 41, 11,
+ 5, 86, 41, 41, 67, 67, 10, 13, 10, 13,
+ 46, 8, 5, 8, 24, 70, 92, 7, 11, 11,
+ 59, 13, 11, 68, 68, 68, 68, 72, 70, 59,
+ 59, 67, 67, 41, 13, 8, 67, 73, 41, 7,
+ 70
};
#define yyerrok (yyerrstatus = 0)
@@ -1440,7 +1433,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
case 41: /* "word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1444 "ael.tab.c"
+#line 1437 "ael.tab.c"
break;
case 44: /* "objects" */
#line 164 "ael.y"
@@ -1448,7 +1441,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1452 "ael.tab.c"
+#line 1445 "ael.tab.c"
break;
case 45: /* "object" */
#line 164 "ael.y"
@@ -1456,12 +1449,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1460 "ael.tab.c"
+#line 1453 "ael.tab.c"
break;
case 46: /* "context_name" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1465 "ael.tab.c"
+#line 1458 "ael.tab.c"
break;
case 47: /* "context" */
#line 164 "ael.y"
@@ -1469,7 +1462,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1473 "ael.tab.c"
+#line 1466 "ael.tab.c"
break;
case 49: /* "macro" */
#line 164 "ael.y"
@@ -1477,7 +1470,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1481 "ael.tab.c"
+#line 1474 "ael.tab.c"
break;
case 50: /* "globals" */
#line 164 "ael.y"
@@ -1485,7 +1478,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1489 "ael.tab.c"
+#line 1482 "ael.tab.c"
break;
case 51: /* "global_statements" */
#line 164 "ael.y"
@@ -1493,7 +1486,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1497 "ael.tab.c"
+#line 1490 "ael.tab.c"
break;
case 52: /* "assignment" */
#line 164 "ael.y"
@@ -1501,7 +1494,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1505 "ael.tab.c"
+#line 1498 "ael.tab.c"
break;
case 54: /* "arglist" */
#line 164 "ael.y"
@@ -1509,7 +1502,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1513 "ael.tab.c"
+#line 1506 "ael.tab.c"
break;
case 55: /* "elements" */
#line 164 "ael.y"
@@ -1517,7 +1510,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1521 "ael.tab.c"
+#line 1514 "ael.tab.c"
break;
case 56: /* "element" */
#line 164 "ael.y"
@@ -1525,7 +1518,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1529 "ael.tab.c"
+#line 1522 "ael.tab.c"
break;
case 57: /* "ignorepat" */
#line 164 "ael.y"
@@ -1533,7 +1526,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1537 "ael.tab.c"
+#line 1530 "ael.tab.c"
break;
case 58: /* "extension" */
#line 164 "ael.y"
@@ -1541,7 +1534,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1545 "ael.tab.c"
+#line 1538 "ael.tab.c"
break;
case 59: /* "statements" */
#line 164 "ael.y"
@@ -1549,12 +1542,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1553 "ael.tab.c"
+#line 1546 "ael.tab.c"
break;
case 60: /* "timerange" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1558 "ael.tab.c"
+#line 1551 "ael.tab.c"
break;
case 61: /* "timespec" */
#line 164 "ael.y"
@@ -1562,12 +1555,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1566 "ael.tab.c"
+#line 1559 "ael.tab.c"
break;
case 62: /* "test_expr" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1571 "ael.tab.c"
+#line 1564 "ael.tab.c"
break;
case 64: /* "if_like_head" */
#line 164 "ael.y"
@@ -1575,22 +1568,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1579 "ael.tab.c"
+#line 1572 "ael.tab.c"
break;
case 65: /* "word_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1584 "ael.tab.c"
+#line 1577 "ael.tab.c"
break;
case 67: /* "word3_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1589 "ael.tab.c"
+#line 1582 "ael.tab.c"
break;
case 68: /* "goto_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1594 "ael.tab.c"
+#line 1587 "ael.tab.c"
break;
case 69: /* "switch_statement" */
#line 164 "ael.y"
@@ -1598,7 +1591,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1602 "ael.tab.c"
+#line 1595 "ael.tab.c"
break;
case 70: /* "statement" */
#line 164 "ael.y"
@@ -1606,7 +1599,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1610 "ael.tab.c"
+#line 1603 "ael.tab.c"
break;
case 75: /* "opt_else" */
#line 164 "ael.y"
@@ -1614,7 +1607,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1618 "ael.tab.c"
+#line 1611 "ael.tab.c"
break;
case 76: /* "target" */
#line 164 "ael.y"
@@ -1622,12 +1615,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1626 "ael.tab.c"
+#line 1619 "ael.tab.c"
break;
case 77: /* "opt_pri" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1631 "ael.tab.c"
+#line 1624 "ael.tab.c"
break;
case 78: /* "jumptarget" */
#line 164 "ael.y"
@@ -1635,7 +1628,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1639 "ael.tab.c"
+#line 1632 "ael.tab.c"
break;
case 79: /* "macro_call" */
#line 164 "ael.y"
@@ -1643,7 +1636,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1647 "ael.tab.c"
+#line 1640 "ael.tab.c"
break;
case 81: /* "application_call_head" */
#line 164 "ael.y"
@@ -1651,7 +1644,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1655 "ael.tab.c"
+#line 1648 "ael.tab.c"
break;
case 83: /* "application_call" */
#line 164 "ael.y"
@@ -1659,12 +1652,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1663 "ael.tab.c"
+#line 1656 "ael.tab.c"
break;
case 84: /* "opt_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1668 "ael.tab.c"
+#line 1661 "ael.tab.c"
break;
case 85: /* "eval_arglist" */
#line 164 "ael.y"
@@ -1672,7 +1665,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1676 "ael.tab.c"
+#line 1669 "ael.tab.c"
break;
case 86: /* "case_statements" */
#line 164 "ael.y"
@@ -1680,7 +1673,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1684 "ael.tab.c"
+#line 1677 "ael.tab.c"
break;
case 87: /* "case_statement" */
#line 164 "ael.y"
@@ -1688,7 +1681,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1692 "ael.tab.c"
+#line 1685 "ael.tab.c"
break;
case 88: /* "macro_statements" */
#line 164 "ael.y"
@@ -1696,7 +1689,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1700 "ael.tab.c"
+#line 1693 "ael.tab.c"
break;
case 89: /* "macro_statement" */
#line 164 "ael.y"
@@ -1704,7 +1697,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1708 "ael.tab.c"
+#line 1701 "ael.tab.c"
break;
case 90: /* "switches" */
#line 164 "ael.y"
@@ -1712,7 +1705,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1716 "ael.tab.c"
+#line 1709 "ael.tab.c"
break;
case 91: /* "eswitches" */
#line 164 "ael.y"
@@ -1720,7 +1713,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1724 "ael.tab.c"
+#line 1717 "ael.tab.c"
break;
case 92: /* "switchlist" */
#line 164 "ael.y"
@@ -1728,7 +1721,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1732 "ael.tab.c"
+#line 1725 "ael.tab.c"
break;
case 93: /* "included_entry" */
#line 164 "ael.y"
@@ -1736,7 +1729,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1740 "ael.tab.c"
+#line 1733 "ael.tab.c"
break;
case 94: /* "includeslist" */
#line 164 "ael.y"
@@ -1744,7 +1737,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1748 "ael.tab.c"
+#line 1741 "ael.tab.c"
break;
case 95: /* "includes" */
#line 164 "ael.y"
@@ -1752,7 +1745,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1756 "ael.tab.c"
+#line 1749 "ael.tab.c"
break;
default:
@@ -2178,7 +2171,7 @@ yyreduce:
case 19:
#line 236 "ael.y"
- {(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
+ {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
case 20:
@@ -2226,7 +2219,7 @@ yyreduce:
case 28:
#line 254 "ael.y"
- { (yyval.pval)=(yyvsp[(1) - (2)].pval);;}
+ { (yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
case 29:
@@ -2324,7 +2317,7 @@ yyreduce:
case 44:
#line 298 "ael.y"
- {(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
+ {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
case 45:
@@ -2890,7 +2883,7 @@ yyreduce:
case 126:
#line 601 "ael.y"
- {(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
+ {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
case 127:
@@ -2936,7 +2929,7 @@ yyreduce:
/* Line 1270 of yacc.c. */
-#line 2940 "ael.tab.c"
+#line 2933 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index 9c332dc03..04df00c1a 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -153,7 +153,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 8
+%expect 3
%error-verbose
/*
@@ -233,7 +233,7 @@ globals : KW_GLOBALS LC global_statements RC {
global_statements : { $$ = NULL; }
| assignment global_statements {$$ = linku1($1, $2); }
- | global_statements error {$$=$1;}
+ | error global_statements {$$=$2;}
;
assignment : word EQ { reset_semicount(parseio->scanner); } word SEMI {
@@ -251,7 +251,7 @@ arglist : /* empty */ { $$ = NULL; }
elements : {$$=0;}
| element elements { $$ = linku1($1, $2); }
- | elements error { $$=$1;}
+ | error elements { $$=$2;}
;
element : extension {$$=$1;}
@@ -295,7 +295,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 error {$$=$1;}
+ | error statements {$$=$2;}
;
/* hh:mm-hh:mm, due to the way the parser works we do not
@@ -469,7 +469,7 @@ statement : LC statements RC {
opt_else : KW_ELSE statement { $$ = $2; }
| { $$ = NULL ; }
-
+
target : goto_word { $$ = nword($1, &@1); }
| goto_word BAR goto_word {
$$ = nword($1, &@1);
@@ -598,7 +598,7 @@ switchlist : /* empty */ { $$ = NULL; }
| word SEMI switchlist { $$ = linku1(nword($1, &@1), $3); }
| word AT word SEMI switchlist { char *x; asprintf(&x,"%s@%s", $1,$3); free($1); free($3);
$$ = linku1(nword(x, &@1), $5);}
- | switchlist error {$$=$1;}
+ | error switchlist {$$=$2;}
;
included_entry : context_name { $$ = nword($1, &@1); }