summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pbx/ael/ael.tab.c519
-rw-r--r--pbx/ael/ael.y3
2 files changed, 278 insertions, 244 deletions
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index 627592215..74183c8ac 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -561,22 +561,22 @@ static const yysigned_char yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short int yyrline[] =
{
- 0, 160, 160, 163, 164, 175, 178, 179, 180, 181,
- 184, 188, 191, 195, 198, 203, 207, 212, 218, 221,
- 224, 227, 232, 235, 240, 241, 242, 245, 245, 251,
- 254, 259, 262, 263, 264, 267, 270, 271, 272, 273,
- 274, 275, 275, 279, 280, 283, 288, 292, 297, 302,
- 311, 312, 315, 318, 318, 323, 323, 328, 344, 364,
- 365, 372, 373, 378, 386, 387, 391, 397, 397, 405,
- 408, 408, 412, 415, 418, 421, 422, 423, 421, 429,
- 429, 433, 437, 442, 446, 450, 453, 453, 486, 488,
- 490, 492, 497, 503, 508, 514, 519, 525, 528, 529,
- 534, 539, 546, 553, 560, 569, 574, 579, 586, 593,
- 600, 609, 609, 614, 619, 619, 629, 635, 638, 641,
- 644, 649, 656, 657, 662, 666, 670, 674, 677, 680,
- 685, 686, 691, 692, 695, 696, 699, 700, 703, 704,
- 705, 708, 709, 725, 738, 739, 754, 767, 770, 771,
- 774, 777
+ 0, 161, 161, 164, 165, 176, 179, 180, 181, 182,
+ 185, 189, 192, 196, 199, 204, 208, 213, 219, 222,
+ 225, 228, 233, 236, 241, 242, 243, 246, 246, 252,
+ 255, 260, 263, 264, 265, 268, 271, 272, 273, 274,
+ 275, 276, 276, 280, 281, 284, 289, 293, 298, 303,
+ 312, 313, 316, 319, 319, 324, 324, 329, 345, 365,
+ 366, 373, 374, 379, 387, 388, 392, 398, 398, 406,
+ 409, 409, 413, 416, 419, 422, 423, 424, 422, 430,
+ 430, 434, 438, 443, 447, 451, 454, 454, 487, 489,
+ 491, 493, 498, 504, 509, 515, 520, 526, 529, 530,
+ 535, 540, 547, 554, 561, 570, 575, 580, 587, 594,
+ 601, 610, 610, 615, 620, 620, 630, 636, 639, 642,
+ 645, 650, 657, 658, 663, 667, 671, 675, 678, 681,
+ 686, 687, 692, 693, 696, 697, 700, 701, 704, 705,
+ 706, 709, 710, 726, 739, 740, 755, 768, 771, 772,
+ 775, 778
};
#endif
@@ -1313,425 +1313,458 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp)
switch (yytype)
{
case 41: /* "word" */
-#line 155 "ael.y"
+#line 156 "ael.y"
{ free((yyvaluep->str));};
#line 1319 "ael.tab.c"
break;
case 44: /* "objects" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1331 "ael.tab.c"
+#line 1332 "ael.tab.c"
break;
case 45: /* "object" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1343 "ael.tab.c"
+#line 1345 "ael.tab.c"
break;
case 46: /* "context" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1355 "ael.tab.c"
+#line 1358 "ael.tab.c"
break;
case 47: /* "macro" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1367 "ael.tab.c"
+#line 1371 "ael.tab.c"
break;
case 48: /* "globals" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1379 "ael.tab.c"
+#line 1384 "ael.tab.c"
break;
case 49: /* "global_statements" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1391 "ael.tab.c"
+#line 1397 "ael.tab.c"
break;
case 50: /* "global_statement" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1403 "ael.tab.c"
+#line 1410 "ael.tab.c"
break;
case 52: /* "arglist" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1415 "ael.tab.c"
+#line 1423 "ael.tab.c"
break;
case 53: /* "elements" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1427 "ael.tab.c"
+#line 1436 "ael.tab.c"
break;
case 54: /* "element" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1439 "ael.tab.c"
+#line 1449 "ael.tab.c"
break;
case 56: /* "ignorepat" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1451 "ael.tab.c"
+#line 1462 "ael.tab.c"
break;
case 57: /* "extension" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1463 "ael.tab.c"
+#line 1475 "ael.tab.c"
break;
case 58: /* "statements" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1475 "ael.tab.c"
+#line 1488 "ael.tab.c"
break;
case 59: /* "if_head" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1487 "ael.tab.c"
+#line 1501 "ael.tab.c"
break;
case 61: /* "random_head" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1499 "ael.tab.c"
+#line 1514 "ael.tab.c"
break;
case 63: /* "iftime_head" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1511 "ael.tab.c"
+#line 1527 "ael.tab.c"
break;
case 64: /* "word_list" */
-#line 155 "ael.y"
+#line 156 "ael.y"
{ free((yyvaluep->str));};
-#line 1516 "ael.tab.c"
+#line 1532 "ael.tab.c"
break;
case 65: /* "word3_list" */
-#line 155 "ael.y"
+#line 156 "ael.y"
{ free((yyvaluep->str));};
-#line 1521 "ael.tab.c"
+#line 1537 "ael.tab.c"
break;
case 66: /* "goto_word" */
-#line 155 "ael.y"
+#line 156 "ael.y"
{ free((yyvaluep->str));};
-#line 1526 "ael.tab.c"
+#line 1542 "ael.tab.c"
break;
case 67: /* "switch_head" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1538 "ael.tab.c"
+#line 1555 "ael.tab.c"
break;
case 69: /* "statement" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1550 "ael.tab.c"
+#line 1568 "ael.tab.c"
break;
case 76: /* "target" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1562 "ael.tab.c"
+#line 1581 "ael.tab.c"
break;
case 77: /* "jumptarget" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1574 "ael.tab.c"
+#line 1594 "ael.tab.c"
break;
case 78: /* "macro_call" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1586 "ael.tab.c"
+#line 1607 "ael.tab.c"
break;
case 80: /* "application_call_head" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1598 "ael.tab.c"
+#line 1620 "ael.tab.c"
break;
case 82: /* "application_call" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1610 "ael.tab.c"
+#line 1633 "ael.tab.c"
break;
case 83: /* "eval_arglist" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1622 "ael.tab.c"
+#line 1646 "ael.tab.c"
break;
case 84: /* "case_statements" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1634 "ael.tab.c"
+#line 1659 "ael.tab.c"
break;
case 85: /* "case_statement" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1646 "ael.tab.c"
+#line 1672 "ael.tab.c"
break;
case 86: /* "macro_statements" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1658 "ael.tab.c"
+#line 1685 "ael.tab.c"
break;
case 87: /* "macro_statement" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1670 "ael.tab.c"
+#line 1698 "ael.tab.c"
break;
case 88: /* "switches" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1682 "ael.tab.c"
+#line 1711 "ael.tab.c"
break;
case 89: /* "eswitches" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1694 "ael.tab.c"
+#line 1724 "ael.tab.c"
break;
case 90: /* "switchlist" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1706 "ael.tab.c"
+#line 1737 "ael.tab.c"
break;
case 91: /* "includeslist" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1718 "ael.tab.c"
+#line 1750 "ael.tab.c"
break;
case 92: /* "includedname" */
-#line 155 "ael.y"
+#line 156 "ael.y"
{ free((yyvaluep->str));};
-#line 1723 "ael.tab.c"
+#line 1755 "ael.tab.c"
break;
case 93: /* "includes" */
#line 140 "ael.y"
{
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval((yyvaluep->pval));
prev_word=0;
} else {
printf("Cleanup destructor called for pvals\n");
}
};
-#line 1735 "ael.tab.c"
+#line 1768 "ael.tab.c"
break;
default:
@@ -2048,17 +2081,17 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 160 "ael.y"
+#line 161 "ael.y"
{ (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;}
break;
case 3:
-#line 163 "ael.y"
+#line 164 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 4:
-#line 165 "ael.y"
+#line 166 "ael.y"
{
if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {
(yyval.pval)=(yyvsp[-1].pval);
@@ -2072,32 +2105,32 @@ yyreduce:
break;
case 5:
-#line 175 "ael.y"
+#line 176 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 6:
-#line 178 "ael.y"
+#line 179 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 7:
-#line 179 "ael.y"
+#line 180 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 8:
-#line 180 "ael.y"
+#line 181 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 9:
-#line 181 "ael.y"
+#line 182 "ael.y"
{(yyval.pval)=0;/* allow older docs to be read */;}
break;
case 10:
-#line 184 "ael.y"
+#line 185 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-3].str);
@@ -2105,14 +2138,14 @@ yyreduce:
break;
case 11:
-#line 188 "ael.y"
+#line 189 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
break;
case 12:
-#line 191 "ael.y"
+#line 192 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = strdup("default");
@@ -2120,14 +2153,14 @@ yyreduce:
break;
case 13:
-#line 195 "ael.y"
+#line 196 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.str = strdup("default"); ;}
break;
case 14:
-#line 198 "ael.y"
+#line 199 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-3].str);
@@ -2136,7 +2169,7 @@ yyreduce:
break;
case 15:
-#line 203 "ael.y"
+#line 204 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2144,7 +2177,7 @@ yyreduce:
break;
case 16:
-#line 207 "ael.y"
+#line 208 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0]));
(yyval.pval)->u1.str = strdup("default");
@@ -2153,7 +2186,7 @@ yyreduce:
break;
case 17:
-#line 212 "ael.y"
+#line 213 "ael.y"
{
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = strdup("default");
@@ -2161,69 +2194,69 @@ yyreduce:
break;
case 18:
-#line 218 "ael.y"
+#line 219 "ael.y"
{
(yyval.pval) = npval2(PV_MACRO, &(yylsp[-7]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-6].str); (yyval.pval)->u2.arglist = (yyvsp[-4].pval); (yyval.pval)->u3.macro_statements = (yyvsp[-1].pval); ;}
break;
case 19:
-#line 221 "ael.y"
+#line 222 "ael.y"
{
(yyval.pval)=npval(PV_MACRO,(yylsp[-6]).first_line,(yylsp[0]).last_line, (yylsp[-6]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u2.arglist = (yyvsp[-3].pval); ;}
break;
case 20:
-#line 224 "ael.y"
+#line 225 "ael.y"
{
(yyval.pval)=npval(PV_MACRO,(yylsp[-6]).first_line,(yylsp[0]).last_line, (yylsp[-6]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-5].str); (yyval.pval)->u3.macro_statements = (yyvsp[-1].pval); ;}
break;
case 21:
-#line 227 "ael.y"
+#line 228 "ael.y"
{
(yyval.pval)=npval(PV_MACRO,(yylsp[-5]).first_line,(yylsp[0]).last_line, (yylsp[-5]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-4].str); /* pretty empty! */ ;}
break;
case 22:
-#line 232 "ael.y"
+#line 233 "ael.y"
{
(yyval.pval)=npval(PV_GLOBALS,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.statements = (yyvsp[-1].pval);;}
break;
case 23:
-#line 235 "ael.y"
+#line 236 "ael.y"
{
(yyval.pval)=npval(PV_GLOBALS,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
/* and that's all */ ;}
break;
case 24:
-#line 240 "ael.y"
+#line 241 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 25:
-#line 241 "ael.y"
+#line 242 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));;}
break;
case 26:
-#line 242 "ael.y"
+#line 243 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 27:
-#line 245 "ael.y"
+#line 246 "ael.y"
{ reset_semicount(parseio->scanner); ;}
break;
case 28:
-#line 245 "ael.y"
+#line 246 "ael.y"
{
(yyval.pval)=npval(PV_VARDEC,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2231,14 +2264,14 @@ yyreduce:
break;
case 29:
-#line 251 "ael.y"
+#line 252 "ael.y"
{
(yyval.pval)= npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[0].str); ;}
break;
case 30:
-#line 254 "ael.y"
+#line 255 "ael.y"
{
pval *z = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
z->u1.str = (yyvsp[0].str);
@@ -2247,64 +2280,64 @@ yyreduce:
break;
case 31:
-#line 259 "ael.y"
+#line 260 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 32:
-#line 262 "ael.y"
+#line 263 "ael.y"
{ (yyval.pval)=(yyvsp[0].pval);;}
break;
case 33:
-#line 263 "ael.y"
+#line 264 "ael.y"
{(yyval.pval)=0;;}
break;
case 34:
-#line 264 "ael.y"
+#line 265 "ael.y"
{ if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
break;
case 35:
-#line 267 "ael.y"
+#line 268 "ael.y"
{ (yyval.pval)=(yyvsp[-1].pval);;}
break;
case 36:
-#line 270 "ael.y"
+#line 271 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 37:
-#line 271 "ael.y"
+#line 272 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 38:
-#line 272 "ael.y"
+#line 273 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 39:
-#line 273 "ael.y"
+#line 274 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 40:
-#line 274 "ael.y"
+#line 275 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 41:
-#line 275 "ael.y"
+#line 276 "ael.y"
{ reset_semicount(parseio->scanner); ;}
break;
case 42:
-#line 275 "ael.y"
+#line 276 "ael.y"
{
(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2312,24 +2345,24 @@ yyreduce:
break;
case 43:
-#line 279 "ael.y"
+#line 280 "ael.y"
{free((yyvsp[-1].str)); (yyval.pval)=0;;}
break;
case 44:
-#line 280 "ael.y"
+#line 281 "ael.y"
{(yyval.pval)=0;/* allow older docs to be read */;}
break;
case 45:
-#line 283 "ael.y"
+#line 284 "ael.y"
{
(yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 46:
-#line 288 "ael.y"
+#line 289 "ael.y"
{
(yyval.pval) = npval(PV_EXTENSION,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2337,7 +2370,7 @@ yyreduce:
break;
case 47:
-#line 292 "ael.y"
+#line 293 "ael.y"
{
(yyval.pval) = npval(PV_EXTENSION,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2346,7 +2379,7 @@ yyreduce:
break;
case 48:
-#line 297 "ael.y"
+#line 298 "ael.y"
{
(yyval.pval) = npval(PV_EXTENSION,(yylsp[-6]).first_line,(yylsp[0]).last_line, (yylsp[-6]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2355,7 +2388,7 @@ yyreduce:
break;
case 49:
-#line 302 "ael.y"
+#line 303 "ael.y"
{
(yyval.pval) = npval(PV_EXTENSION,(yylsp[-7]).first_line,(yylsp[0]).last_line, (yylsp[-7]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2365,48 +2398,48 @@ yyreduce:
break;
case 50:
-#line 311 "ael.y"
+#line 312 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 51:
-#line 312 "ael.y"
+#line 313 "ael.y"
{if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
break;
case 52:
-#line 315 "ael.y"
+#line 316 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 53:
-#line 318 "ael.y"
+#line 319 "ael.y"
{ reset_parencount(parseio->scanner); ;}
break;
case 54:
-#line 318 "ael.y"
+#line 319 "ael.y"
{
(yyval.pval)= npval(PV_IF,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-1].str); ;}
break;
case 55:
-#line 323 "ael.y"
+#line 324 "ael.y"
{ reset_parencount(parseio->scanner); ;}
break;
case 56:
-#line 323 "ael.y"
+#line 324 "ael.y"
{
(yyval.pval)= npval(PV_RANDOM,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str=(yyvsp[-1].str);;}
break;
case 57:
-#line 329 "ael.y"
+#line 330 "ael.y"
{
(yyval.pval) = npval2(PV_IFTIME, &(yylsp[-13]), &(yylsp[-9])); /* XXX really @5 or more ? */
(yyval.pval)->u1.list = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-11]));
@@ -2425,7 +2458,7 @@ yyreduce:
break;
case 58:
-#line 344 "ael.y"
+#line 345 "ael.y"
{
(yyval.pval) = npval2(PV_IFTIME, &(yylsp[-9]), &(yylsp[-5])); /* XXX @5 or greater ? */
(yyval.pval)->u1.list = npval2(PV_WORD, &(yylsp[-7]), &(yylsp[-7]));
@@ -2441,12 +2474,12 @@ yyreduce:
break;
case 59:
-#line 364 "ael.y"
+#line 365 "ael.y"
{ (yyval.str) = (yyvsp[0].str);;}
break;
case 60:
-#line 365 "ael.y"
+#line 366 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
free((yyvsp[-1].str));
@@ -2455,12 +2488,12 @@ yyreduce:
break;
case 61:
-#line 372 "ael.y"
+#line 373 "ael.y"
{ (yyval.str) = (yyvsp[0].str);;}
break;
case 62:
-#line 373 "ael.y"
+#line 374 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
free((yyvsp[-1].str));
@@ -2469,7 +2502,7 @@ yyreduce:
break;
case 63:
-#line 378 "ael.y"
+#line 379 "ael.y"
{
asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str));
free((yyvsp[-2].str));
@@ -2479,12 +2512,12 @@ yyreduce:
break;
case 64:
-#line 386 "ael.y"
+#line 387 "ael.y"
{ (yyval.str) = (yyvsp[0].str);;}
break;
case 65:
-#line 387 "ael.y"
+#line 388 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str));
free((yyvsp[-1].str));
@@ -2492,7 +2525,7 @@ yyreduce:
break;
case 66:
-#line 391 "ael.y"
+#line 392 "ael.y"
{
asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str));
free((yyvsp[-2].str));
@@ -2500,31 +2533,31 @@ yyreduce:
break;
case 67:
-#line 397 "ael.y"
+#line 398 "ael.y"
{ reset_parencount(parseio->scanner); ;}
break;
case 68:
-#line 397 "ael.y"
+#line 398 "ael.y"
{
(yyval.pval)=npval(PV_SWITCH,(yylsp[-5]).first_line,(yylsp[0]).last_line, (yylsp[-5]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
break;
case 69:
-#line 405 "ael.y"
+#line 406 "ael.y"
{
(yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
break;
case 70:
-#line 408 "ael.y"
+#line 409 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 71:
-#line 408 "ael.y"
+#line 409 "ael.y"
{
(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2532,43 +2565,43 @@ yyreduce:
break;
case 72:
-#line 412 "ael.y"
+#line 413 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
break;
case 73:
-#line 415 "ael.y"
+#line 416 "ael.y"
{
(yyval.pval)=npval(PV_GOTO,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
break;
case 74:
-#line 418 "ael.y"
+#line 419 "ael.y"
{
(yyval.pval)=npval(PV_LABEL,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-1].str); ;}
break;
case 75:
-#line 421 "ael.y"
+#line 422 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 76:
-#line 422 "ael.y"
+#line 423 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 77:
-#line 423 "ael.y"
+#line 424 "ael.y"
{reset_parencount(parseio->scanner);;}
break;
case 78:
-#line 423 "ael.y"
+#line 424 "ael.y"
{
(yyval.pval)=npval(PV_FOR,(yylsp[-11]).first_line,(yylsp[0]).last_line, (yylsp[-11]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.for_init = (yyvsp[-8].str);
@@ -2578,12 +2611,12 @@ yyreduce:
break;
case 79:
-#line 429 "ael.y"
+#line 430 "ael.y"
{reset_parencount(parseio->scanner);;}
break;
case 80:
-#line 429 "ael.y"
+#line 430 "ael.y"
{
(yyval.pval)=npval(PV_WHILE,(yylsp[-5]).first_line,(yylsp[0]).last_line, (yylsp[-5]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2591,7 +2624,7 @@ yyreduce:
break;
case 81:
-#line 433 "ael.y"
+#line 434 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->endline = (yylsp[0]).last_line;
@@ -2599,7 +2632,7 @@ yyreduce:
break;
case 82:
-#line 437 "ael.y"
+#line 438 "ael.y"
{
(yyval.pval)=(yyvsp[-2].pval);
(yyval.pval)->u2.statements = (yyvsp[-1].pval);
@@ -2608,7 +2641,7 @@ yyreduce:
break;
case 83:
-#line 442 "ael.y"
+#line 443 "ael.y"
{
(yyval.pval) = (yyvsp[-1].pval);
(yyval.pval)->endline = (yylsp[-1]).last_line;
@@ -2616,7 +2649,7 @@ yyreduce:
break;
case 84:
-#line 446 "ael.y"
+#line 447 "ael.y"
{
(yyval.pval) = (yyvsp[-1].pval);
(yyval.pval)->endline = (yylsp[0]).last_line;
@@ -2624,19 +2657,19 @@ yyreduce:
break;
case 85:
-#line 450 "ael.y"
+#line 451 "ael.y"
{
(yyval.pval)= npval(PV_APPLICATION_CALL,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 86:
-#line 453 "ael.y"
+#line 454 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 87:
-#line 453 "ael.y"
+#line 454 "ael.y"
{
char *bufx;
int tot=0;
@@ -2673,25 +2706,25 @@ yyreduce:
break;
case 88:
-#line 486 "ael.y"
+#line 487 "ael.y"
{
(yyval.pval) = npval(PV_BREAK,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);;}
break;
case 89:
-#line 488 "ael.y"
+#line 489 "ael.y"
{
(yyval.pval) = npval(PV_RETURN,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);;}
break;
case 90:
-#line 490 "ael.y"
+#line 491 "ael.y"
{
(yyval.pval) = npval(PV_CONTINUE,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);;}
break;
case 91:
-#line 492 "ael.y"
+#line 493 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
@@ -2700,7 +2733,7 @@ yyreduce:
break;
case 92:
-#line 497 "ael.y"
+#line 498 "ael.y"
{
(yyval.pval)=(yyvsp[-3].pval);
(yyval.pval)->u2.statements = (yyvsp[-2].pval);
@@ -2710,7 +2743,7 @@ yyreduce:
break;
case 93:
-#line 503 "ael.y"
+#line 504 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
@@ -2719,7 +2752,7 @@ yyreduce:
break;
case 94:
-#line 508 "ael.y"
+#line 509 "ael.y"
{
(yyval.pval)=(yyvsp[-3].pval);
(yyval.pval)->u2.statements = (yyvsp[-2].pval);
@@ -2729,7 +2762,7 @@ yyreduce:
break;
case 95:
-#line 514 "ael.y"
+#line 515 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
@@ -2738,7 +2771,7 @@ yyreduce:
break;
case 96:
-#line 519 "ael.y"
+#line 520 "ael.y"
{
(yyval.pval)=(yyvsp[-3].pval);
(yyval.pval)->u2.statements = (yyvsp[-2].pval);
@@ -2748,17 +2781,17 @@ yyreduce:
break;
case 97:
-#line 525 "ael.y"
+#line 526 "ael.y"
{ (yyval.pval)=0; ;}
break;
case 98:
-#line 528 "ael.y"
+#line 529 "ael.y"
{ (yyval.pval) = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[0].str);;}
break;
case 99:
-#line 529 "ael.y"
+#line 530 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2767,7 +2800,7 @@ yyreduce:
break;
case 100:
-#line 534 "ael.y"
+#line 535 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2776,7 +2809,7 @@ yyreduce:
break;
case 101:
-#line 539 "ael.y"
+#line 540 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-4]).first_line,(yylsp[-4]).last_line, (yylsp[-4]).first_column, (yylsp[-4]).last_column);
(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2787,7 +2820,7 @@ yyreduce:
break;
case 102:
-#line 546 "ael.y"
+#line 547 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-4]).first_line,(yylsp[-4]).last_line, (yylsp[-4]).first_column, (yylsp[-4]).last_column);
(yyval.pval)->u1.str = (yyvsp[-4].str);
@@ -2798,7 +2831,7 @@ yyreduce:
break;
case 103:
-#line 553 "ael.y"
+#line 554 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-4]).first_line,(yylsp[-4]).last_line, (yylsp[-4]).first_column, (yylsp[-4]).last_column);
(yyval.pval)->u1.str = strdup("default");
@@ -2809,7 +2842,7 @@ yyreduce:
break;
case 104:
-#line 560 "ael.y"
+#line 561 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-4]).first_line,(yylsp[-4]).last_line, (yylsp[-4]).first_column, (yylsp[-4]).last_column);
(yyval.pval)->u1.str = strdup("default");
@@ -2820,7 +2853,7 @@ yyreduce:
break;
case 105:
-#line 569 "ael.y"
+#line 570 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[0].str);
@@ -2829,7 +2862,7 @@ yyreduce:
break;
case 106:
-#line 574 "ael.y"
+#line 575 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2838,7 +2871,7 @@ yyreduce:
break;
case 107:
-#line 579 "ael.y"
+#line 580 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-4]).first_line,(yylsp[-4]).last_line, (yylsp[-4]).first_column, (yylsp[-4]).last_column);
(yyval.pval)->u1.str = (yyvsp[0].str);
@@ -2849,7 +2882,7 @@ yyreduce:
break;
case 108:
-#line 586 "ael.y"
+#line 587 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->u1.str = (yyvsp[0].str);
@@ -2860,7 +2893,7 @@ yyreduce:
break;
case 109:
-#line 593 "ael.y"
+#line 594 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-4]).first_line,(yylsp[-4]).last_line, (yylsp[-4]).first_column, (yylsp[-4]).last_column);
(yyval.pval)->u1.str = strdup("default");
@@ -2871,7 +2904,7 @@ yyreduce:
break;
case 110:
-#line 600 "ael.y"
+#line 601 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->u1.str = strdup("default");
@@ -2882,12 +2915,12 @@ yyreduce:
break;
case 111:
-#line 609 "ael.y"
+#line 610 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
case 112:
-#line 609 "ael.y"
+#line 610 "ael.y"
{
/* XXX original code had @2 but i think we need @5 */
(yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0]));
@@ -2896,19 +2929,19 @@ yyreduce:
break;
case 113:
-#line 614 "ael.y"
+#line 615 "ael.y"
{
(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
break;
case 114:
-#line 619 "ael.y"
+#line 620 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
case 115:
-#line 619 "ael.y"
+#line 620 "ael.y"
{
if (strcasecmp((yyvsp[-2].str),"goto") == 0) {
(yyval.pval)= npval(PV_GOTO,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
@@ -2920,7 +2953,7 @@ yyreduce:
break;
case 116:
-#line 629 "ael.y"
+#line 630 "ael.y"
{(yyval.pval) = (yyvsp[-2].pval);
if( (yyval.pval)->type == PV_GOTO )
(yyval.pval)->u1.list = (yyvsp[-1].pval);
@@ -2930,26 +2963,26 @@ yyreduce:
break;
case 117:
-#line 635 "ael.y"
+#line 636 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);(yyval.pval)->endline = (yylsp[0]).last_line; (yyval.pval)->endcol = (yylsp[0]).last_column;;}
break;
case 118:
-#line 638 "ael.y"
+#line 639 "ael.y"
{
(yyval.pval)= npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->u1.str = (yyvsp[0].str);;}
break;
case 119:
-#line 641 "ael.y"
+#line 642 "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 120:
-#line 644 "ael.y"
+#line 645 "ael.y"
{
pval *z = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval) = (yyvsp[-2].pval);
@@ -2958,7 +2991,7 @@ yyreduce:
break;
case 121:
-#line 649 "ael.y"
+#line 650 "ael.y"
{
pval *z = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval) = (yyvsp[-1].pval);
@@ -2967,19 +3000,19 @@ yyreduce:
break;
case 122:
-#line 656 "ael.y"
+#line 657 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 123:
-#line 657 "ael.y"
+#line 658 "ael.y"
{ if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
break;
case 124:
-#line 662 "ael.y"
+#line 663 "ael.y"
{
(yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -2987,7 +3020,7 @@ yyreduce:
break;
case 125:
-#line 666 "ael.y"
+#line 667 "ael.y"
{
(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = NULL;
@@ -2995,7 +3028,7 @@ yyreduce:
break;
case 126:
-#line 670 "ael.y"
+#line 671 "ael.y"
{
(yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */
(yyval.pval)->u1.str = (yyvsp[-2].str);
@@ -3003,90 +3036,90 @@ yyreduce:
break;
case 127:
-#line 674 "ael.y"
+#line 675 "ael.y"
{
(yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 128:
-#line 677 "ael.y"
+#line 678 "ael.y"
{
(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0]));
(yyval.pval)->u1.str = NULL;;}
break;
case 129:
-#line 680 "ael.y"
+#line 681 "ael.y"
{
(yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 130:
-#line 685 "ael.y"
+#line 686 "ael.y"
{(yyval.pval) = (yyvsp[0].pval);;}
break;
case 131:
-#line 686 "ael.y"
+#line 687 "ael.y"
{ if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));}
else if ( (yyvsp[-1].pval) ) {(yyval.pval)=(yyvsp[-1].pval);}
else if ( (yyvsp[0].pval) ) {(yyval.pval)=(yyvsp[0].pval);} ;}
break;
case 132:
-#line 691 "ael.y"
+#line 692 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 133:
-#line 692 "ael.y"
+#line 693 "ael.y"
{(yyval.pval)=npval(PV_CATCH,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-3].str); (yyval.pval)->u2.statements = (yyvsp[-1].pval);;}
break;
case 134:
-#line 695 "ael.y"
+#line 696 "ael.y"
{(yyval.pval)= npval(PV_SWITCHES,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
break;
case 135:
-#line 696 "ael.y"
+#line 697 "ael.y"
{(yyval.pval)= npval(PV_SWITCHES,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);;}
break;
case 136:
-#line 699 "ael.y"
+#line 700 "ael.y"
{(yyval.pval)= npval(PV_ESWITCHES,(yylsp[-3]).first_line,(yylsp[0]).last_line, (yylsp[-3]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
break;
case 137:
-#line 700 "ael.y"
+#line 701 "ael.y"
{(yyval.pval)= npval(PV_ESWITCHES,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column); ;}
break;
case 138:
-#line 703 "ael.y"
+#line 704 "ael.y"
{(yyval.pval)=npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 139:
-#line 704 "ael.y"
+#line 705 "ael.y"
{pval *z = npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column); (yyval.pval)=(yyvsp[-2].pval); z->u1.str = (yyvsp[-1].str); linku1((yyval.pval),z); ;}
break;
case 140:
-#line 705 "ael.y"
+#line 706 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 141:
-#line 708 "ael.y"
+#line 709 "ael.y"
{(yyval.pval)=npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column); (yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 142:
-#line 709 "ael.y"
+#line 710 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-13]).first_line,(yylsp[-12]).last_line, (yylsp[-13]).first_column, (yylsp[-12]).last_column);
(yyval.pval)->u1.str = (yyvsp[-13].str);
@@ -3106,7 +3139,7 @@ yyreduce:
break;
case 143:
-#line 725 "ael.y"
+#line 726 "ael.y"
{
(yyval.pval)=npval(PV_WORD,(yylsp[-9]).first_line,(yylsp[-8]).last_line, (yylsp[-9]).first_column, (yylsp[-8]).last_column);
(yyval.pval)->u1.str = (yyvsp[-9].str);
@@ -3123,12 +3156,12 @@ yyreduce:
break;
case 144:
-#line 738 "ael.y"
+#line 739 "ael.y"
{pval *z = npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column); (yyval.pval)=(yyvsp[-2].pval); z->u1.str = (yyvsp[-1].str); linku1((yyval.pval),z); ;}
break;
case 145:
-#line 739 "ael.y"
+#line 740 "ael.y"
{pval *z = npval(PV_WORD,(yylsp[-13]).first_line,(yylsp[-12]).last_line, (yylsp[-13]).first_column, (yylsp[-12]).last_column);
(yyval.pval)=(yyvsp[-14].pval); z->u1.str = (yyvsp[-13].str); linku1((yyval.pval),z);
z->u2.arglist = npval(PV_WORD,(yylsp[-11]).first_line,(yylsp[-11]).last_line, (yylsp[-11]).first_column, (yylsp[-11]).last_column);
@@ -3147,7 +3180,7 @@ yyreduce:
break;
case 146:
-#line 755 "ael.y"
+#line 756 "ael.y"
{pval *z = npval(PV_WORD,(yylsp[-9]).first_line,(yylsp[-9]).last_line, (yylsp[-9]).first_column, (yylsp[-8]).last_column);
(yyval.pval)=(yyvsp[-10].pval); z->u1.str = (yyvsp[-9].str); linku1((yyval.pval),z);
z->u2.arglist = npval(PV_WORD,(yylsp[-7]).first_line,(yylsp[-7]).last_line, (yylsp[-7]).first_column, (yylsp[-7]).last_column);
@@ -3163,29 +3196,29 @@ yyreduce:
break;
case 147:
-#line 767 "ael.y"
+#line 768 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 148:
-#line 770 "ael.y"
+#line 771 "ael.y"
{ (yyval.str) = (yyvsp[0].str);;}
break;
case 149:
-#line 771 "ael.y"
+#line 772 "ael.y"
{(yyval.str)=strdup("default");;}
break;
case 150:
-#line 774 "ael.y"
+#line 775 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
break;
case 151:
-#line 777 "ael.y"
+#line 778 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;}
break;
@@ -3195,7 +3228,7 @@ yyreduce:
}
/* Line 1126 of yacc.c. */
-#line 3199 "ael.tab.c"
+#line 3232 "ael.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
@@ -3470,7 +3503,7 @@ yyreturn:
}
-#line 782 "ael.y"
+#line 783 "ael.y"
static char *token_equivs1[] =
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index 48fac1c77..6456fade0 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -138,7 +138,8 @@ static pval *npval2(pvaltype type, YYLTYPE *first, YYLTYPE *last);
* The former is for pval, the latter for strings.
*/
%destructor {
- if (yymsg[0] != 'C') {
+ /* XXX i think the destructor must be called always */
+ if (1 /* yymsg[0] != 'C' */) {
destroy_pval($$);
prev_word=0;
} else {