aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/ael
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-08-12 19:28:33 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-08-12 19:28:33 +0000
commit55a5f946844ad207f7f774f8ca75eb5bf5d570ba (patch)
treeb54e2b9d3d46f7e5afca969e81cd8b413b46b79c /pbx/ael
parent0d42de398c741a718a2c7db09f94bc7c29e885a5 (diff)
This commit merges the contents of 7721, as it applied to the trunk version. Added the item that would previously trigger a false error to test1.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@39571 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael')
-rw-r--r--pbx/ael/ael-test/ael-test1/extensions.ael2
-rw-r--r--pbx/ael/ael.tab.c863
-rw-r--r--pbx/ael/ael.y17
3 files changed, 461 insertions, 421 deletions
diff --git a/pbx/ael/ael-test/ael-test1/extensions.ael b/pbx/ael/ael-test/ael-test1/extensions.ael
index d25ddd323..e1943f67c 100644
--- a/pbx/ael/ael-test/ael-test1/extensions.ael
+++ b/pbx/ael/ael-test/ael-test1/extensions.ael
@@ -94,7 +94,7 @@ context testloop {
y=${y}-1;
};
};
- regexten hint(nasty/Thingy) 3 => {
+ regexten hint(nasty/Thingy&nasty/Thingamabob) 3 => {
for (x=0; ${x} < 3; x=${x} + 1)
{
Verbose(x is ${x} !);
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index 6cef52eed..563eb5886 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -490,16 +490,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 14
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 293
+#define YYLAST 298
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 42
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 53
+#define YYNNTS 54
/* YYNRULES -- Number of rules. */
-#define YYNRULES 128
+#define YYNRULES 131
/* YYNRULES -- Number of states. */
-#define YYNSTATES 258
+#define YYNSTATES 262
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -554,13 +554,14 @@ static const yytype_uint16 yyprhs[] =
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, 184,
- 187, 191, 197, 201, 203, 207, 211, 214, 215, 216,
- 217, 230, 234, 236, 240, 243, 246, 247, 253, 256,
- 259, 262, 266, 268, 271, 272, 274, 278, 282, 288,
- 294, 300, 306, 307, 310, 313, 318, 319, 325, 329,
- 330, 334, 338, 341, 343, 344, 346, 347, 351, 352,
- 355, 360, 364, 369, 370, 373, 375, 381, 386, 391,
- 392, 396, 399, 401, 405, 408, 412, 415, 420
+ 187, 191, 193, 196, 200, 206, 210, 212, 216, 220,
+ 223, 224, 225, 226, 239, 243, 245, 249, 252, 255,
+ 256, 262, 265, 268, 271, 275, 277, 280, 281, 283,
+ 287, 291, 297, 303, 309, 315, 316, 319, 322, 327,
+ 328, 334, 338, 339, 343, 347, 350, 352, 353, 355,
+ 356, 360, 361, 364, 369, 373, 378, 379, 382, 384,
+ 390, 395, 400, 401, 405, 408, 410, 414, 417, 421,
+ 424, 429
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -570,45 +571,46 @@ static const yytype_int8 yyrhs[] =
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, 87, 5, -1, 16, 4, 51, 5, -1, -1,
+ 4, 88, 5, -1, 16, 4, 51, 5, -1, -1,
52, 51, -1, 51, 1, -1, -1, 41, 9, 53,
41, 8, -1, -1, 41, -1, 54, 10, 41, -1,
54, 1, -1, -1, 56, 55, -1, 55, 1, -1,
- 58, -1, 94, -1, 89, -1, 90, -1, 57, -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, 69, -1, 30, 41, 24, 69,
- -1, 31, 6, 66, 7, 41, 24, 69, -1, 30,
- 31, 6, 66, 7, 41, 24, 69, -1, -1, 69,
- 59, -1, 59, 1, -1, 66, 11, 66, 11, 66,
- -1, 41, -1, 60, 13, 66, 13, 66, 13, 66,
+ 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, 59, 1, -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, 41, 41, -1, 41, 41,
- 41, -1, 41, -1, 41, 41, -1, 67, 11, 41,
- -1, 18, 62, 4, 85, 5, -1, 4, 59, 5,
- -1, 52, -1, 25, 75, 8, -1, 26, 77, 8,
- -1, 41, 11, -1, -1, -1, -1, 32, 6, 70,
- 41, 8, 71, 41, 8, 72, 41, 7, 69, -1,
- 33, 62, 69, -1, 68, -1, 12, 78, 8, -1,
- 82, 8, -1, 41, 8, -1, -1, 82, 9, 73,
- 41, 8, -1, 28, 8, -1, 27, 8, -1, 29,
- 8, -1, 64, 69, 74, -1, 8, -1, 21, 69,
- -1, -1, 67, -1, 67, 13, 67, -1, 67, 10,
- 67, -1, 67, 13, 67, 13, 67, -1, 67, 10,
- 67, 10, 67, -1, 36, 13, 67, 13, 67, -1,
- 36, 10, 67, 10, 67, -1, -1, 10, 41, -1,
- 67, 76, -1, 67, 76, 14, 46, -1, -1, 41,
- 6, 79, 84, 7, -1, 41, 6, 7, -1, -1,
- 41, 6, 81, -1, 80, 84, 7, -1, 80, 7,
- -1, 41, -1, -1, 65, -1, -1, 84, 10, 83,
- -1, -1, 86, 85, -1, 34, 41, 11, 59, -1,
- 36, 11, 59, -1, 35, 41, 11, 59, -1, -1,
- 88, 87, -1, 69, -1, 37, 41, 4, 59, 5,
- -1, 38, 4, 91, 5, -1, 39, 4, 91, 5,
- -1, -1, 41, 8, 91, -1, 91, 1, -1, 46,
- -1, 46, 13, 61, -1, 92, 8, -1, 93, 92,
- 8, -1, 93, 1, -1, 40, 4, 93, 5, -1,
- 40, 4, 5, -1
+ 41, 41, -1, 41, -1, 66, 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, 37, 41, 4, 59, 5, -1,
+ 38, 4, 92, 5, -1, 39, 4, 92, 5, -1,
+ -1, 41, 8, 92, -1, 92, 1, -1, 46, -1,
+ 46, 13, 61, -1, 93, 8, -1, 94, 93, 8,
+ -1, 94, 1, -1, 40, 4, 94, 5, -1, 40,
+ 4, 5, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -619,14 +621,15 @@ static const yytype_uint16 yyrline[] =
233, 233, 240, 241, 242, 243, 246, 247, 248, 251,
252, 253, 254, 255, 256, 257, 258, 261, 266, 270,
275, 280, 290, 291, 292, 298, 303, 307, 315, 315,
- 319, 322, 325, 336, 337, 344, 345, 350, 358, 359,
- 363, 369, 378, 381, 382, 385, 388, 391, 392, 393,
- 391, 399, 403, 404, 405, 406, 409, 409, 442, 443,
- 444, 445, 449, 452, 453, 456, 457, 460, 463, 467,
- 471, 475, 481, 482, 486, 489, 495, 495, 500, 508,
- 508, 519, 526, 529, 530, 533, 534, 537, 540, 541,
- 544, 548, 552, 558, 559, 562, 563, 569, 574, 579,
- 580, 581, 584, 585, 592, 593, 594, 597, 600
+ 319, 322, 325, 336, 337, 344, 345, 349, 355, 356,
+ 361, 369, 370, 374, 380, 389, 392, 393, 396, 399,
+ 402, 403, 404, 402, 410, 414, 415, 416, 417, 420,
+ 420, 453, 454, 455, 456, 460, 463, 464, 467, 468,
+ 471, 474, 478, 482, 486, 492, 493, 497, 500, 506,
+ 506, 511, 519, 519, 530, 537, 540, 541, 544, 545,
+ 548, 551, 552, 555, 559, 563, 569, 570, 573, 574,
+ 580, 585, 590, 591, 592, 595, 596, 603, 604, 605,
+ 608, 611
};
#endif
@@ -646,12 +649,12 @@ static const char *const yytname[] =
"globals", "global_statements", "assignment", "@1", "arglist",
"elements", "element", "ignorepat", "extension", "statements",
"timerange", "timespec", "test_expr", "@2", "if_like_head", "word_list",
- "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
+ "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
@@ -677,13 +680,14 @@ static const yytype_uint8 yyr1[] =
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, 67, 67,
- 67, 68, 69, 69, 69, 69, 69, 70, 71, 72,
- 69, 69, 69, 69, 69, 69, 73, 69, 69, 69,
- 69, 69, 69, 74, 74, 75, 75, 75, 75, 75,
- 75, 75, 76, 76, 77, 77, 79, 78, 78, 81,
- 80, 82, 82, 83, 83, 84, 84, 84, 85, 85,
- 86, 86, 86, 87, 87, 88, 88, 89, 90, 91,
- 91, 91, 92, 92, 93, 93, 93, 94, 94
+ 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,
+ 90, 91, 92, 92, 92, 93, 93, 94, 94, 94,
+ 95, 95
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -695,13 +699,14 @@ static const yytype_uint8 yyr2[] =
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, 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, 5, 4, 4, 0,
- 3, 2, 1, 3, 2, 3, 2, 4, 3
+ 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, 5,
+ 4, 4, 0, 3, 2, 1, 3, 2, 3, 2,
+ 4, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -714,155 +719,157 @@ static const yytype_uint8 yydefact[] =
0, 17, 11, 10, 0, 23, 0, 20, 19, 16,
0, 26, 25, 0, 0, 0, 36, 0, 0, 0,
0, 0, 0, 0, 34, 0, 26, 33, 29, 31,
- 32, 30, 113, 24, 0, 0, 0, 0, 0, 119,
- 119, 0, 35, 0, 28, 12, 0, 42, 82, 0,
+ 32, 30, 116, 24, 0, 0, 0, 0, 0, 122,
+ 122, 0, 35, 0, 28, 12, 0, 42, 85, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 72, 115, 106, 0, 0,
- 113, 21, 0, 0, 0, 55, 0, 0, 0, 0,
- 128, 122, 0, 0, 38, 0, 42, 0, 0, 48,
- 0, 50, 0, 51, 0, 58, 85, 0, 92, 0,
- 79, 78, 80, 67, 0, 0, 99, 75, 66, 84,
- 102, 53, 105, 0, 74, 76, 15, 114, 37, 0,
- 39, 56, 0, 119, 121, 117, 118, 0, 124, 126,
- 127, 0, 44, 62, 0, 96, 73, 0, 108, 46,
- 0, 0, 0, 0, 0, 59, 0, 0, 0, 64,
- 0, 94, 65, 0, 71, 42, 100, 0, 81, 54,
- 101, 104, 0, 0, 57, 0, 0, 123, 125, 98,
- 106, 0, 0, 0, 0, 0, 108, 0, 52, 0,
- 0, 0, 87, 60, 86, 93, 0, 0, 0, 83,
- 103, 107, 0, 0, 0, 0, 49, 0, 0, 42,
- 61, 109, 0, 0, 0, 0, 0, 0, 95, 68,
- 116, 77, 0, 40, 97, 42, 42, 0, 0, 0,
- 91, 90, 89, 88, 0, 41, 0, 0, 0, 45,
- 0, 0, 69, 47, 0, 0, 0, 70
+ 0, 0, 0, 66, 0, 75, 118, 109, 0, 0,
+ 116, 21, 0, 0, 0, 55, 0, 0, 0, 0,
+ 131, 125, 0, 0, 38, 0, 42, 0, 0, 48,
+ 0, 50, 0, 51, 0, 61, 88, 0, 95, 0,
+ 82, 81, 83, 70, 0, 0, 102, 78, 69, 87,
+ 105, 53, 108, 0, 77, 79, 15, 117, 37, 0,
+ 39, 0, 0, 56, 122, 124, 120, 121, 0, 127,
+ 129, 130, 0, 44, 65, 0, 99, 76, 0, 111,
+ 46, 0, 0, 0, 0, 0, 62, 0, 0, 0,
+ 67, 0, 97, 68, 0, 74, 42, 103, 0, 84,
+ 54, 104, 107, 0, 0, 0, 57, 0, 126, 128,
+ 101, 109, 0, 0, 0, 0, 0, 111, 59, 0,
+ 52, 0, 0, 0, 90, 63, 89, 96, 0, 0,
+ 0, 86, 106, 110, 0, 0, 0, 0, 49, 0,
+ 0, 42, 64, 112, 60, 58, 0, 0, 0, 0,
+ 0, 0, 98, 71, 119, 80, 0, 40, 100, 42,
+ 42, 0, 0, 0, 94, 93, 92, 91, 0, 41,
+ 0, 0, 0, 45, 0, 0, 72, 47, 0, 0,
+ 0, 73
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 5, 6, 7, 101, 8, 9, 10, 11, 20,
- 83, 35, 26, 45, 46, 47, 48, 105, 160, 161,
- 110, 157, 84, 132, 162, 116, 85, 106, 173, 244,
- 254, 182, 178, 117, 171, 119, 108, 190, 87, 176,
- 88, 211, 133, 195, 196, 89, 90, 49, 50, 98,
- 102, 103, 51
+ 83, 35, 26, 45, 46, 47, 48, 105, 161, 162,
+ 110, 158, 84, 132, 96, 163, 116, 85, 106, 174,
+ 248, 258, 183, 179, 117, 172, 119, 108, 191, 87,
+ 177, 88, 213, 133, 196, 197, 89, 90, 49, 50,
+ 98, 102, 103, 51
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -103
+#define YYPACT_NINF -195
static const yytype_int16 yypact[] =
{
- 142, -103, -7, 45, -103, 56, 148, -103, -103, 60,
- -103, -103, 62, 39, -103, -103, -103, -10, 46, 86,
- 106, 39, -103, -103, 108, -103, 12, -103, -103, -103,
- 118, 91, -103, 132, 97, 105, -103, 123, -23, 161,
- 171, 180, 193, 11, -103, 119, 91, -103, -103, -103,
- -103, -103, 25, -103, 181, 157, 194, 175, 160, 162,
- 162, 19, -103, 57, -103, -103, 134, 57, -103, 164,
- 196, 196, 200, 196, 23, 169, 199, 201, 203, 202,
- 196, 172, 107, -103, 57, -103, -103, 7, 8, 207,
- 25, -103, 206, 160, 57, 178, 208, 209, 136, 165,
- -103, 205, 212, 5, -103, 167, 57, 210, 213, -103,
- 218, -103, 183, -103, 68, 184, 166, 215, 17, 219,
- -103, -103, -103, -103, 57, 222, -103, -103, -103, 211,
- -103, 187, -103, 99, -103, -103, -103, -103, -103, 223,
- -103, 188, 190, 162, -103, -103, -103, 183, -103, -103,
- -103, 225, -103, -103, 66, 227, -103, 195, 125, -2,
- 224, 228, 229, 169, 169, -103, 169, 197, 169, -103,
- 198, 230, -103, 204, -103, 57, -103, 57, -103, -103,
- -103, 214, 216, 217, -103, 226, 168, -103, -103, -103,
- 195, 234, 220, 221, 231, 238, 125, 160, -103, 160,
- 182, 174, 185, -103, 177, -103, -10, 239, 173, -103,
- -103, -103, 240, 232, 57, 176, -103, 235, 241, 57,
- -103, -103, 236, 242, 169, 169, 169, 169, -103, -103,
- -103, -103, 57, -103, -103, 57, 57, 69, 160, 160,
- 243, 243, 243, 243, 233, -103, 92, 109, 246, -103,
- 252, 160, -103, -103, 237, 244, 57, -103
+ 136, -195, -27, 22, -195, 67, 127, -195, -195, 79,
+ -195, -195, 89, 76, -195, -195, -195, -21, 88, 125,
+ 12, 76, -195, -195, 156, -195, 11, -195, -195, -195,
+ 35, 108, -195, 193, 99, 129, -195, 147, -22, 176,
+ 194, 195, 196, 7, -195, 110, 108, -195, -195, -195,
+ -195, -195, 25, -195, 197, 163, 200, 179, 169, 170,
+ 170, 19, -195, 81, -195, -195, 140, 81, -195, 172,
+ 201, 201, 203, 201, -13, 174, 204, 206, 208, 211,
+ 201, 180, 72, -195, 81, -195, -195, 18, 115, 213,
+ 25, -195, 212, 169, 81, -195, 15, 214, 160, 161,
+ -195, 188, 215, 5, -195, 162, 81, 218, 217, -195,
+ 198, -195, 186, -195, 166, 187, 164, 221, 143, 222,
+ -195, -195, -195, -195, 81, 227, -195, -195, -195, 205,
+ -195, 191, -195, 171, -195, -195, -195, -195, -195, 64,
+ -195, 192, 199, -195, 170, -195, -195, -195, 186, -195,
+ -195, -195, 226, -195, -195, 29, 228, -195, 202, 151,
+ 63, 223, 230, 231, 174, 174, -195, 174, 207, 174,
+ -195, 209, 224, -195, 210, -195, 81, -195, 81, -195,
+ -195, -195, 216, 219, 220, 225, -195, 167, -195, -195,
+ -195, 202, 232, 229, 233, 234, 236, 151, 235, 237,
+ -195, 237, 183, 177, 185, -195, 178, -195, -21, 238,
+ 168, -195, -195, -195, 239, 240, 81, 173, -195, 241,
+ 242, 81, -195, -195, -195, 243, 245, 244, 174, 174,
+ 174, 174, -195, -195, -195, -195, 81, -195, -195, 81,
+ 81, 34, 237, 237, 248, 248, 248, 248, 246, -195,
+ 85, 97, 249, -195, 255, 237, -195, -195, 247, 258,
+ 81, -195
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -103, -103, -103, 257, -15, -103, -103, -103, -103, 245,
- -6, -103, -103, 247, -103, -103, -103, -102, -103, 117,
- -50, -103, -103, 110, -57, -72, -103, -52, -103, -103,
- -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
- -103, -103, 75, 72, -103, 179, -103, -103, -103, -55,
- 170, -103, -103
+ -195, -195, -195, 250, -16, -195, -195, -195, -195, 251,
+ 66, -195, -195, 252, -195, -195, -195, -103, -195, 71,
+ 4, -195, -195, 86, 175, -194, -73, -195, -52, -195,
+ -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+ -195, -195, -195, 75, 57, -195, 181, -195, -195, -195,
+ -56, 182, -195, -195
};
/* 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 -121
+#define YYTABLE_NINF -124
static const yytype_int16 yytable[] =
{
- 86, 96, 24, 118, 154, 99, 149, 21, 56, -55,
- 150, 104, 62, 32, 130, 21, 134, 135, 57, 33,
- 27, 111, 34, 113, 100, 44, 22, 170, 167, 67,
- 124, 23, 129, 68, 12, 63, 139, 69, 86, 141,
- 44, 22, 140, 70, 71, 72, 23, 73, 131, 13,
- 74, 75, 76, 77, 78, 22, 14, 79, 80, 114,
- 23, 67, 81, 17, 115, 68, 82, 152, 18, 69,
- 152, -43, 174, 208, -111, 70, 71, 72, 163, 73,
- 19, 164, 74, 75, 76, 77, 78, 25, 186, 79,
- 80, 200, 201, 152, 202, 27, 204, -110, 82, 36,
- -43, -43, -43, -111, -111, -111, 180, 28, 37, 181,
- 152, 29, 31, 126, -112, 127, 27, 237, 128, 28,
- 64, 38, 39, -18, 65, 209, -110, -110, -110, 40,
- 41, 42, 43, 246, 247, 64, 52, 144, 53, -27,
- 222, 145, 223, -112, -112, -112, 54, 55, -2, 15,
- 1, -14, 240, 241, 242, 243, 1, 2, 3, 192,
- 193, 194, 233, 2, 3, 4, 144, 58, 152, 144,
- 146, 4, 153, -120, 152, 59, 166, 167, 230, 168,
- 245, 248, 249, 234, 60, 167, 181, 225, 167, 91,
- 227, 228, 224, 167, 253, 226, 167, 61, 92, 94,
- 93, 95, 109, 97, 257, 107, 112, 120, 123, 121,
- 115, 122, 136, 125, 138, 142, 155, 143, 147, 141,
- 148, 156, 158, 169, 159, 165, 175, 172, 179, 184,
- 183, 185, 177, 188, 189, 198, 131, 197, 203, 205,
- 199, 216, 219, 220, 206, 207, 235, 229, 231, 238,
- 214, 256, 236, 239, 167, 210, 232, 212, 213, 251,
- 252, 217, 218, 16, 187, 215, 30, 191, 221, 137,
- 0, 0, 0, 151, 250, 0, 0, 0, 255, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 66
+ 86, 24, 118, 155, 99, 226, 150, 227, 62, 56,
+ 151, 104, 32, 28, 12, 22, 27, 29, 33, 57,
+ 23, 34, 141, 114, 100, 130, 13, 142, 115, 67,
+ 153, 63, 129, 68, -43, 153, 28, 69, 86, -114,
+ -18, 22, 140, 70, 71, 72, 23, 73, 252, 253,
+ 74, 75, 76, 77, 78, 22, 143, 79, 80, 131,
+ 23, 257, 81, -43, -43, -43, 82, 14, -114, -114,
+ -114, 184, 175, 210, -58, 111, 142, 113, 126, 21,
+ 127, 27, 17, 128, 124, 67, 153, 21, 187, 68,
+ -113, 202, 203, 69, 204, 18, 206, 44, 153, 70,
+ 71, 72, -115, 73, 198, 143, 74, 75, 76, 77,
+ 78, 64, 44, 79, 80, 65, 36, 19, 241, -113,
+ -113, -113, 82, 134, 135, 37, 211, -2, 15, 25,
+ -14, -115, -115, -115, 27, 1, 250, 251, 38, 39,
+ 53, 64, 2, 3, 1, -27, 40, 41, 42, 43,
+ 4, 2, 3, 171, 168, 244, 245, 246, 247, 4,
+ 31, 145, 145, 153, 237, 146, 147, 154, 145, 153,
+ 54, 55, -123, 234, 167, 168, 164, 169, 181, 165,
+ 238, 182, 58, 182, 249, 193, 194, 195, 168, 168,
+ 229, 231, 232, 228, 168, 230, 168, 52, 59, 60,
+ 61, 148, 159, 94, 92, 91, 93, 109, 261, 112,
+ 95, 97, 120, 107, 121, 115, 122, 123, 136, 188,
+ 138, 125, 144, 149, 156, 157, 178, 160, 166, 170,
+ 173, 176, 180, 185, 189, 190, 199, 200, 208, 218,
+ 186, 222, 201, 131, 192, 221, 233, 235, 205, 216,
+ 207, 209, 239, 240, 223, 243, 16, 212, 242, 168,
+ 214, 215, 255, 256, 236, 260, 217, 0, 139, 0,
+ 219, 137, 30, 0, 220, 0, 224, 0, 225, 0,
+ 0, 0, 0, 0, 198, 152, 0, 254, 259, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66
};
static const yytype_int16 yycheck[] =
{
- 52, 58, 17, 75, 106, 60, 1, 13, 31, 11,
- 5, 63, 1, 1, 7, 21, 8, 9, 41, 7,
- 9, 71, 10, 73, 5, 31, 36, 10, 11, 4,
- 80, 41, 84, 8, 41, 24, 93, 12, 90, 41,
- 46, 36, 94, 18, 19, 20, 41, 22, 41, 4,
- 25, 26, 27, 28, 29, 36, 0, 32, 33, 36,
- 41, 4, 37, 3, 41, 8, 41, 1, 6, 12,
- 1, 5, 124, 175, 5, 18, 19, 20, 10, 22,
- 41, 13, 25, 26, 27, 28, 29, 41, 143, 32,
- 33, 163, 164, 1, 166, 9, 168, 5, 41, 8,
- 34, 35, 36, 34, 35, 36, 7, 1, 17, 10,
- 1, 5, 4, 6, 5, 8, 9, 219, 11, 1,
- 1, 30, 31, 5, 5, 177, 34, 35, 36, 38,
- 39, 40, 41, 235, 236, 1, 4, 1, 41, 5,
- 197, 5, 199, 34, 35, 36, 41, 24, 0, 1,
- 8, 3, 224, 225, 226, 227, 8, 15, 16, 34,
- 35, 36, 214, 15, 16, 23, 1, 6, 1, 1,
- 5, 23, 5, 5, 1, 4, 10, 11, 5, 13,
- 232, 238, 239, 7, 4, 11, 10, 13, 11, 8,
- 13, 206, 10, 11, 251, 10, 11, 4, 41, 24,
- 6, 41, 6, 41, 256, 41, 6, 8, 6, 8,
- 41, 8, 5, 41, 8, 7, 6, 8, 13, 41,
- 8, 8, 4, 8, 41, 41, 4, 8, 41, 41,
- 7, 41, 21, 8, 7, 7, 41, 13, 41, 41,
- 11, 7, 11, 5, 14, 41, 11, 8, 8, 13,
- 24, 7, 11, 11, 11, 41, 24, 41, 41, 13,
- 8, 41, 41, 6, 147, 190, 21, 157, 196, 90,
- -1, -1, -1, 103, 41, -1, -1, -1, 41, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 46
+ 52, 17, 75, 106, 60, 199, 1, 201, 1, 31,
+ 5, 63, 1, 1, 41, 36, 9, 5, 7, 41,
+ 41, 10, 7, 36, 5, 7, 4, 12, 41, 4,
+ 1, 24, 84, 8, 5, 1, 1, 12, 90, 5,
+ 5, 36, 94, 18, 19, 20, 41, 22, 242, 243,
+ 25, 26, 27, 28, 29, 36, 41, 32, 33, 41,
+ 41, 255, 37, 34, 35, 36, 41, 0, 34, 35,
+ 36, 7, 124, 176, 11, 71, 12, 73, 6, 13,
+ 8, 9, 3, 11, 80, 4, 1, 21, 144, 8,
+ 5, 164, 165, 12, 167, 6, 169, 31, 1, 18,
+ 19, 20, 5, 22, 41, 41, 25, 26, 27, 28,
+ 29, 1, 46, 32, 33, 5, 8, 41, 221, 34,
+ 35, 36, 41, 8, 9, 17, 178, 0, 1, 41,
+ 3, 34, 35, 36, 9, 8, 239, 240, 30, 31,
+ 41, 1, 15, 16, 8, 5, 38, 39, 40, 41,
+ 23, 15, 16, 10, 11, 228, 229, 230, 231, 23,
+ 4, 1, 1, 1, 216, 5, 5, 5, 1, 1,
+ 41, 24, 5, 5, 10, 11, 10, 13, 7, 13,
+ 7, 10, 6, 10, 236, 34, 35, 36, 11, 11,
+ 13, 13, 208, 10, 11, 10, 11, 4, 4, 4,
+ 4, 13, 4, 24, 41, 8, 6, 6, 260, 6,
+ 41, 41, 8, 41, 8, 41, 8, 6, 5, 148,
+ 8, 41, 8, 8, 6, 8, 21, 41, 41, 8,
+ 8, 4, 41, 41, 8, 7, 13, 7, 14, 7,
+ 41, 5, 11, 41, 158, 11, 8, 8, 41, 24,
+ 41, 41, 11, 11, 197, 11, 6, 41, 13, 11,
+ 41, 41, 13, 8, 24, 7, 191, -1, 93, -1,
+ 41, 90, 21, -1, 41, -1, 41, -1, 41, -1,
+ -1, -1, -1, -1, 41, 103, -1, 41, 41, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 46
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -873,28 +880,29 @@ static const yytype_uint8 yystos[] =
49, 50, 41, 4, 0, 1, 45, 3, 6, 41,
51, 52, 36, 41, 46, 41, 54, 9, 1, 5,
51, 4, 1, 7, 10, 53, 8, 17, 30, 31,
- 38, 39, 40, 41, 52, 55, 56, 57, 58, 89,
- 90, 94, 4, 41, 41, 24, 31, 41, 6, 4,
+ 38, 39, 40, 41, 52, 55, 56, 57, 58, 90,
+ 91, 95, 4, 41, 41, 24, 31, 41, 6, 4,
4, 4, 1, 24, 1, 5, 55, 4, 8, 12,
18, 19, 20, 22, 25, 26, 27, 28, 29, 32,
- 33, 37, 41, 52, 64, 68, 69, 80, 82, 87,
- 88, 8, 41, 6, 24, 41, 66, 41, 91, 91,
- 5, 46, 92, 93, 69, 59, 69, 41, 78, 6,
- 62, 62, 6, 62, 36, 41, 67, 75, 67, 77,
- 8, 8, 8, 6, 62, 41, 6, 8, 11, 69,
- 7, 41, 65, 84, 8, 9, 5, 87, 8, 66,
- 69, 41, 7, 8, 1, 5, 5, 13, 8, 1,
- 5, 92, 1, 5, 59, 6, 8, 63, 4, 41,
- 60, 61, 66, 10, 13, 41, 10, 11, 13, 8,
- 10, 76, 8, 70, 69, 4, 81, 21, 74, 41,
- 7, 10, 73, 7, 41, 41, 91, 61, 8, 7,
- 79, 65, 34, 35, 36, 85, 86, 13, 7, 11,
- 67, 67, 67, 41, 67, 41, 14, 41, 59, 69,
- 41, 83, 41, 41, 24, 84, 7, 41, 41, 11,
- 5, 85, 66, 66, 10, 13, 10, 13, 46, 8,
- 5, 8, 24, 69, 7, 11, 11, 59, 13, 11,
- 67, 67, 67, 67, 71, 69, 59, 59, 66, 66,
- 41, 13, 8, 66, 72, 41, 7, 69
+ 33, 37, 41, 52, 64, 69, 70, 81, 83, 88,
+ 89, 8, 41, 6, 24, 41, 66, 41, 92, 92,
+ 5, 46, 93, 94, 70, 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, 12, 41, 8, 1, 5, 5, 13, 8,
+ 1, 5, 93, 1, 5, 59, 6, 8, 63, 4,
+ 41, 60, 61, 67, 10, 13, 41, 10, 11, 13,
+ 8, 10, 77, 8, 71, 70, 4, 82, 21, 75,
+ 41, 7, 10, 74, 7, 41, 41, 92, 61, 8,
+ 7, 80, 65, 34, 35, 36, 86, 87, 41, 13,
+ 7, 11, 68, 68, 68, 41, 68, 41, 14, 41,
+ 59, 70, 41, 84, 41, 41, 24, 85, 7, 41,
+ 41, 11, 5, 86, 41, 41, 67, 67, 10, 13,
+ 10, 13, 46, 8, 5, 8, 24, 70, 7, 11,
+ 11, 59, 13, 11, 68, 68, 68, 68, 72, 70,
+ 59, 59, 67, 67, 41, 13, 8, 67, 73, 41,
+ 7, 70
};
#define yyerrok (yyerrstatus = 0)
@@ -1419,7 +1427,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
case 41: /* "word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1423 "ael.tab.c"
+#line 1431 "ael.tab.c"
break;
case 44: /* "objects" */
#line 164 "ael.y"
@@ -1427,7 +1435,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1431 "ael.tab.c"
+#line 1439 "ael.tab.c"
break;
case 45: /* "object" */
#line 164 "ael.y"
@@ -1435,12 +1443,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1439 "ael.tab.c"
+#line 1447 "ael.tab.c"
break;
case 46: /* "context_name" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1444 "ael.tab.c"
+#line 1452 "ael.tab.c"
break;
case 47: /* "context" */
#line 164 "ael.y"
@@ -1448,7 +1456,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1452 "ael.tab.c"
+#line 1460 "ael.tab.c"
break;
case 49: /* "macro" */
#line 164 "ael.y"
@@ -1456,7 +1464,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1460 "ael.tab.c"
+#line 1468 "ael.tab.c"
break;
case 50: /* "globals" */
#line 164 "ael.y"
@@ -1464,7 +1472,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1468 "ael.tab.c"
+#line 1476 "ael.tab.c"
break;
case 51: /* "global_statements" */
#line 164 "ael.y"
@@ -1472,7 +1480,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1476 "ael.tab.c"
+#line 1484 "ael.tab.c"
break;
case 52: /* "assignment" */
#line 164 "ael.y"
@@ -1480,7 +1488,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1484 "ael.tab.c"
+#line 1492 "ael.tab.c"
break;
case 54: /* "arglist" */
#line 164 "ael.y"
@@ -1488,7 +1496,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1492 "ael.tab.c"
+#line 1500 "ael.tab.c"
break;
case 55: /* "elements" */
#line 164 "ael.y"
@@ -1496,7 +1504,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1500 "ael.tab.c"
+#line 1508 "ael.tab.c"
break;
case 56: /* "element" */
#line 164 "ael.y"
@@ -1504,7 +1512,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1508 "ael.tab.c"
+#line 1516 "ael.tab.c"
break;
case 57: /* "ignorepat" */
#line 164 "ael.y"
@@ -1512,7 +1520,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1516 "ael.tab.c"
+#line 1524 "ael.tab.c"
break;
case 58: /* "extension" */
#line 164 "ael.y"
@@ -1520,7 +1528,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1524 "ael.tab.c"
+#line 1532 "ael.tab.c"
break;
case 59: /* "statements" */
#line 164 "ael.y"
@@ -1528,12 +1536,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1532 "ael.tab.c"
+#line 1540 "ael.tab.c"
break;
case 60: /* "timerange" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1537 "ael.tab.c"
+#line 1545 "ael.tab.c"
break;
case 61: /* "timespec" */
#line 164 "ael.y"
@@ -1541,12 +1549,12 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1545 "ael.tab.c"
+#line 1553 "ael.tab.c"
break;
case 62: /* "test_expr" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1550 "ael.tab.c"
+#line 1558 "ael.tab.c"
break;
case 64: /* "if_like_head" */
#line 164 "ael.y"
@@ -1554,32 +1562,24 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
destroy_pval((yyvaluep->pval));
prev_word=0;
};
-#line 1558 "ael.tab.c"
+#line 1566 "ael.tab.c"
break;
case 65: /* "word_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1563 "ael.tab.c"
+#line 1571 "ael.tab.c"
break;
- case 66: /* "word3_list" */
+ case 67: /* "word3_list" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1568 "ael.tab.c"
+#line 1576 "ael.tab.c"
break;
- case 67: /* "goto_word" */
+ case 68: /* "goto_word" */
#line 177 "ael.y"
{ free((yyvaluep->str));};
-#line 1573 "ael.tab.c"
- break;
- case 68: /* "switch_statement" */
-#line 164 "ael.y"
- {
- destroy_pval((yyvaluep->pval));
- prev_word=0;
- };
#line 1581 "ael.tab.c"
break;
- case 69: /* "statement" */
+ case 69: /* "switch_statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1587,7 +1587,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1589 "ael.tab.c"
break;
- case 74: /* "opt_else" */
+ case 70: /* "statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1595,7 +1595,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1597 "ael.tab.c"
break;
- case 75: /* "target" */
+ case 75: /* "opt_else" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1603,20 +1603,20 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1605 "ael.tab.c"
break;
- case 76: /* "opt_pri" */
-#line 177 "ael.y"
- { free((yyvaluep->str));};
-#line 1610 "ael.tab.c"
- break;
- case 77: /* "jumptarget" */
+ case 76: /* "target" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
+#line 1613 "ael.tab.c"
+ break;
+ case 77: /* "opt_pri" */
+#line 177 "ael.y"
+ { free((yyvaluep->str));};
#line 1618 "ael.tab.c"
break;
- case 78: /* "macro_call" */
+ case 78: /* "jumptarget" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1624,7 +1624,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1626 "ael.tab.c"
break;
- case 80: /* "application_call_head" */
+ case 79: /* "macro_call" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1632,7 +1632,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1634 "ael.tab.c"
break;
- case 82: /* "application_call" */
+ case 81: /* "application_call_head" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1640,20 +1640,20 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1642 "ael.tab.c"
break;
- case 83: /* "opt_word" */
-#line 177 "ael.y"
- { free((yyvaluep->str));};
-#line 1647 "ael.tab.c"
- break;
- case 84: /* "eval_arglist" */
+ case 83: /* "application_call" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
prev_word=0;
};
+#line 1650 "ael.tab.c"
+ break;
+ case 84: /* "opt_word" */
+#line 177 "ael.y"
+ { free((yyvaluep->str));};
#line 1655 "ael.tab.c"
break;
- case 85: /* "case_statements" */
+ case 85: /* "eval_arglist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1661,7 +1661,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1663 "ael.tab.c"
break;
- case 86: /* "case_statement" */
+ case 86: /* "case_statements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1669,7 +1669,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1671 "ael.tab.c"
break;
- case 87: /* "macro_statements" */
+ case 87: /* "case_statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1677,7 +1677,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1679 "ael.tab.c"
break;
- case 88: /* "macro_statement" */
+ case 88: /* "macro_statements" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1685,7 +1685,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1687 "ael.tab.c"
break;
- case 89: /* "switches" */
+ case 89: /* "macro_statement" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1693,7 +1693,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1695 "ael.tab.c"
break;
- case 90: /* "eswitches" */
+ case 90: /* "switches" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1701,7 +1701,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1703 "ael.tab.c"
break;
- case 91: /* "switchlist" */
+ case 91: /* "eswitches" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1709,7 +1709,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1711 "ael.tab.c"
break;
- case 92: /* "included_entry" */
+ case 92: /* "switchlist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1717,7 +1717,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1719 "ael.tab.c"
break;
- case 93: /* "includeslist" */
+ case 93: /* "included_entry" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1725,7 +1725,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1727 "ael.tab.c"
break;
- case 94: /* "includes" */
+ case 94: /* "includeslist" */
#line 164 "ael.y"
{
destroy_pval((yyvaluep->pval));
@@ -1733,6 +1733,14 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, parseio)
};
#line 1735 "ael.tab.c"
break;
+ case 95: /* "includes" */
+#line 164 "ael.y"
+ {
+ destroy_pval((yyvaluep->pval));
+ prev_word=0;
+ };
+#line 1743 "ael.tab.c"
+ break;
default:
break;
@@ -2371,20 +2379,41 @@ yyreduce:
case 55:
#line 344 "ael.y"
- { (yyval.str) = (yyvsp[(1) - (1)].str);;}
+ { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
case 56:
#line 345 "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 349 "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 58:
+#line 355 "ael.y"
+ { (yyval.str) = (yyvsp[(1) - (1)].str);;}
+ break;
+
+ case 59:
+#line 356 "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));
prev_word = (yyval.str);;}
break;
- case 57:
-#line 350 "ael.y"
+ case 60:
+#line 361 "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));
@@ -2393,85 +2422,85 @@ yyreduce:
prev_word=(yyval.str);;}
break;
- case 58:
-#line 358 "ael.y"
+ case 61:
+#line 369 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
- case 59:
-#line 359 "ael.y"
+ case 62:
+#line 370 "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 60:
-#line 363 "ael.y"
+ case 63:
+#line 374 "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 61:
-#line 369 "ael.y"
+ case 64:
+#line 380 "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 62:
-#line 378 "ael.y"
+ case 65:
+#line 389 "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 63:
-#line 381 "ael.y"
+ case 66:
+#line 392 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
- case 64:
-#line 382 "ael.y"
+ case 67:
+#line 393 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
- case 65:
-#line 385 "ael.y"
+ case 68:
+#line 396 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
- case 66:
-#line 388 "ael.y"
+ case 69:
+#line 399 "ael.y"
{
(yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;}
break;
- case 67:
-#line 391 "ael.y"
+ case 70:
+#line 402 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 68:
-#line 392 "ael.y"
+ case 71:
+#line 403 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 69:
-#line 393 "ael.y"
+ case 72:
+#line 404 "ael.y"
{reset_parencount(parseio->scanner);;}
break;
- case 70:
-#line 393 "ael.y"
+ case 73:
+#line 404 "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);
@@ -2480,43 +2509,43 @@ yyreduce:
(yyval.pval)->u4.for_statements = (yyvsp[(12) - (12)].pval); set_dads((yyval.pval),(yyvsp[(12) - (12)].pval));;}
break;
- case 71:
-#line 399 "ael.y"
+ case 74:
+#line 410 "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 72:
-#line 403 "ael.y"
+ case 75:
+#line 414 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
- case 73:
-#line 404 "ael.y"
+ case 76:
+#line 415 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;}
break;
- case 74:
-#line 405 "ael.y"
+ case 77:
+#line 416 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
- case 75:
-#line 406 "ael.y"
+ case 78:
+#line 417 "ael.y"
{
(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;}
break;
- case 76:
-#line 409 "ael.y"
+ case 79:
+#line 420 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
- case 77:
-#line 409 "ael.y"
+ case 80:
+#line 420 "ael.y"
{
char *bufx;
int tot=0;
@@ -2552,127 +2581,127 @@ yyreduce:
;}
break;
- case 78:
-#line 442 "ael.y"
+ case 81:
+#line 453 "ael.y"
{ (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 79:
-#line 443 "ael.y"
+ case 82:
+#line 454 "ael.y"
{ (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 80:
-#line 444 "ael.y"
+ case 83:
+#line 455 "ael.y"
{ (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
- case 81:
-#line 445 "ael.y"
+ case 84:
+#line 456 "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 82:
-#line 449 "ael.y"
+ case 85:
+#line 460 "ael.y"
{ (yyval.pval)=0; ;}
break;
- case 83:
-#line 452 "ael.y"
+ case 86:
+#line 463 "ael.y"
{ (yyval.pval) = (yyvsp[(2) - (2)].pval); ;}
break;
- case 84:
-#line 453 "ael.y"
+ case 87:
+#line 464 "ael.y"
{ (yyval.pval) = NULL ; ;}
break;
- case 85:
-#line 456 "ael.y"
+ case 88:
+#line 467 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 86:
-#line 457 "ael.y"
+ case 89:
+#line 468 "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 87:
-#line 460 "ael.y"
+ case 90:
+#line 471 "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 88:
-#line 463 "ael.y"
+ case 91:
+#line 474 "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 89:
-#line 467 "ael.y"
+ case 92:
+#line 478 "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 90:
-#line 471 "ael.y"
+ case 93:
+#line 482 "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 91:
-#line 475 "ael.y"
+ case 94:
+#line 486 "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 92:
-#line 481 "ael.y"
+ case 95:
+#line 492 "ael.y"
{ (yyval.str) = strdup("1"); ;}
break;
- case 93:
-#line 482 "ael.y"
+ case 96:
+#line 493 "ael.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); ;}
break;
- case 94:
-#line 486 "ael.y"
+ case 97:
+#line 497 "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 95:
-#line 489 "ael.y"
+ case 98:
+#line 500 "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 96:
-#line 495 "ael.y"
+ case 99:
+#line 506 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
- case 97:
-#line 495 "ael.y"
+ case 100:
+#line 506 "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)]));
@@ -2680,20 +2709,20 @@ yyreduce:
(yyval.pval)->u2.arglist = (yyvsp[(4) - (5)].pval);;}
break;
- case 98:
-#line 500 "ael.y"
+ case 101:
+#line 511 "ael.y"
{
(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;}
break;
- case 99:
-#line 508 "ael.y"
+ case 102:
+#line 519 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
- case 100:
-#line 508 "ael.y"
+ case 103:
+#line 519 "ael.y"
{
if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) {
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
@@ -2705,8 +2734,8 @@ yyreduce:
} ;}
break;
- case 101:
-#line 519 "ael.y"
+ case 104:
+#line 530 "ael.y"
{
(yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)]));
if( (yyval.pval)->type == PV_GOTO )
@@ -2716,168 +2745,168 @@ yyreduce:
;}
break;
- case 102:
-#line 526 "ael.y"
+ case 105:
+#line 537 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
- case 103:
-#line 529 "ael.y"
+ case 106:
+#line 540 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str) ;}
break;
- case 104:
-#line 530 "ael.y"
+ case 107:
+#line 541 "ael.y"
{ (yyval.str) = strdup(""); ;}
break;
- case 105:
-#line 533 "ael.y"
+ case 108:
+#line 544 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 106:
-#line 534 "ael.y"
+ case 109:
+#line 545 "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 107:
-#line 537 "ael.y"
+ case 110:
+#line 548 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
break;
- case 108:
-#line 540 "ael.y"
+ case 111:
+#line 551 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 109:
-#line 541 "ael.y"
+ case 112:
+#line 552 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 110:
-#line 544 "ael.y"
+ case 113:
+#line 555 "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 111:
-#line 548 "ael.y"
+ case 114:
+#line 559 "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 112:
-#line 552 "ael.y"
+ case 115:
+#line 563 "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 113:
-#line 558 "ael.y"
+ case 116:
+#line 569 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 114:
-#line 559 "ael.y"
+ case 117:
+#line 570 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
- case 115:
-#line 562 "ael.y"
+ case 118:
+#line 573 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
- case 116:
-#line 563 "ael.y"
+ case 119:
+#line 574 "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 117:
-#line 569 "ael.y"
+ case 120:
+#line 580 "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 118:
-#line 574 "ael.y"
+ case 121:
+#line 585 "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 119:
-#line 579 "ael.y"
+ case 122:
+#line 590 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
- case 120:
-#line 580 "ael.y"
+ case 123:
+#line 591 "ael.y"
{ (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;}
break;
- case 121:
-#line 581 "ael.y"
+ case 124:
+#line 592 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
- case 122:
-#line 584 "ael.y"
+ case 125:
+#line 595 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
- case 123:
-#line 585 "ael.y"
+ case 126:
+#line 596 "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 124:
-#line 592 "ael.y"
+ case 127:
+#line 603 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (2)].pval); ;}
break;
- case 125:
-#line 593 "ael.y"
+ case 128:
+#line 604 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;}
break;
- case 126:
-#line 594 "ael.y"
+ case 129:
+#line 605 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
- case 127:
-#line 597 "ael.y"
+ case 130:
+#line 608 "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 128:
-#line 600 "ael.y"
+ case 131:
+#line 611 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;}
break;
/* Line 1270 of yacc.c. */
-#line 2881 "ael.tab.c"
+#line 2910 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3096,7 +3125,7 @@ yyreturn:
}
-#line 605 "ael.y"
+#line 616 "ael.y"
static char *token_equivs1[] =
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index 309cc939a..81a76fd33 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -132,7 +132,7 @@ static pval *update_last(pval *, YYLTYPE *);
%type <str>goto_word
%type <str>word_list
-%type <str>word3_list
+%type <str>word3_list hint_word
%type <str>test_expr
%type <str>opt_pri
@@ -272,12 +272,12 @@ extension : word EXTENMARK statement {
$$->u1.str = $2;
$$->u2.statements = $4; set_dads($$,$4);
$$->u4.regexten=1;}
- | KW_HINT LP word3_list RP word EXTENMARK statement {
+ | KW_HINT LP hint_word RP word EXTENMARK statement {
$$ = npval2(PV_EXTENSION, &@1, &@7);
$$->u1.str = $5;
$$->u2.statements = $7; set_dads($$,$7);
$$->u3.hints = $3;}
- | KW_REGEXTEN KW_HINT LP word3_list RP word EXTENMARK statement {
+ | KW_REGEXTEN KW_HINT LP hint_word RP word EXTENMARK statement {
$$ = npval2(PV_EXTENSION, &@1, &@8);
$$->u1.str = $6;
$$->u2.statements = $8; set_dads($$,$8);
@@ -341,6 +341,17 @@ word_list : word { $$ = $1;}
prev_word = $$;}
;
+hint_word : word { $$ = $1; }
+ | hint_word word {
+ asprintf(&($$), "%s %s", $1, $2);
+ free($1);
+ free($2); }
+ | hint_word AMPER word { /* there are often '&' in hints */
+ asprintf(&($$), "%s&%s", $1, $3);
+ free($1);
+ free($3);}
+
+
word3_list : word { $$ = $1;}
| word word {
asprintf(&($$), "%s%s", $1, $2);