aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-26 16:34:02 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-26 16:34:02 +0000
commitff0fcde5c61c9f9cb0315bc47ecff200b27db505 (patch)
treedc877899b474ad3f4ddbffd50e855ff42867f1ab /pbx
parent237b86b3225b873b1fb4f3345e725cb71da5e566 (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.4@87168 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r--pbx/ael/ael-test/ref.ael-test1619
-rw-r--r--pbx/ael/ael-test/ref.ael-test1912
-rw-r--r--pbx/ael/ael.flex1
-rw-r--r--pbx/ael/ael.tab.c1333
-rw-r--r--pbx/ael/ael.tab.h76
-rw-r--r--pbx/ael/ael.y21
-rw-r--r--pbx/ael/ael_lex.c693
-rw-r--r--pbx/pbx_ael.c6
8 files changed, 1090 insertions, 1071 deletions
diff --git a/pbx/ael/ael-test/ref.ael-test16 b/pbx/ael/ael-test/ref.ael-test16
index 323a726c4..3113b0d6c 100644
--- a/pbx/ael/ael-test/ref.ael-test16
+++ b/pbx/ael/ael-test/ref.ael-test16
@@ -2,13 +2,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:3914 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3921 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:3 file:ael.y line:205 func: ael_yyparse ==== File: ./extensions.ael, Line 1, Cols: 19-19: Warning! The empty context real-small will be IGNORED!
-LOG: lev:2 file:pbx_ael.c line:3929 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3932 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:3 file:pbx_ael.c line:3545 func: add_extensions This file is Empty!
-LOG: lev:2 file:pbx_ael.c line:3934 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3937 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3940 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:pbx_ael.c line:4090 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4097 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4105 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4108 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:3 file:pbx_ael.c line:3685 func: add_extensions This file is Empty!
+LOG: lev:2 file:pbx_ael.c line:4110 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4113 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4116 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:543 func: main 1 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test19 b/pbx/ael/ael-test/ref.ael-test19
index f193751aa..c67dbe7c1 100644
--- a/pbx/ael/ael-test/ref.ael-test19
+++ b/pbx/ael/ael-test/ref.ael-test19
@@ -2,13 +2,13 @@
(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:3978 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3985 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3993 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:pbx_ael.c line:2250 func: check_context_names Error: file ./extensions.ael, line 49-62: The context name (incoming) is also declared in file ./extensions.ael, line 62-69!
+LOG: lev:2 file:pbx_ael.c line:4090 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4097 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4105 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:4 file:pbx_ael.c line:2250 func: check_context_names Error: file ./extensions.ael, line 49-62: The context name (incoming) is also declared in file ./extensions.ael, line 62-69! (and neither is marked 'extend')
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 245-246: A default case was automatically added to the switch.
LOG: lev:3 file:pbx_ael.c line:2347 func: check_pval_item Warning: file ./extensions.ael, line 312-312: macro call to non-existent funcA ! Hopefully it is present in extensions.conf!
LOG: lev:3 file:pbx_ael.c line:2347 func: check_pval_item Warning: file ./extensions.ael, line 313-313: macro call to non-existent funcD ! Hopefully it is present in extensions.conf!
LOG: lev:3 file:pbx_ael.c line:1287 func: check_goto Warning: file ./extensions.ael, line 319-319: goto: no context test5 could be found that matches the goto target!
-LOG: lev:4 file:pbx_ael.c line:4006 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:523 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:4 file:pbx_ael.c line:4118 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:543 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex
index 80dbb53a2..5d2649689 100644
--- a/pbx/ael/ael.flex
+++ b/pbx/ael/ael.flex
@@ -195,6 +195,7 @@ NOSEMIC ([^;()\{\}\[\]]|\\[;()\[\]\{\}])*
\/\/[^\n]* {/*comment*/}
context { STORE_POS; return KW_CONTEXT;}
abstract { STORE_POS; return KW_ABSTRACT;}
+extend { STORE_POS; return KW_EXTEND;}
macro { STORE_POS; return KW_MACRO;};
globals { STORE_POS; return KW_GLOBALS;}
ignorepat { STORE_POS; return KW_IGNOREPAT;}
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index 6b94b6ec1..78986ec09 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -85,24 +85,25 @@
KW_ELSE = 276,
KW_RANDOM = 277,
KW_ABSTRACT = 278,
- EXTENMARK = 279,
- KW_GOTO = 280,
- KW_JUMP = 281,
- KW_RETURN = 282,
- KW_BREAK = 283,
- KW_CONTINUE = 284,
- KW_REGEXTEN = 285,
- KW_HINT = 286,
- KW_FOR = 287,
- KW_WHILE = 288,
- KW_CASE = 289,
- KW_PATTERN = 290,
- KW_DEFAULT = 291,
- KW_CATCH = 292,
- KW_SWITCHES = 293,
- KW_ESWITCHES = 294,
- KW_INCLUDES = 295,
- word = 296
+ 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,
+ word = 297
};
#endif
/* Tokens. */
@@ -127,24 +128,25 @@
#define KW_ELSE 276
#define KW_RANDOM 277
#define KW_ABSTRACT 278
-#define EXTENMARK 279
-#define KW_GOTO 280
-#define KW_JUMP 281
-#define KW_RETURN 282
-#define KW_BREAK 283
-#define KW_CONTINUE 284
-#define KW_REGEXTEN 285
-#define KW_HINT 286
-#define KW_FOR 287
-#define KW_WHILE 288
-#define KW_CASE 289
-#define KW_PATTERN 290
-#define KW_DEFAULT 291
-#define KW_CATCH 292
-#define KW_SWITCHES 293
-#define KW_ESWITCHES 294
-#define KW_INCLUDES 295
-#define word 296
+#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 word 297
@@ -230,7 +232,7 @@ typedef union YYSTYPE
struct pval *pval; /* full objects */
}
/* Line 198 of yacc.c. */
-#line 234 "ael.tab.c"
+#line 236 "ael.tab.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -275,7 +277,7 @@ static pval *update_last(pval *, YYLTYPE *);
/* Line 221 of yacc.c. */
-#line 279 "ael.tab.c"
+#line 281 "ael.tab.c"
#ifdef short
# undef short
@@ -488,22 +490,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 14
+#define YYFINAL 17
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 314
+#define YYLAST 311
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 42
+#define YYNTOKENS 43
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 54
/* YYNRULES -- Number of rules. */
-#define YYNRULES 134
+#define YYNRULES 137
/* YYNRULES -- Number of states. */
-#define YYNSTATES 273
+#define YYNSTATES 276
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 296
+#define YYMAXUTOK 297
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -540,7 +542,7 @@ static const yytype_uint8 yytranslate[] =
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41
+ 35, 36, 37, 38, 39, 40, 41, 42
};
#if YYDEBUG
@@ -549,88 +551,89 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 7, 10, 13, 15, 17, 19,
- 21, 23, 25, 32, 34, 35, 44, 49, 50, 53,
- 56, 57, 63, 64, 66, 70, 73, 74, 77, 80,
- 82, 84, 86, 88, 90, 92, 95, 97, 102, 106,
- 111, 119, 128, 129, 132, 135, 141, 143, 151, 152,
- 157, 160, 163, 168, 170, 173, 175, 178, 182, 186,
- 188, 191, 195, 197, 200, 204, 210, 214, 216, 220,
- 224, 227, 228, 229, 230, 243, 247, 249, 253, 256,
- 259, 260, 266, 269, 272, 275, 279, 281, 284, 285,
- 287, 291, 295, 301, 307, 313, 319, 320, 323, 326,
- 331, 332, 338, 342, 343, 347, 351, 354, 356, 357,
- 359, 360, 364, 365, 368, 373, 377, 382, 383, 386,
- 388, 390, 396, 401, 406, 407, 411, 417, 420, 422,
- 426, 429, 433, 436, 441
+ 21, 23, 25, 32, 34, 35, 37, 40, 43, 52,
+ 57, 58, 61, 64, 65, 71, 72, 74, 78, 81,
+ 82, 85, 88, 90, 92, 94, 96, 98, 100, 103,
+ 105, 110, 114, 119, 127, 136, 137, 140, 143, 149,
+ 151, 159, 160, 165, 168, 171, 176, 178, 181, 183,
+ 186, 190, 194, 196, 199, 203, 205, 208, 212, 218,
+ 222, 224, 228, 232, 235, 236, 237, 238, 251, 255,
+ 257, 261, 264, 267, 268, 274, 277, 280, 283, 287,
+ 289, 292, 293, 295, 299, 303, 309, 315, 321, 327,
+ 328, 331, 334, 339, 340, 346, 350, 351, 355, 359,
+ 362, 364, 365, 367, 368, 372, 373, 376, 381, 385,
+ 390, 391, 394, 396, 398, 404, 409, 414, 415, 419,
+ 425, 428, 430, 434, 437, 441, 444, 449
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 43, 0, -1, 44, -1, 45, -1, 44, 45, -1,
- 44, 1, -1, 47, -1, 49, -1, 50, -1, 8,
- -1, 41, -1, 36, -1, 48, 3, 46, 4, 55,
- 5, -1, 23, -1, -1, 15, 41, 6, 54, 7,
- 4, 88, 5, -1, 16, 4, 51, 5, -1, -1,
- 52, 51, -1, 1, 51, -1, -1, 41, 9, 53,
- 41, 8, -1, -1, 41, -1, 54, 10, 41, -1,
- 54, 1, -1, -1, 56, 55, -1, 1, 55, -1,
- 58, -1, 95, -1, 90, -1, 91, -1, 57, -1,
- 52, -1, 41, 1, -1, 8, -1, 17, 24, 41,
- 8, -1, 41, 24, 70, -1, 30, 41, 24, 70,
- -1, 31, 6, 66, 7, 41, 24, 70, -1, 30,
- 31, 6, 66, 7, 41, 24, 70, -1, -1, 70,
- 59, -1, 1, 59, -1, 67, 11, 67, 11, 67,
- -1, 41, -1, 60, 13, 67, 13, 67, 13, 67,
- -1, -1, 6, 63, 65, 7, -1, 19, 62, -1,
- 22, 62, -1, 20, 6, 61, 7, -1, 41, -1,
- 41, 41, -1, 41, -1, 66, 41, -1, 66, 11,
- 41, -1, 66, 12, 41, -1, 41, -1, 41, 41,
- -1, 41, 41, 41, -1, 41, -1, 41, 41, -1,
- 68, 11, 41, -1, 18, 62, 4, 86, 5, -1,
- 4, 59, 5, -1, 52, -1, 25, 76, 8, -1,
- 26, 78, 8, -1, 41, 11, -1, -1, -1, -1,
- 32, 6, 71, 41, 8, 72, 41, 8, 73, 41,
- 7, 70, -1, 33, 62, 70, -1, 69, -1, 12,
- 79, 8, -1, 83, 8, -1, 41, 8, -1, -1,
- 83, 9, 74, 41, 8, -1, 28, 8, -1, 27,
- 8, -1, 29, 8, -1, 64, 70, 75, -1, 8,
- -1, 21, 70, -1, -1, 68, -1, 68, 13, 68,
- -1, 68, 10, 68, -1, 68, 13, 68, 13, 68,
- -1, 68, 10, 68, 10, 68, -1, 36, 13, 68,
- 13, 68, -1, 36, 10, 68, 10, 68, -1, -1,
- 10, 41, -1, 68, 77, -1, 68, 77, 14, 46,
- -1, -1, 41, 6, 80, 85, 7, -1, 41, 6,
- 7, -1, -1, 41, 6, 82, -1, 81, 85, 7,
- -1, 81, 7, -1, 41, -1, -1, 65, -1, -1,
- 85, 10, 84, -1, -1, 87, 86, -1, 34, 41,
- 11, 59, -1, 36, 11, 59, -1, 35, 41, 11,
- 59, -1, -1, 89, 88, -1, 70, -1, 95, -1,
- 37, 41, 4, 59, 5, -1, 38, 4, 92, 5,
- -1, 39, 4, 92, 5, -1, -1, 41, 8, 92,
- -1, 41, 14, 41, 8, 92, -1, 1, 92, -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
+ 44, 0, -1, 45, -1, 46, -1, 45, 46, -1,
+ 45, 1, -1, 48, -1, 50, -1, 51, -1, 8,
+ -1, 42, -1, 37, -1, 49, 3, 47, 4, 56,
+ 5, -1, 23, -1, -1, 24, -1, 24, 23, -1,
+ 23, 24, -1, 15, 42, 6, 55, 7, 4, 89,
+ 5, -1, 16, 4, 52, 5, -1, -1, 53, 52,
+ -1, 1, 52, -1, -1, 42, 9, 54, 42, 8,
+ -1, -1, 42, -1, 55, 10, 42, -1, 55, 1,
+ -1, -1, 57, 56, -1, 1, 56, -1, 59, -1,
+ 96, -1, 91, -1, 92, -1, 58, -1, 53, -1,
+ 42, 1, -1, 8, -1, 17, 25, 42, 8, -1,
+ 42, 25, 71, -1, 31, 42, 25, 71, -1, 32,
+ 6, 67, 7, 42, 25, 71, -1, 31, 32, 6,
+ 67, 7, 42, 25, 71, -1, -1, 71, 60, -1,
+ 1, 60, -1, 68, 11, 68, 11, 68, -1, 42,
+ -1, 61, 13, 68, 13, 68, 13, 68, -1, -1,
+ 6, 64, 66, 7, -1, 19, 63, -1, 22, 63,
+ -1, 20, 6, 62, 7, -1, 42, -1, 42, 42,
+ -1, 42, -1, 67, 42, -1, 67, 11, 42, -1,
+ 67, 12, 42, -1, 42, -1, 42, 42, -1, 42,
+ 42, 42, -1, 42, -1, 42, 42, -1, 69, 11,
+ 42, -1, 18, 63, 4, 87, 5, -1, 4, 60,
+ 5, -1, 53, -1, 26, 77, 8, -1, 27, 79,
+ 8, -1, 42, 11, -1, -1, -1, -1, 33, 6,
+ 72, 42, 8, 73, 42, 8, 74, 42, 7, 71,
+ -1, 34, 63, 71, -1, 70, -1, 12, 80, 8,
+ -1, 84, 8, -1, 42, 8, -1, -1, 84, 9,
+ 75, 42, 8, -1, 29, 8, -1, 28, 8, -1,
+ 30, 8, -1, 65, 71, 76, -1, 8, -1, 21,
+ 71, -1, -1, 69, -1, 69, 13, 69, -1, 69,
+ 10, 69, -1, 69, 13, 69, 13, 69, -1, 69,
+ 10, 69, 10, 69, -1, 37, 13, 69, 13, 69,
+ -1, 37, 10, 69, 10, 69, -1, -1, 10, 42,
+ -1, 69, 78, -1, 69, 78, 14, 47, -1, -1,
+ 42, 6, 81, 86, 7, -1, 42, 6, 7, -1,
+ -1, 42, 6, 83, -1, 82, 86, 7, -1, 82,
+ 7, -1, 42, -1, -1, 66, -1, -1, 86, 10,
+ 85, -1, -1, 88, 87, -1, 35, 42, 11, 60,
+ -1, 37, 11, 60, -1, 36, 42, 11, 60, -1,
+ -1, 90, 89, -1, 71, -1, 96, -1, 38, 42,
+ 4, 60, 5, -1, 39, 4, 93, 5, -1, 40,
+ 4, 93, 5, -1, -1, 42, 8, 93, -1, 42,
+ 14, 42, 8, 93, -1, 1, 93, -1, 47, -1,
+ 47, 13, 62, -1, 94, 8, -1, 95, 94, 8,
+ -1, 95, 1, -1, 41, 4, 95, 5, -1, 41,
+ 4, 5, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 185, 185, 188, 189, 190, 193, 194, 195, 196,
- 199, 200, 203, 218, 219, 222, 228, 234, 235, 236,
- 239, 239, 246, 247, 248, 249, 252, 253, 254, 257,
- 258, 259, 260, 261, 262, 263, 264, 267, 272, 276,
- 281, 286, 296, 297, 298, 304, 309, 313, 321, 321,
- 325, 328, 331, 342, 343, 350, 351, 355, 359, 365,
- 366, 371, 379, 380, 384, 390, 399, 402, 403, 406,
- 409, 412, 413, 414, 412, 420, 424, 425, 426, 427,
- 430, 430, 463, 464, 465, 466, 470, 473, 474, 477,
- 478, 481, 484, 488, 492, 496, 502, 503, 507, 510,
- 516, 516, 521, 529, 529, 540, 547, 550, 551, 554,
- 555, 558, 561, 562, 565, 569, 573, 579, 580, 583,
- 584, 585, 591, 596, 601, 602, 603, 605, 608, 609,
- 616, 617, 618, 621, 624
+ 199, 200, 203, 212, 213, 214, 215, 216, 219, 225,
+ 231, 232, 233, 236, 236, 243, 244, 245, 246, 249,
+ 250, 251, 254, 255, 256, 257, 258, 259, 260, 261,
+ 264, 269, 273, 278, 283, 293, 294, 295, 301, 306,
+ 310, 318, 318, 322, 325, 328, 339, 340, 347, 348,
+ 352, 356, 362, 363, 368, 376, 377, 381, 387, 396,
+ 399, 400, 403, 406, 409, 410, 411, 409, 417, 421,
+ 422, 423, 424, 427, 427, 460, 461, 462, 463, 467,
+ 470, 471, 474, 475, 478, 481, 485, 489, 493, 499,
+ 500, 504, 507, 513, 513, 518, 526, 526, 537, 544,
+ 547, 548, 551, 552, 555, 558, 559, 562, 566, 570,
+ 576, 577, 580, 581, 582, 588, 593, 598, 599, 600,
+ 602, 605, 606, 613, 614, 615, 618, 621
};
#endif
@@ -642,20 +645,21 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "KW_CONTEXT", "LC", "RC", "LP", "RP",
"SEMI", "EQ", "COMMA", "COLON", "AMPER", "BAR", "AT", "KW_MACRO",
"KW_GLOBALS", "KW_IGNOREPAT", "KW_SWITCH", "KW_IF", "KW_IFTIME",
- "KW_ELSE", "KW_RANDOM", "KW_ABSTRACT", "EXTENMARK", "KW_GOTO", "KW_JUMP",
- "KW_RETURN", "KW_BREAK", "KW_CONTINUE", "KW_REGEXTEN", "KW_HINT",
- "KW_FOR", "KW_WHILE", "KW_CASE", "KW_PATTERN", "KW_DEFAULT", "KW_CATCH",
- "KW_SWITCHES", "KW_ESWITCHES", "KW_INCLUDES", "word", "$accept", "file",
- "objects", "object", "context_name", "context", "opt_abstract", "macro",
- "globals", "global_statements", "assignment", "@1", "arglist",
- "elements", "element", "ignorepat", "extension", "statements",
- "timerange", "timespec", "test_expr", "@2", "if_like_head", "word_list",
- "hint_word", "word3_list", "goto_word", "switch_statement", "statement",
- "@3", "@4", "@5", "@6", "opt_else", "target", "opt_pri", "jumptarget",
- "macro_call", "@7", "application_call_head", "@8", "application_call",
- "opt_word", "eval_arglist", "case_statements", "case_statement",
- "macro_statements", "macro_statement", "switches", "eswitches",
- "switchlist", "included_entry", "includeslist", "includes", 0
+ "KW_ELSE", "KW_RANDOM", "KW_ABSTRACT", "KW_EXTEND", "EXTENMARK",
+ "KW_GOTO", "KW_JUMP", "KW_RETURN", "KW_BREAK", "KW_CONTINUE",
+ "KW_REGEXTEN", "KW_HINT", "KW_FOR", "KW_WHILE", "KW_CASE", "KW_PATTERN",
+ "KW_DEFAULT", "KW_CATCH", "KW_SWITCHES", "KW_ESWITCHES", "KW_INCLUDES",
+ "word", "$accept", "file", "objects", "object", "context_name",
+ "context", "opt_abstract", "macro", "globals", "global_statements",
+ "assignment", "@1", "arglist", "elements", "element", "ignorepat",
+ "extension", "statements", "timerange", "timespec", "test_expr", "@2",
+ "if_like_head", "word_list", "hint_word", "word3_list", "goto_word",
+ "switch_statement", "statement", "@3", "@4", "@5", "@6", "opt_else",
+ "target", "opt_pri", "jumptarget", "macro_call", "@7",
+ "application_call_head", "@8", "application_call", "opt_word",
+ "eval_arglist", "case_statements", "case_statement", "macro_statements",
+ "macro_statement", "switches", "eswitches", "switchlist",
+ "included_entry", "includeslist", "includes", 0
};
#endif
@@ -668,46 +672,46 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296
+ 295, 296, 297
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 42, 43, 44, 44, 44, 45, 45, 45, 45,
- 46, 46, 47, 48, 48, 49, 50, 51, 51, 51,
- 53, 52, 54, 54, 54, 54, 55, 55, 55, 56,
- 56, 56, 56, 56, 56, 56, 56, 57, 58, 58,
- 58, 58, 59, 59, 59, 60, 60, 61, 63, 62,
- 64, 64, 64, 65, 65, 66, 66, 66, 66, 67,
- 67, 67, 68, 68, 68, 69, 70, 70, 70, 70,
- 70, 71, 72, 73, 70, 70, 70, 70, 70, 70,
- 74, 70, 70, 70, 70, 70, 70, 75, 75, 76,
- 76, 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, 89, 90, 91, 92, 92, 92, 92, 93, 93,
- 94, 94, 94, 95, 95
+ 0, 43, 44, 45, 45, 45, 46, 46, 46, 46,
+ 47, 47, 48, 49, 49, 49, 49, 49, 50, 51,
+ 52, 52, 52, 54, 53, 55, 55, 55, 55, 56,
+ 56, 56, 57, 57, 57, 57, 57, 57, 57, 57,
+ 58, 59, 59, 59, 59, 60, 60, 60, 61, 61,
+ 62, 64, 63, 65, 65, 65, 66, 66, 67, 67,
+ 67, 67, 68, 68, 68, 69, 69, 69, 70, 71,
+ 71, 71, 71, 71, 72, 73, 74, 71, 71, 71,
+ 71, 71, 71, 75, 71, 71, 71, 71, 71, 71,
+ 76, 76, 77, 77, 77, 77, 77, 77, 77, 78,
+ 78, 79, 79, 81, 80, 80, 83, 82, 84, 84,
+ 85, 85, 86, 86, 86, 87, 87, 88, 88, 88,
+ 89, 89, 90, 90, 90, 91, 92, 93, 93, 93,
+ 93, 94, 94, 95, 95, 95, 96, 96
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 1, 2, 2, 1, 1, 1, 1,
- 1, 1, 6, 1, 0, 8, 4, 0, 2, 2,
- 0, 5, 0, 1, 3, 2, 0, 2, 2, 1,
- 1, 1, 1, 1, 1, 2, 1, 4, 3, 4,
- 7, 8, 0, 2, 2, 5, 1, 7, 0, 4,
- 2, 2, 4, 1, 2, 1, 2, 3, 3, 1,
- 2, 3, 1, 2, 3, 5, 3, 1, 3, 3,
- 2, 0, 0, 0, 12, 3, 1, 3, 2, 2,
- 0, 5, 2, 2, 2, 3, 1, 2, 0, 1,
- 3, 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,
- 1, 5, 4, 4, 0, 3, 5, 2, 1, 3,
- 2, 3, 2, 4, 3
+ 1, 1, 6, 1, 0, 1, 2, 2, 8, 4,
+ 0, 2, 2, 0, 5, 0, 1, 3, 2, 0,
+ 2, 2, 1, 1, 1, 1, 1, 1, 2, 1,
+ 4, 3, 4, 7, 8, 0, 2, 2, 5, 1,
+ 7, 0, 4, 2, 2, 4, 1, 2, 1, 2,
+ 3, 3, 1, 2, 3, 1, 2, 3, 5, 3,
+ 1, 3, 3, 2, 0, 0, 0, 12, 3, 1,
+ 3, 2, 2, 0, 5, 2, 2, 2, 3, 1,
+ 2, 0, 1, 3, 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, 1, 5, 4, 4, 0, 3, 5,
+ 2, 1, 3, 2, 3, 2, 4, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -715,202 +719,202 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 14, 9, 0, 0, 13, 0, 0, 3, 6, 0,
- 7, 8, 0, 0, 1, 5, 4, 0, 22, 0,
- 0, 0, 0, 11, 10, 0, 23, 0, 19, 20,
- 16, 18, 0, 25, 0, 0, 0, 0, 36, 0,
- 0, 0, 0, 0, 0, 0, 34, 0, 0, 33,
- 29, 31, 32, 30, 117, 24, 0, 28, 0, 0,
- 0, 0, 0, 0, 0, 35, 0, 12, 27, 0,
- 86, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 67, 0, 76, 119, 110,
- 0, 0, 117, 120, 21, 0, 0, 0, 55, 0,
- 0, 0, 0, 0, 134, 128, 0, 0, 38, 0,
- 0, 0, 0, 0, 48, 0, 50, 0, 51, 0,
- 62, 89, 0, 96, 0, 83, 82, 84, 71, 0,
- 0, 103, 79, 70, 88, 106, 53, 109, 0, 78,
- 80, 15, 118, 37, 0, 39, 0, 0, 0, 56,
- 127, 0, 0, 122, 123, 0, 130, 132, 133, 0,
- 44, 66, 43, 100, 77, 0, 112, 46, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 68, 0, 98,
- 69, 0, 75, 0, 104, 0, 85, 54, 105, 108,
- 0, 0, 0, 57, 58, 125, 0, 129, 131, 102,
- 110, 0, 0, 0, 0, 0, 112, 60, 0, 52,
- 0, 0, 0, 91, 64, 90, 97, 0, 0, 0,
- 87, 107, 111, 0, 0, 0, 0, 0, 49, 0,
- 0, 0, 65, 113, 61, 59, 0, 0, 0, 0,
- 0, 0, 99, 72, 121, 81, 0, 40, 126, 101,
- 0, 0, 115, 0, 0, 95, 94, 93, 92, 0,
- 41, 114, 116, 0, 45, 0, 0, 73, 47, 0,
- 0, 0, 74
+ 14, 9, 0, 0, 13, 15, 0, 0, 3, 6,
+ 0, 7, 8, 0, 0, 17, 16, 1, 5, 4,
+ 0, 25, 0, 0, 0, 0, 11, 10, 0, 26,
+ 0, 22, 23, 19, 21, 0, 28, 0, 0, 0,
+ 0, 39, 0, 0, 0, 0, 0, 0, 0, 37,
+ 0, 0, 36, 32, 34, 35, 33, 120, 27, 0,
+ 31, 0, 0, 0, 0, 0, 0, 0, 38, 0,
+ 12, 30, 0, 89, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
+ 79, 122, 113, 0, 0, 120, 123, 24, 0, 0,
+ 0, 58, 0, 0, 0, 0, 0, 137, 131, 0,
+ 0, 41, 0, 0, 0, 0, 0, 51, 0, 53,
+ 0, 54, 0, 65, 92, 0, 99, 0, 86, 85,
+ 87, 74, 0, 0, 106, 82, 73, 91, 109, 56,
+ 112, 0, 81, 83, 18, 121, 40, 0, 42, 0,
+ 0, 0, 59, 130, 0, 0, 125, 126, 0, 133,
+ 135, 136, 0, 47, 69, 46, 103, 80, 0, 115,
+ 49, 0, 0, 0, 0, 0, 66, 0, 0, 0,
+ 71, 0, 101, 72, 0, 78, 0, 107, 0, 88,
+ 57, 108, 111, 0, 0, 0, 60, 61, 128, 0,
+ 132, 134, 105, 113, 0, 0, 0, 0, 0, 115,
+ 63, 0, 55, 0, 0, 0, 94, 67, 93, 100,
+ 0, 0, 0, 90, 110, 114, 0, 0, 0, 0,
+ 0, 52, 0, 0, 0, 68, 116, 64, 62, 0,
+ 0, 0, 0, 0, 0, 102, 75, 124, 84, 0,
+ 43, 129, 104, 0, 0, 118, 0, 0, 98, 97,
+ 96, 95, 0, 44, 117, 119, 0, 48, 0, 0,
+ 76, 50, 0, 0, 0, 77
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 5, 6, 7, 105, 8, 9, 10, 11, 21,
- 85, 36, 27, 47, 48, 49, 50, 110, 168, 169,
- 115, 165, 86, 137, 99, 170, 121, 87, 111, 181,
- 259, 269, 190, 186, 122, 179, 124, 113, 200, 89,
- 184, 90, 222, 138, 205, 206, 91, 92, 51, 52,
- 102, 106, 107, 53
+ -1, 6, 7, 8, 108, 9, 10, 11, 12, 24,
+ 88, 39, 30, 50, 51, 52, 53, 113, 171, 172,
+ 118, 168, 89, 140, 102, 173, 124, 90, 114, 184,
+ 262, 272, 193, 189, 125, 182, 127, 116, 203, 92,
+ 187, 93, 225, 141, 208, 209, 94, 95, 54, 55,
+ 105, 109, 110, 56
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -203
+#define YYPACT_NINF -206
static const yytype_int16 yypact[] =
{
- 92, -203, -1, 66, -203, 85, 220, -203, -203, 88,
- -203, -203, 142, 15, -203, -203, -203, -26, 110, 15,
- 144, 155, 15, -203, -203, 151, -203, 131, -203, -203,
- -203, -203, 6, -203, 157, 139, 143, 6, -203, 162,
- 53, 182, 196, 204, 207, 41, -203, 193, 6, -203,
- -203, -203, -203, -203, 150, -203, 206, -203, 171, 209,
- 195, 181, 20, 20, 13, -203, 177, -203, -203, 101,
- -203, 184, 218, 218, 221, 218, 57, 188, 222, 224,
- 225, 228, 218, 197, 141, -203, 177, -203, -203, 28,
- 95, 232, 150, -203, -203, 231, 181, 177, -203, 19,
- 20, 14, 235, 236, -203, 233, 237, 12, -203, 54,
- 239, 54, 241, 240, -203, 245, -203, 210, -203, 58,
- 211, 146, 242, 125, 246, -203, -203, -203, -203, 177,
- 249, -203, -203, -203, 234, -203, 215, -203, 17, -203,
- -203, -203, -203, -203, 22, -203, 216, 217, 219, -203,
- -203, 20, 223, -203, -203, 210, -203, -203, -203, 251,
- -203, -203, -203, 254, -203, 226, 82, -2, 250, 255,
- 257, 188, 188, -203, 188, 229, 188, -203, 230, 252,
- -203, 238, -203, 101, -203, 177, -203, -203, -203, 243,
- 244, 247, 248, -203, -203, -203, 261, -203, -203, -203,
- 226, 258, 253, 256, 262, 269, 82, 259, 260, -203,
- 260, 163, 99, 183, -203, 111, -203, -26, 267, 271,
- -203, -203, -203, 270, 263, 177, 20, 104, -203, 266,
- 272, 54, -203, -203, -203, 264, 268, 275, 188, 188,
- 188, 188, -203, -203, -203, -203, 177, -203, -203, -203,
- 54, 54, -203, 260, 260, 278, 278, 278, 278, 265,
- -203, -203, -203, 277, -203, 274, 260, -203, -203, 273,
- 284, 177, -203
+ 65, -206, 2, 64, -1, 70, 84, 231, -206, -206,
+ 108, -206, -206, 120, 13, -206, -206, -206, -206, -206,
+ 29, 88, 13, 130, 163, 13, -206, -206, 165, -206,
+ 75, -206, -206, -206, -206, 8, -206, 171, 134, 136,
+ 8, -206, 154, -22, 178, 182, 186, 189, 61, -206,
+ 200, 8, -206, -206, -206, -206, -206, 169, -206, 198,
+ -206, 152, 203, 187, 177, 14, 14, 23, -206, 196,
+ -206, -206, 128, -206, 179, 207, 207, 214, 207, 58,
+ 185, 220, 225, 227, 230, 207, 195, 174, -206, 196,
+ -206, -206, 17, 94, 235, 169, -206, -206, 233, 177,
+ 196, -206, 19, 14, 55, 237, 238, -206, 232, 236,
+ 16, -206, 86, 243, 86, 244, 241, -206, 247, -206,
+ 210, -206, 97, 211, 24, 248, 107, 249, -206, -206,
+ -206, -206, 196, 254, -206, -206, -206, 239, -206, 217,
+ -206, 117, -206, -206, -206, -206, -206, 67, -206, 219,
+ 221, 222, -206, -206, 14, 223, -206, -206, 210, -206,
+ -206, -206, 258, -206, -206, -206, 255, -206, 226, 106,
+ 0, 256, 260, 259, 185, 185, -206, 185, 229, 185,
+ -206, 234, 261, -206, 240, -206, 128, -206, 196, -206,
+ -206, -206, 242, 245, 246, 252, -206, -206, -206, 264,
+ -206, -206, -206, 226, 266, 250, 251, 263, 273, 106,
+ 253, 257, -206, 257, 142, 138, 149, -206, 161, -206,
+ 29, 271, 275, -206, -206, -206, 277, 265, 196, 14,
+ 127, -206, 270, 272, 86, -206, -206, -206, 262, 276,
+ 280, 185, 185, 185, 185, -206, -206, -206, -206, 196,
+ -206, -206, -206, 86, 86, -206, 257, 257, 283, 283,
+ 283, 283, 267, -206, -206, -206, 284, -206, 278, 257,
+ -206, -206, 268, 289, 196, -206
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -203, -203, -203, 286, -16, -203, -203, -203, -203, 121,
- 194, -203, -203, 30, -203, -203, -203, -106, -203, 138,
- 64, -203, -203, 115, 199, -202, -75, -203, -54, -203,
- -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
- -203, -203, -203, 96, 93, -203, 212, -203, -203, -203,
- -59, 191, -203, -35
+ -206, -206, -206, 291, -19, -206, -206, -206, -206, 113,
+ 32, -206, -206, -18, -206, -206, -206, -109, -206, 143,
+ -49, -206, -206, 132, 204, -205, -78, -206, -57, -206,
+ -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+ -206, -206, -206, 99, 96, -206, 212, -206, -206, -206,
+ -62, 201, -206, -50
};
/* 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 -125
+#define YYTABLE_NINF -128
static const yytype_int16 yytable[] =
{
- 88, 25, 123, 160, 103, 162, 236, 37, 237, -59,
- 23, -26, 108, 157, 38, 24, 19, 158, 104, 93,
- -17, 100, 151, 39, 188, -124, 146, 189, 152, 191,
- 147, 148, 134, 147, 148, 135, 40, 41, 88, 207,
- 12, 150, 65, 145, 42, 43, 44, 45, 23, 23,
- 29, 263, 264, 24, 24, 109, 20, 93, 69, -42,
- 149, 101, 70, 149, 268, 66, 71, 57, 171, 136,
- 13, 172, 72, 73, 74, 182, 75, 219, 68, 76,
- 77, 78, 79, 80, 59, 14, 81, 82, -42, -42,
- -42, 17, 195, 119, 60, 84, 211, 212, 120, 213,
- 1, 215, 109, 139, 140, 69, -42, 2, 3, 70,
- 175, 249, 239, 71, 189, 4, 202, 203, 204, 72,
- 73, 74, 175, 75, 241, 252, 76, 77, 78, 79,
- 80, 220, 33, 81, 82, 178, 175, 116, 34, 118,
- 28, 35, 84, 31, 261, 262, 129, 131, 18, 132,
- 29, 26, 133, 29, 69, 32, 174, 175, 70, 176,
- 30, 54, 71, 255, 256, 257, 258, 248, 72, 73,
- 74, 247, 75, 238, 175, 76, 77, 78, 79, 80,
- 55, 69, 81, 82, 56, 70, 58, 83, 61, 71,
- 44, 84, 260, 240, 175, 72, 73, 74, 67, 75,
- 62, 242, 76, 77, 78, 79, 80, 22, 63, 81,
- 82, 64, 95, 22, 94, 96, 22, 272, 84, 97,
- -2, 15, 98, -14, 114, 112, 46, 117, 1, 120,
- 125, 46, 126, 127, 128, 2, 3, 141, 130, 143,
- 153, 154, 46, 4, 161, 156, 155, 163, 164, 166,
- 177, 167, 173, 183, 180, 185, 187, 192, 193, 198,
- 194, 199, 209, 208, 196, 228, 217, 136, 210, 226,
- 214, 216, 225, 231, 232, 243, 244, 250, 245, 218,
- 201, 253, 267, 251, 221, 223, 254, 246, 224, 175,
- 266, 271, 16, 197, 229, 144, 227, 230, 159, 233,
- 234, 235, 0, 0, 142, 207, 265, 0, 0, 0,
- 0, 0, 0, 0, 270
+ 91, 28, 126, 163, 106, 165, 239, 96, 240, 40,
+ 62, -62, 111, -29, 22, 103, 41, 160, -20, -127,
+ 63, 161, 60, 15, 138, 42, 149, 119, 107, 121,
+ 150, 151, 137, 71, 177, 178, 132, 179, 91, 43,
+ 44, 153, 210, 148, 13, 96, 25, 45, 46, 47,
+ 48, 266, 267, 26, 25, 23, 104, 25, 27, 139,
+ 26, 152, 68, 154, 271, 27, 26, 49, 14, 155,
+ 32, 27, 49, 1, 194, 185, 36, 222, 150, 151,
+ 2, 3, 37, 49, 17, 38, 69, 112, 4, 5,
+ 72, -45, 198, 16, 73, 122, 214, 215, 74, 216,
+ 123, 218, 142, 143, 75, 76, 77, 174, 78, 152,
+ 175, 20, 79, 80, 81, 82, 83, 181, 178, 84,
+ 85, -45, -45, -45, 191, 255, 21, 192, 87, 112,
+ 29, 223, 72, -45, 252, 31, 73, 192, 34, 32,
+ 74, 205, 206, 207, 264, 265, 75, 76, 77, 178,
+ 78, 242, 241, 178, 79, 80, 81, 82, 83, 243,
+ 178, 84, 85, 258, 259, 260, 261, 251, 33, 35,
+ 87, 250, 178, 72, 244, 57, 58, 73, 59, 61,
+ 134, 74, 135, 32, 64, 136, 65, 75, 76, 77,
+ 66, 78, 263, 67, 98, 79, 80, 81, 82, 83,
+ 72, 245, 84, 85, 73, 70, 97, 86, 74, 99,
+ 47, 87, 100, 117, 75, 76, 77, 275, 78, 101,
+ 120, 115, 79, 80, 81, 82, 83, 123, 128, 84,
+ 85, -2, 18, 129, -14, 130, 131, 133, 87, 1,
+ 144, 146, 156, 157, 159, 158, 2, 3, 164, 167,
+ 166, 169, 170, 176, 4, 5, 180, 183, 186, 190,
+ 188, 195, 202, 196, 197, 199, 201, 212, 139, 211,
+ 213, 217, 229, 231, 234, 220, 219, 228, 235, 246,
+ 247, 253, 221, 254, 224, 248, 270, 226, 227, 256,
+ 249, 257, 232, 233, 178, 237, 274, 269, 19, 238,
+ 204, 200, 230, 147, 210, 236, 0, 145, 0, 268,
+ 273, 162
};
static const yytype_int16 yycheck[] =
{
- 54, 17, 77, 109, 63, 111, 208, 1, 210, 11,
- 36, 5, 66, 1, 8, 41, 1, 5, 5, 54,
- 5, 1, 8, 17, 7, 5, 7, 10, 14, 7,
- 11, 12, 86, 11, 12, 7, 30, 31, 92, 41,
- 41, 100, 1, 97, 38, 39, 40, 41, 36, 36,
- 9, 253, 254, 41, 41, 1, 41, 92, 4, 5,
- 41, 41, 8, 41, 266, 24, 12, 37, 10, 41,
- 4, 13, 18, 19, 20, 129, 22, 183, 48, 25,
- 26, 27, 28, 29, 31, 0, 32, 33, 34, 35,
- 36, 3, 151, 36, 41, 41, 171, 172, 41, 174,
- 8, 176, 1, 8, 9, 4, 5, 15, 16, 8,
- 11, 7, 13, 12, 10, 23, 34, 35, 36, 18,
- 19, 20, 11, 22, 13, 231, 25, 26, 27, 28,
- 29, 185, 1, 32, 33, 10, 11, 73, 7, 75,
- 19, 10, 41, 22, 250, 251, 82, 6, 6, 8,
- 9, 41, 11, 9, 4, 4, 10, 11, 8, 13,
- 5, 4, 12, 238, 239, 240, 241, 226, 18, 19,
- 20, 225, 22, 10, 11, 25, 26, 27, 28, 29,
- 41, 4, 32, 33, 41, 8, 24, 37, 6, 12,
- 40, 41, 246, 10, 11, 18, 19, 20, 5, 22,
- 4, 217, 25, 26, 27, 28, 29, 13, 4, 32,
- 33, 4, 41, 19, 8, 6, 22, 271, 41, 24,
- 0, 1, 41, 3, 6, 41, 32, 6, 8, 41,
- 8, 37, 8, 8, 6, 15, 16, 5, 41, 8,
- 5, 5, 48, 23, 5, 8, 13, 6, 8, 4,
- 8, 41, 41, 4, 8, 21, 41, 41, 41, 8,
- 41, 7, 7, 13, 41, 7, 14, 41, 11, 8,
- 41, 41, 24, 11, 5, 8, 5, 11, 8, 41,
- 165, 13, 8, 11, 41, 41, 11, 24, 41, 11,
- 13, 7, 6, 155, 41, 96, 200, 41, 107, 206,
- 41, 41, -1, -1, 92, 41, 41, -1, -1, -1,
- -1, -1, -1, -1, 41
+ 57, 20, 80, 112, 66, 114, 211, 57, 213, 1,
+ 32, 11, 69, 5, 1, 1, 8, 1, 5, 5,
+ 42, 5, 40, 24, 7, 17, 7, 76, 5, 78,
+ 11, 12, 89, 51, 10, 11, 85, 13, 95, 31,
+ 32, 103, 42, 100, 42, 95, 14, 39, 40, 41,
+ 42, 256, 257, 37, 22, 42, 42, 25, 42, 42,
+ 37, 42, 1, 8, 269, 42, 37, 35, 4, 14,
+ 9, 42, 40, 8, 7, 132, 1, 186, 11, 12,
+ 15, 16, 7, 51, 0, 10, 25, 1, 23, 24,
+ 4, 5, 154, 23, 8, 37, 174, 175, 12, 177,
+ 42, 179, 8, 9, 18, 19, 20, 10, 22, 42,
+ 13, 3, 26, 27, 28, 29, 30, 10, 11, 33,
+ 34, 35, 36, 37, 7, 234, 6, 10, 42, 1,
+ 42, 188, 4, 5, 7, 22, 8, 10, 25, 9,
+ 12, 35, 36, 37, 253, 254, 18, 19, 20, 11,
+ 22, 13, 10, 11, 26, 27, 28, 29, 30, 10,
+ 11, 33, 34, 241, 242, 243, 244, 229, 5, 4,
+ 42, 228, 11, 4, 13, 4, 42, 8, 42, 25,
+ 6, 12, 8, 9, 6, 11, 4, 18, 19, 20,
+ 4, 22, 249, 4, 42, 26, 27, 28, 29, 30,
+ 4, 220, 33, 34, 8, 5, 8, 38, 12, 6,
+ 41, 42, 25, 6, 18, 19, 20, 274, 22, 42,
+ 6, 42, 26, 27, 28, 29, 30, 42, 8, 33,
+ 34, 0, 1, 8, 3, 8, 6, 42, 42, 8,
+ 5, 8, 5, 5, 8, 13, 15, 16, 5, 8,
+ 6, 4, 42, 42, 23, 24, 8, 8, 4, 42,
+ 21, 42, 7, 42, 42, 42, 8, 7, 42, 13,
+ 11, 42, 8, 7, 11, 14, 42, 25, 5, 8,
+ 5, 11, 42, 11, 42, 8, 8, 42, 42, 13,
+ 25, 11, 42, 42, 11, 42, 7, 13, 7, 42,
+ 168, 158, 203, 99, 42, 209, -1, 95, -1, 42,
+ 42, 110
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 8, 15, 16, 23, 43, 44, 45, 47, 48,
- 49, 50, 41, 4, 0, 1, 45, 3, 6, 1,
- 41, 51, 52, 36, 41, 46, 41, 54, 51, 9,
- 5, 51, 4, 1, 7, 10, 53, 1, 8, 17,
- 30, 31, 38, 39, 40, 41, 52, 55, 56, 57,
- 58, 90, 91, 95, 4, 41, 41, 55, 24, 31,
- 41, 6, 4, 4, 4, 1, 24, 5, 55, 4,
- 8, 12, 18, 19, 20, 22, 25, 26, 27, 28,
- 29, 32, 33, 37, 41, 52, 64, 69, 70, 81,
- 83, 88, 89, 95, 8, 41, 6, 24, 41, 66,
- 1, 41, 92, 92, 5, 46, 93, 94, 70, 1,
- 59, 70, 41, 79, 6, 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, 11, 12, 41,
- 92, 8, 14, 5, 5, 13, 8, 1, 5, 93,
- 59, 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, 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
+ 0, 8, 15, 16, 23, 24, 44, 45, 46, 48,
+ 49, 50, 51, 42, 4, 24, 23, 0, 1, 46,
+ 3, 6, 1, 42, 52, 53, 37, 42, 47, 42,
+ 55, 52, 9, 5, 52, 4, 1, 7, 10, 54,
+ 1, 8, 17, 31, 32, 39, 40, 41, 42, 53,
+ 56, 57, 58, 59, 91, 92, 96, 4, 42, 42,
+ 56, 25, 32, 42, 6, 4, 4, 4, 1, 25,
+ 5, 56, 4, 8, 12, 18, 19, 20, 22, 26,
+ 27, 28, 29, 30, 33, 34, 38, 42, 53, 65,
+ 70, 71, 82, 84, 89, 90, 96, 8, 42, 6,
+ 25, 42, 67, 1, 42, 93, 93, 5, 47, 94,
+ 95, 71, 1, 60, 71, 42, 80, 6, 63, 63,
+ 6, 63, 37, 42, 69, 77, 69, 79, 8, 8,
+ 8, 6, 63, 42, 6, 8, 11, 71, 7, 42,
+ 66, 86, 8, 9, 5, 89, 8, 67, 71, 7,
+ 11, 12, 42, 93, 8, 14, 5, 5, 13, 8,
+ 1, 5, 94, 60, 5, 60, 6, 8, 64, 4,
+ 42, 61, 62, 68, 10, 13, 42, 10, 11, 13,
+ 8, 10, 78, 8, 72, 71, 4, 83, 21, 76,
+ 42, 7, 10, 75, 7, 42, 42, 42, 93, 42,
+ 62, 8, 7, 81, 66, 35, 36, 37, 87, 88,
+ 42, 13, 7, 11, 69, 69, 69, 42, 69, 42,
+ 14, 42, 60, 71, 42, 85, 42, 42, 25, 8,
+ 86, 7, 42, 42, 11, 5, 87, 42, 42, 68,
+ 68, 10, 13, 10, 13, 47, 8, 5, 8, 25,
+ 71, 93, 7, 11, 11, 60, 13, 11, 69, 69,
+ 69, 69, 73, 71, 60, 60, 68, 68, 42, 13,
+ 8, 68, 74, 42, 7, 71
};
#define yyerrok (yyerrstatus = 0)
@@ -1432,322 +1436,322 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
switch (yytype)
{
- case 41: /* "word" */
+ case 42: /* "word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1439 "ael.tab.c"
+#line 1443 "ael.tab.c"
break;
- case 44: /* "objects" */
+ case 45: /* "objects" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1447 "ael.tab.c"
+#line 1451 "ael.tab.c"
break;
- case 45: /* "object" */
+ case 46: /* "object" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1455 "ael.tab.c"
+#line 1459 "ael.tab.c"
break;
- case 46: /* "context_name" */
+ case 47: /* "context_name" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1460 "ael.tab.c"
+#line 1464 "ael.tab.c"
break;
- case 47: /* "context" */
+ case 48: /* "context" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1468 "ael.tab.c"
+#line 1472 "ael.tab.c"
break;
- case 49: /* "macro" */
+ case 50: /* "macro" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1476 "ael.tab.c"
+#line 1480 "ael.tab.c"
break;
- case 50: /* "globals" */
+ case 51: /* "globals" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1484 "ael.tab.c"
+#line 1488 "ael.tab.c"
break;
- case 51: /* "global_statements" */
+ case 52: /* "global_statements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1492 "ael.tab.c"
+#line 1496 "ael.tab.c"
break;
- case 52: /* "assignment" */
+ case 53: /* "assignment" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1500 "ael.tab.c"
+#line 1504 "ael.tab.c"
break;
- case 54: /* "arglist" */
+ case 55: /* "arglist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1508 "ael.tab.c"
+#line 1512 "ael.tab.c"
break;
- case 55: /* "elements" */
+ case 56: /* "elements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1516 "ael.tab.c"
+#line 1520 "ael.tab.c"
break;
- case 56: /* "element" */
+ case 57: /* "element" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1524 "ael.tab.c"
+#line 1528 "ael.tab.c"
break;
- case 57: /* "ignorepat" */
+ case 58: /* "ignorepat" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1532 "ael.tab.c"
+#line 1536 "ael.tab.c"
break;
- case 58: /* "extension" */
+ case 59: /* "extension" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1540 "ael.tab.c"
+#line 1544 "ael.tab.c"
break;
- case 59: /* "statements" */
+ case 60: /* "statements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1548 "ael.tab.c"
+#line 1552 "ael.tab.c"
break;
- case 60: /* "timerange" */
+ case 61: /* "timerange" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1553 "ael.tab.c"
+#line 1557 "ael.tab.c"
break;
- case 61: /* "timespec" */
+ case 62: /* "timespec" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1561 "ael.tab.c"
+#line 1565 "ael.tab.c"
break;
- case 62: /* "test_expr" */
+ case 63: /* "test_expr" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1566 "ael.tab.c"
+#line 1570 "ael.tab.c"
break;
- case 64: /* "if_like_head" */
+ case 65: /* "if_like_head" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1574 "ael.tab.c"
+#line 1578 "ael.tab.c"
break;
- case 65: /* "word_list" */
+ case 66: /* "word_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1579 "ael.tab.c"
+#line 1583 "ael.tab.c"
break;
- case 67: /* "word3_list" */
+ case 68: /* "word3_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1584 "ael.tab.c"
+#line 1588 "ael.tab.c"
break;
- case 68: /* "goto_word" */
+ case 69: /* "goto_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1589 "ael.tab.c"
+#line 1593 "ael.tab.c"
break;
- case 69: /* "switch_statement" */
+ case 70: /* "switch_statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1597 "ael.tab.c"
+#line 1601 "ael.tab.c"
break;
- case 70: /* "statement" */
+ case 71: /* "statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1605 "ael.tab.c"
+#line 1609 "ael.tab.c"
break;
- case 75: /* "opt_else" */
+ case 76: /* "opt_else" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1613 "ael.tab.c"
+#line 1617 "ael.tab.c"
break;
- case 76: /* "target" */
+ case 77: /* "target" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1621 "ael.tab.c"
+#line 1625 "ael.tab.c"
break;
- case 77: /* "opt_pri" */
+ case 78: /* "opt_pri" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1626 "ael.tab.c"
+#line 1630 "ael.tab.c"
break;
- case 78: /* "jumptarget" */
+ case 79: /* "jumptarget" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1634 "ael.tab.c"
+#line 1638 "ael.tab.c"
break;
- case 79: /* "macro_call" */
+ case 80: /* "macro_call" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1642 "ael.tab.c"
+#line 1646 "ael.tab.c"
break;
- case 81: /* "application_call_head" */
+ case 82: /* "application_call_head" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1650 "ael.tab.c"
+#line 1654 "ael.tab.c"
break;
- case 83: /* "application_call" */
+ case 84: /* "application_call" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1658 "ael.tab.c"
+#line 1662 "ael.tab.c"
break;
- case 84: /* "opt_word" */
+ case 85: /* "opt_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1663 "ael.tab.c"
+#line 1667 "ael.tab.c"
break;
- case 85: /* "eval_arglist" */
+ case 86: /* "eval_arglist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1671 "ael.tab.c"
+#line 1675 "ael.tab.c"
break;
- case 86: /* "case_statements" */
+ case 87: /* "case_statements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1679 "ael.tab.c"
+#line 1683 "ael.tab.c"
break;
- case 87: /* "case_statement" */
+ case 88: /* "case_statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1687 "ael.tab.c"
+#line 1691 "ael.tab.c"
break;
- case 88: /* "macro_statements" */
+ case 89: /* "macro_statements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1695 "ael.tab.c"
+#line 1699 "ael.tab.c"
break;
- case 89: /* "macro_statement" */
+ case 90: /* "macro_statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1703 "ael.tab.c"
+#line 1707 "ael.tab.c"
break;
- case 90: /* "switches" */
+ case 91: /* "switches" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1711 "ael.tab.c"
+#line 1715 "ael.tab.c"
break;
- case 91: /* "eswitches" */
+ case 92: /* "eswitches" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1719 "ael.tab.c"
+#line 1723 "ael.tab.c"
break;
- case 92: /* "switchlist" */
+ case 93: /* "switchlist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1727 "ael.tab.c"
+#line 1731 "ael.tab.c"
break;
- case 93: /* "included_entry" */
+ case 94: /* "included_entry" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1735 "ael.tab.c"
+#line 1739 "ael.tab.c"
break;
- case 94: /* "includeslist" */
+ case 95: /* "includeslist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1743 "ael.tab.c"
+#line 1747 "ael.tab.c"
break;
- case 95: /* "includes" */
+ case 96: /* "includes" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1751 "ael.tab.c"
+#line 1755 "ael.tab.c"
break;
default:
@@ -2122,165 +2126,174 @@ yyreduce:
case 12:
#line 203 "ael.y"
{
- if (!(yyvsp[(5) - (6)].pval)) {
- ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
- my_file, (yylsp[(4) - (6)]).first_line, (yylsp[(4) - (6)]).first_column, (yylsp[(4) - (6)]).last_column, (yyvsp[(3) - (6)].str) );
- (yyval.pval) = 0;
- free((yyvsp[(3) - (6)].str));
- } else {
- (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
- (yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
- (yyval.pval)->u2.statements = (yyvsp[(5) - (6)].pval);
- set_dads((yyval.pval),(yyvsp[(5) - (6)].pval));
- (yyval.pval)->u3.abstract = (yyvsp[(1) - (6)].intval);} ;}
+ (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
+ (yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
+ (yyval.pval)->u2.statements = (yyvsp[(5) - (6)].pval);
+ set_dads((yyval.pval),(yyvsp[(5) - (6)].pval));
+ (yyval.pval)->u3.abstract = (yyvsp[(1) - (6)].intval);;}
break;
case 13:
-#line 218 "ael.y"
+#line 212 "ael.y"
{ (yyval.intval) = 1; ;}
break;
case 14:
-#line 219 "ael.y"
+#line 213 "ael.y"
{ (yyval.intval) = 0; ;}
break;
case 15:
-#line 222 "ael.y"
+#line 214 "ael.y"
+ { (yyval.intval) = 2; ;}
+ break;
+
+ case 16:
+#line 215 "ael.y"
+ { (yyval.intval)=3; ;}
+ break;
+
+ case 17:
+#line 216 "ael.y"
+ { (yyval.intval)=3; ;}
+ break;
+
+ case 18:
+#line 219 "ael.y"
{
(yyval.pval) = npval2(PV_MACRO, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (8)].str); (yyval.pval)->u2.arglist = (yyvsp[(4) - (8)].pval); (yyval.pval)->u3.macro_statements = (yyvsp[(7) - (8)].pval);
set_dads((yyval.pval),(yyvsp[(7) - (8)].pval));;}
break;
- case 16:
-#line 228 "ael.y"
+ case 19:
+#line 225 "ael.y"
{
(yyval.pval) = npval2(PV_GLOBALS, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.statements = (yyvsp[(3) - (4)].pval);
set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
- case 17:
-#line 234 "ael.y"
+ case 20:
+#line 231 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 18:
-#line 235 "ael.y"
+ case 21:
+#line 232 "ael.y"
{(yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 19:
-#line 236 "ael.y"
+ case 22:
+#line 233 "ael.y"
{(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
- case 20:
-#line 239 "ael.y"
+ case 23:
+#line 236 "ael.y"
{ reset_semicount(parseio->scanner); ;}
break;
- case 21:
-#line 239 "ael.y"
+ case 24:
+#line 236 "ael.y"
{
(yyval.pval) = npval2(PV_VARDEC, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (5)].str);
(yyval.pval)->u2.val = (yyvsp[(4) - (5)].str); ;}
break;
- case 22:
-#line 246 "ael.y"
+ case 25:
+#line 243 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 23:
-#line 247 "ael.y"
+ case 26:
+#line 244 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 24:
-#line 248 "ael.y"
+ case 27:
+#line 245 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
break;
- case 25:
-#line 249 "ael.y"
+ case 28:
+#line 246 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
- case 26:
-#line 252 "ael.y"
+ case 29:
+#line 249 "ael.y"
{(yyval.pval)=0;;}
break;
- case 27:
-#line 253 "ael.y"
+ case 30:
+#line 250 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 28:
-#line 254 "ael.y"
+ case 31:
+#line 251 "ael.y"
{ (yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
- case 29:
-#line 257 "ael.y"
+ case 32:
+#line 254 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 30:
-#line 258 "ael.y"
+ case 33:
+#line 255 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 31:
-#line 259 "ael.y"
+ case 34:
+#line 256 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 32:
-#line 260 "ael.y"
+ case 35:
+#line 257 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 33:
-#line 261 "ael.y"
+ case 36:
+#line 258 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 34:
-#line 262 "ael.y"
+ case 37:
+#line 259 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 35:
-#line 263 "ael.y"
+ case 38:
+#line 260 "ael.y"
{free((yyvsp[(1) - (2)].str)); (yyval.pval)=0;;}
break;
- case 36:
-#line 264 "ael.y"
+ case 39:
+#line 261 "ael.y"
{(yyval.pval)=0;/* allow older docs to be read */;}
break;
- case 37:
-#line 267 "ael.y"
+ case 40:
+#line 264 "ael.y"
{
(yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.str = (yyvsp[(3) - (4)].str);;}
break;
- case 38:
-#line 272 "ael.y"
+ case 41:
+#line 269 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (3)].str);
(yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval); set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;}
break;
- case 39:
-#line 276 "ael.y"
+ case 42:
+#line 273 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2288,8 +2301,8 @@ yyreduce:
(yyval.pval)->u4.regexten=1;;}
break;
- case 40:
-#line 281 "ael.y"
+ case 43:
+#line 278 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (7)]), &(yylsp[(7) - (7)]));
(yyval.pval)->u1.str = (yyvsp[(5) - (7)].str);
@@ -2297,8 +2310,8 @@ yyreduce:
(yyval.pval)->u3.hints = (yyvsp[(3) - (7)].str);;}
break;
- case 41:
-#line 286 "ael.y"
+ case 44:
+#line 283 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
(yyval.pval)->u1.str = (yyvsp[(6) - (8)].str);
@@ -2307,23 +2320,23 @@ yyreduce:
(yyval.pval)->u3.hints = (yyvsp[(4) - (8)].str);;}
break;
- case 42:
-#line 296 "ael.y"
+ case 45:
+#line 293 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 43:
-#line 297 "ael.y"
+ case 46:
+#line 294 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 44:
-#line 298 "ael.y"
+ case 47:
+#line 295 "ael.y"
{(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
- case 45:
-#line 304 "ael.y"
+ case 48:
+#line 301 "ael.y"
{
asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str));
free((yyvsp[(1) - (5)].str));
@@ -2331,13 +2344,13 @@ yyreduce:
free((yyvsp[(5) - (5)].str)); ;}
break;
- case 46:
-#line 309 "ael.y"
+ case 49:
+#line 306 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
- case 47:
-#line 313 "ael.y"
+ case 50:
+#line 310 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (7)].str), &(yylsp[(1) - (7)]));
(yyval.pval)->next = nword((yyvsp[(3) - (7)].str), &(yylsp[(3) - (7)]));
@@ -2345,45 +2358,45 @@ yyreduce:
(yyval.pval)->next->next->next = nword((yyvsp[(7) - (7)].str), &(yylsp[(7) - (7)])); ;}
break;
- case 48:
-#line 321 "ael.y"
+ case 51:
+#line 318 "ael.y"
{ reset_parencount(parseio->scanner); ;}
break;
- case 49:
-#line 321 "ael.y"
+ case 52:
+#line 318 "ael.y"
{ (yyval.str) = (yyvsp[(3) - (4)].str); ;}
break;
- case 50:
-#line 325 "ael.y"
+ case 53:
+#line 322 "ael.y"
{
(yyval.pval)= npval2(PV_IF, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (2)].str); ;}
break;
- case 51:
-#line 328 "ael.y"
+ case 54:
+#line 325 "ael.y"
{
(yyval.pval) = npval2(PV_RANDOM, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str=(yyvsp[(2) - (2)].str);;}
break;
- case 52:
-#line 331 "ael.y"
+ case 55:
+#line 328 "ael.y"
{
(yyval.pval) = npval2(PV_IFTIME, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);
prev_word = 0; ;}
break;
- case 53:
-#line 342 "ael.y"
+ case 56:
+#line 339 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
- case 54:
-#line 343 "ael.y"
+ case 57:
+#line 340 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
@@ -2391,42 +2404,42 @@ yyreduce:
prev_word = (yyval.str);;}
break;
- case 55:
-#line 350 "ael.y"
+ case 58:
+#line 347 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
- case 56:
-#line 351 "ael.y"
+ case 59:
+#line 348 "ael.y"
{
asprintf(&((yyval.str)), "%s %s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
free((yyvsp[(2) - (2)].str)); ;}
break;
- case 57:
-#line 355 "ael.y"
+ case 60:
+#line 352 "ael.y"
{
asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
free((yyvsp[(3) - (3)].str)); ;}
break;
- case 58:
-#line 359 "ael.y"
+ case 61:
+#line 356 "ael.y"
{ /* there are often '&' in hints */
asprintf(&((yyval.str)), "%s&%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
free((yyvsp[(3) - (3)].str));;}
break;
- case 59:
-#line 365 "ael.y"
+ case 62:
+#line 362 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
- case 60:
-#line 366 "ael.y"
+ case 63:
+#line 363 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
@@ -2434,8 +2447,8 @@ yyreduce:
prev_word = (yyval.str);;}
break;
- case 61:
-#line 371 "ael.y"
+ case 64:
+#line 368 "ael.y"
{
asprintf(&((yyval.str)), "%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
@@ -2444,85 +2457,85 @@ yyreduce:
prev_word=(yyval.str);;}
break;
- case 62:
-#line 379 "ael.y"
+ case 65:
+#line 376 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
- case 63:
-#line 380 "ael.y"
+ case 66:
+#line 377 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
free((yyvsp[(2) - (2)].str));;}
break;
- case 64:
-#line 384 "ael.y"
+ case 67:
+#line 381 "ael.y"
{
asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
free((yyvsp[(3) - (3)].str));;}
break;
- case 65:
-#line 390 "ael.y"
+ case 68:
+#line 387 "ael.y"
{
(yyval.pval) = npval2(PV_SWITCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
(yyval.pval)->u2.statements = (yyvsp[(4) - (5)].pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));;}
break;
- case 66:
-#line 399 "ael.y"
+ case 69:
+#line 396 "ael.y"
{
(yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));;}
break;
- case 67:
-#line 402 "ael.y"
+ case 70:
+#line 399 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
- case 68:
-#line 403 "ael.y"
+ case 71:
+#line 400 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
- case 69:
-#line 406 "ael.y"
+ case 72:
+#line 403 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
- case 70:
-#line 409 "ael.y"
+ case 73:
+#line 406 "ael.y"
{
(yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;}
break;
- case 71:
-#line 412 "ael.y"
+ case 74:
+#line 409 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 72:
-#line 413 "ael.y"
+ case 75:
+#line 410 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 73:
-#line 414 "ael.y"
+ case 76:
+#line 411 "ael.y"
{reset_parencount(parseio->scanner);;}
break;
- case 74:
-#line 414 "ael.y"
+ case 77:
+#line 411 "ael.y"
{ /* XXX word_list maybe ? */
(yyval.pval) = npval2(PV_FOR, &(yylsp[(1) - (12)]), &(yylsp[(12) - (12)]));
(yyval.pval)->u1.for_init = (yyvsp[(4) - (12)].str);
@@ -2531,43 +2544,43 @@ yyreduce:
(yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));;}
break;
- case 75:
-#line 420 "ael.y"
+ case 78:
+#line 417 "ael.y"
{
(yyval.pval) = npval2(PV_WHILE, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (3)].str);
(yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval); set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;}
break;
- case 76:
-#line 424 "ael.y"
+ case 79:
+#line 421 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
- case 77:
-#line 425 "ael.y"
+ case 80:
+#line 422 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;}
break;
- case 78:
-#line 426 "ael.y"
+ case 81:
+#line 423 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
- case 79:
-#line 427 "ael.y"
+ case 82:
+#line 424 "ael.y"
{
(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;}
break;
- case 80:
-#line 430 "ael.y"
+ case 83:
+#line 427 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 81:
-#line 430 "ael.y"
+ case 84:
+#line 427 "ael.y"
{
char *bufx;
int tot=0;
@@ -2603,127 +2616,127 @@ yyreduce:
;}
break;
- case 82:
-#line 463 "ael.y"
+ case 85:
+#line 460 "ael.y"
{ (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 83:
-#line 464 "ael.y"
+ case 86:
+#line 461 "ael.y"
{ (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 84:
-#line 465 "ael.y"
+ case 87:
+#line 462 "ael.y"
{ (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 85:
-#line 466 "ael.y"
+ case 88:
+#line 463 "ael.y"
{
(yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(2) - (3)]));
(yyval.pval)->u2.statements = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));
(yyval.pval)->u3.else_statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;}
break;
- case 86:
-#line 470 "ael.y"
+ case 89:
+#line 467 "ael.y"
{ (yyval.pval)=0; ;}
break;
- case 87:
-#line 473 "ael.y"
+ case 90:
+#line 470 "ael.y"
{ (yyval.pval) = (yyvsp[(2) - (2)].pval); ;}
break;
- case 88:
-#line 474 "ael.y"
+ case 91:
+#line 471 "ael.y"
{ (yyval.pval) = NULL ; ;}
break;
- case 89:
-#line 477 "ael.y"
+ case 92:
+#line 474 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 90:
-#line 478 "ael.y"
+ case 93:
+#line 475 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
(yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;}
break;
- case 91:
-#line 481 "ael.y"
+ case 94:
+#line 478 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
(yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;}
break;
- case 92:
-#line 484 "ael.y"
+ case 95:
+#line 481 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
(yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;}
break;
- case 93:
-#line 488 "ael.y"
+ case 96:
+#line 485 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
(yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;}
break;
- case 94:
-#line 492 "ael.y"
+ case 97:
+#line 489 "ael.y"
{
(yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
(yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;}
break;
- case 95:
-#line 496 "ael.y"
+ case 98:
+#line 493 "ael.y"
{
(yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
(yyval.pval)->next->next = nword((yyvsp[(5) - (5)].str), &(yylsp[(5) - (5)])); ;}
break;
- case 96:
-#line 502 "ael.y"
+ case 99:
+#line 499 "ael.y"
{ (yyval.str) = strdup("1"); ;}
break;
- case 97:
-#line 503 "ael.y"
+ case 100:
+#line 500 "ael.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); ;}
break;
- case 98:
-#line 507 "ael.y"
+ case 101:
+#line 504 "ael.y"
{ /* ext[, pri] default 1 */
(yyval.pval) = nword((yyvsp[(1) - (2)].str), &(yylsp[(1) - (2)]));
(yyval.pval)->next = nword((yyvsp[(2) - (2)].str), &(yylsp[(2) - (2)])); ;}
break;
- case 99:
-#line 510 "ael.y"
+ case 102:
+#line 507 "ael.y"
{ /* context, ext, pri */
(yyval.pval) = nword((yyvsp[(4) - (4)].str), &(yylsp[(4) - (4)]));
(yyval.pval)->next = nword((yyvsp[(1) - (4)].str), &(yylsp[(1) - (4)]));
(yyval.pval)->next->next = nword((yyvsp[(2) - (4)].str), &(yylsp[(2) - (4)])); ;}
break;
- case 100:
-#line 516 "ael.y"
+ case 103:
+#line 513 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
- case 101:
-#line 516 "ael.y"
+ case 104:
+#line 513 "ael.y"
{
/* XXX original code had @2 but i think we need @5 */
(yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
@@ -2731,20 +2744,20 @@ yyreduce:
(yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].pval);;}
break;
- case 102:
-#line 521 "ael.y"
+ case 105:
+#line 518 "ael.y"
{
(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;}
break;
- case 103:
-#line 529 "ael.y"
+ case 106:
+#line 526 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
- case 104:
-#line 529 "ael.y"
+ case 107:
+#line 526 "ael.y"
{
if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) {
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
@@ -2756,8 +2769,8 @@ yyreduce:
} ;}
break;
- case 105:
-#line 540 "ael.y"
+ case 108:
+#line 537 "ael.y"
{
(yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)]));
if( (yyval.pval)->type == PV_GOTO )
@@ -2767,179 +2780,179 @@ yyreduce:
;}
break;
- case 106:
-#line 547 "ael.y"
+ case 109:
+#line 544 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
- case 107:
-#line 550 "ael.y"
+ case 110:
+#line 547 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str) ;}
break;
- case 108:
-#line 551 "ael.y"
+ case 111:
+#line 548 "ael.y"
{ (yyval.str) = strdup(""); ;}
break;
- case 109:
-#line 554 "ael.y"
+ case 112:
+#line 551 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 110:
-#line 555 "ael.y"
+ case 113:
+#line 552 "ael.y"
{
(yyval.pval)= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/);
(yyval.pval)->u1.str = strdup(""); ;}
break;
- case 111:
-#line 558 "ael.y"
+ case 114:
+#line 555 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
break;
- case 112:
-#line 561 "ael.y"
+ case 115:
+#line 558 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 113:
-#line 562 "ael.y"
+ case 116:
+#line 559 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 114:
-#line 565 "ael.y"
+ case 117:
+#line 562 "ael.y"
{
(yyval.pval) = npval2(PV_CASE, &(yylsp[(1) - (4)]), &(yylsp[(3) - (4)])); /* XXX 3 or 4 ? */
(yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
(yyval.pval)->u2.statements = (yyvsp[(4) - (4)].pval); set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));;}
break;
- case 115:
-#line 569 "ael.y"
+ case 118:
+#line 566 "ael.y"
{
(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = NULL;
(yyval.pval)->u2.statements = (yyvsp[(3) - (3)].pval);set_dads((yyval.pval),(yyvsp[(3) - (3)].pval));;}
break;
- case 116:
-#line 573 "ael.y"
+ case 119:
+#line 570 "ael.y"
{
(yyval.pval) = npval2(PV_PATTERN, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); /* XXX@3 or @4 ? */
(yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
(yyval.pval)->u2.statements = (yyvsp[(4) - (4)].pval);set_dads((yyval.pval),(yyvsp[(4) - (4)].pval));;}
break;
- case 117:
-#line 579 "ael.y"
+ case 120:
+#line 576 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 118:
-#line 580 "ael.y"
+ case 121:
+#line 577 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 119:
-#line 583 "ael.y"
+ case 122:
+#line 580 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 120:
-#line 584 "ael.y"
+ case 123:
+#line 581 "ael.y"
{ (yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 121:
-#line 585 "ael.y"
+ case 124:
+#line 582 "ael.y"
{
(yyval.pval) = npval2(PV_CATCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
(yyval.pval)->u2.statements = (yyvsp[(4) - (5)].pval); set_dads((yyval.pval),(yyvsp[(4) - (5)].pval));;}
break;
- case 122:
-#line 591 "ael.y"
+ case 125:
+#line 588 "ael.y"
{
(yyval.pval) = npval2(PV_SWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
- case 123:
-#line 596 "ael.y"
+ case 126:
+#line 593 "ael.y"
{
(yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
- case 124:
-#line 601 "ael.y"
+ case 127:
+#line 598 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 125:
-#line 602 "ael.y"
+ case 128:
+#line 599 "ael.y"
{ (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;}
break;
- case 126:
-#line 603 "ael.y"
+ case 129:
+#line 600 "ael.y"
{ 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 127:
-#line 605 "ael.y"
+ case 130:
+#line 602 "ael.y"
{(yyval.pval)=(yyvsp[(2) - (2)].pval);;}
break;
- case 128:
-#line 608 "ael.y"
+ case 131:
+#line 605 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 129:
-#line 609 "ael.y"
+ case 132:
+#line 606 "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 130:
-#line 616 "ael.y"
+ case 133:
+#line 613 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (2)].pval); ;}
break;
- case 131:
-#line 617 "ael.y"
+ case 134:
+#line 614 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;}
break;
- case 132:
-#line 618 "ael.y"
+ case 135:
+#line 615 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
- case 133:
-#line 621 "ael.y"
+ case 136:
+#line 618 "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 134:
-#line 624 "ael.y"
+ case 137:
+#line 621 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;}
break;
/* Line 1270 of yacc.c. */
-#line 2943 "ael.tab.c"
+#line 2956 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3158,7 +3171,7 @@ yyreturn:
}
-#line 629 "ael.y"
+#line 626 "ael.y"
static char *token_equivs1[] =
diff --git a/pbx/ael/ael.tab.h b/pbx/ael/ael.tab.h
index c908e0279..92a201a70 100644
--- a/pbx/ael/ael.tab.h
+++ b/pbx/ael/ael.tab.h
@@ -50,24 +50,25 @@
KW_ELSE = 276,
KW_RANDOM = 277,
KW_ABSTRACT = 278,
- EXTENMARK = 279,
- KW_GOTO = 280,
- KW_JUMP = 281,
- KW_RETURN = 282,
- KW_BREAK = 283,
- KW_CONTINUE = 284,
- KW_REGEXTEN = 285,
- KW_HINT = 286,
- KW_FOR = 287,
- KW_WHILE = 288,
- KW_CASE = 289,
- KW_PATTERN = 290,
- KW_DEFAULT = 291,
- KW_CATCH = 292,
- KW_SWITCHES = 293,
- KW_ESWITCHES = 294,
- KW_INCLUDES = 295,
- word = 296
+ 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,
+ word = 297
};
#endif
/* Tokens. */
@@ -92,24 +93,25 @@
#define KW_ELSE 276
#define KW_RANDOM 277
#define KW_ABSTRACT 278
-#define EXTENMARK 279
-#define KW_GOTO 280
-#define KW_JUMP 281
-#define KW_RETURN 282
-#define KW_BREAK 283
-#define KW_CONTINUE 284
-#define KW_REGEXTEN 285
-#define KW_HINT 286
-#define KW_FOR 287
-#define KW_WHILE 288
-#define KW_CASE 289
-#define KW_PATTERN 290
-#define KW_DEFAULT 291
-#define KW_CATCH 292
-#define KW_SWITCHES 293
-#define KW_ESWITCHES 294
-#define KW_INCLUDES 295
-#define word 296
+#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 word 297
@@ -123,7 +125,7 @@ typedef union YYSTYPE
struct pval *pval; /* full objects */
}
/* Line 1536 of yacc.c. */
-#line 127 "ael.tab.h"
+#line 129 "ael.tab.h"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index d54dc01ab..3ddcee8f0 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -80,7 +80,7 @@ static pval *update_last(pval *, YYLTYPE *);
%token KW_CONTEXT LC RC LP RP SEMI EQ COMMA COLON AMPER BAR AT
-%token KW_MACRO KW_GLOBALS KW_IGNOREPAT KW_SWITCH KW_IF KW_IFTIME KW_ELSE KW_RANDOM KW_ABSTRACT
+%token KW_MACRO KW_GLOBALS KW_IGNOREPAT KW_SWITCH KW_IF KW_IFTIME KW_ELSE KW_RANDOM KW_ABSTRACT KW_EXTEND
%token EXTENMARK KW_GOTO KW_JUMP KW_RETURN KW_BREAK KW_CONTINUE KW_REGEXTEN KW_HINT
%token KW_FOR KW_WHILE KW_CASE KW_PATTERN KW_DEFAULT KW_CATCH KW_SWITCHES KW_ESWITCHES
%token KW_INCLUDES
@@ -201,22 +201,19 @@ context_name : word { $$ = $1; }
;
context : opt_abstract KW_CONTEXT context_name LC elements RC {
- if (!$5) {
- ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
- my_file, @4.first_line, @4.first_column, @4.last_column, $3 );
- $$ = 0;
- free($3);
- } else {
- $$ = npval2(PV_CONTEXT, &@1, &@6);
- $$->u1.str = $3;
- $$->u2.statements = $5;
- set_dads($$,$5);
- $$->u3.abstract = $1;} }
+ $$ = npval2(PV_CONTEXT, &@1, &@6);
+ $$->u1.str = $3;
+ $$->u2.statements = $5;
+ set_dads($$,$5);
+ $$->u3.abstract = $1;}
;
/* optional "abstract" keyword XXX there is no regression test for this */
opt_abstract: KW_ABSTRACT { $$ = 1; }
| /* nothing */ { $$ = 0; }
+ | KW_EXTEND { $$ = 2; }
+ | KW_EXTEND KW_ABSTRACT { $$=3; }
+ | KW_ABSTRACT KW_EXTEND { $$=3; }
;
macro : KW_MACRO word LP arglist RP LC macro_statements RC {
diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c
index 6adf8ba9b..9a1a7bc6c 100644
--- a/pbx/ael/ael_lex.c
+++ b/pbx/ael/ael_lex.c
@@ -345,8 +345,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 61
-#define YY_END_OF_BUFFER 62
+#define YY_NUM_RULES 62
+#define YY_END_OF_BUFFER 63
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -354,34 +354,34 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[234] =
+static yyconst flex_int16_t yy_accept[239] =
{ 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 41, 41,
- 62, 61, 48, 46, 47, 49, 49, 9, 3, 4,
- 7, 49, 8, 5, 6, 12, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 1, 10, 2, 61, 51, 50, 61, 52, 61,
- 57, 58, 59, 61, 61, 53, 54, 55, 61, 56,
- 41, 42, 43, 48, 47, 49, 49, 40, 13, 11,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 20, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 0, 51, 50, 0, 52, 51, 50, 52, 0,
-
- 57, 58, 59, 0, 57, 58, 59, 0, 53, 54,
- 55, 0, 56, 53, 54, 55, 56, 41, 42, 43,
- 44, 43, 45, 49, 13, 13, 49, 49, 49, 49,
- 49, 49, 49, 49, 31, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 33, 49, 49, 49, 25, 49, 49, 26,
- 24, 49, 49, 49, 27, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 29, 36, 49, 49, 49, 49,
- 49, 49, 49, 49, 16, 49, 49, 49, 49, 49,
- 32, 49, 49, 49, 49, 49, 49, 49, 21, 49,
-
- 49, 49, 22, 49, 28, 19, 49, 49, 14, 49,
- 34, 49, 17, 49, 49, 35, 49, 49, 49, 15,
- 30, 49, 49, 39, 23, 37, 0, 38, 18, 0,
- 0, 60, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 42, 42,
+ 63, 62, 49, 47, 48, 50, 50, 9, 3, 4,
+ 7, 50, 8, 5, 6, 12, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 1, 10, 2, 62, 52, 51, 62, 53, 62,
+ 58, 59, 60, 62, 62, 54, 55, 56, 62, 57,
+ 42, 43, 44, 49, 48, 50, 50, 41, 13, 11,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 21, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 0, 52, 51, 0, 53, 52, 51, 53,
+
+ 0, 58, 59, 60, 0, 58, 59, 60, 0, 54,
+ 55, 56, 0, 57, 54, 55, 56, 57, 42, 43,
+ 44, 45, 44, 46, 50, 13, 13, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 32, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 34, 50, 50, 50, 26, 50,
+ 50, 50, 27, 25, 50, 50, 50, 28, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 30, 37, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 17, 50,
+ 50, 50, 50, 50, 33, 50, 50, 50, 50, 50,
+
+ 50, 16, 50, 22, 50, 50, 50, 23, 50, 29,
+ 20, 50, 50, 14, 50, 35, 50, 18, 50, 50,
+ 36, 50, 50, 50, 15, 31, 50, 50, 40, 24,
+ 38, 0, 39, 19, 0, 0, 61, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -425,184 +425,186 @@ static yyconst flex_int32_t yy_meta[48] =
3, 3, 3, 3, 3, 1, 3
} ;
-static yyconst flex_int16_t yy_base[247] =
+static yyconst flex_int16_t yy_base[252] =
{ 0,
0, 0, 39, 42, 81, 120, 159, 198, 47, 54,
- 310, 985, 307, 985, 304, 0, 276, 985, 985, 985,
- 985, 42, 985, 985, 289, 985, 281, 265, 31, 276,
- 32, 265, 33, 270, 45, 258, 276, 272, 48, 251,
- 263, 985, 985, 985, 73, 985, 985, 89, 985, 237,
+ 315, 985, 312, 985, 309, 0, 281, 985, 985, 985,
+ 985, 42, 985, 985, 294, 985, 286, 270, 31, 281,
+ 32, 270, 33, 275, 45, 263, 281, 280, 48, 259,
+ 271, 985, 985, 985, 73, 985, 985, 89, 985, 237,
985, 985, 985, 276, 315, 985, 985, 985, 354, 985,
- 289, 985, 66, 288, 285, 0, 252, 0, 401, 985,
- 247, 256, 64, 245, 252, 239, 235, 238, 239, 234,
- 238, 254, 236, 246, 235, 244, 227, 231, 47, 235,
- 234, 103, 985, 985, 137, 985, 142, 176, 181, 439,
-
- 985, 985, 985, 478, 517, 556, 595, 634, 985, 985,
- 985, 673, 985, 712, 751, 790, 829, 261, 985, 103,
- 985, 104, 985, 238, 0, 876, 221, 238, 233, 231,
- 214, 231, 226, 220, 0, 226, 212, 207, 213, 205,
- 207, 202, 200, 197, 211, 209, 193, 193, 199, 198,
- 192, 197, 0, 199, 100, 185, 0, 184, 201, 0,
- 0, 187, 178, 174, 0, 178, 187, 176, 168, 172,
- 184, 178, 158, 176, 0, 0, 151, 158, 159, 167,
- 154, 156, 151, 151, 0, 137, 140, 132, 130, 131,
- 0, 134, 131, 114, 112, 112, 119, 105, 0, 106,
-
- 116, 103, 0, 111, 0, 110, 106, 91, 0, 95,
- 0, 94, 0, 96, 68, 0, 64, 57, 76, 0,
- 0, 52, 44, 0, 0, 0, 168, 0, 0, 0,
- 50, 985, 985, 922, 927, 932, 937, 940, 945, 950,
- 955, 960, 964, 969, 974, 979
+ 297, 985, 66, 297, 291, 0, 258, 0, 401, 985,
+ 253, 265, 64, 254, 261, 248, 244, 242, 242, 243,
+ 238, 242, 258, 240, 250, 239, 248, 231, 235, 51,
+ 239, 238, 103, 985, 985, 137, 985, 142, 176, 181,
+
+ 439, 985, 985, 985, 478, 517, 556, 595, 634, 985,
+ 985, 985, 673, 985, 712, 751, 790, 829, 265, 985,
+ 103, 985, 104, 985, 242, 0, 876, 225, 242, 237,
+ 238, 221, 238, 233, 225, 228, 0, 230, 216, 210,
+ 219, 212, 214, 206, 203, 200, 214, 212, 196, 196,
+ 202, 201, 195, 200, 0, 202, 100, 189, 0, 189,
+ 193, 204, 0, 0, 190, 185, 180, 0, 180, 189,
+ 178, 170, 174, 187, 184, 167, 182, 0, 0, 156,
+ 163, 161, 169, 167, 158, 161, 156, 152, 0, 138,
+ 141, 134, 137, 136, 0, 135, 135, 115, 113, 113,
+
+ 123, 0, 109, 0, 107, 117, 107, 0, 112, 0,
+ 111, 110, 92, 0, 105, 0, 95, 0, 85, 60,
+ 0, 61, 48, 117, 0, 0, 45, 37, 0, 0,
+ 0, 168, 0, 0, 0, 50, 985, 985, 922, 927,
+ 932, 937, 940, 945, 950, 955, 960, 964, 969, 974,
+ 979
} ;
-static yyconst flex_int16_t yy_def[247] =
+static yyconst flex_int16_t yy_def[252] =
{ 0,
- 233, 1, 234, 234, 235, 235, 236, 236, 237, 237,
- 233, 233, 233, 233, 233, 238, 238, 233, 233, 233,
- 233, 238, 233, 233, 233, 233, 238, 238, 238, 238,
+ 238, 1, 239, 239, 240, 240, 241, 241, 242, 242,
+ 238, 238, 238, 238, 238, 243, 243, 238, 238, 238,
+ 238, 243, 238, 238, 238, 238, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 238, 238, 238, 244, 238, 238, 244, 238, 245,
+ 238, 238, 238, 245, 246, 238, 238, 238, 246, 238,
+ 247, 238, 248, 238, 238, 243, 243, 243, 249, 238,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 244, 238, 238, 244, 238, 244, 244, 244,
+
+ 245, 238, 238, 238, 245, 245, 245, 245, 246, 238,
+ 238, 238, 246, 238, 246, 246, 246, 246, 247, 238,
+ 248, 238, 248, 238, 243, 250, 249, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 238, 243, 243, 251, 251, 238, 0, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 233, 233, 233, 239, 233, 233, 239, 233, 240,
- 233, 233, 233, 240, 241, 233, 233, 233, 241, 233,
- 242, 233, 243, 233, 233, 238, 238, 238, 244, 233,
+ 238
+ } ;
+
+static yyconst flex_int16_t yy_nxt[1033] =
+ { 0,
+ 12, 13, 14, 15, 16, 16, 17, 18, 19, 20,
+ 16, 21, 22, 23, 24, 25, 16, 26, 16, 16,
+ 12, 16, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 16, 16, 37, 16, 16, 38, 39, 40,
+ 16, 16, 41, 16, 42, 43, 44, 46, 47, 62,
+ 46, 47, 68, 73, 69, 237, 62, 63, 46, 48,
+ 49, 46, 48, 49, 63, 76, 80, 74, 122, 81,
+ 89, 77, 83, 84, 90, 78, 123, 234, 124, 148,
+ 85, 94, 95, 46, 233, 49, 46, 231, 49, 51,
+ 52, 149, 94, 96, 97, 53, 230, 98, 99, 229,
+
+ 51, 54, 52, 130, 131, 122, 122, 228, 98, 96,
+ 100, 94, 95, 238, 123, 238, 238, 94, 232, 97,
+ 232, 227, 94, 96, 97, 51, 180, 52, 51, 52,
+ 181, 226, 225, 98, 53, 100, 224, 223, 222, 51,
+ 54, 52, 221, 220, 219, 98, 99, 94, 218, 97,
+ 94, 95, 217, 216, 215, 214, 98, 96, 100, 213,
+ 212, 94, 96, 97, 51, 211, 52, 56, 57, 232,
+ 58, 232, 210, 235, 209, 208, 207, 206, 56, 59,
+ 60, 98, 205, 100, 94, 95, 94, 204, 97, 94,
+ 95, 203, 202, 201, 200, 94, 96, 97, 199, 198,
+
+ 94, 96, 97, 56, 197, 60, 56, 57, 196, 58,
+ 195, 194, 193, 192, 191, 190, 189, 56, 59, 60,
+ 94, 188, 97, 187, 186, 94, 185, 97, 184, 183,
+ 182, 179, 178, 177, 176, 175, 174, 173, 172, 171,
+ 170, 169, 56, 168, 60, 102, 103, 167, 166, 165,
+ 164, 104, 163, 162, 161, 160, 102, 105, 103, 159,
+ 158, 157, 156, 155, 154, 153, 152, 120, 151, 150,
+ 147, 146, 145, 144, 143, 142, 141, 140, 139, 138,
+ 137, 102, 136, 103, 106, 107, 135, 134, 133, 132,
+ 108, 129, 128, 125, 65, 106, 105, 107, 64, 120,
+
+ 92, 91, 88, 87, 86, 82, 79, 75, 72, 71,
+ 70, 67, 65, 64, 238, 238, 238, 238, 238, 238,
+ 106, 238, 107, 110, 111, 238, 112, 238, 238, 238,
+ 238, 238, 238, 238, 110, 113, 114, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 110,
+ 238, 114, 115, 116, 238, 117, 238, 238, 238, 238,
+ 238, 238, 238, 115, 113, 118, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 239, 233, 233, 239, 233, 239, 239, 239, 240,
+ 238, 238, 238, 238, 238, 238, 238, 238, 115, 238,
- 233, 233, 233, 240, 240, 240, 240, 241, 233, 233,
- 233, 241, 233, 241, 241, 241, 241, 242, 233, 243,
- 233, 243, 233, 238, 245, 244, 238, 238, 238, 238,
+ 118, 126, 126, 238, 126, 238, 238, 238, 126, 126,
+ 126, 238, 126, 238, 126, 126, 126, 238, 126, 238,
+ 238, 126, 238, 238, 238, 238, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 126, 102, 103, 238,
+ 238, 238, 238, 104, 238, 238, 238, 238, 102, 105,
+ 103, 238, 238, 238, 238, 238, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 102, 238, 103, 106, 107, 238, 238,
+ 238, 238, 108, 238, 238, 238, 238, 106, 105, 107,
+
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 106, 238, 107, 102, 103, 238, 238, 238,
+ 238, 104, 238, 238, 238, 238, 102, 105, 103, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 102, 238, 103, 102, 103, 238, 238, 238, 238,
+ 104, 238, 238, 238, 238, 102, 105, 103, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 102, 238, 103, 102, 103, 238, 238, 238, 238, 104,
+ 238, 238, 238, 238, 102, 105, 103, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 102,
+ 238, 103, 110, 111, 238, 112, 238, 238, 238, 238,
+ 238, 238, 238, 110, 113, 114, 238, 238, 238, 238,
238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 238, 238, 238, 238, 238, 233, 238, 238, 246,
- 246, 233, 0, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233
- } ;
+ 238, 238, 238, 238, 238, 238, 238, 238, 110, 238,
+ 114, 115, 116, 238, 117, 238, 238, 238, 238, 238,
+ 238, 238, 115, 113, 118, 238, 238, 238, 238, 238,
-static yyconst flex_int16_t yy_nxt[1033] =
- { 0,
- 12, 13, 14, 15, 16, 16, 17, 18, 19, 20,
- 16, 21, 22, 23, 24, 25, 16, 26, 16, 16,
- 12, 16, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 16, 16, 37, 16, 16, 38, 39, 40,
- 16, 16, 41, 16, 42, 43, 44, 46, 47, 62,
- 46, 47, 68, 73, 69, 232, 62, 63, 46, 48,
- 49, 46, 48, 49, 63, 76, 79, 74, 121, 80,
- 88, 77, 82, 83, 89, 146, 122, 227, 123, 227,
- 84, 93, 94, 46, 229, 49, 46, 147, 49, 51,
- 52, 228, 93, 95, 96, 53, 226, 97, 98, 225,
-
- 51, 54, 52, 129, 130, 121, 121, 224, 97, 95,
- 99, 93, 94, 233, 122, 233, 233, 93, 223, 96,
- 222, 221, 93, 95, 96, 51, 177, 52, 51, 52,
- 178, 220, 219, 97, 53, 99, 218, 217, 216, 51,
- 54, 52, 215, 214, 213, 97, 98, 93, 212, 96,
- 93, 94, 211, 210, 209, 208, 97, 95, 99, 207,
- 206, 93, 95, 96, 51, 205, 52, 56, 57, 227,
- 58, 227, 204, 230, 203, 202, 201, 200, 56, 59,
- 60, 97, 199, 99, 93, 94, 93, 198, 96, 93,
- 94, 197, 196, 195, 194, 93, 95, 96, 193, 192,
-
- 93, 95, 96, 56, 191, 60, 56, 57, 190, 58,
- 189, 188, 187, 186, 185, 184, 183, 56, 59, 60,
- 93, 182, 96, 181, 180, 93, 179, 96, 176, 175,
- 174, 173, 172, 171, 170, 169, 168, 167, 166, 165,
- 164, 163, 56, 162, 60, 101, 102, 161, 160, 159,
- 158, 103, 157, 156, 155, 154, 101, 104, 102, 153,
- 152, 151, 150, 119, 149, 148, 145, 144, 143, 142,
- 141, 140, 139, 138, 137, 136, 135, 134, 133, 132,
- 131, 101, 128, 102, 105, 106, 127, 124, 65, 64,
- 107, 119, 91, 90, 87, 105, 104, 106, 86, 85,
-
- 81, 78, 75, 72, 71, 70, 67, 65, 64, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 105, 233, 106, 109, 110, 233, 111, 233, 233, 233,
- 233, 233, 233, 233, 109, 112, 113, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 109,
- 233, 113, 114, 115, 233, 116, 233, 233, 233, 233,
- 233, 233, 233, 114, 112, 117, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 114, 233,
-
- 117, 125, 125, 233, 125, 233, 233, 233, 125, 125,
- 125, 233, 125, 233, 125, 125, 125, 233, 125, 233,
- 233, 125, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 125, 101, 102, 233,
- 233, 233, 233, 103, 233, 233, 233, 233, 101, 104,
- 102, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 101, 233, 102, 105, 106, 233, 233,
- 233, 233, 107, 233, 233, 233, 233, 105, 104, 106,
-
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 105, 233, 106, 101, 102, 233, 233, 233,
- 233, 103, 233, 233, 233, 233, 101, 104, 102, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 101, 233, 102, 101, 102, 233, 233, 233, 233,
- 103, 233, 233, 233, 233, 101, 104, 102, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
-
- 101, 233, 102, 101, 102, 233, 233, 233, 233, 103,
- 233, 233, 233, 233, 101, 104, 102, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 101,
- 233, 102, 109, 110, 233, 111, 233, 233, 233, 233,
- 233, 233, 233, 109, 112, 113, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 109, 233,
- 113, 114, 115, 233, 116, 233, 233, 233, 233, 233,
- 233, 233, 114, 112, 117, 233, 233, 233, 233, 233,
-
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 114, 233, 117,
- 109, 110, 233, 111, 233, 233, 233, 233, 233, 233,
- 233, 109, 112, 113, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 109, 233, 113, 109,
- 110, 233, 111, 233, 233, 233, 233, 233, 233, 233,
- 109, 112, 113, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 109, 233, 113, 109, 110,
-
- 233, 111, 233, 233, 233, 233, 233, 233, 233, 109,
- 112, 113, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 109, 233, 113, 109, 110, 233,
- 111, 233, 233, 233, 233, 233, 233, 233, 109, 112,
- 113, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 109, 233, 113, 125, 125, 233, 125,
- 233, 233, 233, 125, 125, 125, 233, 125, 233, 125,
- 125, 125, 233, 125, 233, 233, 125, 233, 233, 233,
-
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 125, 45, 45, 45, 45, 45, 50, 50, 50,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 115, 238, 118,
+ 110, 111, 238, 112, 238, 238, 238, 238, 238, 238,
+ 238, 110, 113, 114, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 110, 238, 114, 110,
+ 111, 238, 112, 238, 238, 238, 238, 238, 238, 238,
+ 110, 113, 114, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 110, 238, 114, 110, 111,
+
+ 238, 112, 238, 238, 238, 238, 238, 238, 238, 110,
+ 113, 114, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 110, 238, 114, 110, 111, 238,
+ 112, 238, 238, 238, 238, 238, 238, 238, 110, 113,
+ 114, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 110, 238, 114, 126, 126, 238, 126,
+ 238, 238, 238, 126, 126, 126, 238, 126, 238, 126,
+ 126, 126, 238, 126, 238, 238, 126, 238, 238, 238,
+
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 126, 45, 45, 45, 45, 45, 50, 50, 50,
50, 50, 55, 55, 55, 55, 55, 61, 61, 61,
- 61, 61, 66, 66, 66, 92, 92, 92, 92, 92,
- 100, 100, 100, 100, 100, 108, 108, 108, 108, 108,
- 118, 118, 118, 118, 120, 120, 120, 120, 120, 126,
- 233, 126, 126, 126, 125, 233, 125, 125, 125, 231,
- 231, 231, 233, 231, 11, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
-
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233
+ 61, 61, 66, 66, 66, 93, 93, 93, 93, 93,
+ 101, 101, 101, 101, 101, 109, 109, 109, 109, 109,
+ 119, 119, 119, 119, 121, 121, 121, 121, 121, 127,
+ 238, 127, 127, 127, 126, 238, 126, 126, 126, 236,
+ 236, 236, 238, 236, 11, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238
} ;
static yyconst flex_int16_t yy_chk[1033] =
@@ -612,36 +614,36 @@ static yyconst flex_int16_t yy_chk[1033] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 3, 3, 9,
- 4, 4, 22, 29, 22, 231, 10, 9, 3, 3,
+ 4, 4, 22, 29, 22, 236, 10, 9, 3, 3,
3, 4, 4, 4, 10, 31, 33, 29, 63, 33,
- 39, 31, 35, 35, 39, 89, 63, 219, 63, 219,
- 35, 45, 45, 3, 223, 3, 4, 89, 4, 5,
- 5, 222, 45, 45, 45, 5, 218, 48, 48, 217,
-
- 5, 5, 5, 73, 73, 120, 122, 215, 48, 48,
- 48, 92, 92, 120, 122, 120, 122, 45, 214, 45,
- 212, 210, 92, 92, 92, 5, 155, 5, 6, 6,
- 155, 208, 207, 48, 6, 48, 206, 204, 202, 6,
- 6, 6, 201, 200, 198, 95, 95, 92, 197, 92,
- 97, 97, 196, 195, 194, 193, 95, 95, 95, 192,
- 190, 97, 97, 97, 6, 189, 6, 7, 7, 227,
- 7, 227, 188, 227, 187, 186, 184, 183, 7, 7,
- 7, 95, 182, 95, 98, 98, 97, 181, 97, 99,
- 99, 180, 179, 178, 177, 98, 98, 98, 174, 173,
-
- 99, 99, 99, 7, 172, 7, 8, 8, 171, 8,
- 170, 169, 168, 167, 166, 164, 163, 8, 8, 8,
- 98, 162, 98, 159, 158, 99, 156, 99, 154, 152,
- 151, 150, 149, 148, 147, 146, 145, 144, 143, 142,
- 141, 140, 8, 139, 8, 50, 50, 138, 137, 136,
- 134, 50, 133, 132, 131, 130, 50, 50, 50, 129,
- 128, 127, 124, 118, 91, 90, 88, 87, 86, 85,
- 84, 83, 82, 81, 80, 79, 78, 77, 76, 75,
- 74, 50, 72, 50, 54, 54, 71, 67, 65, 64,
- 54, 61, 41, 40, 38, 54, 54, 54, 37, 36,
-
- 34, 32, 30, 28, 27, 25, 17, 15, 13, 11,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 39, 31, 35, 35, 39, 31, 63, 228, 63, 90,
+ 35, 45, 45, 3, 227, 3, 4, 223, 4, 5,
+ 5, 90, 45, 45, 45, 5, 222, 48, 48, 220,
+
+ 5, 5, 5, 73, 73, 121, 123, 219, 48, 48,
+ 48, 93, 93, 121, 123, 121, 123, 45, 224, 45,
+ 224, 217, 93, 93, 93, 5, 157, 5, 6, 6,
+ 157, 215, 213, 48, 6, 48, 212, 211, 209, 6,
+ 6, 6, 207, 206, 205, 96, 96, 93, 203, 93,
+ 98, 98, 201, 200, 199, 198, 96, 96, 96, 197,
+ 196, 98, 98, 98, 6, 194, 6, 7, 7, 232,
+ 7, 232, 193, 232, 192, 191, 190, 188, 7, 7,
+ 7, 96, 187, 96, 99, 99, 98, 186, 98, 100,
+ 100, 185, 184, 183, 182, 99, 99, 99, 181, 180,
+
+ 100, 100, 100, 7, 177, 7, 8, 8, 176, 8,
+ 175, 174, 173, 172, 171, 170, 169, 8, 8, 8,
+ 99, 167, 99, 166, 165, 100, 162, 100, 161, 160,
+ 158, 156, 154, 153, 152, 151, 150, 149, 148, 147,
+ 146, 145, 8, 144, 8, 50, 50, 143, 142, 141,
+ 140, 50, 139, 138, 136, 135, 50, 50, 50, 134,
+ 133, 132, 131, 130, 129, 128, 125, 119, 92, 91,
+ 89, 88, 87, 86, 85, 84, 83, 82, 81, 80,
+ 79, 50, 78, 50, 54, 54, 77, 76, 75, 74,
+ 54, 72, 71, 67, 65, 54, 54, 54, 64, 61,
+
+ 41, 40, 38, 37, 36, 34, 32, 30, 28, 27,
+ 25, 17, 15, 13, 11, 0, 0, 0, 0, 0,
54, 0, 54, 55, 55, 0, 55, 0, 0, 0,
0, 0, 0, 0, 55, 55, 55, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -655,72 +657,72 @@ static yyconst flex_int16_t yy_chk[1033] =
69, 0, 69, 0, 69, 69, 69, 0, 69, 0,
0, 69, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 69, 100, 100, 0,
- 0, 0, 0, 100, 0, 0, 0, 0, 100, 100,
- 100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 69, 101, 101, 0,
+ 0, 0, 0, 101, 0, 0, 0, 0, 101, 101,
+ 101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 100, 0, 100, 104, 104, 0, 0,
- 0, 0, 104, 0, 0, 0, 0, 104, 104, 104,
+ 0, 0, 0, 101, 0, 101, 105, 105, 0, 0,
+ 0, 0, 105, 0, 0, 0, 0, 105, 105, 105,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 104, 0, 104, 105, 105, 0, 0, 0,
- 0, 105, 0, 0, 0, 0, 105, 105, 105, 0,
+ 0, 0, 105, 0, 105, 106, 106, 0, 0, 0,
+ 0, 106, 0, 0, 0, 0, 106, 106, 106, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 105, 0, 105, 106, 106, 0, 0, 0, 0,
- 106, 0, 0, 0, 0, 106, 106, 106, 0, 0,
+ 0, 106, 0, 106, 107, 107, 0, 0, 0, 0,
+ 107, 0, 0, 0, 0, 107, 107, 107, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 106, 0, 106, 107, 107, 0, 0, 0, 0, 107,
- 0, 0, 0, 0, 107, 107, 107, 0, 0, 0,
+ 107, 0, 107, 108, 108, 0, 0, 0, 0, 108,
+ 0, 0, 0, 0, 108, 108, 108, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
- 0, 107, 108, 108, 0, 108, 0, 0, 0, 0,
- 0, 0, 0, 108, 108, 108, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
+ 0, 108, 109, 109, 0, 109, 0, 0, 0, 0,
+ 0, 0, 0, 109, 109, 109, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 108, 0,
- 108, 112, 112, 0, 112, 0, 0, 0, 0, 0,
- 0, 0, 112, 112, 112, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 109, 0,
+ 109, 113, 113, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 113, 113, 113, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 112, 0, 112,
- 114, 114, 0, 114, 0, 0, 0, 0, 0, 0,
- 0, 114, 114, 114, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 113, 0, 113,
+ 115, 115, 0, 115, 0, 0, 0, 0, 0, 0,
+ 0, 115, 115, 115, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 114, 0, 114, 115,
- 115, 0, 115, 0, 0, 0, 0, 0, 0, 0,
- 115, 115, 115, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 115, 0, 115, 116,
+ 116, 0, 116, 0, 0, 0, 0, 0, 0, 0,
+ 116, 116, 116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 115, 0, 115, 116, 116,
+ 0, 0, 0, 0, 0, 116, 0, 116, 117, 117,
- 0, 116, 0, 0, 0, 0, 0, 0, 0, 116,
- 116, 116, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 117, 0, 0, 0, 0, 0, 0, 0, 117,
+ 117, 117, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 116, 0, 116, 117, 117, 0,
- 117, 0, 0, 0, 0, 0, 0, 0, 117, 117,
- 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 117, 0, 117, 118, 118, 0,
+ 118, 0, 0, 0, 0, 0, 0, 0, 118, 118,
+ 118, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 117, 0, 117, 126, 126, 0, 126,
- 0, 0, 0, 126, 126, 126, 0, 126, 0, 126,
- 126, 126, 0, 126, 0, 0, 126, 0, 0, 0,
+ 0, 0, 0, 118, 0, 118, 127, 127, 0, 127,
+ 0, 0, 0, 127, 127, 127, 0, 127, 0, 127,
+ 127, 127, 0, 127, 0, 0, 127, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 126, 234, 234, 234, 234, 234, 235, 235, 235,
- 235, 235, 236, 236, 236, 236, 236, 237, 237, 237,
- 237, 237, 238, 238, 238, 239, 239, 239, 239, 239,
- 240, 240, 240, 240, 240, 241, 241, 241, 241, 241,
- 242, 242, 242, 242, 243, 243, 243, 243, 243, 244,
- 0, 244, 244, 244, 245, 0, 245, 245, 245, 246,
- 246, 246, 0, 246, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
-
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233
+ 0, 127, 239, 239, 239, 239, 239, 240, 240, 240,
+ 240, 240, 241, 241, 241, 241, 241, 242, 242, 242,
+ 242, 242, 243, 243, 243, 244, 244, 244, 244, 244,
+ 245, 245, 245, 245, 245, 246, 246, 246, 246, 246,
+ 247, 247, 247, 247, 248, 248, 248, 248, 248, 249,
+ 0, 249, 249, 249, 250, 0, 250, 250, 250, 251,
+ 251, 251, 0, 251, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
+ 238, 238
} ;
/* The intent behind this definition is that it'll catch
@@ -889,7 +891,7 @@ static void pbcwhere(const char *text, int *line, int *col )
#define STORE_POS
#define STORE_LOC
#endif
-#line 892 "ael_lex.c"
+#line 894 "ael_lex.c"
#define INITIAL 0
#define paren 1
@@ -1133,7 +1135,7 @@ YY_DECL
#line 181 "ael.flex"
-#line 1136 "ael_lex.c"
+#line 1138 "ael_lex.c"
yylval = yylval_param;
@@ -1196,13 +1198,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 234 )
+ if ( yy_current_state >= 239 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 233 );
+ while ( yy_current_state != 238 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -1300,174 +1302,179 @@ YY_RULE_SETUP
case 16:
YY_RULE_SETUP
#line 198 "ael.flex"
-{ STORE_POS; return KW_MACRO;};
+{ STORE_POS; return KW_EXTEND;}
YY_BREAK
case 17:
YY_RULE_SETUP
#line 199 "ael.flex"
-{ STORE_POS; return KW_GLOBALS;}
+{ STORE_POS; return KW_MACRO;};
YY_BREAK
case 18:
YY_RULE_SETUP
#line 200 "ael.flex"
-{ STORE_POS; return KW_IGNOREPAT;}
+{ STORE_POS; return KW_GLOBALS;}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 201 "ael.flex"
-{ STORE_POS; return KW_SWITCH;}
+{ STORE_POS; return KW_IGNOREPAT;}
YY_BREAK
case 20:
YY_RULE_SETUP
#line 202 "ael.flex"
-{ STORE_POS; return KW_IF;}
+{ STORE_POS; return KW_SWITCH;}
YY_BREAK
case 21:
YY_RULE_SETUP
#line 203 "ael.flex"
-{ STORE_POS; return KW_IFTIME;}
+{ STORE_POS; return KW_IF;}
YY_BREAK
case 22:
YY_RULE_SETUP
#line 204 "ael.flex"
-{ STORE_POS; return KW_RANDOM;}
+{ STORE_POS; return KW_IFTIME;}
YY_BREAK
case 23:
YY_RULE_SETUP
#line 205 "ael.flex"
-{ STORE_POS; return KW_REGEXTEN;}
+{ STORE_POS; return KW_RANDOM;}
YY_BREAK
case 24:
YY_RULE_SETUP
#line 206 "ael.flex"
-{ STORE_POS; return KW_HINT;}
+{ STORE_POS; return KW_REGEXTEN;}
YY_BREAK
case 25:
YY_RULE_SETUP
#line 207 "ael.flex"
-{ STORE_POS; return KW_ELSE;}
+{ STORE_POS; return KW_HINT;}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 208 "ael.flex"
-{ STORE_POS; return KW_GOTO;}
+{ STORE_POS; return KW_ELSE;}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 209 "ael.flex"
-{ STORE_POS; return KW_JUMP;}
+{ STORE_POS; return KW_GOTO;}
YY_BREAK
case 28:
YY_RULE_SETUP
#line 210 "ael.flex"
-{ STORE_POS; return KW_RETURN;}
+{ STORE_POS; return KW_JUMP;}
YY_BREAK
case 29:
YY_RULE_SETUP
#line 211 "ael.flex"
-{ STORE_POS; return KW_BREAK;}
+{ STORE_POS; return KW_RETURN;}
YY_BREAK
case 30:
YY_RULE_SETUP
#line 212 "ael.flex"
-{ STORE_POS; return KW_CONTINUE;}
+{ STORE_POS; return KW_BREAK;}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 213 "ael.flex"
-{ STORE_POS; return KW_FOR;}
+{ STORE_POS; return KW_CONTINUE;}
YY_BREAK
case 32:
YY_RULE_SETUP
#line 214 "ael.flex"
-{ STORE_POS; return KW_WHILE;}
+{ STORE_POS; return KW_FOR;}
YY_BREAK
case 33:
YY_RULE_SETUP
#line 215 "ael.flex"
-{ STORE_POS; return KW_CASE;}
+{ STORE_POS; return KW_WHILE;}
YY_BREAK
case 34:
YY_RULE_SETUP
#line 216 "ael.flex"
-{ STORE_POS; return KW_DEFAULT;}
+{ STORE_POS; return KW_CASE;}
YY_BREAK
case 35:
YY_RULE_SETUP
#line 217 "ael.flex"
-{ STORE_POS; return KW_PATTERN;}
+{ STORE_POS; return KW_DEFAULT;}
YY_BREAK
case 36:
YY_RULE_SETUP
#line 218 "ael.flex"
-{ STORE_POS; return KW_CATCH;}
+{ STORE_POS; return KW_PATTERN;}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 219 "ael.flex"
-{ STORE_POS; return KW_SWITCHES;}
+{ STORE_POS; return KW_CATCH;}
YY_BREAK
case 38:
YY_RULE_SETUP
#line 220 "ael.flex"
-{ STORE_POS; return KW_ESWITCHES;}
+{ STORE_POS; return KW_SWITCHES;}
YY_BREAK
case 39:
YY_RULE_SETUP
#line 221 "ael.flex"
-{ STORE_POS; return KW_INCLUDES;}
+{ STORE_POS; return KW_ESWITCHES;}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 222 "ael.flex"
-{ BEGIN(comment); my_col += 2; }
+{ STORE_POS; return KW_INCLUDES;}
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 224 "ael.flex"
-{ my_col += yyleng; }
+#line 223 "ael.flex"
+{ BEGIN(comment); my_col += 2; }
YY_BREAK
case 42:
-/* rule 42 can match eol */
YY_RULE_SETUP
#line 225 "ael.flex"
-{ ++my_lineno; my_col=1;}
+{ my_col += yyleng; }
YY_BREAK
case 43:
+/* rule 43 can match eol */
YY_RULE_SETUP
#line 226 "ael.flex"
-{ my_col += yyleng; }
+{ ++my_lineno; my_col=1;}
YY_BREAK
case 44:
-/* rule 44 can match eol */
YY_RULE_SETUP
#line 227 "ael.flex"
-{ ++my_lineno; my_col=1;}
+{ my_col += yyleng; }
YY_BREAK
case 45:
+/* rule 45 can match eol */
YY_RULE_SETUP
#line 228 "ael.flex"
-{ my_col += 2; BEGIN(INITIAL); }
+{ ++my_lineno; my_col=1;}
YY_BREAK
case 46:
-/* rule 46 can match eol */
YY_RULE_SETUP
-#line 230 "ael.flex"
-{ my_lineno++; my_col = 1; }
+#line 229 "ael.flex"
+{ my_col += 2; BEGIN(INITIAL); }
YY_BREAK
case 47:
+/* rule 47 can match eol */
YY_RULE_SETUP
#line 231 "ael.flex"
-{ my_col += yyleng; }
+{ my_lineno++; my_col = 1; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 232 "ael.flex"
-{ my_col += (yyleng*8)-(my_col%8); }
+{ my_col += yyleng; }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 234 "ael.flex"
+#line 233 "ael.flex"
+{ my_col += (yyleng*8)-(my_col%8); }
+ YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 235 "ael.flex"
{
STORE_POS;
yylval->str = strdup(yytext);
@@ -1482,10 +1489,10 @@ YY_RULE_SETUP
* A comma at the top level is valid here, unlike in argg where it
* is an argument separator so it must be returned as a token.
*/
-case 50:
-/* rule 50 can match eol */
+case 51:
+/* rule 51 can match eol */
YY_RULE_SETUP
-#line 250 "ael.flex"
+#line 251 "ael.flex"
{
if ( pbcpop(')') ) { /* error */
STORE_LOC;
@@ -1508,10 +1515,10 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 51:
-/* rule 51 can match eol */
+case 52:
+/* rule 52 can match eol */
YY_RULE_SETUP
-#line 272 "ael.flex"
+#line 273 "ael.flex"
{
char c = yytext[yyleng-1];
if (c == '(')
@@ -1520,10 +1527,10 @@ YY_RULE_SETUP
yymore();
}
YY_BREAK
-case 52:
-/* rule 52 can match eol */
+case 53:
+/* rule 53 can match eol */
YY_RULE_SETUP
-#line 280 "ael.flex"
+#line 281 "ael.flex"
{
char c = yytext[yyleng-1];
if ( pbcpop(c)) { /* error */
@@ -1545,10 +1552,10 @@ YY_RULE_SETUP
* of the (external) call, which happens when parencount == 0
* before the decrement.
*/
-case 53:
-/* rule 53 can match eol */
+case 54:
+/* rule 54 can match eol */
YY_RULE_SETUP
-#line 302 "ael.flex"
+#line 303 "ael.flex"
{
char c = yytext[yyleng-1];
if (c == '(')
@@ -1557,10 +1564,10 @@ YY_RULE_SETUP
yymore();
}
YY_BREAK
-case 54:
-/* rule 54 can match eol */
+case 55:
+/* rule 55 can match eol */
YY_RULE_SETUP
-#line 310 "ael.flex"
+#line 311 "ael.flex"
{
if ( pbcpop(')') ) { /* error */
STORE_LOC;
@@ -1585,10 +1592,10 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 55:
-/* rule 55 can match eol */
+case 56:
+/* rule 56 can match eol */
YY_RULE_SETUP
-#line 334 "ael.flex"
+#line 335 "ael.flex"
{
if( parencount != 0) { /* printf("Folding in a comma!\n"); */
yymore();
@@ -1603,10 +1610,10 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 56:
-/* rule 56 can match eol */
+case 57:
+/* rule 57 can match eol */
YY_RULE_SETUP
-#line 348 "ael.flex"
+#line 349 "ael.flex"
{
char c = yytext[yyleng-1];
if ( pbcpop(c) ) { /* error */
@@ -1624,20 +1631,20 @@ YY_RULE_SETUP
* or in the first and second operand of a 'for'. As above, match
* commas and use ';' as a separator (hence return it as a separate token).
*/
-case 57:
-/* rule 57 can match eol */
+case 58:
+/* rule 58 can match eol */
YY_RULE_SETUP
-#line 365 "ael.flex"
+#line 366 "ael.flex"
{
char c = yytext[yyleng-1];
yymore();
pbcpush(c);
}
YY_BREAK
-case 58:
-/* rule 58 can match eol */
+case 59:
+/* rule 59 can match eol */
YY_RULE_SETUP
-#line 371 "ael.flex"
+#line 372 "ael.flex"
{
char c = yytext[yyleng-1];
if ( pbcpop(c) ) { /* error */
@@ -1650,10 +1657,10 @@ YY_RULE_SETUP
yymore();
}
YY_BREAK
-case 59:
-/* rule 59 can match eol */
+case 60:
+/* rule 60 can match eol */
YY_RULE_SETUP
-#line 383 "ael.flex"
+#line 384 "ael.flex"
{
STORE_LOC;
yylval->str = strdup(yytext);
@@ -1663,10 +1670,10 @@ YY_RULE_SETUP
return word;
}
YY_BREAK
-case 60:
-/* rule 60 can match eol */
+case 61:
+/* rule 61 can match eol */
YY_RULE_SETUP
-#line 392 "ael.flex"
+#line 393 "ael.flex"
{
char fnamebuf[1024],*p1,*p2;
int glob_ret;
@@ -1712,7 +1719,7 @@ case YY_STATE_EOF(paren):
case YY_STATE_EOF(semic):
case YY_STATE_EOF(argg):
case YY_STATE_EOF(comment):
-#line 433 "ael.flex"
+#line 434 "ael.flex"
{
char fnamebuf[2048];
if (include_stack_index > 0 && include_stack[include_stack_index-1].globbuf_pos < include_stack[include_stack_index-1].globbuf.gl_pathc-1) {
@@ -1747,12 +1754,12 @@ case YY_STATE_EOF(comment):
}
}
YY_BREAK
-case 61:
+case 62:
YY_RULE_SETUP
-#line 467 "ael.flex"
+#line 468 "ael.flex"
ECHO;
YY_BREAK
-#line 1755 "ael_lex.c"
+#line 1762 "ael_lex.c"
case YY_END_OF_BUFFER:
{
@@ -2037,7 +2044,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 234 )
+ if ( yy_current_state >= 239 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2066,11 +2073,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 234 )
+ if ( yy_current_state >= 239 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 233);
+ yy_is_jam = (yy_current_state == 238);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2888,7 +2895,7 @@ void ael_yyfree (void * ptr , yyscan_t yyscanner)
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
-#line 467 "ael.flex"
+#line 468 "ael.flex"
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index f4f85eca8..96719fe54 100644
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -2245,9 +2245,9 @@ static void check_context_names(void)
if (i->type == PV_CONTEXT || i->type == PV_MACRO) {
for (j=i->next; j; j=j->next) {
if ( j->type == PV_CONTEXT || j->type == PV_MACRO ) {
- if ( !strcmp(i->u1.str, j->u1.str) )
+ if ( !strcmp(i->u1.str, j->u1.str) && !(i->u3.abstract&2) && !(j->u3.abstract&2) )
{
- ast_log(LOG_ERROR,"Error: file %s, line %d-%d: The context name (%s) is also declared in file %s, line %d-%d!\n",
+ ast_log(LOG_ERROR,"Error: file %s, line %d-%d: The context name (%s) is also declared in file %s, line %d-%d! (and neither is marked 'extend')\n",
i->filename, i->startline, i->endline, i->u1.str, j->filename, j->startline, j->endline);
errs++;
}
@@ -3955,7 +3955,7 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
break;
case PV_CONTEXT:
- context = ast_context_create(local_contexts, p->u1.str, registrar);
+ context = ast_context_find_or_create(local_contexts, p->u1.str, registrar);
/* contexts contain: ignorepat, includes, switches, eswitches, extensions, */
for (p2=p->u2.statements; p2; p2=p2->next) {