[asterisk-commits] branch murf/AEL2 r20033 - /team/murf/AEL2/pbx/
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Fri Apr 14 09:41:57 MST 2006
Author: murf
Date: Fri Apr 14 11:41:53 2006
New Revision: 20033
URL: http://svn.digium.com/view/asterisk?rev=20033&view=rev
Log:
At last, I figured it out. No bison bug, just cockpit
error on my part. I've discovered a few more tricks with
bison, rearranged the input file a little, simplified things
a bit, and got rid of all the bad hacks. Now I can bump
the syntax error count in a thread-safe way, so that kluge
is fixed.
Ahhhh, it feels good!
Modified:
team/murf/AEL2/pbx/ael.flex
team/murf/AEL2/pbx/ael.tab.c
team/murf/AEL2/pbx/ael.tab.h
team/murf/AEL2/pbx/ael.y
team/murf/AEL2/pbx/ael_lex.c
Modified: team/murf/AEL2/pbx/ael.flex
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/pbx/ael.flex?rev=20033&r1=20032&r2=20033&view=diff
==============================================================================
--- team/murf/AEL2/pbx/ael.flex (original)
+++ team/murf/AEL2/pbx/ael.flex Fri Apr 14 11:41:53 2006
@@ -46,7 +46,7 @@
struct pval *ael2_parse(char *filename, int *errors);
int ael_yyget_column (yyscan_t yyscanner);
void ael_yyset_column (int column_no , yyscan_t yyscanner);
-int ael_yyparse (void *);
+int ael_yyparse (struct parse_io *);
static void pbcpush(char x);
static int pbcpop(char x);
static void pbcwhere(char *text, int *line, int *col );
@@ -580,15 +580,6 @@
BEGIN(argg);
}
-#ifdef NOMORE
-void parse_extensions(yyscan_t scanner)
-{
- struct yyguts_t * yyg = (struct yyguts_t*)scanner;
- struct pval *yy;
- ael_yyparse((void*)(&yy));
- printf("Done. yy->type is %d\n", yy->type);
-}
-#endif
struct pval *ael2_parse(char *filename, int *errors)
{
@@ -597,12 +588,10 @@
char *buffer;
struct stat stats;
FILE *fin;
- extern struct parse_io *shared_parseio;
/* extern int ael_yydebug; */
io = calloc(sizeof(struct parse_io),1);
- shared_parseio = io;
/* reset the global counters */
prev_word = 0;
my_lineno = 1;
@@ -628,14 +617,13 @@
/* ael_yyset_in (fin , io->scanner); OLD WAY */
- ael_yyparse((void *) io);
+ ael_yyparse(io);
pval = io->pval;
*errors = io->syntax_error_count;
ael_yylex_destroy(io->scanner);
- shared_parseio = 0;
free(buffer);
free(io);
Modified: team/murf/AEL2/pbx/ael.tab.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/pbx/ael.tab.c?rev=20033&r1=20032&r2=20033&view=diff
==============================================================================
--- team/murf/AEL2/pbx/ael.tab.c (original)
+++ team/murf/AEL2/pbx/ael.tab.c Fri Apr 14 11:41:53 2006
@@ -1,7 +1,7 @@
-/* A Bison parser, made by GNU Bison 1.875c. */
+/* A Bison parser, made by GNU Bison 2.1. */
/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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
@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
@@ -36,6 +36,9 @@
/* Identify Bison output. */
#define YYBISON 1
+/* Bison version. */
+#define YYBISON_VERSION "2.1"
+
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -45,8 +48,7 @@
/* Using locations. */
#define YYLSP_NEEDED 1
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
+/* Substitute the variable and function names. */
#define yyparse ael_yyparse
#define yylex ael_yylex
#define yyerror ael_yyerror
@@ -103,6 +105,7 @@
word = 296
};
#endif
+/* Tokens. */
#define KW_CONTEXT 258
#define LC 259
#define RC 260
@@ -181,11 +184,47 @@
extern void reset_semicount(yyscan_t yyscanner);
extern void reset_argcount(yyscan_t yyscanner );
-#define YYPARSE_PARAM parseio
#define YYLEX_PARAM ((struct parse_io *)parseio)->scanner
#define YYERROR_VERBOSE 1
-/* this stuff is included so I can declare the proto for yyerror */
+extern char *my_file;
+int ael_is_funcname(char *name);
+ static char *ael_token_subst(char *mess);
+ extern char *prev_word;
+
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 1
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 45 "ael.y"
+typedef union YYSTYPE {
+ char *str;
+ struct pval *pval;
+} YYSTYPE;
+/* Line 196 of yacc.c. */
+#line 223 "ael.tab.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
typedef struct YYLTYPE
{
@@ -198,93 +237,60 @@
# define YYLTYPE_IS_DECLARED 1
# define YYLTYPE_IS_TRIVIAL 1
#endif
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-typedef union YYSTYPE {
- char *str;
- struct pval *pval;
-} YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern char *my_file;
-void yyerror(YYLTYPE *locp,void *nothing, char const *s);
+
+
+/* Copy the second part of user declarations. */
+#line 50 "ael.y"
+
+ /* declaring these AFTER the union makes things a lot simpler! */
+void yyerror(YYLTYPE *locp, struct parse_io *parseio, char const *s);
int ael_yylex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , void * yyscanner);
-int ael_is_funcname(char *name);
- static char *ael_token_subst(char *mess);
- extern char *prev_word;
- struct parse_io *shared_parseio;
-
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 1
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 72 "ael.y"
-typedef union YYSTYPE {
- char *str;
- struct pval *pval;
-} YYSTYPE;
-/* Line 191 of yacc.c. */
-#line 242 "ael.tab.c"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
-typedef struct YYLTYPE
-{
- int first_line;
- int first_column;
- int last_line;
- int last_column;
-} YYLTYPE;
-# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
-# define YYLTYPE_IS_DECLARED 1
-# define YYLTYPE_IS_TRIVIAL 1
-#endif
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 214 of yacc.c. */
-#line 266 "ael.tab.c"
+
+
+
+/* Line 219 of yacc.c. */
+#line 253 "ael.tab.c"
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-# ifndef YYFREE
-# define YYFREE free
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# endif
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# define YYINCLUDED_STDLIB_H
+# endif
# endif
# endif
# endif
@@ -292,13 +298,39 @@
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
+# endif
# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+# endif
+# ifdef __cplusplus
+extern "C" {
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
+ && (defined (__STDC__) || defined (__cplusplus)))
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
+ && (defined (__STDC__) || defined (__cplusplus)))
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifdef __cplusplus
+}
+# endif
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
@@ -311,7 +343,7 @@
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- short yyss;
+ short int yyss;
YYSTYPE yyvs;
YYLTYPE yyls;
};
@@ -322,7 +354,7 @@
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ 2 * YYSTACK_GAP_MAXIMUM)
/* Copy COUNT objects from FROM to TO. The source and destination do
@@ -335,7 +367,7 @@
# define YYCOPY(To, From, Count) \
do \
{ \
- register YYSIZE_T yyi; \
+ YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
@@ -364,7 +396,7 @@
#if defined (__STDC__) || defined (__cplusplus)
typedef signed char yysigned_char;
#else
- typedef short yysigned_char;
+ typedef short int yysigned_char;
#endif
/* YYFINAL -- State number of the termination state. */
@@ -385,7 +417,7 @@
#define YYUNDEFTOK 2
#define YYMAXUTOK 296
-#define YYTRANSLATE(YYX) \
+#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
@@ -426,7 +458,7 @@
#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
-static const unsigned short yyprhs[] =
+static const unsigned short int yyprhs[] =
{
0, 0, 3, 5, 7, 10, 13, 15, 17, 19,
21, 27, 32, 38, 43, 50, 56, 63, 69, 78,
@@ -513,28 +545,28 @@
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short yyrline[] =
-{
- 0, 139, 139, 142, 143, 146, 149, 150, 151, 152,
- 155, 156, 157, 158, 159, 160, 161, 162, 165, 167,
- 168, 169, 172, 173, 176, 177, 178, 181, 181, 184,
- 185, 186, 189, 190, 191, 194, 197, 198, 199, 200,
- 201, 202, 202, 203, 204, 207, 210, 211, 212, 213,
- 217, 218, 221, 224, 224, 227, 227, 230, 249, 268,
- 269, 271, 272, 273, 276, 276, 281, 282, 282, 285,
- 286, 287, 288, 289, 290, 288, 293, 293, 296, 297,
- 298, 299, 300, 302, 302, 334, 335, 336, 337, 338,
- 339, 340, 341, 342, 343, 346, 347, 350, 353, 358,
- 363, 368, 375, 378, 381, 386, 391, 396, 403, 403,
- 406, 409, 409, 417, 423, 426, 427, 428, 429, 432,
- 433, 438, 439, 440, 441, 442, 443, 446, 447, 452,
- 453, 456, 457, 460, 461, 464, 465, 466, 469, 470,
- 491, 504, 505, 525, 538, 541, 542, 545, 546
+static const unsigned short int yyrline[] =
+{
+ 0, 119, 119, 122, 123, 126, 129, 130, 131, 132,
+ 135, 136, 137, 138, 139, 140, 141, 142, 145, 147,
+ 148, 149, 152, 153, 156, 157, 158, 161, 161, 164,
+ 165, 166, 169, 170, 171, 174, 177, 178, 179, 180,
+ 181, 182, 182, 183, 184, 187, 190, 191, 192, 193,
+ 197, 198, 201, 204, 204, 207, 207, 210, 229, 248,
+ 249, 251, 252, 253, 256, 256, 261, 262, 262, 265,
+ 266, 267, 268, 269, 270, 268, 273, 273, 276, 277,
+ 278, 279, 280, 282, 282, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 323, 326, 327, 330, 333, 338,
+ 343, 348, 355, 358, 361, 366, 371, 376, 383, 383,
+ 386, 389, 389, 397, 403, 406, 407, 408, 409, 412,
+ 413, 418, 419, 420, 421, 422, 423, 426, 427, 432,
+ 433, 436, 437, 440, 441, 444, 445, 446, 449, 450,
+ 471, 484, 485, 505, 518, 521, 522, 525, 526
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
@@ -560,7 +592,7 @@
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
-static const unsigned short yytoknum[] =
+static const unsigned short int yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
@@ -653,7 +685,7 @@
};
/* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
+static const short int yydefgoto[] =
{
-1, 6, 7, 8, 9, 10, 11, 25, 26, 75,
50, 39, 40, 95, 41, 42, 144, 111, 202, 112,
@@ -666,7 +698,7 @@
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -198
-static const short yypact[] =
+static const short int yypact[] =
{
143, 79, -198, -38, 8, 24, 58, 379, -198, -198,
-198, -198, 68, 103, 122, 36, 119, -198, -198, -198,
@@ -706,7 +738,7 @@
};
/* YYPGOTO[NTERM-NUM]. */
-static const short yypgoto[] =
+static const short int yypgoto[] =
{
-198, -198, -198, 507, -198, -198, -198, -198, 496, -198,
-198, 55, -37, -198, -198, -198, -197, -198, -198, -198,
@@ -721,7 +753,7 @@
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -124
-static const short yytable[] =
+static const short int yytable[] =
{
115, 183, 69, 14, 196, 120, 236, 96, -122, 58,
69, 97, 15, 138, 129, 98, 130, 139, 90, 59,
@@ -781,7 +813,7 @@
0, 0, 0, 0, 0, 0, 0, 110
};
-static const short yycheck[] =
+static const short int yycheck[] =
{
66, 121, 39, 41, 1, 71, 13, 4, 5, 31,
47, 8, 4, 1, 81, 12, 82, 5, 5, 41,
@@ -882,22 +914,6 @@
13, 68, 13, 65, 65, 65, 8, 7, 8
};
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
@@ -927,25 +943,58 @@
goto yybackup; \
} \
else \
- { \
- yyerror (&yylloc, NULL, "syntax error: cannot back up");\
+ { \
+ yyerror (&yylloc, parseio, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
+
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run). */
-
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- ((Current).first_line = (Rhs)[1].first_line, \
- (Current).first_column = (Rhs)[1].first_column, \
- (Current).last_line = (Rhs)[N].last_line, \
- (Current).last_column = (Rhs)[N].last_column)
-#endif
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (N) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (0)
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
/* YYLEX -- calling `yylex' with the right arguments. */
@@ -969,19 +1018,13 @@
YYFPRINTF Args; \
} while (0)
-# define YYDSYMPRINT(Args) \
-do { \
- if (yydebug) \
- yysymprint Args; \
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Token, Value, Location); \
+ yysymprint (stderr, \
+ Type, Value, Location); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
@@ -993,12 +1036,12 @@
#if defined (__STDC__) || defined (__cplusplus)
static void
-yy_stack_print (short *bottom, short *top)
+yy_stack_print (short int *bottom, short int *top)
#else
static void
yy_stack_print (bottom, top)
- short *bottom;
- short *top;
+ short int *bottom;
+ short int *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
@@ -1028,13 +1071,13 @@
#endif
{
int yyi;
- unsigned int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+ YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+ YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
}
# define YY_REDUCE_PRINT(Rule) \
@@ -1048,8 +1091,7 @@
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -1064,12 +1106,8 @@
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
-
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
@@ -1092,7 +1130,7 @@
const char *yystr;
# endif
{
- register const char *yys = yystr;
+ const char *yys = yystr;
while (*yys++ != '\0')
continue;
@@ -1117,8 +1155,8 @@
const char *yysrc;
# endif
{
- register char *yyd = yydest;
- register const char *yys = yysrc;
+ char *yyd = yydest;
+ const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
@@ -1128,7 +1166,55 @@
# endif
# endif
-#endif /* !YYERROR_VERBOSE */
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ size_t yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+#endif /* YYERROR_VERBOSE */
@@ -1154,15 +1240,17 @@
(void) yylocationp;
if (yytype < YYNTOKENS)
- {
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- }
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+ YY_LOCATION_PRINT (yyoutput, *yylocationp);
+ YYFPRINTF (yyoutput, ": ");
+
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
switch (yytype)
{
default:
@@ -1178,10 +1266,11 @@
#if defined (__STDC__) || defined (__cplusplus)
static void
-yydestruct (int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
#else
static void
-yydestruct (yytype, yyvaluep, yylocationp)
+yydestruct (yymsg, yytype, yyvaluep, yylocationp)
+ const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
YYLTYPE *yylocationp;
@@ -1190,6 +1279,10 @@
/* Pacify ``unused variable'' warnings. */
(void) yyvaluep;
(void) yylocationp;
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
@@ -1210,7 +1303,7 @@
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *NULL);
+int yyparse (struct parse_io *parseio);
#else
int yyparse ();
#endif
@@ -1235,31 +1328,31 @@
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int
-yyparse (void *NULL)
+yyparse (struct parse_io *parseio)
#else
int
-yyparse (NULL)
- void *NULL;
-#endif
-#endif
-{
- /* The lookahead symbol. */
+yyparse (parseio)
+ struct parse_io *parseio;
+#endif
+#endif
+{
+ /* The look-ahead symbol. */
int yychar;
-/* The semantic value of the lookahead symbol. */
+/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
-/* Location data for the lookahead symbol. */
+/* Location data for the look-ahead symbol. */
YYLTYPE yylloc;
- register int yystate;
- register int yyn;
+ int yystate;
+ int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
+ /* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
/* Three stacks and their tools:
@@ -1271,20 +1364,21 @@
to reallocate them elsewhere. */
/* The state stack. */
- short yyssa[YYINITDEPTH];
- short *yyss = yyssa;
- register short *yyssp;
+ short int yyssa[YYINITDEPTH];
+ short int *yyss = yyssa;
+ short int *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
- register YYSTYPE *yyvsp;
+ YYSTYPE *yyvsp;
/* The location stack. */
YYLTYPE yylsa[YYINITDEPTH];
YYLTYPE *yyls = yylsa;
YYLTYPE *yylsp;
- YYLTYPE *yylerrsp;
+ /* The locations where the error started and ended. */
+ YYLTYPE yyerror_range[2];
#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
@@ -1314,6 +1408,12 @@
yyssp = yyss;
yyvsp = yyvs;
yylsp = yyls;
+#if YYLTYPE_IS_TRIVIAL
+ /* Initialize the default location before parsing starts. */
+ yylloc.first_line = yylloc.last_line = 1;
+ yylloc.first_column = yylloc.last_column = 0;
+#endif
+
goto yysetstate;
/*------------------------------------------------------------.
@@ -1339,14 +1439,14 @@
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
+ short int *yyss1 = yyss;
YYLTYPE *yyls1 = yyls;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
- yyoverflow ("parser stack overflow",
+ yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yyls1, yysize * sizeof (*yylsp),
@@ -1357,21 +1457,21 @@
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
- goto yyoverflowlab;
+ goto yyexhaustedlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyoverflowlab;
+ goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
- short *yyss1 = yyss;
+ short int *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
- goto yyoverflowlab;
+ goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
YYSTACK_RELOCATE (yyls);
@@ -1403,18 +1503,18 @@
yybackup:
/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
+/* Read a look-ahead token if we need one and don't already have one. */
/* yyresume: */
- /* First try to decide what to do without reference to lookahead token. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* Not known => get a look-ahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -1429,7 +1529,7 @@
else
{
yytoken = YYTRANSLATE (yychar);
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1449,8 +1549,8 @@
if (yyn == YYFINAL)
YYACCEPT;
- /* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
@@ -1501,933 +1601,934 @@
switch (yyn)
{
case 2:
+#line 119 "ael.y"
+ { parseio->pval = (yyval.pval); ;}
+ break;
+
+ case 3:
+#line 122 "ael.y"
+ {(yyval.pval)=(yyvsp[0].pval);;}
+ break;
+
+ case 4:
+#line 123 "ael.y"
+ {if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
+ else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
+ else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
+ break;
+
+ case 5:
+#line 126 "ael.y"
+ {(yyval.pval)=(yyvsp[-1].pval);;}
+ break;
+
+ case 6:
+#line 129 "ael.y"
+ {(yyval.pval)=(yyvsp[0].pval);;}
+ break;
+
+ case 7:
+#line 130 "ael.y"
+ {(yyval.pval)=(yyvsp[0].pval);;}
+ break;
+
+ case 8:
+#line 131 "ael.y"
+ {(yyval.pval)=(yyvsp[0].pval);;}
+ break;
+
+ case 9:
+#line 132 "ael.y"
+ {(yyval.pval)=0;/* allow older docs to be read */;}
+ break;
+
+ case 10:
+#line 135 "ael.y"
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-3].str); (yyval.pval)->u2.statements = (yyvsp[-1].pval); ;}
+ break;
+
+ case 11:
+#line 136 "ael.y"
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-2].str); ;}
+ break;
+
+ case 12:
+#line 137 "ael.y"
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = strdup("default"); (yyval.pval)->u2.statements = (yyvsp[-1].pval); ;}
+ break;
+
+ case 13:
+#line 138 "ael.y"
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = strdup("default"); ;}
+ break;
+
+ case 14:
#line 139 "ael.y"
- {((struct parse_io *)parseio)->pval = yyval.pval; ;}
- break;
-
- case 3:
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-5]).first_line,(yylsp[0]).last_line, (yylsp[-5]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-3].str); (yyval.pval)->u2.statements = (yyvsp[-1].pval); (yyval.pval)->u3.abstract = 1;;}
+ break;
+
+ case 15:
+#line 140 "ael.y"
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-2].str); (yyval.pval)->u3.abstract = 1; ;}
+ break;
+
+ case 16:
+#line 141 "ael.y"
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-5]).first_line,(yylsp[0]).last_line, (yylsp[-5]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = strdup("default"); (yyval.pval)->u2.statements = (yyvsp[-1].pval); (yyval.pval)->u3.abstract = 1; ;}
+ break;
+
+ case 17:
#line 142 "ael.y"
- {yyval.pval=yyvsp[0].pval;;}
- break;
-
- case 4:
-#line 143 "ael.y"
- {if ( yyvsp[-1].pval && yyvsp[0].pval ) {yyval.pval=yyvsp[-1].pval; linku1(yyval.pval,yyvsp[0].pval);}
- else if ( yyvsp[-1].pval ) {yyval.pval=yyvsp[-1].pval;}
- else if ( yyvsp[0].pval ) {yyval.pval=yyvsp[0].pval;} ;}
- break;
-
- case 5:
-#line 146 "ael.y"
- {yyval.pval=yyvsp[-1].pval;;}
- break;
-
- case 6:
+ {(yyval.pval)=npval(PV_CONTEXT,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = strdup("default"); (yyval.pval)->u3.abstract = 1; ;}
+ break;
+
+ case 18:
+#line 145 "ael.y"
+ {(yyval.pval)=npval(PV_MACRO,(yylsp[-7]).first_line,(yylsp[0]).last_line, (yylsp[-7]).first_column, (yylsp[0]).last_column);
+ (yyval.pval)->u1.str = (yyvsp[-6].str); (yyval.pval)->u2.arglist = (yyvsp[-4].pval); (yyval.pval)->u3.macro_statements = (yyvsp[-1].pval); ;}
+ break;
+
+ case 19:
+#line 147 "ael.y"
+ {(yyval.pval)=npval(PV_MACRO,(yylsp[-6]).first_line,(yylsp[0]).last_line, (yylsp[-6]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u2.arglist = (yyvsp[-3].pval); ;}
+ break;
+
+ case 20:
+#line 148 "ael.y"
+ {(yyval.pval)=npval(PV_MACRO,(yylsp[-6]).first_line,(yylsp[0]).last_line, (yylsp[-6]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u3.macro_statements = (yyvsp[-1].pval); ;}
+ break;
+
+ case 21:
#line 149 "ael.y"
- {yyval.pval=yyvsp[0].pval;;}
- break;
-
- case 7:
-#line 150 "ael.y"
- {yyval.pval=yyvsp[0].pval;;}
- break;
-
- case 8:
-#line 151 "ael.y"
- {yyval.pval=yyvsp[0].pval;;}
- break;
-
- case 9:
+ {(yyval.pval)=npval(PV_MACRO,(yylsp[-5]).first_line,(yylsp[0]).last_line, (yylsp[-5]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-4].str); /* pretty empty! */ ;}
+ break;
+
+ case 22:
#line 152 "ael.y"
- {yyval.pval=0;/* allow older docs to be read */;}
- break;
-
- case 10:
-#line 155 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-4].first_line,yylsp[0].last_line, yylsp[-4].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-3].str; yyval.pval->u2.statements = yyvsp[-1].pval; ;}
- break;
-
- case 11:
+ {(yyval.pval)=npval(PV_GLOBALS,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
+ break;
+
+ case 23:
+#line 153 "ael.y"
+ {(yyval.pval)=npval(PV_GLOBALS,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column); /* and that's all */ ;}
+ break;
+
+ case 24:
#line 156 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-3].first_line,yylsp[0].last_line, yylsp[-3].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-2].str; ;}
- break;
-
- case 12:
+ {(yyval.pval)=(yyvsp[0].pval);;}
+ break;
+
+ case 25:
#line 157 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-4].first_line,yylsp[0].last_line, yylsp[-4].first_column, yylsp[0].last_column); yyval.pval->u1.str = strdup("default"); yyval.pval->u2.statements = yyvsp[-1].pval; ;}
- break;
-
- case 13:
+ {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));;}
+ break;
+
+ case 26:
#line 158 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-3].first_line,yylsp[0].last_line, yylsp[-3].first_column, yylsp[0].last_column); yyval.pval->u1.str = strdup("default"); ;}
- break;
-
- case 14:
-#line 159 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-5].first_line,yylsp[0].last_line, yylsp[-5].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-3].str; yyval.pval->u2.statements = yyvsp[-1].pval; yyval.pval->u3.abstract = 1;;}
- break;
-
- case 15:
-#line 160 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-4].first_line,yylsp[0].last_line, yylsp[-4].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-2].str; yyval.pval->u3.abstract = 1; ;}
- break;
-
- case 16:
+ {(yyval.pval)=(yyvsp[-1].pval);;}
+ break;
+
+ case 27:
#line 161 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-5].first_line,yylsp[0].last_line, yylsp[-5].first_column, yylsp[0].last_column); yyval.pval->u1.str = strdup("default"); yyval.pval->u2.statements = yyvsp[-1].pval; yyval.pval->u3.abstract = 1; ;}
- break;
-
- case 17:
-#line 162 "ael.y"
- {yyval.pval=npval(PV_CONTEXT,yylsp[-4].first_line,yylsp[0].last_line, yylsp[-4].first_column, yylsp[0].last_column); yyval.pval->u1.str = strdup("default"); yyval.pval->u3.abstract = 1; ;}
- break;
-
- case 18:
+ { reset_semicount(parseio->scanner); ;}
+ break;
+
+ case 28:
+#line 161 "ael.y"
+ {(yyval.pval)=npval(PV_VARDEC,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-4].str);(yyval.pval)->u2.val = (yyvsp[-1].str); ;}
+ break;
+
+ case 29:
+#line 164 "ael.y"
+ {(yyval.pval)= npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[0].str); ;}
+ break;
+
+ case 30:
#line 165 "ael.y"
- {yyval.pval=npval(PV_MACRO,yylsp[-7].first_line,yylsp[0].last_line, yylsp[-7].first_column, yylsp[0].last_column);
- yyval.pval->u1.str = yyvsp[-6].str; yyval.pval->u2.arglist = yyvsp[-4].pval; yyval.pval->u3.macro_statements = yyvsp[-1].pval; ;}
- break;
-
- case 19:
-#line 167 "ael.y"
- {yyval.pval=npval(PV_MACRO,yylsp[-6].first_line,yylsp[0].last_line, yylsp[-6].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-5].str; yyval.pval->u2.arglist = yyvsp[-3].pval; ;}
- break;
-
- case 20:
-#line 168 "ael.y"
- {yyval.pval=npval(PV_MACRO,yylsp[-6].first_line,yylsp[0].last_line, yylsp[-6].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-5].str; yyval.pval->u3.macro_statements = yyvsp[-1].pval; ;}
- break;
-
- case 21:
+ {pval *z = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column); z->u1.str = (yyvsp[0].str); (yyval.pval)=(yyvsp[-2].pval); linku1((yyval.pval),z); ;}
+ break;
+
+ case 31:
+#line 166 "ael.y"
+ {(yyval.pval)=(yyvsp[-1].pval);;}
+ break;
+
+ case 32:
#line 169 "ael.y"
- {yyval.pval=npval(PV_MACRO,yylsp[-5].first_line,yylsp[0].last_line, yylsp[-5].first_column, yylsp[0].last_column); yyval.pval->u1.str = yyvsp[-4].str; /* pretty empty! */ ;}
- break;
-
- case 22:
-#line 172 "ael.y"
- {yyval.pval=npval(PV_GLOBALS,yylsp[-3].first_line,yylsp[0].last_line, yylsp[-3].first_column, yylsp[0].last_column); yyval.pval->u1.statements = yyvsp[-1].pval;;}
- break;
-
- case 23:
-#line 173 "ael.y"
- {yyval.pval=npval(PV_GLOBALS,yylsp[-2].first_line,yylsp[0].last_line, yylsp[-2].first_column, yylsp[0].last_column); /* and that's all */ ;}
- break;
-
- case 24:
-#line 176 "ael.y"
- {yyval.pval=yyvsp[0].pval;;}
- break;
-
- case 25:
+ { (yyval.pval)=(yyvsp[0].pval);;}
+ break;
+
+ case 33:
+#line 170 "ael.y"
+ {(yyval.pval)=0;;}
+ break;
+
+ case 34:
+#line 171 "ael.y"
+ { if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
+ else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
[... 2025 lines stripped ...]
More information about the asterisk-commits
mailing list