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: https://origsvn.digium.com/svn/asterisk/branches/1.4@80689 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2007-08-24 13:20:18 +00:00
parent 0518339c30
commit 765b1af228
3 changed files with 230 additions and 236 deletions

View File

@@ -2,15 +2,16 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them) (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) (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:3978 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: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.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:755 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.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.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:755 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: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:752 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:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'. 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: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: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:479 func: main 0 contexts, 0 extensions, 0 priorities LOG: lev:4 file:ael2_parse line:523 func: main 0 contexts, 0 extensions, 0 priorities

View File

@@ -490,7 +490,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
#define YYFINAL 14 #define YYFINAL 14
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 350 #define YYLAST 302
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 42 #define YYNTOKENS 42
@@ -499,7 +499,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 133 #define YYNRULES 133
/* YYNRULES -- Number of states. */ /* YYNRULES -- Number of states. */
#define YYNSTATES 267 #define YYNSTATES 271
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2 #define YYUNDEFTOK 2
@@ -572,15 +572,15 @@ static const yytype_int8 yyrhs[] =
-1, 41, -1, 36, -1, 48, 3, 46, 4, 55, -1, 41, -1, 36, -1, 48, 3, 46, 4, 55,
5, -1, 23, -1, -1, 15, 41, 6, 54, 7, 5, -1, 23, -1, -1, 15, 41, 6, 54, 7,
4, 88, 5, -1, 16, 4, 51, 5, -1, -1, 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, 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, 58, -1, 95, -1, 90, -1, 91, -1, 57, -1,
52, -1, 41, 1, -1, 8, -1, 17, 24, 41, 52, -1, 41, 1, -1, 8, -1, 17, 24, 41,
8, -1, 41, 24, 70, -1, 30, 41, 24, 70, 8, -1, 41, 24, 70, -1, 30, 41, 24, 70,
-1, 31, 6, 66, 7, 41, 24, 70, -1, 30, -1, 31, 6, 66, 7, 41, 24, 70, -1, 30,
31, 6, 66, 7, 41, 24, 70, -1, -1, 70, 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, 41, -1, 60, 13, 67, 13, 67, 13, 67,
-1, -1, 6, 63, 65, 7, -1, 19, 62, -1, -1, -1, 6, 63, 65, 7, -1, 19, 62, -1,
22, 62, -1, 20, 6, 61, 7, -1, 41, -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, 88, -1, 70, -1, 95, -1, 37, 41, 4, 59,
5, -1, 38, 4, 92, 5, -1, 39, 4, 92, 5, -1, 38, 4, 92, 5, -1, 39, 4, 92,
5, -1, -1, 41, 8, 92, -1, 41, 14, 41, 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, 61, -1, 93, 8, -1, 94, 93, 8, -1, 94,
1, -1, 40, 4, 94, 5, -1, 40, 4, 5, 1, -1, 40, 4, 94, 5, -1, 40, 4, 5,
-1 -1
@@ -716,173 +716,165 @@ static const yytype_uint8 yyr2[] =
static const yytype_uint8 yydefact[] = static const yytype_uint8 yydefact[] =
{ {
14, 9, 0, 0, 13, 0, 0, 3, 6, 0, 14, 9, 0, 0, 13, 0, 0, 3, 6, 0,
7, 8, 0, 17, 1, 5, 4, 0, 22, 0, 7, 8, 0, 0, 1, 5, 4, 0, 22, 0,
0, 17, 11, 10, 0, 23, 0, 20, 19, 16, 0, 0, 0, 11, 10, 0, 23, 0, 19, 20,
0, 26, 25, 0, 0, 0, 36, 0, 0, 0, 16, 18, 0, 25, 0, 0, 0, 0, 36, 0,
0, 0, 0, 0, 34, 0, 26, 33, 29, 31, 0, 0, 0, 0, 0, 0, 34, 0, 0, 33,
32, 30, 116, 24, 0, 0, 0, 0, 0, 123, 29, 31, 32, 30, 116, 24, 0, 28, 0, 0,
123, 0, 35, 0, 28, 12, 0, 42, 85, 0, 0, 0, 0, 0, 0, 35, 0, 12, 27, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 66, 0, 75, 118, 109, 0, 0, 0, 0, 0, 0, 0, 66, 0, 75, 118, 109,
116, 119, 21, 0, 0, 0, 55, 0, 0, 0, 0, 0, 116, 119, 21, 0, 0, 0, 55, 0,
0, 133, 127, 0, 0, 38, 0, 42, 0, 0, 0, 0, 0, 0, 133, 127, 0, 0, 38, 0,
48, 0, 50, 0, 51, 0, 61, 88, 0, 95, 0, 0, 0, 0, 48, 0, 50, 0, 51, 0,
0, 82, 81, 83, 70, 0, 0, 102, 78, 69, 61, 88, 0, 95, 0, 82, 81, 83, 70, 0,
87, 105, 53, 108, 0, 77, 79, 15, 117, 37, 0, 102, 78, 69, 87, 105, 53, 108, 0, 77,
0, 39, 0, 0, 56, 123, 0, 126, 121, 122, 79, 15, 117, 37, 0, 39, 0, 0, 56, 126,
0, 129, 131, 132, 0, 44, 65, 0, 99, 76, 0, 0, 121, 122, 0, 129, 131, 132, 0, 44,
0, 111, 46, 0, 0, 0, 0, 0, 62, 0, 65, 43, 99, 76, 0, 111, 46, 0, 0, 0,
0, 0, 67, 0, 97, 68, 0, 74, 42, 103, 0, 0, 62, 0, 0, 0, 67, 0, 97, 68,
0, 84, 54, 104, 107, 0, 0, 0, 57, 0, 0, 74, 0, 103, 0, 84, 54, 104, 107, 0,
0, 128, 130, 101, 109, 0, 0, 0, 0, 0, 0, 0, 57, 124, 0, 128, 130, 101, 109, 0,
111, 59, 0, 52, 0, 0, 0, 90, 63, 89, 0, 0, 0, 0, 111, 59, 0, 52, 0, 0,
96, 0, 0, 0, 86, 106, 110, 0, 0, 0, 0, 90, 63, 89, 96, 0, 0, 0, 86, 106,
123, 0, 49, 0, 0, 42, 64, 112, 60, 58, 110, 0, 0, 0, 0, 0, 49, 0, 0, 0,
0, 0, 0, 0, 0, 0, 98, 71, 120, 80, 64, 112, 60, 58, 0, 0, 0, 0, 0, 0,
0, 40, 0, 100, 42, 42, 0, 0, 0, 94, 98, 71, 120, 80, 0, 40, 125, 100, 0, 0,
93, 92, 91, 0, 41, 0, 0, 0, 45, 0, 114, 0, 0, 94, 93, 92, 91, 0, 41, 113,
0, 72, 47, 0, 0, 0, 73 115, 0, 45, 0, 0, 72, 47, 0, 0, 0,
73
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] = static const yytype_int16 yydefgoto[] =
{ {
-1, 5, 6, 7, 102, 8, 9, 10, 11, 20, -1, 5, 6, 7, 105, 8, 9, 10, 11, 21,
83, 35, 26, 45, 46, 47, 48, 106, 163, 164, 85, 36, 27, 47, 48, 49, 50, 110, 167, 168,
111, 160, 84, 133, 97, 165, 117, 85, 107, 176, 115, 164, 86, 137, 99, 169, 121, 87, 111, 180,
253, 263, 185, 181, 118, 174, 120, 109, 194, 87, 257, 267, 189, 185, 122, 178, 124, 113, 198, 89,
179, 88, 216, 134, 199, 200, 89, 90, 49, 50, 183, 90, 220, 138, 203, 204, 91, 92, 51, 52,
99, 103, 104, 51 102, 106, 107, 53
}; };
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
#define YYPACT_NINF -198 #define YYPACT_NINF -201
static const yytype_int16 yypact[] = static const yytype_int16 yypact[] =
{ {
91, -198, -25, 14, -198, 37, 69, -198, -198, 65, 136, -201, -30, 11, -201, 26, 233, -201, -201, 27,
-198, -198, 55, 78, -198, -198, -198, 26, 107, 140, -201, -201, 59, 9, -201, -201, -201, -17, 43, 9,
75, 78, -198, -198, 74, -198, 23, -198, -198, -198, 141, 155, 9, -201, -201, 90, -201, 78, -201, -201,
81, 138, -198, 152, 130, 133, -198, 159, -14, 184, -201, -201, 17, -201, 164, 99, 129, 17, -201, 115,
187, 201, 205, 12, -198, 116, 138, -198, -198, -198, -14, 172, 175, 176, 178, 12, -201, 179, 17, -201,
-198, -198, 83, -198, 202, 146, 206, 191, 170, 173, -201, -201, -201, -201, 169, -201, 177, -201, 145, 186,
173, 3, -198, 125, -198, -198, 126, 125, -198, 175, 180, 152, 30, 30, 96, -201, 199, -201, -201, 41,
211, 211, 212, 211, 77, 178, 213, 214, 215, 218, -201, 159, 202, 202, 206, 202, 51, 173, 197, 205,
211, 185, 164, -198, 125, -198, -198, 7, 117, 220, 208, 214, 202, 181, 147, -201, 199, -201, -201, 37,
83, -198, -198, 219, 170, 125, -198, 8, 20, 129, 31, 218, 169, -201, -201, 221, 152, 199, -201, 21,
131, -198, 207, 221, 5, -198, 134, 125, 222, 223, 30, 15, 225, 230, -201, 224, 231, 130, -201, 85,
-198, 226, -198, 192, -198, 87, 194, 183, 224, 154, 237, 85, 232, 235, -201, 240, -201, 204, -201, 89,
228, -198, -198, -198, -198, 125, 230, -198, -198, -198, 209, 70, 238, 98, 239, -201, -201, -201, -201, 199,
216, -198, 198, -198, 182, -198, -198, -198, -198, -198, 247, -201, -201, -201, 234, -201, 211, -201, 126, -201,
33, -198, 199, 200, -198, 173, 203, -198, -198, -198, -201, -201, -201, -201, 65, -201, 212, 213, -201, -201,
192, -198, -198, -198, 234, -198, -198, 18, 231, -198, 30, 216, -201, -201, 204, -201, -201, -201, 250, -201,
204, 167, 1, 233, 236, 237, 178, 178, -198, 178, -201, -201, 252, -201, 219, 140, -4, 248, 255, 253,
208, 178, -198, 209, 238, -198, 210, -198, 125, -198, 173, 173, -201, 173, 222, 173, -201, 226, 251, -201,
125, -198, -198, -198, 217, 225, 227, 229, -198, 179, 227, -201, 41, -201, 199, -201, -201, -201, 228, 229,
239, -198, -198, -198, 204, 247, 232, 235, 244, 251, 236, 242, -201, -201, 263, -201, -201, -201, 219, 265,
167, 240, 241, -198, 241, 188, 127, 197, -198, 193, 241, 243, 262, 269, 140, 244, 245, -201, 245, 105,
-198, 26, 249, 180, -198, -198, -198, 252, 243, 125, 111, 118, -201, 134, -201, -17, 267, 271, -201, -201,
173, 190, -198, 248, 250, 125, -198, -198, -198, 242, -201, 270, 256, 199, 30, 131, -201, 268, 272, 85,
256, 253, 178, 178, 178, 178, -198, -198, -198, -198, -201, -201, -201, 246, 275, 278, 173, 173, 173, 173,
125, -198, 181, -198, 125, 125, 21, 241, 241, 254, -201, -201, -201, -201, 199, -201, -201, -201, 85, 85,
254, 254, 254, 245, -198, 24, 30, 257, -198, 255, -201, 245, 245, 279, 279, 279, 279, 254, -201, -201,
241, -198, -198, 246, 264, 125, -198 -201, 280, -201, 273, 245, -201, -201, 257, 284, 199,
-201
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] = static const yytype_int16 yypgoto[] =
{ {
-198, -198, -198, 266, -16, -198, -198, -198, -198, 258, -201, -201, -201, 286, -16, -201, -201, -201, -201, 127,
58, -198, -198, 259, -198, -198, -198, -103, -198, 112, 135, -201, -201, -28, -201, -201, -201, -106, -201, 142,
10, -198, -198, 114, 186, -197, -73, -198, -52, -198, 52, -201, -201, 133, 198, -200, -75, -201, -54, -201,
-198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
-198, -198, -198, 84, 85, -198, 260, -198, -198, -198, -201, -201, -201, 101, 97, -201, 210, -201, -201, -201,
-57, 171, -198, -43 -59, 193, -201, -38
}; };
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says. number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */ If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -126 #define YYTABLE_NINF -124
static const yytype_int16 yytable[] = static const yytype_int16 yytable[] =
{ {
86, 24, 119, 100, 157, 230, 152, 231, 101, 91, 88, 25, 123, 159, 103, 161, 234, -58, 235, 57,
153, 105, -58, 62, 131, 142, 12, 56, 13, 155, 19, 12, 108, 65, -17, 13, 93, 59, 37, 23,
143, 27, 155, -43, 32, 155, -114, 57, 145, -113, 68, 29, -26, 150, 24, 38, 14, 60, 146, 151,
33, 155, 130, 34, 146, -115, 63, 14, 86, 22, 17, 100, 134, 147, 39, -123, 66, 205, 88, 139,
186, 22, 201, 141, 23, 143, 23, 91, 132, 144, 140, 149, 109, 145, 135, 69, -42, 40, 41, 70,
257, 258, -43, -43, -43, -114, -114, -114, -113, -113, 20, 261, 262, 71, 93, 42, 43, 44, 45, 72,
-113, 18, 22, 262, -115, -115, -115, 23, 17, -2, 73, 74, 148, 75, 266, 18, 76, 77, 78, 79,
15, 21, -14, 177, 144, 213, 28, 1, 31, 21, 80, 101, 190, 81, 82, 181, 217, 147, 136, 33,
29, 112, 28, 114, 2, 3, -18, 67, 189, 44, 173, 174, 84, 175, 26, 34, 109, 119, 35, 69,
125, 68, 4, 205, 206, 69, 207, 166, 209, 1, -42, 193, 120, 70, 32, 209, 210, 71, 211, 170,
167, 70, 71, 72, 44, 73, 2, 3, 74, 75, 213, 104, 171, 72, 73, 74, 148, 75, 177, 174,
76, 77, 78, 115, 4, 79, 80, 64, 116, 19, 76, 77, 78, 79, 80, 236, 174, 81, 82, -42,
81, 65, 246, 42, 82, 135, 136, 64, 214, 67, -42, -42, 174, 250, 237, 116, 84, 118, 238, 174,
147, -27, 147, 68, 148, 155, 149, 69, 170, 156, 218, 156, 23, 187, 129, 157, 188, 24, 247, 58,
233, 255, 256, 70, 71, 72, 36, 73, 25, 27, 55, 188, 259, 260, 1, 174, 28, 239, 22, 31,
74, 75, 76, 77, 78, 37, 52, 79, 80, 249, 29, 2, 3, 131, 22, 132, 29, 22, 133, 4,
250, 251, 252, 242, 173, 170, 82, 241, 38, 39, 30, 253, 254, 255, 256, 246, 23, 46, 54, 245,
127, 53, 128, 27, 54, 129, 40, 41, 42, 43, 56, 24, 46, 69, 200, 201, 202, 70, 61, 62,
147, 155, 147, 55, -124, 238, -125, 93, 254, 183, 63, 71, 64, 46, 67, 94, 95, 72, 73, 74,
58, 59, 184, 169, 170, 236, 171, 243, 232, 170, 258, 75, 96, 98, 76, 77, 78, 79, 80, 240,
184, 196, 197, 198, 170, 60, 235, 234, 170, 61, 112, 81, 82, 69, 97, 125, 83, 70, 114, 44,
92, 96, 94, 266, 98, 95, 108, 110, 113, 116, 84, 71, 117, 126, 120, 270, 127, 72, 73, 74,
150, 121, 122, 123, 124, 137, 126, 139, 158, 151, 128, 75, 130, 141, 76, 77, 78, 79, 80, 143,
161, 159, 172, 162, 178, 168, 175, 180, 193, 182, 152, 81, 82, -2, 15, 153, -14, 154, 162, 155,
187, 188, 192, 203, 190, 132, 202, 220, 204, 208, 84, 1, 160, 163, 165, 166, 176, 179, 2, 3,
210, 212, 211, 219, 222, 225, 226, 237, 215, 244, 172, 182, 186, 191, 192, 184, 4, 194, 196, 197,
239, 245, 191, 261, 248, 170, 217, 240, 218, 247, 136, 206, 207, 212, 208, 215, 223, 214, 216, 219,
260, 265, 16, 223, 195, 154, 224, 0, 221, 30, 221, 224, 226, 229, 230, 241, 242, 222, 243, 248,
140, 228, 229, 201, 0, 227, 259, 264, 0, 0, 244, 265, 227, 249, 228, 232, 233, 205, 251, 252,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 269, 16, 264, 144, 263, 195, 199, 268, 225,
0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 158, 231, 142
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
}; };
static const yytype_int16 yycheck[] = static const yytype_uint16 yycheck[] =
{ {
52, 17, 75, 60, 107, 202, 1, 204, 5, 52, 54, 17, 77, 109, 63, 111, 206, 11, 208, 37,
5, 63, 11, 1, 7, 7, 41, 31, 4, 1, 1, 41, 66, 1, 5, 4, 54, 31, 1, 36,
12, 9, 1, 5, 1, 1, 5, 41, 8, 5, 48, 9, 5, 8, 41, 8, 0, 41, 7, 14,
7, 1, 84, 10, 14, 5, 24, 0, 90, 36, 3, 1, 86, 12, 17, 5, 24, 41, 92, 8,
7, 36, 41, 95, 41, 12, 41, 90, 41, 41, 9, 100, 1, 97, 7, 4, 5, 30, 31, 8,
247, 248, 34, 35, 36, 34, 35, 36, 34, 35, 41, 251, 252, 12, 92, 38, 39, 40, 41, 18,
36, 6, 36, 260, 34, 35, 36, 41, 3, 0, 19, 20, 41, 22, 264, 6, 25, 26, 27, 28,
1, 13, 3, 125, 41, 178, 1, 8, 4, 21, 29, 41, 7, 32, 33, 129, 182, 12, 41, 1,
5, 71, 1, 73, 15, 16, 5, 4, 145, 31, 10, 11, 41, 13, 41, 7, 1, 36, 10, 4,
80, 8, 23, 166, 167, 12, 169, 10, 171, 8, 5, 150, 41, 8, 4, 170, 171, 12, 173, 10,
13, 18, 19, 20, 46, 22, 15, 16, 25, 26, 175, 5, 13, 18, 19, 20, 41, 22, 10, 11,
27, 28, 29, 36, 23, 32, 33, 1, 41, 41, 25, 26, 27, 28, 29, 10, 11, 32, 33, 34,
37, 5, 225, 40, 41, 8, 9, 1, 180, 4, 35, 36, 11, 229, 13, 73, 41, 75, 10, 11,
1, 5, 1, 8, 5, 1, 5, 12, 11, 5, 184, 1, 36, 7, 82, 5, 10, 41, 7, 24,
13, 244, 245, 18, 19, 20, 8, 22, 41, 9, 41, 10, 248, 249, 8, 11, 19, 13, 13, 22,
25, 26, 27, 28, 29, 17, 4, 32, 33, 232, 9, 15, 16, 6, 19, 8, 9, 22, 11, 23,
233, 234, 235, 220, 10, 11, 41, 219, 30, 31, 5, 236, 237, 238, 239, 224, 36, 32, 4, 223,
6, 41, 8, 9, 41, 11, 38, 39, 40, 41, 41, 41, 37, 4, 34, 35, 36, 8, 6, 4,
1, 1, 1, 24, 5, 5, 5, 41, 240, 7, 4, 12, 4, 48, 5, 8, 41, 18, 19, 20,
6, 4, 10, 10, 11, 211, 13, 7, 10, 11, 244, 22, 6, 41, 25, 26, 27, 28, 29, 215,
10, 34, 35, 36, 11, 4, 13, 10, 11, 4, 41, 32, 33, 4, 24, 8, 37, 8, 6, 40,
8, 41, 6, 265, 41, 24, 41, 6, 6, 41, 41, 12, 6, 8, 41, 269, 8, 18, 19, 20,
13, 8, 8, 8, 6, 5, 41, 8, 6, 8, 6, 22, 41, 5, 25, 26, 27, 28, 29, 8,
4, 8, 8, 41, 4, 41, 8, 21, 7, 41, 5, 32, 33, 0, 1, 5, 3, 13, 6, 8,
41, 41, 8, 7, 41, 41, 13, 8, 11, 41, 41, 8, 5, 8, 4, 41, 8, 8, 15, 16,
41, 41, 14, 24, 7, 11, 5, 8, 41, 11, 41, 4, 41, 41, 41, 21, 23, 41, 8, 7,
8, 11, 150, 8, 11, 11, 41, 24, 41, 13, 41, 13, 7, 41, 11, 14, 24, 41, 41, 41,
13, 7, 6, 41, 160, 104, 41, -1, 194, 21, 41, 8, 7, 11, 5, 8, 5, 41, 8, 11,
94, 41, 41, 41, -1, 200, 41, 41, -1, -1, 24, 8, 41, 11, 41, 41, 41, 41, 13, 11,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, 7, 6, 13, 96, 41, 154, 164, 41, 198,
-1, -1, -1, -1, -1, 46, -1, -1, -1, -1, 107, 204, 92
-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
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -890,32 +882,33 @@ static const yytype_int16 yycheck[] =
static const yytype_uint8 yystos[] = static const yytype_uint8 yystos[] =
{ {
0, 8, 15, 16, 23, 43, 44, 45, 47, 48, 0, 8, 15, 16, 23, 43, 44, 45, 47, 48,
49, 50, 41, 4, 0, 1, 45, 3, 6, 41, 49, 50, 41, 4, 0, 1, 45, 3, 6, 1,
51, 52, 36, 41, 46, 41, 54, 9, 1, 5, 41, 51, 52, 36, 41, 46, 41, 54, 51, 9,
51, 4, 1, 7, 10, 53, 8, 17, 30, 31, 5, 51, 4, 1, 7, 10, 53, 1, 8, 17,
38, 39, 40, 41, 52, 55, 56, 57, 58, 90, 30, 31, 38, 39, 40, 41, 52, 55, 56, 57,
91, 95, 4, 41, 41, 24, 31, 41, 6, 4, 58, 90, 91, 95, 4, 41, 41, 55, 24, 31,
4, 4, 1, 24, 1, 5, 55, 4, 8, 12, 41, 6, 4, 4, 4, 1, 24, 5, 55, 4,
18, 19, 20, 22, 25, 26, 27, 28, 29, 32, 8, 12, 18, 19, 20, 22, 25, 26, 27, 28,
33, 37, 41, 52, 64, 69, 70, 81, 83, 88, 29, 32, 33, 37, 41, 52, 64, 69, 70, 81,
89, 95, 8, 41, 6, 24, 41, 66, 41, 92, 83, 88, 89, 95, 8, 41, 6, 24, 41, 66,
92, 5, 46, 93, 94, 70, 59, 70, 41, 79, 1, 41, 92, 92, 5, 46, 93, 94, 70, 1,
6, 62, 62, 6, 62, 36, 41, 68, 76, 68, 59, 70, 41, 79, 6, 62, 62, 6, 62, 36,
78, 8, 8, 8, 6, 62, 41, 6, 8, 11, 41, 68, 76, 68, 78, 8, 8, 8, 6, 62,
70, 7, 41, 65, 85, 8, 9, 5, 88, 8, 41, 6, 8, 11, 70, 7, 41, 65, 85, 8,
66, 70, 7, 12, 41, 8, 14, 1, 5, 5, 9, 5, 88, 8, 66, 70, 7, 12, 41, 92,
13, 8, 1, 5, 93, 1, 5, 59, 6, 8, 8, 14, 5, 5, 13, 8, 1, 5, 93, 59,
63, 4, 41, 60, 61, 67, 10, 13, 41, 10, 5, 59, 6, 8, 63, 4, 41, 60, 61, 67,
11, 13, 8, 10, 77, 8, 71, 70, 4, 82, 10, 13, 41, 10, 11, 13, 8, 10, 77, 8,
21, 75, 41, 7, 10, 74, 7, 41, 41, 92, 71, 70, 4, 82, 21, 75, 41, 7, 10, 74,
41, 61, 8, 7, 80, 65, 34, 35, 36, 86, 7, 41, 41, 92, 41, 61, 8, 7, 80, 65,
87, 41, 13, 7, 11, 68, 68, 68, 41, 68, 34, 35, 36, 86, 87, 41, 13, 7, 11, 68,
41, 14, 41, 59, 70, 41, 84, 41, 41, 24, 68, 68, 41, 68, 41, 14, 41, 59, 70, 41,
8, 85, 7, 41, 41, 11, 5, 86, 41, 41, 84, 41, 41, 24, 8, 85, 7, 41, 41, 11,
67, 67, 10, 13, 10, 13, 46, 8, 5, 8, 5, 86, 41, 41, 67, 67, 10, 13, 10, 13,
24, 70, 92, 7, 11, 11, 59, 13, 11, 68, 46, 8, 5, 8, 24, 70, 92, 7, 11, 11,
68, 68, 68, 72, 70, 59, 59, 67, 67, 41, 59, 13, 11, 68, 68, 68, 68, 72, 70, 59,
13, 8, 67, 73, 41, 7, 70 59, 67, 67, 41, 13, 8, 67, 73, 41, 7,
70
}; };
#define yyerrok (yyerrstatus = 0) #define yyerrok (yyerrstatus = 0)
@@ -1440,7 +1433,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
case 41: /* "word" */ case 41: /* "word" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1444 "ael.tab.c" #line 1437 "ael.tab.c"
break; break;
case 44: /* "objects" */ case 44: /* "objects" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1448,7 +1441,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1452 "ael.tab.c" #line 1445 "ael.tab.c"
break; break;
case 45: /* "object" */ case 45: /* "object" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1456,12 +1449,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1460 "ael.tab.c" #line 1453 "ael.tab.c"
break; break;
case 46: /* "context_name" */ case 46: /* "context_name" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1465 "ael.tab.c" #line 1458 "ael.tab.c"
break; break;
case 47: /* "context" */ case 47: /* "context" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1469,7 +1462,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1473 "ael.tab.c" #line 1466 "ael.tab.c"
break; break;
case 49: /* "macro" */ case 49: /* "macro" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1477,7 +1470,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1481 "ael.tab.c" #line 1474 "ael.tab.c"
break; break;
case 50: /* "globals" */ case 50: /* "globals" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1485,7 +1478,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1489 "ael.tab.c" #line 1482 "ael.tab.c"
break; break;
case 51: /* "global_statements" */ case 51: /* "global_statements" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1493,7 +1486,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1497 "ael.tab.c" #line 1490 "ael.tab.c"
break; break;
case 52: /* "assignment" */ case 52: /* "assignment" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1501,7 +1494,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1505 "ael.tab.c" #line 1498 "ael.tab.c"
break; break;
case 54: /* "arglist" */ case 54: /* "arglist" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1509,7 +1502,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1513 "ael.tab.c" #line 1506 "ael.tab.c"
break; break;
case 55: /* "elements" */ case 55: /* "elements" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1517,7 +1510,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1521 "ael.tab.c" #line 1514 "ael.tab.c"
break; break;
case 56: /* "element" */ case 56: /* "element" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1525,7 +1518,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1529 "ael.tab.c" #line 1522 "ael.tab.c"
break; break;
case 57: /* "ignorepat" */ case 57: /* "ignorepat" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1533,7 +1526,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1537 "ael.tab.c" #line 1530 "ael.tab.c"
break; break;
case 58: /* "extension" */ case 58: /* "extension" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1541,7 +1534,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1545 "ael.tab.c" #line 1538 "ael.tab.c"
break; break;
case 59: /* "statements" */ case 59: /* "statements" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1549,12 +1542,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1553 "ael.tab.c" #line 1546 "ael.tab.c"
break; break;
case 60: /* "timerange" */ case 60: /* "timerange" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1558 "ael.tab.c" #line 1551 "ael.tab.c"
break; break;
case 61: /* "timespec" */ case 61: /* "timespec" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1562,12 +1555,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1566 "ael.tab.c" #line 1559 "ael.tab.c"
break; break;
case 62: /* "test_expr" */ case 62: /* "test_expr" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1571 "ael.tab.c" #line 1564 "ael.tab.c"
break; break;
case 64: /* "if_like_head" */ case 64: /* "if_like_head" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1575,22 +1568,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1579 "ael.tab.c" #line 1572 "ael.tab.c"
break; break;
case 65: /* "word_list" */ case 65: /* "word_list" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1584 "ael.tab.c" #line 1577 "ael.tab.c"
break; break;
case 67: /* "word3_list" */ case 67: /* "word3_list" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1589 "ael.tab.c" #line 1582 "ael.tab.c"
break; break;
case 68: /* "goto_word" */ case 68: /* "goto_word" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1594 "ael.tab.c" #line 1587 "ael.tab.c"
break; break;
case 69: /* "switch_statement" */ case 69: /* "switch_statement" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1598,7 +1591,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1602 "ael.tab.c" #line 1595 "ael.tab.c"
break; break;
case 70: /* "statement" */ case 70: /* "statement" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1606,7 +1599,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1610 "ael.tab.c" #line 1603 "ael.tab.c"
break; break;
case 75: /* "opt_else" */ case 75: /* "opt_else" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1614,7 +1607,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1618 "ael.tab.c" #line 1611 "ael.tab.c"
break; break;
case 76: /* "target" */ case 76: /* "target" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1622,12 +1615,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1626 "ael.tab.c" #line 1619 "ael.tab.c"
break; break;
case 77: /* "opt_pri" */ case 77: /* "opt_pri" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1631 "ael.tab.c" #line 1624 "ael.tab.c"
break; break;
case 78: /* "jumptarget" */ case 78: /* "jumptarget" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1635,7 +1628,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1639 "ael.tab.c" #line 1632 "ael.tab.c"
break; break;
case 79: /* "macro_call" */ case 79: /* "macro_call" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1643,7 +1636,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1647 "ael.tab.c" #line 1640 "ael.tab.c"
break; break;
case 81: /* "application_call_head" */ case 81: /* "application_call_head" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1651,7 +1644,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1655 "ael.tab.c" #line 1648 "ael.tab.c"
break; break;
case 83: /* "application_call" */ case 83: /* "application_call" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1659,12 +1652,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1663 "ael.tab.c" #line 1656 "ael.tab.c"
break; break;
case 84: /* "opt_word" */ case 84: /* "opt_word" */
#line 177 "ael.y" #line 177 "ael.y"
{ free((yyvaluep->str));}; { free((yyvaluep->str));};
#line 1668 "ael.tab.c" #line 1661 "ael.tab.c"
break; break;
case 85: /* "eval_arglist" */ case 85: /* "eval_arglist" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1672,7 +1665,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1676 "ael.tab.c" #line 1669 "ael.tab.c"
break; break;
case 86: /* "case_statements" */ case 86: /* "case_statements" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1680,7 +1673,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1684 "ael.tab.c" #line 1677 "ael.tab.c"
break; break;
case 87: /* "case_statement" */ case 87: /* "case_statement" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1688,7 +1681,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1692 "ael.tab.c" #line 1685 "ael.tab.c"
break; break;
case 88: /* "macro_statements" */ case 88: /* "macro_statements" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1696,7 +1689,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1700 "ael.tab.c" #line 1693 "ael.tab.c"
break; break;
case 89: /* "macro_statement" */ case 89: /* "macro_statement" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1704,7 +1697,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1708 "ael.tab.c" #line 1701 "ael.tab.c"
break; break;
case 90: /* "switches" */ case 90: /* "switches" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1712,7 +1705,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1716 "ael.tab.c" #line 1709 "ael.tab.c"
break; break;
case 91: /* "eswitches" */ case 91: /* "eswitches" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1720,7 +1713,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1724 "ael.tab.c" #line 1717 "ael.tab.c"
break; break;
case 92: /* "switchlist" */ case 92: /* "switchlist" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1728,7 +1721,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1732 "ael.tab.c" #line 1725 "ael.tab.c"
break; break;
case 93: /* "included_entry" */ case 93: /* "included_entry" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1736,7 +1729,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1740 "ael.tab.c" #line 1733 "ael.tab.c"
break; break;
case 94: /* "includeslist" */ case 94: /* "includeslist" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1744,7 +1737,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1748 "ael.tab.c" #line 1741 "ael.tab.c"
break; break;
case 95: /* "includes" */ case 95: /* "includes" */
#line 164 "ael.y" #line 164 "ael.y"
@@ -1752,7 +1745,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval)); destroy_pval((yyvaluep->pval));
prev_word=0; prev_word=0;
}; };
#line 1756 "ael.tab.c" #line 1749 "ael.tab.c"
break; break;
default: default:
@@ -2178,7 +2171,7 @@ yyreduce:
case 19: case 19:
#line 236 "ael.y" #line 236 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;} {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break; break;
case 20: case 20:
@@ -2226,7 +2219,7 @@ yyreduce:
case 28: case 28:
#line 254 "ael.y" #line 254 "ael.y"
{ (yyval.pval)=(yyvsp[(1) - (2)].pval);;} { (yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break; break;
case 29: case 29:
@@ -2324,7 +2317,7 @@ yyreduce:
case 44: case 44:
#line 298 "ael.y" #line 298 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;} {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break; break;
case 45: case 45:
@@ -2890,7 +2883,7 @@ yyreduce:
case 126: case 126:
#line 601 "ael.y" #line 601 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;} {(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break; break;
case 127: case 127:
@@ -2936,7 +2929,7 @@ yyreduce:
/* Line 1270 of yacc.c. */ /* Line 1270 of yacc.c. */
#line 2940 "ael.tab.c" #line 2933 "ael.tab.c"
default: break; default: break;
} }
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

View File

@@ -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 /* 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. */ the default action to shift will attach the else to the preceeding if. */
%expect 8 %expect 3
%error-verbose %error-verbose
/* /*
@@ -233,7 +233,7 @@ globals : KW_GLOBALS LC global_statements RC {
global_statements : { $$ = NULL; } global_statements : { $$ = NULL; }
| assignment global_statements {$$ = linku1($1, $2); } | assignment global_statements {$$ = linku1($1, $2); }
| global_statements error {$$=$1;} | error global_statements {$$=$2;}
; ;
assignment : word EQ { reset_semicount(parseio->scanner); } word SEMI { assignment : word EQ { reset_semicount(parseio->scanner); } word SEMI {
@@ -251,7 +251,7 @@ arglist : /* empty */ { $$ = NULL; }
elements : {$$=0;} elements : {$$=0;}
| element elements { $$ = linku1($1, $2); } | element elements { $$ = linku1($1, $2); }
| elements error { $$=$1;} | error elements { $$=$2;}
; ;
element : extension {$$=$1;} 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 */ /* list of statements in a block or after a case label - can be empty */
statements : /* empty */ { $$ = NULL; } statements : /* empty */ { $$ = NULL; }
| statement statements { $$ = linku1($1, $2); } | 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 /* 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; } opt_else : KW_ELSE statement { $$ = $2; }
| { $$ = NULL ; } | { $$ = NULL ; }
target : goto_word { $$ = nword($1, &@1); } target : goto_word { $$ = nword($1, &@1); }
| goto_word BAR goto_word { | goto_word BAR goto_word {
$$ = nword($1, &@1); $$ = nword($1, &@1);
@@ -598,7 +598,7 @@ switchlist : /* empty */ { $$ = NULL; }
| word SEMI switchlist { $$ = linku1(nword($1, &@1), $3); } | 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); | word AT word SEMI switchlist { char *x; asprintf(&x,"%s@%s", $1,$3); free($1); free($3);
$$ = linku1(nword(x, &@1), $5);} $$ = linku1(nword(x, &@1), $5);}
| switchlist error {$$=$1;} | error switchlist {$$=$2;}
; ;
included_entry : context_name { $$ = nword($1, &@1); } included_entry : context_name { $$ = nword($1, &@1); }