From dc8f6a947338bfa6ce26fba2cba8f74c7f74f51e Mon Sep 17 00:00:00 2001 From: Steve Murphy Date: Thu, 3 May 2007 14:24:00 +0000 Subject: 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: https://origsvn.digium.com/svn/asterisk/trunk@62911 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx/ael/ael-test/ael-test20/extensions.ael | 8 + pbx/ael/ael-test/ref.ael-test20 | 12 + pbx/ael/ael.tab.c | 477 ++++++++++++++--------------- pbx/ael/ael.tab.h | 30 +- pbx/ael/ael.y | 4 +- 5 files changed, 270 insertions(+), 261 deletions(-) create mode 100644 pbx/ael/ael-test/ael-test20/extensions.ael create mode 100644 pbx/ael/ael-test/ref.ael-test20 (limited to 'pbx/ael') diff --git a/pbx/ael/ael-test/ael-test20/extensions.ael b/pbx/ael/ael-test/ael-test20/extensions.ael new file mode 100644 index 000000000..8ec219864 --- /dev/null +++ b/pbx/ael/ael-test/ael-test20/extensions.ael @@ -0,0 +1,8 @@ +context interesting { + eswitches { + Realtime/default@extensions; + IAX2/context@${CURSERVER}; + } + 13 => NoOp(LuckyNumber!); +} + diff --git a/pbx/ael/ael-test/ref.ael-test20 b/pbx/ael/ael-test/ref.ael-test20 new file mode 100644 index 000000000..5b424e8ae --- /dev/null +++ b/pbx/ael/ael-test/ref.ael-test20 @@ -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 diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c index b7b6f5d92..f9bd6ca0b 100644 --- a/pbx/ael/ael.tab.c +++ b/pbx/ael/ael.tab.c @@ -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 /* 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[] = diff --git a/pbx/ael/ael.tab.h b/pbx/ael/ael.tab.h index a0abe410f..c908e0279 100644 --- a/pbx/ael/ael.tab.h +++ b/pbx/ael/ael.tab.h @@ -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 + + diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index d32ded0a6..9c6effe0e 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -153,7 +153,7 @@ static pval *update_last(pval *, YYLTYPE *); /* there will be two shift/reduce conflicts, they involve the if statement, where a single statement occurs not wrapped in curlies in the "true" section the default action to shift will attach the else to the preceeding if. */ -%expect 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;} ; -- cgit v1.2.3