diff options
author | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-27 19:51:59 +0000 |
---|---|---|
committer | rizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-04-27 19:51:59 +0000 |
commit | 98e3db96a7ae3425201e88d64959b60b7abc0536 (patch) | |
tree | 1f6dc0318afa6b1c387dea40ea67f75dd04d7cee /pbx/ael | |
parent | 1fae650d42b90b23b2b890ad5f51b5d381b74127 (diff) |
document options, move objects of the same type close to
each other so it is evident what they are.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@22958 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/ael')
-rw-r--r-- | pbx/ael/ael.tab.c | 783 | ||||
-rw-r--r-- | pbx/ael/ael.y | 50 |
2 files changed, 544 insertions, 289 deletions
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c index bcb502d69..627592215 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, 136, 136, 139, 140, 151, 154, 155, 156, 157, - 160, 164, 167, 171, 174, 179, 183, 188, 194, 197, - 200, 203, 208, 211, 216, 217, 218, 221, 221, 227, - 230, 235, 238, 239, 240, 243, 246, 247, 248, 249, - 250, 251, 251, 255, 256, 259, 264, 268, 273, 278, - 287, 288, 291, 294, 294, 299, 299, 304, 320, 340, - 341, 348, 349, 354, 362, 363, 367, 373, 373, 381, - 384, 384, 388, 391, 394, 397, 398, 399, 397, 405, - 405, 409, 413, 418, 422, 426, 429, 429, 462, 464, - 466, 468, 473, 479, 484, 490, 495, 501, 504, 505, - 510, 515, 522, 529, 536, 545, 550, 555, 562, 569, - 576, 585, 585, 590, 595, 595, 605, 611, 614, 617, - 620, 625, 632, 633, 638, 642, 646, 650, 653, 656, - 661, 662, 667, 668, 671, 672, 675, 676, 679, 680, - 681, 684, 685, 701, 714, 715, 730, 743, 746, 747, - 750, 753 + 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 }; #endif @@ -1313,194 +1313,425 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp) switch (yytype) { case 41: /* "word" */ -#line 131 "ael.y" +#line 155 "ael.y" { free((yyvaluep->str));}; #line 1319 "ael.tab.c" break; case 44: /* "objects" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1324 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1331 "ael.tab.c" break; case 45: /* "object" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1329 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1343 "ael.tab.c" break; case 46: /* "context" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1334 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1355 "ael.tab.c" break; case 47: /* "macro" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1339 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1367 "ael.tab.c" break; case 48: /* "globals" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1344 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1379 "ael.tab.c" break; case 49: /* "global_statements" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1349 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1391 "ael.tab.c" break; case 50: /* "global_statement" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1354 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1403 "ael.tab.c" break; case 52: /* "arglist" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1359 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1415 "ael.tab.c" break; case 53: /* "elements" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1364 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1427 "ael.tab.c" break; case 54: /* "element" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1369 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1439 "ael.tab.c" break; case 56: /* "ignorepat" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1374 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1451 "ael.tab.c" break; case 57: /* "extension" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1379 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1463 "ael.tab.c" break; case 58: /* "statements" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1384 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1475 "ael.tab.c" break; case 59: /* "if_head" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1389 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1487 "ael.tab.c" break; case 61: /* "random_head" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1394 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1499 "ael.tab.c" break; case 63: /* "iftime_head" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1399 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1511 "ael.tab.c" break; case 64: /* "word_list" */ -#line 131 "ael.y" +#line 155 "ael.y" { free((yyvaluep->str));}; -#line 1404 "ael.tab.c" +#line 1516 "ael.tab.c" break; case 65: /* "word3_list" */ -#line 131 "ael.y" +#line 155 "ael.y" { free((yyvaluep->str));}; -#line 1409 "ael.tab.c" +#line 1521 "ael.tab.c" break; case 66: /* "goto_word" */ -#line 131 "ael.y" +#line 155 "ael.y" { free((yyvaluep->str));}; -#line 1414 "ael.tab.c" +#line 1526 "ael.tab.c" break; case 67: /* "switch_head" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1419 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1538 "ael.tab.c" break; case 69: /* "statement" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1424 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1550 "ael.tab.c" break; case 76: /* "target" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1429 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1562 "ael.tab.c" break; case 77: /* "jumptarget" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1434 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1574 "ael.tab.c" break; case 78: /* "macro_call" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1439 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1586 "ael.tab.c" break; case 80: /* "application_call_head" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1444 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1598 "ael.tab.c" break; case 82: /* "application_call" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1449 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1610 "ael.tab.c" break; case 83: /* "eval_arglist" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1454 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1622 "ael.tab.c" break; case 84: /* "case_statements" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1459 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1634 "ael.tab.c" break; case 85: /* "case_statement" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1464 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1646 "ael.tab.c" break; case 86: /* "macro_statements" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1469 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1658 "ael.tab.c" break; case 87: /* "macro_statement" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1474 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1670 "ael.tab.c" break; case 88: /* "switches" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1479 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1682 "ael.tab.c" break; case 89: /* "eswitches" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1484 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1694 "ael.tab.c" break; case 90: /* "switchlist" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1489 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1706 "ael.tab.c" break; case 91: /* "includeslist" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1494 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1718 "ael.tab.c" break; case 92: /* "includedname" */ -#line 131 "ael.y" +#line 155 "ael.y" { free((yyvaluep->str));}; -#line 1499 "ael.tab.c" +#line 1723 "ael.tab.c" break; case 93: /* "includes" */ -#line 128 "ael.y" - { if (yymsg[0] != 'C') {destroy_pval((yyvaluep->pval)); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} }; -#line 1504 "ael.tab.c" +#line 140 "ael.y" + { + if (yymsg[0] != 'C') { + destroy_pval((yyvaluep->pval)); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + }; +#line 1735 "ael.tab.c" break; default: @@ -1817,17 +2048,17 @@ yyreduce: switch (yyn) { case 2: -#line 136 "ael.y" +#line 160 "ael.y" { (yyval.pval) = parseio->pval = (yyvsp[0].pval); ;} break; case 3: -#line 139 "ael.y" +#line 163 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 4: -#line 141 "ael.y" +#line 165 "ael.y" { if ( (yyvsp[-1].pval) && (yyvsp[0].pval) ) { (yyval.pval)=(yyvsp[-1].pval); @@ -1841,32 +2072,32 @@ yyreduce: break; case 5: -#line 151 "ael.y" +#line 175 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 6: -#line 154 "ael.y" +#line 178 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 7: -#line 155 "ael.y" +#line 179 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 8: -#line 156 "ael.y" +#line 180 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 9: -#line 157 "ael.y" +#line 181 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 10: -#line 160 "ael.y" +#line 184 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); @@ -1874,14 +2105,14 @@ yyreduce: break; case 11: -#line 164 "ael.y" +#line 188 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); ;} break; case 12: -#line 167 "ael.y" +#line 191 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = strdup("default"); @@ -1889,14 +2120,14 @@ yyreduce: break; case 13: -#line 171 "ael.y" +#line 195 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = strdup("default"); ;} break; case 14: -#line 174 "ael.y" +#line 198 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-3].str); @@ -1905,7 +2136,7 @@ yyreduce: break; case 15: -#line 179 "ael.y" +#line 203 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -1913,7 +2144,7 @@ yyreduce: break; case 16: -#line 183 "ael.y" +#line 207 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-5]), &(yylsp[0])); (yyval.pval)->u1.str = strdup("default"); @@ -1922,7 +2153,7 @@ yyreduce: break; case 17: -#line 188 "ael.y" +#line 212 "ael.y" { (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = strdup("default"); @@ -1930,69 +2161,69 @@ yyreduce: break; case 18: -#line 194 "ael.y" +#line 218 "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 197 "ael.y" +#line 221 "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 200 "ael.y" +#line 224 "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 203 "ael.y" +#line 227 "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 208 "ael.y" +#line 232 "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 211 "ael.y" +#line 235 "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 216 "ael.y" +#line 240 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 25: -#line 217 "ael.y" +#line 241 "ael.y" {(yyval.pval)=(yyvsp[-1].pval); linku1((yyval.pval),(yyvsp[0].pval));;} break; case 26: -#line 218 "ael.y" +#line 242 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 27: -#line 221 "ael.y" +#line 245 "ael.y" { reset_semicount(parseio->scanner); ;} break; case 28: -#line 221 "ael.y" +#line 245 "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); @@ -2000,14 +2231,14 @@ yyreduce: break; case 29: -#line 227 "ael.y" +#line 251 "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 230 "ael.y" +#line 254 "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); @@ -2016,64 +2247,64 @@ yyreduce: break; case 31: -#line 235 "ael.y" +#line 259 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 32: -#line 238 "ael.y" +#line 262 "ael.y" { (yyval.pval)=(yyvsp[0].pval);;} break; case 33: -#line 239 "ael.y" +#line 263 "ael.y" {(yyval.pval)=0;;} break; case 34: -#line 240 "ael.y" +#line 264 "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 243 "ael.y" +#line 267 "ael.y" { (yyval.pval)=(yyvsp[-1].pval);;} break; case 36: -#line 246 "ael.y" +#line 270 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 37: -#line 247 "ael.y" +#line 271 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 38: -#line 248 "ael.y" +#line 272 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 39: -#line 249 "ael.y" +#line 273 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 40: -#line 250 "ael.y" +#line 274 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 41: -#line 251 "ael.y" +#line 275 "ael.y" { reset_semicount(parseio->scanner); ;} break; case 42: -#line 251 "ael.y" +#line 275 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); @@ -2081,24 +2312,24 @@ yyreduce: break; case 43: -#line 255 "ael.y" +#line 279 "ael.y" {free((yyvsp[-1].str)); (yyval.pval)=0;;} break; case 44: -#line 256 "ael.y" +#line 280 "ael.y" {(yyval.pval)=0;/* allow older docs to be read */;} break; case 45: -#line 259 "ael.y" +#line 283 "ael.y" { (yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 46: -#line 264 "ael.y" +#line 288 "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); @@ -2106,7 +2337,7 @@ yyreduce: break; case 47: -#line 268 "ael.y" +#line 292 "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); @@ -2115,7 +2346,7 @@ yyreduce: break; case 48: -#line 273 "ael.y" +#line 297 "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); @@ -2124,7 +2355,7 @@ yyreduce: break; case 49: -#line 278 "ael.y" +#line 302 "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); @@ -2134,48 +2365,48 @@ yyreduce: break; case 50: -#line 287 "ael.y" +#line 311 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 51: -#line 288 "ael.y" +#line 312 "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 291 "ael.y" +#line 315 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 53: -#line 294 "ael.y" +#line 318 "ael.y" { reset_parencount(parseio->scanner); ;} break; case 54: -#line 294 "ael.y" +#line 318 "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 299 "ael.y" +#line 323 "ael.y" { reset_parencount(parseio->scanner); ;} break; case 56: -#line 299 "ael.y" +#line 323 "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 305 "ael.y" +#line 329 "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])); @@ -2194,7 +2425,7 @@ yyreduce: break; case 58: -#line 320 "ael.y" +#line 344 "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])); @@ -2210,12 +2441,12 @@ yyreduce: break; case 59: -#line 340 "ael.y" +#line 364 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 60: -#line 341 "ael.y" +#line 365 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2224,12 +2455,12 @@ yyreduce: break; case 61: -#line 348 "ael.y" +#line 372 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 62: -#line 349 "ael.y" +#line 373 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2238,7 +2469,7 @@ yyreduce: break; case 63: -#line 354 "ael.y" +#line 378 "ael.y" { asprintf(&((yyval.str)), "%s%s%s", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-2].str)); @@ -2248,12 +2479,12 @@ yyreduce: break; case 64: -#line 362 "ael.y" +#line 386 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 65: -#line 363 "ael.y" +#line 387 "ael.y" { asprintf(&((yyval.str)), "%s%s", (yyvsp[-1].str), (yyvsp[0].str)); free((yyvsp[-1].str)); @@ -2261,7 +2492,7 @@ yyreduce: break; case 66: -#line 367 "ael.y" +#line 391 "ael.y" { asprintf(&((yyval.str)), "%s:%s", (yyvsp[-2].str), (yyvsp[0].str)); free((yyvsp[-2].str)); @@ -2269,31 +2500,31 @@ yyreduce: break; case 67: -#line 373 "ael.y" +#line 397 "ael.y" { reset_parencount(parseio->scanner); ;} break; case 68: -#line 373 "ael.y" +#line 397 "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 381 "ael.y" +#line 405 "ael.y" { (yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval); ;} break; case 70: -#line 384 "ael.y" +#line 408 "ael.y" {reset_semicount(parseio->scanner);;} break; case 71: -#line 384 "ael.y" +#line 408 "ael.y" { (yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-4].str); @@ -2301,43 +2532,43 @@ yyreduce: break; case 72: -#line 388 "ael.y" +#line 412 "ael.y" { (yyval.pval) = npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 73: -#line 391 "ael.y" +#line 415 "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 394 "ael.y" +#line 418 "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 397 "ael.y" +#line 421 "ael.y" {reset_semicount(parseio->scanner);;} break; case 76: -#line 398 "ael.y" +#line 422 "ael.y" {reset_semicount(parseio->scanner);;} break; case 77: -#line 399 "ael.y" +#line 423 "ael.y" {reset_parencount(parseio->scanner);;} break; case 78: -#line 399 "ael.y" +#line 423 "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); @@ -2347,12 +2578,12 @@ yyreduce: break; case 79: -#line 405 "ael.y" +#line 429 "ael.y" {reset_parencount(parseio->scanner);;} break; case 80: -#line 405 "ael.y" +#line 429 "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); @@ -2360,7 +2591,7 @@ yyreduce: break; case 81: -#line 409 "ael.y" +#line 433 "ael.y" { (yyval.pval)=(yyvsp[-1].pval); (yyval.pval)->endline = (yylsp[0]).last_line; @@ -2368,7 +2599,7 @@ yyreduce: break; case 82: -#line 413 "ael.y" +#line 437 "ael.y" { (yyval.pval)=(yyvsp[-2].pval); (yyval.pval)->u2.statements = (yyvsp[-1].pval); @@ -2377,7 +2608,7 @@ yyreduce: break; case 83: -#line 418 "ael.y" +#line 442 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); (yyval.pval)->endline = (yylsp[-1]).last_line; @@ -2385,7 +2616,7 @@ yyreduce: break; case 84: -#line 422 "ael.y" +#line 446 "ael.y" { (yyval.pval) = (yyvsp[-1].pval); (yyval.pval)->endline = (yylsp[0]).last_line; @@ -2393,19 +2624,19 @@ yyreduce: break; case 85: -#line 426 "ael.y" +#line 450 "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 429 "ael.y" +#line 453 "ael.y" {reset_semicount(parseio->scanner);;} break; case 87: -#line 429 "ael.y" +#line 453 "ael.y" { char *bufx; int tot=0; @@ -2442,25 +2673,25 @@ yyreduce: break; case 88: -#line 462 "ael.y" +#line 486 "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 464 "ael.y" +#line 488 "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 466 "ael.y" +#line 490 "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 468 "ael.y" +#line 492 "ael.y" { (yyval.pval)=(yyvsp[-1].pval); (yyval.pval)->u2.statements = (yyvsp[0].pval); @@ -2469,7 +2700,7 @@ yyreduce: break; case 92: -#line 473 "ael.y" +#line 497 "ael.y" { (yyval.pval)=(yyvsp[-3].pval); (yyval.pval)->u2.statements = (yyvsp[-2].pval); @@ -2479,7 +2710,7 @@ yyreduce: break; case 93: -#line 479 "ael.y" +#line 503 "ael.y" { (yyval.pval)=(yyvsp[-1].pval); (yyval.pval)->u2.statements = (yyvsp[0].pval); @@ -2488,7 +2719,7 @@ yyreduce: break; case 94: -#line 484 "ael.y" +#line 508 "ael.y" { (yyval.pval)=(yyvsp[-3].pval); (yyval.pval)->u2.statements = (yyvsp[-2].pval); @@ -2498,7 +2729,7 @@ yyreduce: break; case 95: -#line 490 "ael.y" +#line 514 "ael.y" { (yyval.pval)=(yyvsp[-1].pval); (yyval.pval)->u2.statements = (yyvsp[0].pval); @@ -2507,7 +2738,7 @@ yyreduce: break; case 96: -#line 495 "ael.y" +#line 519 "ael.y" { (yyval.pval)=(yyvsp[-3].pval); (yyval.pval)->u2.statements = (yyvsp[-2].pval); @@ -2517,17 +2748,17 @@ yyreduce: break; case 97: -#line 501 "ael.y" +#line 525 "ael.y" { (yyval.pval)=0; ;} break; case 98: -#line 504 "ael.y" +#line 528 "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 505 "ael.y" +#line 529 "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); @@ -2536,7 +2767,7 @@ yyreduce: break; case 100: -#line 510 "ael.y" +#line 534 "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); @@ -2545,7 +2776,7 @@ yyreduce: break; case 101: -#line 515 "ael.y" +#line 539 "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); @@ -2556,7 +2787,7 @@ yyreduce: break; case 102: -#line 522 "ael.y" +#line 546 "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); @@ -2567,7 +2798,7 @@ yyreduce: break; case 103: -#line 529 "ael.y" +#line 553 "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"); @@ -2578,7 +2809,7 @@ yyreduce: break; case 104: -#line 536 "ael.y" +#line 560 "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"); @@ -2589,7 +2820,7 @@ yyreduce: break; case 105: -#line 545 "ael.y" +#line 569 "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); @@ -2598,7 +2829,7 @@ yyreduce: break; case 106: -#line 550 "ael.y" +#line 574 "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); @@ -2607,7 +2838,7 @@ yyreduce: break; case 107: -#line 555 "ael.y" +#line 579 "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); @@ -2618,7 +2849,7 @@ yyreduce: break; case 108: -#line 562 "ael.y" +#line 586 "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); @@ -2629,7 +2860,7 @@ yyreduce: break; case 109: -#line 569 "ael.y" +#line 593 "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"); @@ -2640,7 +2871,7 @@ yyreduce: break; case 110: -#line 576 "ael.y" +#line 600 "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"); @@ -2651,12 +2882,12 @@ yyreduce: break; case 111: -#line 585 "ael.y" +#line 609 "ael.y" {reset_argcount(parseio->scanner);;} break; case 112: -#line 585 "ael.y" +#line 609 "ael.y" { /* XXX original code had @2 but i think we need @5 */ (yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0])); @@ -2665,19 +2896,19 @@ yyreduce: break; case 113: -#line 590 "ael.y" +#line 614 "ael.y" { (yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-2].str); ;} break; case 114: -#line 595 "ael.y" +#line 619 "ael.y" {reset_argcount(parseio->scanner);;} break; case 115: -#line 595 "ael.y" +#line 619 "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); @@ -2689,7 +2920,7 @@ yyreduce: break; case 116: -#line 605 "ael.y" +#line 629 "ael.y" {(yyval.pval) = (yyvsp[-2].pval); if( (yyval.pval)->type == PV_GOTO ) (yyval.pval)->u1.list = (yyvsp[-1].pval); @@ -2699,26 +2930,26 @@ yyreduce: break; case 117: -#line 611 "ael.y" +#line 635 "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 614 "ael.y" +#line 638 "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 617 "ael.y" +#line 641 "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 620 "ael.y" +#line 644 "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); @@ -2727,7 +2958,7 @@ yyreduce: break; case 121: -#line 625 "ael.y" +#line 649 "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); @@ -2736,19 +2967,19 @@ yyreduce: break; case 122: -#line 632 "ael.y" +#line 656 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 123: -#line 633 "ael.y" +#line 657 "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 638 "ael.y" +#line 662 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */ (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2756,7 +2987,7 @@ yyreduce: break; case 125: -#line 642 "ael.y" +#line 666 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = NULL; @@ -2764,7 +2995,7 @@ yyreduce: break; case 126: -#line 646 "ael.y" +#line 670 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */ (yyval.pval)->u1.str = (yyvsp[-2].str); @@ -2772,90 +3003,90 @@ yyreduce: break; case 127: -#line 650 "ael.y" +#line 674 "ael.y" { (yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 128: -#line 653 "ael.y" +#line 677 "ael.y" { (yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0])); (yyval.pval)->u1.str = NULL;;} break; case 129: -#line 656 "ael.y" +#line 680 "ael.y" { (yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0])); (yyval.pval)->u1.str = (yyvsp[-1].str);;} break; case 130: -#line 661 "ael.y" +#line 685 "ael.y" {(yyval.pval) = (yyvsp[0].pval);;} break; case 131: -#line 662 "ael.y" +#line 686 "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 667 "ael.y" +#line 691 "ael.y" {(yyval.pval)=(yyvsp[0].pval);;} break; case 133: -#line 668 "ael.y" +#line 692 "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 671 "ael.y" +#line 695 "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 672 "ael.y" +#line 696 "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 675 "ael.y" +#line 699 "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 676 "ael.y" +#line 700 "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 679 "ael.y" +#line 703 "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 680 "ael.y" +#line 704 "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 681 "ael.y" +#line 705 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 141: -#line 684 "ael.y" +#line 708 "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 685 "ael.y" +#line 709 "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); @@ -2875,7 +3106,7 @@ yyreduce: break; case 143: -#line 701 "ael.y" +#line 725 "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); @@ -2892,12 +3123,12 @@ yyreduce: break; case 144: -#line 714 "ael.y" +#line 738 "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 715 "ael.y" +#line 739 "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); @@ -2916,7 +3147,7 @@ yyreduce: break; case 146: -#line 731 "ael.y" +#line 755 "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); @@ -2932,29 +3163,29 @@ yyreduce: break; case 147: -#line 743 "ael.y" +#line 767 "ael.y" {(yyval.pval)=(yyvsp[-1].pval);;} break; case 148: -#line 746 "ael.y" +#line 770 "ael.y" { (yyval.str) = (yyvsp[0].str);;} break; case 149: -#line 747 "ael.y" +#line 771 "ael.y" {(yyval.str)=strdup("default");;} break; case 150: -#line 750 "ael.y" +#line 774 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0])); (yyval.pval)->u1.list = (yyvsp[-1].pval);;} break; case 151: -#line 753 "ael.y" +#line 777 "ael.y" { (yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;} break; @@ -2964,7 +3195,7 @@ yyreduce: } /* Line 1126 of yacc.c. */ -#line 2968 "ael.tab.c" +#line 3199 "ael.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -3239,7 +3470,7 @@ yyreturn: } -#line 758 "ael.y" +#line 782 "ael.y" static char *token_equivs1[] = diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y index f09e291ef..48fac1c77 100644 --- a/pbx/ael/ael.y +++ b/pbx/ael/ael.y @@ -91,9 +91,7 @@ static pval *npval2(pvaltype type, YYLTYPE *first, YYLTYPE *last); %type <pval>target jumptarget %type <pval>statement %type <pval>switch_head -%type <str>word_list goto_word -%type <str>word3_list -%type <str>includedname + %type <pval>if_head %type <pval>random_head %type <pval>iftime_head @@ -112,22 +110,48 @@ static pval *npval2(pvaltype type, YYLTYPE *first, YYLTYPE *last); %type <pval>objects %type <pval>file -/* OPTIONS */ -%locations -%pure-parser +%type <str>goto_word +%type <str>word_list +%type <str>word3_list +%type <str>includedname + +/* + * OPTIONS + */ + +%locations /* track source location using @n variables (yylloc in flex) */ +%pure-parser /* pass yylval and yylloc as arguments to yylex(). */ %name-prefix="ael_yy" -/* the following option does two things: - it adds the locp arg to the yyerror - and it adds the NULL to the yyerrr arg list, and calls yyerror with NULL for that arg. - You can't get the locp arg without the NULL arg, don't ask me why. */ +/* + * add an additional argument, parseio, to yyparse(), + * which is then accessible in the grammar actions + */ %parse-param {struct parse_io *parseio} + /* there will be two shift/reduce conflicts, they involve the if statement, where a single statement occurs not wrapped in curlies in the "true" section the default action to shift will attach the else to the preceeding if. */ %expect 5 %error-verbose -%destructor { if (yymsg[0] != 'C') {destroy_pval($$); prev_word=0;} else {printf("Cleanup destructor called for pvals\n");} } includes includeslist switchlist eswitches switches macro_statement macro_statements case_statement case_statements eval_arglist application_call - application_call_head macro_call target jumptarget statement switch_head if_head random_head iftime_head statements extension ignorepat element - elements arglist global_statement global_statements globals macro context object objects + +/* + * declare destructors for objects. + * The former is for pval, the latter for strings. + */ +%destructor { + if (yymsg[0] != 'C') { + destroy_pval($$); + prev_word=0; + } else { + printf("Cleanup destructor called for pvals\n"); + } + } includes includeslist switchlist eswitches switches + macro_statement macro_statements case_statement case_statements + eval_arglist application_call application_call_head + macro_call target jumptarget statement switch_head + if_head random_head iftime_head statements extension + ignorepat element elements arglist global_statement + global_statements globals macro context object objects + %destructor { free($$);} word word_list goto_word word3_list includedname |