dect
/
asterisk
Archived
13
0
Fork 0

Merged revisions 62883 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r62883 | murf | 2007-05-03 07:54:56 -0600 (Thu, 03 May 2007) | 1 line

These mods fix bug 9623, where an '@' in the eswitch contents causes a syntax error. I also updated the regressions.
........


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@62911 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
murf 2007-05-03 14:24:00 +00:00
parent 683c18b444
commit 781cfa32bc
5 changed files with 270 additions and 261 deletions

View File

@ -0,0 +1,8 @@
context interesting {
eswitches {
Realtime/default@extensions;
IAX2/context@${CURSERVER};
}
13 => NoOp(LuckyNumber!);
}

View File

@ -0,0 +1,12 @@
(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:3915 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:pbx_ael.c line:3922 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:pbx_ael.c line:3930 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:2 file:pbx_ael.c line:3933 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:pbx_ael.c line:3935 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:pbx_ael.c line:3938 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:pbx_ael.c line:3941 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:512 func: main 1 contexts, 1 extensions, 1 priorities

View File

@ -1,9 +1,7 @@
/* A Bison parser, made by GNU Bison 2.3. */
/* A Bison parser, made by GNU Bison 2.1a. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -20,18 +18,10 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* C LALR(1) parser skeleton written by Richard Stallman, by
simplifying the original so-called "semantic" parser. */
@ -47,7 +37,7 @@
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "2.3"
#define YYBISON_VERSION "2.1a"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@ -239,8 +229,8 @@ typedef union YYSTYPE
char *str; /* strings */
struct pval *pval; /* full objects */
}
/* Line 193 of yacc.c. */
#line 244 "ael.tab.c"
/* Line 198 of yacc.c. */
#line 234 "ael.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@ -284,8 +274,8 @@ static pval *nword(char *string, YYLTYPE *pos);
static pval *update_last(pval *, YYLTYPE *);
/* Line 216 of yacc.c. */
#line 289 "ael.tab.c"
/* Line 221 of yacc.c. */
#line 279 "ael.tab.c"
#ifdef short
# undef short
@ -415,13 +405,8 @@ YYID (i)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined _STDLIB_H \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# ifdef __cplusplus
extern "C" {
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
@ -437,6 +422,9 @@ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifdef __cplusplus
}
# endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
@ -502,16 +490,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 14
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 298
#define YYLAST 303
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 42
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 54
/* YYNRULES -- Number of rules. */
#define YYNRULES 131
#define YYNRULES 132
/* YYNRULES -- Number of states. */
#define YYNSTATES 262
#define YYNSTATES 266
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@ -572,8 +560,8 @@ static const yytype_uint16 yyprhs[] =
287, 291, 297, 303, 309, 315, 316, 319, 322, 327,
328, 334, 338, 339, 343, 347, 350, 352, 353, 355,
356, 360, 361, 364, 369, 373, 378, 379, 382, 384,
390, 395, 400, 401, 405, 408, 410, 414, 417, 421,
424, 429
390, 395, 400, 401, 405, 411, 414, 416, 420, 423,
427, 430, 435
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@ -619,10 +607,10 @@ static const yytype_int8 yyrhs[] =
11, 59, -1, 35, 41, 11, 59, -1, -1, 89,
88, -1, 70, -1, 37, 41, 4, 59, 5, -1,
38, 4, 92, 5, -1, 39, 4, 92, 5, -1,
-1, 41, 8, 92, -1, 92, 1, -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
-1, 41, 8, 92, -1, 41, 14, 41, 8, 92,
-1, 92, 1, -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
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@ -640,8 +628,8 @@ static const yytype_uint16 yyrline[] =
477, 480, 484, 488, 492, 498, 499, 503, 506, 512,
512, 517, 525, 525, 536, 543, 546, 547, 550, 551,
554, 557, 558, 561, 565, 569, 575, 576, 579, 580,
586, 591, 596, 597, 598, 601, 602, 609, 610, 611,
614, 617
586, 591, 596, 597, 598, 600, 603, 604, 611, 612,
613, 616, 619
};
#endif
@ -698,8 +686,8 @@ static const yytype_uint8 yyr1[] =
76, 76, 76, 76, 76, 77, 77, 78, 78, 80,
79, 79, 82, 81, 83, 83, 84, 84, 85, 85,
85, 86, 86, 87, 87, 87, 88, 88, 89, 89,
90, 91, 92, 92, 92, 93, 93, 94, 94, 94,
95, 95
90, 91, 92, 92, 92, 92, 93, 93, 94, 94,
94, 95, 95
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@ -717,8 +705,8 @@ static const yytype_uint8 yyr2[] =
3, 5, 5, 5, 5, 0, 2, 2, 4, 0,
5, 3, 0, 3, 3, 2, 1, 0, 1, 0,
3, 0, 2, 4, 3, 4, 0, 2, 1, 5,
4, 4, 0, 3, 2, 1, 3, 2, 3, 2,
4, 3
4, 4, 0, 3, 5, 2, 1, 3, 2, 3,
2, 4, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@ -736,152 +724,154 @@ static const yytype_uint8 yydefact[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 66, 0, 75, 118, 109, 0, 0,
116, 21, 0, 0, 0, 55, 0, 0, 0, 0,
131, 125, 0, 0, 38, 0, 42, 0, 0, 48,
132, 126, 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, 122, 124, 120, 121, 0, 127,
129, 130, 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, 126, 128,
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, 49, 0,
0, 42, 64, 112, 60, 58, 0, 0, 0, 0,
0, 0, 98, 71, 119, 80, 0, 40, 100, 42,
42, 0, 0, 0, 94, 93, 92, 91, 0, 41,
0, 0, 0, 45, 0, 0, 72, 47, 0, 0,
0, 73
39, 0, 0, 56, 122, 0, 125, 120, 121, 0,
128, 130, 131, 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,
127, 129, 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, 122,
0, 49, 0, 0, 42, 64, 112, 60, 58, 0,
0, 0, 0, 0, 0, 98, 71, 119, 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
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 5, 6, 7, 101, 8, 9, 10, 11, 20,
83, 35, 26, 45, 46, 47, 48, 105, 161, 162,
110, 158, 84, 132, 96, 163, 116, 85, 106, 174,
248, 258, 183, 179, 117, 172, 119, 108, 191, 87,
177, 88, 213, 133, 196, 197, 89, 90, 49, 50,
83, 35, 26, 45, 46, 47, 48, 105, 162, 163,
110, 159, 84, 132, 96, 164, 116, 85, 106, 175,
252, 262, 184, 180, 117, 173, 119, 108, 193, 87,
178, 88, 215, 133, 198, 199, 89, 90, 49, 50,
98, 102, 103, 51
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -195
#define YYPACT_NINF -197
static const yytype_int16 yypact[] =
{
136, -195, -27, 22, -195, 67, 127, -195, -195, 79,
-195, -195, 89, 76, -195, -195, -195, -21, 88, 125,
12, 76, -195, -195, 156, -195, 11, -195, -195, -195,
35, 108, -195, 193, 99, 129, -195, 147, -22, 176,
194, 195, 196, 7, -195, 110, 108, -195, -195, -195,
-195, -195, 25, -195, 197, 163, 200, 179, 169, 170,
170, 19, -195, 81, -195, -195, 140, 81, -195, 172,
201, 201, 203, 201, -13, 174, 204, 206, 208, 211,
201, 180, 72, -195, 81, -195, -195, 18, 115, 213,
25, -195, 212, 169, 81, -195, 15, 214, 160, 161,
-195, 188, 215, 5, -195, 162, 81, 218, 217, -195,
198, -195, 186, -195, 166, 187, 164, 221, 143, 222,
-195, -195, -195, -195, 81, 227, -195, -195, -195, 205,
-195, 191, -195, 171, -195, -195, -195, -195, -195, 64,
-195, 192, 199, -195, 170, -195, -195, -195, 186, -195,
-195, -195, 226, -195, -195, 29, 228, -195, 202, 151,
63, 223, 230, 231, 174, 174, -195, 174, 207, 174,
-195, 209, 224, -195, 210, -195, 81, -195, 81, -195,
-195, -195, 216, 219, 220, 225, -195, 167, -195, -195,
-195, 202, 232, 229, 233, 234, 236, 151, 235, 237,
-195, 237, 183, 177, 185, -195, 178, -195, -21, 238,
168, -195, -195, -195, 239, 240, 81, 173, -195, 241,
242, 81, -195, -195, -195, 243, 245, 244, 174, 174,
174, 174, -195, -195, -195, -195, 81, -195, -195, 81,
81, 34, 237, 237, 248, 248, 248, 248, 246, -195,
85, 97, 249, -195, 255, 237, -195, -195, 247, 258,
81, -195
54, -197, -17, 29, -197, 78, 129, -197, -197, 88,
-197, -197, 99, 65, -197, -197, -197, -21, 90, 147,
11, 65, -197, -197, 151, -197, 27, -197, -197, -197,
79, 95, -197, 171, 142, 144, -197, 168, -14, 196,
199, 200, 201, 12, -197, 84, 95, -197, -197, -197,
-197, -197, 82, -197, 198, 166, 202, 185, 169, 170,
170, 3, -197, 145, -197, -197, 112, 145, -197, 172,
208, 208, 209, 208, 30, 176, 210, 211, 212, 215,
208, 181, 173, -197, 145, -197, -197, 2, 59, 218,
82, -197, 216, 169, 145, -197, 23, 68, 115, 123,
-197, 203, 217, 5, -197, 138, 145, 220, 219, -197,
224, -197, 189, -197, 86, 191, 178, 221, 158, 223,
-197, -197, -197, -197, 145, 229, -197, -197, -197, 213,
-197, 194, -197, 111, -197, -197, -197, -197, -197, 33,
-197, 195, 197, -197, 170, 204, -197, -197, -197, 189,
-197, -197, -197, 231, -197, -197, 13, 230, -197, 205,
161, 20, 227, 234, 232, 176, 176, -197, 176, 206,
176, -197, 207, 228, -197, 214, -197, 145, -197, 145,
-197, -197, -197, 222, 225, 226, 233, -197, 146, 236,
-197, -197, -197, 205, 242, 235, 237, 239, 246, 161,
238, 240, -197, 240, 188, 127, 190, -197, 135, -197,
-21, 244, 149, -197, -197, -197, 245, 241, 145, 170,
183, -197, 243, 247, 145, -197, -197, -197, 248, 249,
250, 176, 176, 176, 176, -197, -197, -197, -197, 145,
-197, 175, -197, 145, 145, 18, 240, 240, 253, 253,
253, 253, 251, -197, 21, 24, 255, -197, 252, 240,
-197, -197, 254, 262, 145, -197
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-195, -195, -195, 250, -16, -195, -195, -195, -195, 251,
66, -195, -195, 252, -195, -195, -195, -103, -195, 71,
4, -195, -195, 86, 175, -194, -73, -195, -52, -195,
-195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
-195, -195, -195, 75, 57, -195, 181, -195, -195, -195,
-56, 182, -195, -195
-197, -197, -197, 264, -16, -197, -197, -197, -197, 256,
52, -197, -197, 257, -197, -197, -197, -102, -197, 107,
8, -197, -197, 100, 179, -196, -73, -197, -52, -197,
-197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
-197, -197, -197, 80, 72, -197, 184, -197, -197, -197,
-57, 177, -197, -197
};
/* 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 -124
#define YYTABLE_NINF -125
static const yytype_int16 yytable[] =
{
86, 24, 118, 155, 99, 226, 150, 227, 62, 56,
151, 104, 32, 28, 12, 22, 27, 29, 33, 57,
23, 34, 141, 114, 100, 130, 13, 142, 115, 67,
153, 63, 129, 68, -43, 153, 28, 69, 86, -114,
-18, 22, 140, 70, 71, 72, 23, 73, 252, 253,
74, 75, 76, 77, 78, 22, 143, 79, 80, 131,
23, 257, 81, -43, -43, -43, 82, 14, -114, -114,
-114, 184, 175, 210, -58, 111, 142, 113, 126, 21,
127, 27, 17, 128, 124, 67, 153, 21, 187, 68,
-113, 202, 203, 69, 204, 18, 206, 44, 153, 70,
71, 72, -115, 73, 198, 143, 74, 75, 76, 77,
78, 64, 44, 79, 80, 65, 36, 19, 241, -113,
-113, -113, 82, 134, 135, 37, 211, -2, 15, 25,
-14, -115, -115, -115, 27, 1, 250, 251, 38, 39,
53, 64, 2, 3, 1, -27, 40, 41, 42, 43,
4, 2, 3, 171, 168, 244, 245, 246, 247, 4,
31, 145, 145, 153, 237, 146, 147, 154, 145, 153,
54, 55, -123, 234, 167, 168, 164, 169, 181, 165,
238, 182, 58, 182, 249, 193, 194, 195, 168, 168,
229, 231, 232, 228, 168, 230, 168, 52, 59, 60,
61, 148, 159, 94, 92, 91, 93, 109, 261, 112,
95, 97, 120, 107, 121, 115, 122, 123, 136, 188,
138, 125, 144, 149, 156, 157, 178, 160, 166, 170,
173, 176, 180, 185, 189, 190, 199, 200, 208, 218,
186, 222, 201, 131, 192, 221, 233, 235, 205, 216,
207, 209, 239, 240, 223, 243, 16, 212, 242, 168,
214, 215, 255, 256, 236, 260, 217, 0, 139, 0,
219, 137, 30, 0, 220, 0, 224, 0, 225, 0,
0, 0, 0, 0, 198, 152, 0, 254, 259, 0,
0, 0, 0, 0, 0, 0, 0, 0, 66
86, 24, 118, 99, 156, 229, 151, 230, 100, 130,
152, 104, 28, 62, 154, 22, 29, 56, -43, 154,
23, 27, 154, -114, 12, 154, -113, 57, 32, -115,
141, -58, 129, 13, 33, 142, 63, 34, 86, 22,
185, 22, 140, 131, 23, 142, 23, -43, -43, -43,
256, 257, -114, -114, -114, -113, -113, -113, -115, -115,
-115, 200, 1, 261, 143, 21, 114, 134, 135, 2,
3, 115, 176, 21, 143, 212, 144, 4, 14, 111,
28, 113, 145, 44, -18, 64, 67, 188, 124, 65,
68, 17, 204, 205, 69, 206, 165, 208, 44, 166,
70, 71, 72, 36, 73, 18, 19, 74, 75, 76,
77, 78, 37, 64, 79, 80, 146, -27, 182, 81,
147, 183, 245, 82, 146, 38, 39, 213, 148, -2,
15, 25, -14, 40, 41, 42, 43, 1, 169, 154,
232, 254, 255, 155, 2, 3, 169, 146, 234, 67,
154, -123, 4, 68, 237, 31, 27, 69, 248, 249,
250, 251, 241, 70, 71, 72, 240, 73, 172, 169,
74, 75, 76, 77, 78, 52, 146, 79, 80, 126,
-124, 127, 27, 53, 128, 54, 82, 253, 168, 169,
242, 170, 55, 183, 235, 195, 196, 197, 231, 169,
233, 169, 58, 59, 60, 61, 91, 92, 93, 94,
95, 97, 265, 107, 109, 112, 149, 115, 120, 121,
122, 123, 125, 136, 138, 150, 157, 158, 160, 171,
161, 174, 167, 177, 179, 181, 186, 192, 187, 191,
201, 202, 210, 203, 219, 189, 131, 207, 209, 221,
224, 225, 236, 238, 243, 211, 190, 218, 244, 194,
260, 247, 246, 214, 169, 239, 216, 217, 259, 264,
16, 226, 139, 220, 137, 0, 222, 30, 223, 227,
153, 228, 0, 0, 0, 0, 0, 0, 0, 200,
0, 0, 258, 0, 0, 263, 0, 0, 0, 0,
0, 0, 0, 66
};
static const yytype_int16 yycheck[] =
{
52, 17, 75, 106, 60, 199, 1, 201, 1, 31,
5, 63, 1, 1, 41, 36, 9, 5, 7, 41,
41, 10, 7, 36, 5, 7, 4, 12, 41, 4,
1, 24, 84, 8, 5, 1, 1, 12, 90, 5,
5, 36, 94, 18, 19, 20, 41, 22, 242, 243,
25, 26, 27, 28, 29, 36, 41, 32, 33, 41,
41, 255, 37, 34, 35, 36, 41, 0, 34, 35,
36, 7, 124, 176, 11, 71, 12, 73, 6, 13,
8, 9, 3, 11, 80, 4, 1, 21, 144, 8,
5, 164, 165, 12, 167, 6, 169, 31, 1, 18,
19, 20, 5, 22, 41, 41, 25, 26, 27, 28,
29, 1, 46, 32, 33, 5, 8, 41, 221, 34,
35, 36, 41, 8, 9, 17, 178, 0, 1, 41,
3, 34, 35, 36, 9, 8, 239, 240, 30, 31,
41, 1, 15, 16, 8, 5, 38, 39, 40, 41,
23, 15, 16, 10, 11, 228, 229, 230, 231, 23,
4, 1, 1, 1, 216, 5, 5, 5, 1, 1,
41, 24, 5, 5, 10, 11, 10, 13, 7, 13,
7, 10, 6, 10, 236, 34, 35, 36, 11, 11,
13, 13, 208, 10, 11, 10, 11, 4, 4, 4,
4, 13, 4, 24, 41, 8, 6, 6, 260, 6,
41, 41, 8, 41, 8, 41, 8, 6, 5, 148,
8, 41, 8, 8, 6, 8, 21, 41, 41, 8,
8, 4, 41, 41, 8, 7, 13, 7, 14, 7,
41, 5, 11, 41, 158, 11, 8, 8, 41, 24,
41, 41, 11, 11, 197, 11, 6, 41, 13, 11,
41, 41, 13, 8, 24, 7, 191, -1, 93, -1,
41, 90, 21, -1, 41, -1, 41, -1, 41, -1,
-1, -1, -1, -1, 41, 103, -1, 41, 41, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 46
52, 17, 75, 60, 106, 201, 1, 203, 5, 7,
5, 63, 1, 1, 1, 36, 5, 31, 5, 1,
41, 9, 1, 5, 41, 1, 5, 41, 1, 5,
7, 11, 84, 4, 7, 12, 24, 10, 90, 36,
7, 36, 94, 41, 41, 12, 41, 34, 35, 36,
246, 247, 34, 35, 36, 34, 35, 36, 34, 35,
36, 41, 8, 259, 41, 13, 36, 8, 9, 15,
16, 41, 124, 21, 41, 177, 8, 23, 0, 71,
1, 73, 14, 31, 5, 1, 4, 144, 80, 5,
8, 3, 165, 166, 12, 168, 10, 170, 46, 13,
18, 19, 20, 8, 22, 6, 41, 25, 26, 27,
28, 29, 17, 1, 32, 33, 1, 5, 7, 37,
5, 10, 224, 41, 1, 30, 31, 179, 5, 0,
1, 41, 3, 38, 39, 40, 41, 8, 11, 1,
13, 243, 244, 5, 15, 16, 11, 1, 13, 4,
1, 5, 23, 8, 5, 4, 9, 12, 231, 232,
233, 234, 219, 18, 19, 20, 218, 22, 10, 11,
25, 26, 27, 28, 29, 4, 1, 32, 33, 6,
5, 8, 9, 41, 11, 41, 41, 239, 10, 11,
7, 13, 24, 10, 210, 34, 35, 36, 10, 11,
10, 11, 6, 4, 4, 4, 8, 41, 6, 24,
41, 41, 264, 41, 6, 6, 13, 41, 8, 8,
8, 6, 41, 5, 8, 8, 6, 8, 4, 8,
41, 8, 41, 4, 21, 41, 41, 7, 41, 8,
13, 7, 14, 11, 8, 41, 41, 41, 41, 7,
11, 5, 8, 8, 11, 41, 149, 24, 11, 159,
8, 11, 13, 41, 11, 24, 41, 41, 13, 7,
6, 199, 93, 193, 90, -1, 41, 21, 41, 41,
103, 41, -1, -1, -1, -1, -1, -1, -1, 41,
-1, -1, 41, -1, -1, 41, -1, -1, -1, -1,
-1, -1, -1, 46
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@ -902,19 +892,19 @@ static const yytype_uint8 yystos[] =
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, 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, 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, 85, 7, 41,
41, 11, 5, 86, 41, 41, 67, 67, 10, 13,
10, 13, 46, 8, 5, 8, 24, 70, 7, 11,
11, 59, 13, 11, 68, 68, 68, 68, 72, 70,
59, 59, 67, 67, 41, 13, 8, 67, 73, 41,
7, 70
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
};
#define yyerrok (yyerrstatus = 0)
@ -1041,14 +1031,14 @@ do { \
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct parse_io *parseio)
yy_symbol_value_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp, struct parse_io *parseio)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseio)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
YYLTYPE const * const yylocationp;
const YYSTYPE * const yyvaluep;
const YYLTYPE * const yylocationp;
struct parse_io *parseio;
#endif
{
@ -1077,14 +1067,14 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parseio)
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct parse_io *parseio)
yy_symbol_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, const YYLTYPE * const yylocationp, struct parse_io *parseio)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, parseio)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
YYLTYPE const * const yylocationp;
const YYSTYPE * const yyvaluep;
const YYLTYPE * const yylocationp;
struct parse_io *parseio;
#endif
{
@ -1262,7 +1252,7 @@ yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
YYSIZE_T yyn = 0;
size_t yyn = 0;
char const *yyp = yystr;
for (;;)
@ -1309,7 +1299,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar)
{
int yyn = yypact[yystate];
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
if (! (YYPACT_NINF < yyn && yyn < YYLAST))
return 0;
else
{
@ -1347,7 +1337,7 @@ yysyntax_error (char *yyresult, int yystate, int yychar)
int yyxbegin = yyn < 0 ? -yyn : 0;
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn + 1;
int yychecklim = YYLAST - yyn;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yycount = 1;
@ -1439,7 +1429,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
case 41: /* "word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1443 "ael.tab.c"
#line 1433 "ael.tab.c"
break;
case 44: /* "objects" */
#line 164 "ael.y"
@ -1447,7 +1437,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1451 "ael.tab.c"
#line 1441 "ael.tab.c"
break;
case 45: /* "object" */
#line 164 "ael.y"
@ -1455,12 +1445,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1459 "ael.tab.c"
#line 1449 "ael.tab.c"
break;
case 46: /* "context_name" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1464 "ael.tab.c"
#line 1454 "ael.tab.c"
break;
case 47: /* "context" */
#line 164 "ael.y"
@ -1468,7 +1458,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1472 "ael.tab.c"
#line 1462 "ael.tab.c"
break;
case 49: /* "macro" */
#line 164 "ael.y"
@ -1476,7 +1466,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1480 "ael.tab.c"
#line 1470 "ael.tab.c"
break;
case 50: /* "globals" */
#line 164 "ael.y"
@ -1484,7 +1474,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1488 "ael.tab.c"
#line 1478 "ael.tab.c"
break;
case 51: /* "global_statements" */
#line 164 "ael.y"
@ -1492,7 +1482,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1496 "ael.tab.c"
#line 1486 "ael.tab.c"
break;
case 52: /* "assignment" */
#line 164 "ael.y"
@ -1500,7 +1490,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1504 "ael.tab.c"
#line 1494 "ael.tab.c"
break;
case 54: /* "arglist" */
#line 164 "ael.y"
@ -1508,7 +1498,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1512 "ael.tab.c"
#line 1502 "ael.tab.c"
break;
case 55: /* "elements" */
#line 164 "ael.y"
@ -1516,7 +1506,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1520 "ael.tab.c"
#line 1510 "ael.tab.c"
break;
case 56: /* "element" */
#line 164 "ael.y"
@ -1524,7 +1514,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1528 "ael.tab.c"
#line 1518 "ael.tab.c"
break;
case 57: /* "ignorepat" */
#line 164 "ael.y"
@ -1532,7 +1522,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1536 "ael.tab.c"
#line 1526 "ael.tab.c"
break;
case 58: /* "extension" */
#line 164 "ael.y"
@ -1540,7 +1530,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1544 "ael.tab.c"
#line 1534 "ael.tab.c"
break;
case 59: /* "statements" */
#line 164 "ael.y"
@ -1548,12 +1538,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1552 "ael.tab.c"
#line 1542 "ael.tab.c"
break;
case 60: /* "timerange" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1557 "ael.tab.c"
#line 1547 "ael.tab.c"
break;
case 61: /* "timespec" */
#line 164 "ael.y"
@ -1561,12 +1551,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1565 "ael.tab.c"
#line 1555 "ael.tab.c"
break;
case 62: /* "test_expr" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1570 "ael.tab.c"
#line 1560 "ael.tab.c"
break;
case 64: /* "if_like_head" */
#line 164 "ael.y"
@ -1574,22 +1564,22 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1578 "ael.tab.c"
#line 1568 "ael.tab.c"
break;
case 65: /* "word_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1583 "ael.tab.c"
#line 1573 "ael.tab.c"
break;
case 67: /* "word3_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1588 "ael.tab.c"
#line 1578 "ael.tab.c"
break;
case 68: /* "goto_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1593 "ael.tab.c"
#line 1583 "ael.tab.c"
break;
case 69: /* "switch_statement" */
#line 164 "ael.y"
@ -1597,7 +1587,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1601 "ael.tab.c"
#line 1591 "ael.tab.c"
break;
case 70: /* "statement" */
#line 164 "ael.y"
@ -1605,7 +1595,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1609 "ael.tab.c"
#line 1599 "ael.tab.c"
break;
case 75: /* "opt_else" */
#line 164 "ael.y"
@ -1613,7 +1603,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1617 "ael.tab.c"
#line 1607 "ael.tab.c"
break;
case 76: /* "target" */
#line 164 "ael.y"
@ -1621,12 +1611,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1625 "ael.tab.c"
#line 1615 "ael.tab.c"
break;
case 77: /* "opt_pri" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1630 "ael.tab.c"
#line 1620 "ael.tab.c"
break;
case 78: /* "jumptarget" */
#line 164 "ael.y"
@ -1634,7 +1624,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1638 "ael.tab.c"
#line 1628 "ael.tab.c"
break;
case 79: /* "macro_call" */
#line 164 "ael.y"
@ -1642,7 +1632,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1646 "ael.tab.c"
#line 1636 "ael.tab.c"
break;
case 81: /* "application_call_head" */
#line 164 "ael.y"
@ -1650,7 +1640,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1654 "ael.tab.c"
#line 1644 "ael.tab.c"
break;
case 83: /* "application_call" */
#line 164 "ael.y"
@ -1658,12 +1648,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1662 "ael.tab.c"
#line 1652 "ael.tab.c"
break;
case 84: /* "opt_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
#line 1667 "ael.tab.c"
#line 1657 "ael.tab.c"
break;
case 85: /* "eval_arglist" */
#line 164 "ael.y"
@ -1671,7 +1661,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1675 "ael.tab.c"
#line 1665 "ael.tab.c"
break;
case 86: /* "case_statements" */
#line 164 "ael.y"
@ -1679,7 +1669,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1683 "ael.tab.c"
#line 1673 "ael.tab.c"
break;
case 87: /* "case_statement" */
#line 164 "ael.y"
@ -1687,7 +1677,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1691 "ael.tab.c"
#line 1681 "ael.tab.c"
break;
case 88: /* "macro_statements" */
#line 164 "ael.y"
@ -1695,7 +1685,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1699 "ael.tab.c"
#line 1689 "ael.tab.c"
break;
case 89: /* "macro_statement" */
#line 164 "ael.y"
@ -1703,7 +1693,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1707 "ael.tab.c"
#line 1697 "ael.tab.c"
break;
case 90: /* "switches" */
#line 164 "ael.y"
@ -1711,7 +1701,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1715 "ael.tab.c"
#line 1705 "ael.tab.c"
break;
case 91: /* "eswitches" */
#line 164 "ael.y"
@ -1719,7 +1709,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1723 "ael.tab.c"
#line 1713 "ael.tab.c"
break;
case 92: /* "switchlist" */
#line 164 "ael.y"
@ -1727,7 +1717,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1731 "ael.tab.c"
#line 1721 "ael.tab.c"
break;
case 93: /* "included_entry" */
#line 164 "ael.y"
@ -1735,7 +1725,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1739 "ael.tab.c"
#line 1729 "ael.tab.c"
break;
case 94: /* "includeslist" */
#line 164 "ael.y"
@ -1743,7 +1733,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1747 "ael.tab.c"
#line 1737 "ael.tab.c"
break;
case 95: /* "includes" */
#line 164 "ael.y"
@ -1751,7 +1741,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
#line 1755 "ael.tab.c"
#line 1745 "ael.tab.c"
break;
default:
@ -2878,53 +2868,59 @@ yyreduce:
case 124:
#line 598 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
{ char *x; asprintf(&x,"%s@%s", (yyvsp[(1) - (5)].str),(yyvsp[(3) - (5)].str)); free((yyvsp[(1) - (5)].str)); free((yyvsp[(3) - (5)].str));
(yyval.pval) = linku1(nword(x, &(yylsp[(1) - (5)])), (yyvsp[(5) - (5)].pval));;}
break;
case 125:
#line 601 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
#line 600 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 126:
#line 602 "ael.y"
#line 603 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
case 127:
#line 604 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
(yyval.pval)->u2.arglist = (yyvsp[(3) - (3)].pval);
prev_word=0; /* XXX sure ? */ ;}
break;
case 127:
#line 609 "ael.y"
case 128:
#line 611 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (2)].pval); ;}
break;
case 128:
#line 610 "ael.y"
case 129:
#line 612 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;}
break;
case 129:
#line 611 "ael.y"
case 130:
#line 613 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 130:
#line 614 "ael.y"
case 131:
#line 616 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
case 131:
#line 617 "ael.y"
case 132:
#line 619 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;}
break;
/* Line 1267 of yacc.c. */
#line 2928 "ael.tab.c"
/* Line 1270 of yacc.c. */
#line 2924 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@ -3139,12 +3135,11 @@ yyreturn:
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
/* Make sure YYID is used. */
return YYID (yyresult);
return yyresult;
}
#line 622 "ael.y"
#line 624 "ael.y"
static char *token_equivs1[] =

View File

@ -1,9 +1,7 @@
/* A Bison parser, made by GNU Bison 2.3. */
/* A Bison parser, made by GNU Bison 2.1a. */
/* Skeleton interface for Bison's Yacc-like parsers in C
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -20,18 +18,10 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* Tokens. */
#ifndef YYTOKENTYPE
@ -132,8 +122,8 @@ typedef union YYSTYPE
char *str; /* strings */
struct pval *pval; /* full objects */
}
/* Line 1529 of yacc.c. */
#line 137 "ael.tab.h"
/* Line 1536 of yacc.c. */
#line 127 "ael.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@ -156,3 +146,5 @@ typedef struct YYLTYPE
#endif

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
the default action to shift will attach the else to the preceeding if. */
%expect 7
%expect 8
%error-verbose
/*
@ -595,6 +595,8 @@ eswitches : KW_ESWITCHES LC switchlist RC {
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;}
;