These changes are in regards to bug 13249, where users are being surprised by the changes made
to the Set app in trunk/1.6.x, as they come from the 1.4 world. They are only bitten if
they write their AEL dialplan in the 1.4 world, and then carry it over to a trunk/1.6.x
installation where a "make samples" was executed, or where they hand-edited the
asterisk.conf file and added the [compat] category with app_set = 1.6 (or higher).
(this commit does not totally solve 13249, at least not yet)
The change involves issueing a single warning while the AEL file is loading, if:
1. app_set is present in the config file, and set to 1.6 or higher.
2. there are double quotes in an assignment statement (eg x = "hi there";)
3. the warning was not already issued.
The standalone app, aelparse, does not (yet) issue this warning. I'd have to
have it read in the asterisk.conf file, and that's a bit of hassle. I'll add
it if users request it, tho.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 15:59:12 +00:00
|
|
|
/* A Bison parser, made by GNU Bison 2.3. */
|
2006-04-24 17:41:27 +00:00
|
|
|
|
These changes are in regards to bug 13249, where users are being surprised by the changes made
to the Set app in trunk/1.6.x, as they come from the 1.4 world. They are only bitten if
they write their AEL dialplan in the 1.4 world, and then carry it over to a trunk/1.6.x
installation where a "make samples" was executed, or where they hand-edited the
asterisk.conf file and added the [compat] category with app_set = 1.6 (or higher).
(this commit does not totally solve 13249, at least not yet)
The change involves issueing a single warning while the AEL file is loading, if:
1. app_set is present in the config file, and set to 1.6 or higher.
2. there are double quotes in an assignment statement (eg x = "hi there";)
3. the warning was not already issued.
The standalone app, aelparse, does not (yet) issue this warning. I'd have to
have it read in the asterisk.conf file, and that's a bit of hassle. I'll add
it if users request it, tho.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 15:59:12 +00:00
|
|
|
/* 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.
|
2006-04-24 17:41:27 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
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., 51 Franklin Street, Fifth Floor,
|
|
|
|
Boston, MA 02110-1301, USA. */
|
|
|
|
|
These changes are in regards to bug 13249, where users are being surprised by the changes made
to the Set app in trunk/1.6.x, as they come from the 1.4 world. They are only bitten if
they write their AEL dialplan in the 1.4 world, and then carry it over to a trunk/1.6.x
installation where a "make samples" was executed, or where they hand-edited the
asterisk.conf file and added the [compat] category with app_set = 1.6 (or higher).
(this commit does not totally solve 13249, at least not yet)
The change involves issueing a single warning while the AEL file is loading, if:
1. app_set is present in the config file, and set to 1.6 or higher.
2. there are double quotes in an assignment statement (eg x = "hi there";)
3. the warning was not already issued.
The standalone app, aelparse, does not (yet) issue this warning. I'd have to
have it read in the asterisk.conf file, and that's a bit of hassle. I'll add
it if users request it, tho.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 15:59:12 +00:00
|
|
|
/* 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. */
|
2006-04-24 17:41:27 +00:00
|
|
|
|
|
|
|
/* Tokens. */
|
|
|
|
#ifndef YYTOKENTYPE
|
|
|
|
# define YYTOKENTYPE
|
|
|
|
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
|
|
|
know about them. */
|
|
|
|
enum yytokentype {
|
|
|
|
KW_CONTEXT = 258,
|
|
|
|
LC = 259,
|
|
|
|
RC = 260,
|
|
|
|
LP = 261,
|
|
|
|
RP = 262,
|
|
|
|
SEMI = 263,
|
|
|
|
EQ = 264,
|
|
|
|
COMMA = 265,
|
|
|
|
COLON = 266,
|
|
|
|
AMPER = 267,
|
|
|
|
BAR = 268,
|
|
|
|
AT = 269,
|
|
|
|
KW_MACRO = 270,
|
|
|
|
KW_GLOBALS = 271,
|
|
|
|
KW_IGNOREPAT = 272,
|
|
|
|
KW_SWITCH = 273,
|
|
|
|
KW_IF = 274,
|
|
|
|
KW_IFTIME = 275,
|
|
|
|
KW_ELSE = 276,
|
|
|
|
KW_RANDOM = 277,
|
|
|
|
KW_ABSTRACT = 278,
|
Merged revisions 87168 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r87168 | murf | 2007-10-26 10:34:02 -0600 (Fri, 26 Oct 2007) | 1 line
closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config,
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-26 17:39:39 +00:00
|
|
|
KW_EXTEND = 279,
|
|
|
|
EXTENMARK = 280,
|
|
|
|
KW_GOTO = 281,
|
|
|
|
KW_JUMP = 282,
|
|
|
|
KW_RETURN = 283,
|
|
|
|
KW_BREAK = 284,
|
|
|
|
KW_CONTINUE = 285,
|
|
|
|
KW_REGEXTEN = 286,
|
|
|
|
KW_HINT = 287,
|
|
|
|
KW_FOR = 288,
|
|
|
|
KW_WHILE = 289,
|
|
|
|
KW_CASE = 290,
|
|
|
|
KW_PATTERN = 291,
|
|
|
|
KW_DEFAULT = 292,
|
|
|
|
KW_CATCH = 293,
|
|
|
|
KW_SWITCHES = 294,
|
|
|
|
KW_ESWITCHES = 295,
|
|
|
|
KW_INCLUDES = 296,
|
|
|
|
KW_LOCAL = 297,
|
|
|
|
word = 298
|
2006-04-24 17:41:27 +00:00
|
|
|
};
|
|
|
|
#endif
|
|
|
|
/* Tokens. */
|
|
|
|
#define KW_CONTEXT 258
|
|
|
|
#define LC 259
|
|
|
|
#define RC 260
|
|
|
|
#define LP 261
|
|
|
|
#define RP 262
|
|
|
|
#define SEMI 263
|
|
|
|
#define EQ 264
|
|
|
|
#define COMMA 265
|
|
|
|
#define COLON 266
|
|
|
|
#define AMPER 267
|
|
|
|
#define BAR 268
|
|
|
|
#define AT 269
|
|
|
|
#define KW_MACRO 270
|
|
|
|
#define KW_GLOBALS 271
|
|
|
|
#define KW_IGNOREPAT 272
|
|
|
|
#define KW_SWITCH 273
|
|
|
|
#define KW_IF 274
|
|
|
|
#define KW_IFTIME 275
|
|
|
|
#define KW_ELSE 276
|
|
|
|
#define KW_RANDOM 277
|
|
|
|
#define KW_ABSTRACT 278
|
Merged revisions 87168 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r87168 | murf | 2007-10-26 10:34:02 -0600 (Fri, 26 Oct 2007) | 1 line
closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config,
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-26 17:39:39 +00:00
|
|
|
#define KW_EXTEND 279
|
|
|
|
#define EXTENMARK 280
|
|
|
|
#define KW_GOTO 281
|
|
|
|
#define KW_JUMP 282
|
|
|
|
#define KW_RETURN 283
|
|
|
|
#define KW_BREAK 284
|
|
|
|
#define KW_CONTINUE 285
|
|
|
|
#define KW_REGEXTEN 286
|
|
|
|
#define KW_HINT 287
|
|
|
|
#define KW_FOR 288
|
|
|
|
#define KW_WHILE 289
|
|
|
|
#define KW_CASE 290
|
|
|
|
#define KW_PATTERN 291
|
|
|
|
#define KW_DEFAULT 292
|
|
|
|
#define KW_CATCH 293
|
|
|
|
#define KW_SWITCHES 294
|
|
|
|
#define KW_ESWITCHES 295
|
|
|
|
#define KW_INCLUDES 296
|
|
|
|
#define KW_LOCAL 297
|
|
|
|
#define word 298
|
2006-04-24 17:41:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-18 21:36:24 +00:00
|
|
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
|
|
typedef union YYSTYPE
|
In these changes, I have added some explanation
of changes to the Set and MSet apps, so people aren't
so shocked and surprised when they upgrade from
1.4 to 1.6.
Also, for the sake of those upgrading from 1.4 to
1.6 with AEL, I provide automatic support for the
"old" way of using Set(), that still does the
exact same old thing with quotes and backslashes
and so on as 1.4 did, by having AEL compile in the
use of MSet() instead of Set(), everywhere it inserts
this code.
But, if the app_set var is set to 1.6 or higher,
it uses the "new", non-evaluative Set().
This only usually happens if the user manually
inserts this into the asterisk.conf file, or runs
the "make samples" command.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@140824 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-03 14:01:27 +00:00
|
|
|
#line 59 "ael.y"
|
2006-06-18 21:36:24 +00:00
|
|
|
{
|
2006-04-30 12:44:54 +00:00
|
|
|
int intval; /* integer value, typically flags */
|
|
|
|
char *str; /* strings */
|
|
|
|
struct pval *pval; /* full objects */
|
2006-06-18 21:36:24 +00:00
|
|
|
}
|
These changes are in regards to bug 13249, where users are being surprised by the changes made
to the Set app in trunk/1.6.x, as they come from the 1.4 world. They are only bitten if
they write their AEL dialplan in the 1.4 world, and then carry it over to a trunk/1.6.x
installation where a "make samples" was executed, or where they hand-edited the
asterisk.conf file and added the [compat] category with app_set = 1.6 (or higher).
(this commit does not totally solve 13249, at least not yet)
The change involves issueing a single warning while the AEL file is loading, if:
1. app_set is present in the config file, and set to 1.6 or higher.
2. there are double quotes in an assignment statement (eg x = "hi there";)
3. the warning was not already issued.
The standalone app, aelparse, does not (yet) issue this warning. I'd have to
have it read in the asterisk.conf file, and that's a bit of hassle. I'll add
it if users request it, tho.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@138815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-08-19 15:59:12 +00:00
|
|
|
/* Line 1489 of yacc.c. */
|
|
|
|
#line 141 "ael.tab.h"
|
2006-06-18 21:36:24 +00:00
|
|
|
YYSTYPE;
|
2006-04-24 17:41:27 +00:00
|
|
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
|
|
|
# define YYSTYPE_IS_DECLARED 1
|
|
|
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-06-18 21:36:24 +00:00
|
|
|
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
|
2006-04-24 17:41:27 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|