last batch of npval -> npval2 changes

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23109 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Luigi Rizzo 20 years ago
parent 5291b89f30
commit 43bfe82828

@ -569,14 +569,14 @@ static const unsigned short int yyrline[] =
308, 309, 312, 315, 315, 320, 320, 325, 341, 361,
362, 369, 370, 375, 383, 384, 388, 394, 394, 402,
405, 405, 409, 412, 415, 418, 419, 420, 418, 426,
426, 430, 434, 439, 443, 447, 450, 450, 483, 485,
487, 489, 494, 500, 505, 511, 516, 522, 525, 526,
531, 536, 543, 550, 557, 566, 571, 576, 583, 590,
597, 606, 606, 611, 616, 616, 626, 632, 635, 638,
641, 646, 653, 654, 659, 663, 667, 671, 674, 677,
682, 683, 688, 689, 695, 698, 702, 703, 706, 709,
714, 717, 718, 734, 747, 752, 767, 780, 783, 784,
787, 790
426, 430, 434, 439, 443, 447, 450, 450, 483, 484,
485, 486, 491, 497, 502, 508, 513, 519, 522, 524,
529, 534, 541, 548, 555, 564, 569, 574, 581, 588,
595, 604, 604, 609, 614, 614, 624, 630, 633, 636,
639, 644, 651, 652, 657, 661, 665, 669, 672, 675,
680, 681, 686, 687, 693, 696, 700, 703, 707, 710,
715, 718, 721, 738, 751, 756, 774, 788, 791, 792,
795, 798
};
#endif
@ -2101,14 +2101,14 @@ yyreduce:
case 29:
#line 248 "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)= npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[0].str); ;}
break;
case 30:
#line 251 "ael.y"
{
pval *z = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
pval *z = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[0]));
z->u1.str = (yyvsp[0].str);
(yyval.pval)=(yyvsp[-2].pval);
linku1((yyval.pval),z); ;}
@ -2199,7 +2199,7 @@ yyreduce:
case 46:
#line 285 "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) = npval2(PV_EXTENSION, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->u2.statements = (yyvsp[0].pval); ;}
break;
@ -2207,7 +2207,7 @@ yyreduce:
case 47:
#line 289 "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) = npval2(PV_EXTENSION, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
(yyval.pval)->u4.regexten=1;;}
@ -2216,7 +2216,7 @@ yyreduce:
case 48:
#line 294 "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) = npval2(PV_EXTENSION, &(yylsp[-6]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
(yyval.pval)->u3.hints = (yyvsp[-4].str);;}
@ -2225,7 +2225,7 @@ yyreduce:
case 49:
#line 299 "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) = npval2(PV_EXTENSION, &(yylsp[-7]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
(yyval.pval)->u4.regexten=1;
@ -2257,7 +2257,7 @@ yyreduce:
case 54:
#line 315 "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)= npval2(PV_IF, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str); ;}
break;
@ -2269,7 +2269,7 @@ yyreduce:
case 56:
#line 320 "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) = npval2(PV_RANDOM, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str=(yyvsp[-1].str);;}
break;
@ -2375,7 +2375,7 @@ yyreduce:
case 68:
#line 394 "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) = npval2(PV_SWITCH, &(yylsp[-5]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
break;
@ -2494,7 +2494,7 @@ yyreduce:
case 85:
#line 447 "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)= npval2(PV_APPLICATION_CALL, &(yylsp[-1]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
@ -2509,7 +2509,7 @@ yyreduce:
char *bufx;
int tot=0;
pval *pptr;
(yyval.pval) = npval(PV_VARDEC,(yylsp[-4]).first_line,(yylsp[0]).last_line, (yylsp[-4]).first_column, (yylsp[0]).last_column);
(yyval.pval) = npval2(PV_VARDEC, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u2.val=(yyvsp[-1].str);
/* rebuild the original string-- this is not an app call, it's an unwrapped vardec, with a func call on the LHS */
/* string to big to fit in the buffer? */
@ -2542,24 +2542,21 @@ yyreduce:
case 88:
#line 483 "ael.y"
{
(yyval.pval) = npval(PV_BREAK,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);;}
{ (yyval.pval) = npval2(PV_BREAK, &(yylsp[-1]), &(yylsp[0])); ;}
break;
case 89:
#line 485 "ael.y"
{
(yyval.pval) = npval(PV_RETURN,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);;}
#line 484 "ael.y"
{ (yyval.pval) = npval2(PV_RETURN, &(yylsp[-1]), &(yylsp[0])); ;}
break;
case 90:
#line 487 "ael.y"
{
(yyval.pval) = npval(PV_CONTINUE,(yylsp[-1]).first_line,(yylsp[0]).last_line, (yylsp[-1]).first_column, (yylsp[0]).last_column);;}
#line 485 "ael.y"
{ (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[-1]), &(yylsp[0])); ;}
break;
case 91:
#line 489 "ael.y"
#line 486 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
@ -2568,7 +2565,7 @@ yyreduce:
break;
case 92:
#line 494 "ael.y"
#line 491 "ael.y"
{
(yyval.pval)=(yyvsp[-3].pval);
(yyval.pval)->u2.statements = (yyvsp[-2].pval);
@ -2578,7 +2575,7 @@ yyreduce:
break;
case 93:
#line 500 "ael.y"
#line 497 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
@ -2587,7 +2584,7 @@ yyreduce:
break;
case 94:
#line 505 "ael.y"
#line 502 "ael.y"
{
(yyval.pval)=(yyvsp[-3].pval);
(yyval.pval)->u2.statements = (yyvsp[-2].pval);
@ -2597,7 +2594,7 @@ yyreduce:
break;
case 95:
#line 511 "ael.y"
#line 508 "ael.y"
{
(yyval.pval)=(yyvsp[-1].pval);
(yyval.pval)->u2.statements = (yyvsp[0].pval);
@ -2606,7 +2603,7 @@ yyreduce:
break;
case 96:
#line 516 "ael.y"
#line 513 "ael.y"
{
(yyval.pval)=(yyvsp[-3].pval);
(yyval.pval)->u2.statements = (yyvsp[-2].pval);
@ -2616,146 +2613,147 @@ yyreduce:
break;
case 97:
#line 522 "ael.y"
#line 519 "ael.y"
{ (yyval.pval)=0; ;}
break;
case 98:
#line 525 "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);;}
#line 522 "ael.y"
{ (yyval.pval) = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[0].str);;}
break;
case 99:
#line 526 "ael.y"
#line 524 "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) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->u1.str = (yyvsp[0].str);;}
break;
case 100:
#line 531 "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) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->u1.str = (yyvsp[0].str);;}
break;
case 101:
#line 536 "ael.y"
#line 534 "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) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
(yyval.pval)->u1.str = (yyvsp[-4].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->next->u1.str = (yyvsp[-2].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
break;
case 102:
#line 543 "ael.y"
#line 541 "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) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
(yyval.pval)->u1.str = (yyvsp[-4].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->next->u1.str = (yyvsp[-2].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
break;
case 103:
#line 550 "ael.y"
#line 548 "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) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
(yyval.pval)->u1.str = strdup("default");
(yyval.pval)->next = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->next->u1.str = (yyvsp[-2].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
break;
case 104:
#line 557 "ael.y"
#line 555 "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) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
(yyval.pval)->u1.str = strdup("default");
(yyval.pval)->next = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->next->u1.str = (yyvsp[-2].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = (yyvsp[0].str); ;}
break;
case 105:
#line 566 "ael.y"
#line 564 "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) = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[0].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0])); /* XXX not really @1 */
(yyval.pval)->next->u1.str = strdup("1");;}
break;
case 106:
#line 571 "ael.y"
#line 569 "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) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->u1.str = (yyvsp[-2].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->u1.str = (yyvsp[0].str);;}
break;
case 107:
#line 576 "ael.y"
#line 574 "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) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
(yyval.pval)->u1.str = (yyvsp[0].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->next->u1.str = (yyvsp[-4].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = (yyvsp[-2].str); ;}
break;
case 108:
#line 583 "ael.y"
#line 581 "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) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->u1.str = (yyvsp[0].str);
(yyval.pval)->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->u1.str = (yyvsp[-2].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = strdup("1"); ;}
break;
case 109:
#line 590 "ael.y"
#line 588 "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) = npval2(PV_WORD, &(yylsp[-4]), &(yylsp[-4]));
(yyval.pval)->u1.str = strdup("default");
(yyval.pval)->next = npval(PV_WORD,(yylsp[-2]).first_line,(yylsp[-2]).last_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->next->u1.str = (yyvsp[-4].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = (yyvsp[-2].str); ;}
break;
case 110:
#line 597 "ael.y"
#line 595 "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) = npval2(PV_WORD, &(yylsp[-2]), &(yylsp[-2]));
(yyval.pval)->u1.str = strdup("default");
(yyval.pval)->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->u1.str = (yyvsp[-2].str);
(yyval.pval)->next->next = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
(yyval.pval)->next->next = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->next->next->u1.str = strdup("1"); ;}
break;
case 111:
#line 606 "ael.y"
#line 604 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
case 112:
#line 606 "ael.y"
#line 604 "ael.y"
{
/* XXX original code had @2 but i think we need @5 */
(yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[-4]), &(yylsp[0]));
@ -2764,31 +2762,31 @@ yyreduce:
break;
case 113:
#line 611 "ael.y"
#line 609 "ael.y"
{
(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
break;
case 114:
#line 616 "ael.y"
#line 614 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
case 115:
#line 616 "ael.y"
#line 614 "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);
(yyval.pval)= npval2(PV_GOTO, &(yylsp[-2]), &(yylsp[0]));
free((yyvsp[-2].str)); /* won't be using this */
ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Suggestion: Use the goto statement instead of the Goto() application call in AEL.\n", my_file, (yylsp[-2]).first_line, (yylsp[-2]).first_column, (yylsp[-2]).last_column );
} else
(yyval.pval)= npval(PV_APPLICATION_CALL,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column);
(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-2].str); ;}
break;
case 116:
#line 626 "ael.y"
#line 624 "ael.y"
{(yyval.pval) = (yyvsp[-2].pval);
if( (yyval.pval)->type == PV_GOTO )
(yyval.pval)->u1.list = (yyvsp[-1].pval);
@ -2798,56 +2796,56 @@ yyreduce:
break;
case 117:
#line 632 "ael.y"
#line 630 "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 635 "ael.y"
#line 633 "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)= npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[0].str);;}
break;
case 119:
#line 638 "ael.y"
#line 636 "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 641 "ael.y"
#line 639 "ael.y"
{
pval *z = npval(PV_WORD,(yylsp[0]).first_line,(yylsp[0]).last_line, (yylsp[0]).first_column, (yylsp[0]).last_column);
pval *z = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval) = (yyvsp[-2].pval);
linku1((yyvsp[-2].pval),z);
z->u1.str = (yyvsp[0].str);;}
break;
case 121:
#line 646 "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);
pval *z = npval2(PV_WORD, &(yylsp[0]), &(yylsp[0]));
(yyval.pval) = (yyvsp[-1].pval);
linku1((yyvsp[-1].pval),z);
z->u1.str = strdup("");;}
break;
case 122:
#line 653 "ael.y"
#line 651 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 123:
#line 654 "ael.y"
#line 652 "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 659 "ael.y"
#line 657 "ael.y"
{
(yyval.pval) = npval2(PV_CASE, &(yylsp[-3]), &(yylsp[-1])); /* XXX 3 or 4 ? */
(yyval.pval)->u1.str = (yyvsp[-2].str);
@ -2855,7 +2853,7 @@ yyreduce:
break;
case 125:
#line 663 "ael.y"
#line 661 "ael.y"
{
(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = NULL;
@ -2863,7 +2861,7 @@ yyreduce:
break;
case 126:
#line 667 "ael.y"
#line 665 "ael.y"
{
(yyval.pval) = npval2(PV_PATTERN, &(yylsp[-3]), &(yylsp[0])); /* XXX@3 or @4 ? */
(yyval.pval)->u1.str = (yyvsp[-2].str);
@ -2871,45 +2869,45 @@ yyreduce:
break;
case 127:
#line 671 "ael.y"
#line 669 "ael.y"
{
(yyval.pval) = npval2(PV_CASE, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 128:
#line 674 "ael.y"
#line 672 "ael.y"
{
(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[-1]), &(yylsp[0]));
(yyval.pval)->u1.str = NULL;;}
break;
case 129:
#line 677 "ael.y"
#line 675 "ael.y"
{
(yyval.pval) = npval2(PV_PATTERN, &(yylsp[-2]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 130:
#line 682 "ael.y"
#line 680 "ael.y"
{(yyval.pval) = (yyvsp[0].pval);;}
break;
case 131:
#line 683 "ael.y"
#line 681 "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 688 "ael.y"
#line 686 "ael.y"
{(yyval.pval)=(yyvsp[0].pval);;}
break;
case 133:
#line 689 "ael.y"
#line 687 "ael.y"
{
(yyval.pval) = npval2(PV_CATCH, &(yylsp[-4]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-3].str);
@ -2917,37 +2915,40 @@ yyreduce:
break;
case 134:
#line 695 "ael.y"
#line 693 "ael.y"
{
(yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
break;
case 135:
#line 698 "ael.y"
#line 696 "ael.y"
{
(yyval.pval) = npval2(PV_SWITCHES, &(yylsp[-2]), &(yylsp[0])); ;}
break;
case 136:
#line 702 "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); ;}
#line 700 "ael.y"
{
(yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.list = (yyvsp[-1].pval); ;}
break;
case 137:
#line 703 "ael.y"
{(yyval.pval)= npval(PV_ESWITCHES,(yylsp[-2]).first_line,(yylsp[0]).last_line, (yylsp[-2]).first_column, (yylsp[0]).last_column); ;}
{ /* empty switch list OK */
(yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[-2]), &(yylsp[0])); ;}
break;
case 138:
#line 706 "ael.y"
#line 707 "ael.y"
{
(yyval.pval) = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 139:
#line 709 "ael.y"
#line 710 "ael.y"
{
pval *z = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0]));
z->u1.str = (yyvsp[-1].str);
@ -2956,54 +2957,56 @@ yyreduce:
break;
case 140:
#line 714 "ael.y"
#line 715 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 141:
#line 717 "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);;}
#line 718 "ael.y"
{
(yyval.pval) = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0]));
(yyval.pval)->u1.str = (yyvsp[-1].str);;}
break;
case 142:
#line 718 "ael.y"
#line 722 "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) = npval2(PV_WORD, &(yylsp[-13]), &(yylsp[-12]));
(yyval.pval)->u1.str = (yyvsp[-13].str);
(yyval.pval)->u2.arglist = npval(PV_WORD,(yylsp[-11]).first_line,(yylsp[-7]).last_line, (yylsp[-11]).first_column, (yylsp[-7]).last_column);
(yyval.pval)->u2.arglist = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-7]));
asprintf( &((yyval.pval)->u2.arglist->u1.str), "%s:%s:%s", (yyvsp[-11].str), (yyvsp[-9].str), (yyvsp[-7].str));
free((yyvsp[-11].str));
free((yyvsp[-9].str));
free((yyvsp[-7].str));
(yyval.pval)->u2.arglist->next = npval(PV_WORD,(yylsp[-5]).first_line,(yylsp[-5]).last_line, (yylsp[-5]).first_column, (yylsp[-5]).last_column);
(yyval.pval)->u2.arglist->next = npval2(PV_WORD, &(yylsp[-5]), &(yylsp[-5]));
(yyval.pval)->u2.arglist->next->u1.str = (yyvsp[-5].str);
(yyval.pval)->u2.arglist->next->next = npval(PV_WORD,(yylsp[-3]).first_line,(yylsp[-3]).last_line, (yylsp[-3]).first_column, (yylsp[-3]).last_column);
(yyval.pval)->u2.arglist->next->next = npval2(PV_WORD, &(yylsp[-3]), &(yylsp[-3]));
(yyval.pval)->u2.arglist->next->next->u1.str = (yyvsp[-3].str);
(yyval.pval)->u2.arglist->next->next->next = npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[-1]).last_line, (yylsp[-1]).first_column, (yylsp[-1]).last_column);
(yyval.pval)->u2.arglist->next->next->next = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[-1]));
(yyval.pval)->u2.arglist->next->next->next->u1.str = (yyvsp[-1].str);
prev_word=0;
;}
break;
case 143:
#line 734 "ael.y"
#line 738 "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) = npval2(PV_WORD, &(yylsp[-9]), &(yylsp[-8]));
(yyval.pval)->u1.str = (yyvsp[-9].str);
(yyval.pval)->u2.arglist = npval(PV_WORD,(yylsp[-7]).first_line,(yylsp[-7]).last_line, (yylsp[-7]).first_column, (yylsp[-7]).last_column);
(yyval.pval)->u2.arglist = npval2(PV_WORD, &(yylsp[-7]), &(yylsp[-7]));
(yyval.pval)->u2.arglist->u1.str = (yyvsp[-7].str);
(yyval.pval)->u2.arglist->next = npval(PV_WORD,(yylsp[-5]).first_line,(yylsp[-5]).last_line, (yylsp[-5]).first_column, (yylsp[-5]).last_column);
(yyval.pval)->u2.arglist->next = npval2(PV_WORD, &(yylsp[-5]), &(yylsp[-5]));
(yyval.pval)->u2.arglist->next->u1.str = (yyvsp[-5].str);
(yyval.pval)->u2.arglist->next->next = npval(PV_WORD,(yylsp[-3]).first_line,(yylsp[-3]).last_line, (yylsp[-3]).first_column, (yylsp[-3]).last_column);
(yyval.pval)->u2.arglist->next->next = npval2(PV_WORD, &(yylsp[-3]), &(yylsp[-3]));
(yyval.pval)->u2.arglist->next->next->u1.str = (yyvsp[-3].str);
(yyval.pval)->u2.arglist->next->next->next = npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[-1]).last_line, (yylsp[-1]).first_column, (yylsp[-1]).last_column);
(yyval.pval)->u2.arglist->next->next->next = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[-1]));
(yyval.pval)->u2.arglist->next->next->next->u1.str = (yyvsp[-1].str);
prev_word=0;
;}
break;
case 144:
#line 747 "ael.y"
#line 751 "ael.y"
{
pval *z = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[0])); /* XXX don't we need @1-@4 ?*/
(yyval.pval)=(yyvsp[-2].pval);
@ -3012,64 +3015,68 @@ yyreduce:
break;
case 145:
#line 752 "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);
#line 757 "ael.y"
{
pval *z = npval2(PV_WORD, &(yylsp[-13]), &(yylsp[-12]));
(yyval.pval)=(yyvsp[-14].pval); z->u1.str = (yyvsp[-13].str);
linku1((yyval.pval),z);
z->u2.arglist = npval2(PV_WORD, &(yylsp[-11]), &(yylsp[-11]));
asprintf( &((yyval.pval)->u2.arglist->u1.str), "%s:%s:%s", (yyvsp[-11].str), (yyvsp[-9].str), (yyvsp[-7].str));
free((yyvsp[-11].str));
free((yyvsp[-9].str));
free((yyvsp[-7].str));
z->u2.arglist->next = npval(PV_WORD,(yylsp[-5]).first_line,(yylsp[-5]).last_line, (yylsp[-5]).first_column, (yylsp[-5]).last_column);
z->u2.arglist->next = npval2(PV_WORD, &(yylsp[-5]), &(yylsp[-5]));
z->u2.arglist->next->u1.str = (yyvsp[-5].str);
z->u2.arglist->next->next = npval(PV_WORD,(yylsp[-3]).first_line,(yylsp[-3]).last_line, (yylsp[-3]).first_column, (yylsp[-3]).last_column);
z->u2.arglist->next->next = npval2(PV_WORD, &(yylsp[-3]), &(yylsp[-3]));
z->u2.arglist->next->next->u1.str = (yyvsp[-3].str);
z->u2.arglist->next->next->next = npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[-1]).last_line, (yylsp[-1]).first_column, (yylsp[-1]).last_column);
z->u2.arglist->next->next->next = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[-1]));
z->u2.arglist->next->next->next->u1.str = (yyvsp[-1].str);
prev_word=0;
;}
break;
case 146:
#line 768 "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);
#line 774 "ael.y"
{
pval *z = npval2(PV_WORD, &(yylsp[-9]), &(yylsp[-8]));
(yyval.pval)=(yyvsp[-10].pval);
z->u1.str = (yyvsp[-9].str); linku1((yyval.pval),z);
z->u2.arglist = npval2(PV_WORD, &(yylsp[-7]), &(yylsp[-7]));
(yyval.pval)->u2.arglist->u1.str = (yyvsp[-7].str);
z->u2.arglist->next = npval(PV_WORD,(yylsp[-5]).first_line,(yylsp[-5]).last_line, (yylsp[-5]).first_column, (yylsp[-5]).last_column);
z->u2.arglist->next = npval2(PV_WORD, &(yylsp[-5]), &(yylsp[-5]));
z->u2.arglist->next->u1.str = (yyvsp[-5].str);
z->u2.arglist->next->next = npval(PV_WORD,(yylsp[-3]).first_line,(yylsp[-3]).last_line, (yylsp[-3]).first_column, (yylsp[-3]).last_column);
z->u2.arglist->next->next = npval2(PV_WORD, &(yylsp[-3]), &(yylsp[-3]));
z->u2.arglist->next->next->u1.str = (yyvsp[-3].str);
z->u2.arglist->next->next->next = npval(PV_WORD,(yylsp[-1]).first_line,(yylsp[-1]).last_line, (yylsp[-1]).first_column, (yylsp[-1]).last_column);
z->u2.arglist->next->next->next = npval2(PV_WORD, &(yylsp[-1]), &(yylsp[-1]));
z->u2.arglist->next->next->next->u1.str = (yyvsp[-1].str);
prev_word=0;
;}
break;
case 147:
#line 780 "ael.y"
#line 788 "ael.y"
{(yyval.pval)=(yyvsp[-1].pval);;}
break;
case 148:
#line 783 "ael.y"
#line 791 "ael.y"
{ (yyval.str) = (yyvsp[0].str);;}
break;
case 149:
#line 784 "ael.y"
#line 792 "ael.y"
{(yyval.str)=strdup("default");;}
break;
case 150:
#line 787 "ael.y"
#line 795 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-3]), &(yylsp[0]));
(yyval.pval)->u1.list = (yyvsp[-1].pval);;}
break;
case 151:
#line 790 "ael.y"
#line 798 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[-2]), &(yylsp[0]));;}
break;
@ -3079,7 +3086,7 @@ yyreduce:
}
/* Line 1126 of yacc.c. */
#line 3083 "ael.tab.c"
#line 3090 "ael.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
@ -3354,7 +3361,7 @@ yyreturn:
}
#line 795 "ael.y"
#line 803 "ael.y"
static char *token_equivs1[] =

@ -246,10 +246,10 @@ global_statement : word EQ { reset_semicount(parseio->scanner); } word SEMI {
;
arglist : word {
$$= npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$= npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1; }
| arglist COMMA word {
pval *z = npval(PV_WORD,@1.first_line,@3.last_line, @1.first_column, @3.last_column);
pval *z = npval2(PV_WORD, &@1, &@3);
z->u1.str = $3;
$$=$1;
linku1($$,z); }
@ -283,21 +283,21 @@ ignorepat : KW_IGNOREPAT EXTENMARK word SEMI {
;
extension : word EXTENMARK statement {
$$ = npval(PV_EXTENSION,@1.first_line,@3.last_line, @1.first_column, @3.last_column);
$$ = npval2(PV_EXTENSION, &@1, &@3);
$$->u1.str = $1;
$$->u2.statements = $3; }
| KW_REGEXTEN word EXTENMARK statement {
$$ = npval(PV_EXTENSION,@1.first_line,@4.last_line, @1.first_column, @4.last_column);
$$ = npval2(PV_EXTENSION, &@1, &@4);
$$->u1.str = $2;
$$->u2.statements = $4;
$$->u4.regexten=1;}
| KW_HINT LP word3_list RP word EXTENMARK statement {
$$ = npval(PV_EXTENSION,@1.first_line,@7.last_line, @1.first_column, @7.last_column);
$$ = npval2(PV_EXTENSION, &@1, &@7);
$$->u1.str = $5;
$$->u2.statements = $7;
$$->u3.hints = $3;}
| KW_REGEXTEN KW_HINT LP word3_list RP word EXTENMARK statement {
$$ = npval(PV_EXTENSION,@1.first_line,@8.last_line, @1.first_column, @8.last_column);
$$ = npval2(PV_EXTENSION, &@1, &@8);
$$->u1.str = $6;
$$->u2.statements = $8;
$$->u4.regexten=1;
@ -313,12 +313,12 @@ statements : statement {$$=$1;}
;
if_head : KW_IF LP { reset_parencount(parseio->scanner); } word_list RP {
$$= npval(PV_IF,@1.first_line,@5.last_line, @1.first_column, @5.last_column);
$$= npval2(PV_IF, &@1, &@5);
$$->u1.str = $4; }
;
random_head : KW_RANDOM LP { reset_parencount(parseio->scanner); } word_list RP {
$$= npval(PV_RANDOM,@1.first_line,@5.last_line, @1.first_column, @5.last_column);
$$ = npval2(PV_RANDOM, &@1, &@5);
$$->u1.str=$4;}
;
@ -392,7 +392,7 @@ goto_word : word { $$ = $1;}
;
switch_head : KW_SWITCH LP { reset_parencount(parseio->scanner); } word RP LC {
$$=npval(PV_SWITCH,@1.first_line,@6.last_line, @1.first_column, @6.last_column);
$$ = npval2(PV_SWITCH, &@1, &@6);
$$->u1.str = $4; }
;
@ -445,13 +445,13 @@ statement : LC statements RC {
$$->endline = @2.last_line;
$$->endcol = @2.last_column;}
| word SEMI {
$$= npval(PV_APPLICATION_CALL,@1.first_line,@2.last_line, @1.first_column, @2.last_column);
$$= npval2(PV_APPLICATION_CALL, &@1, &@2);
$$->u1.str = $1;}
| application_call EQ {reset_semicount(parseio->scanner);} word SEMI {
char *bufx;
int tot=0;
pval *pptr;
$$ = npval(PV_VARDEC,@1.first_line,@5.last_line, @1.first_column, @5.last_column);
$$ = npval2(PV_VARDEC, &@1, &@5);
$$->u2.val=$4;
/* rebuild the original string-- this is not an app call, it's an unwrapped vardec, with a func call on the LHS */
/* string to big to fit in the buffer? */
@ -480,12 +480,9 @@ statement : LC statements RC {
destroy_pval($1); /* the app call it is not, get rid of that chain */
prev_word = 0;
}
| KW_BREAK SEMI {
$$ = npval(PV_BREAK,@1.first_line,@2.last_line, @1.first_column, @2.last_column);}
| KW_RETURN SEMI {
$$ = npval(PV_RETURN,@1.first_line,@2.last_line, @1.first_column, @2.last_column);}
| KW_CONTINUE SEMI {
$$ = npval(PV_CONTINUE,@1.first_line,@2.last_line, @1.first_column, @2.last_column);}
| KW_BREAK SEMI { $$ = npval2(PV_BREAK, &@1, &@2); }
| KW_RETURN SEMI { $$ = npval2(PV_RETURN, &@1, &@2); }
| KW_CONTINUE SEMI { $$ = npval2(PV_CONTINUE, &@1, &@2); }
| random_head statement {
$$=$1;
$$->u2.statements = $2;
@ -522,84 +519,85 @@ statement : LC statements RC {
| SEMI { $$=0; }
;
target : goto_word { $$ = npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column); $$->u1.str = $1;}
target : goto_word { $$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;}
| goto_word BAR goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;}
| goto_word COMMA goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;}
| goto_word BAR goto_word BAR goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;
$$->next->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->next->next = npval2(PV_WORD, &@5, &@5);
$$->next->next->u1.str = $5; }
| goto_word COMMA goto_word COMMA goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;
$$->next->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->next->next = npval2(PV_WORD, &@5, &@5);
$$->next->next->u1.str = $5; }
| KW_DEFAULT BAR goto_word BAR goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = strdup("default");
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;
$$->next->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->next->next = npval2(PV_WORD, &@5, &@5);
$$->next->next->u1.str = $5; }
| KW_DEFAULT COMMA goto_word COMMA goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = strdup("default");
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;
$$->next->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->next->next = npval2(PV_WORD, &@5, &@5);
$$->next->next->u1.str = $5; }
;
jumptarget : goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;
$$->next = npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$->next = npval2(PV_WORD, &@1, &@1); /* XXX not really @1 */
$$->next->u1.str = strdup("1");} /* jump extension[,priority][@context] */
| goto_word COMMA goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $3;}
| goto_word COMMA word AT word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $5;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $1;
$$->next->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->next->next = npval2(PV_WORD, &@5, &@5);
$$->next->next->u1.str = $3; }
| goto_word AT goto_word {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = $3;
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $1;
$$->next->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next->next = npval2(PV_WORD, &@3, &@3);
$$->next->next->u1.str = strdup("1"); }
| goto_word COMMA word AT KW_DEFAULT {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = strdup("default");
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $1;
$$->next->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->next->next = npval2(PV_WORD, &@5, &@5);
$$->next->next->u1.str = $3; }
| goto_word AT KW_DEFAULT {
$$=npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$ = npval2(PV_WORD, &@1, &@1);
$$->u1.str = strdup("default");
$$->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next = npval2(PV_WORD, &@3, &@3);
$$->next->u1.str = $1;
$$->next->next = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->next->next = npval2(PV_WORD, &@3, &@3);
$$->next->next->u1.str = strdup("1"); }
;
@ -615,11 +613,11 @@ macro_call : word LP {reset_argcount(parseio->scanner);} eval_arglist RP {
application_call_head: word {reset_argcount(parseio->scanner);} LP {
if (strcasecmp($1,"goto") == 0) {
$$= npval(PV_GOTO,@1.first_line,@3.last_line, @1.first_column, @3.last_column);
$$= npval2(PV_GOTO, &@1, &@3);
free($1); /* won't be using this */
ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Suggestion: Use the goto statement instead of the Goto() application call in AEL.\n", my_file, @1.first_line, @1.first_column, @1.last_column );
} else
$$= npval(PV_APPLICATION_CALL,@1.first_line,@3.last_line, @1.first_column, @3.last_column);
$$= npval2(PV_APPLICATION_CALL, &@1, &@3);
$$->u1.str = $1; }
;
@ -633,18 +631,18 @@ application_call : application_call_head eval_arglist RP {$$ = $1;
;
eval_arglist : word_list {
$$= npval(PV_WORD,@1.first_line,@1.last_line, @1.first_column, @1.last_column);
$$= npval2(PV_WORD, &@1, &@1);
$$->u1.str = $1;}
| /*nothing! */ {
$$= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/);
$$->u1.str = strdup(""); }
| eval_arglist COMMA word {
pval *z = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
pval *z = npval2(PV_WORD, &@3, &@3);
$$ = $1;
linku1($1,z);
z->u1.str = $3;}
| eval_arglist COMMA {
pval *z = npval(PV_WORD,@2.first_line,@2.last_line, @2.first_column, @2.last_column);
pval *z = npval2(PV_WORD, &@2, &@2);
$$ = $1;
linku1($1,z);
z->u1.str = strdup("");}
@ -699,8 +697,11 @@ switches : KW_SWITCHES LC switchlist RC {
$$ = npval2(PV_SWITCHES, &@1, &@3); }
;
eswitches : KW_ESWITCHES LC switchlist RC {$$= npval(PV_ESWITCHES,@1.first_line,@4.last_line, @1.first_column, @4.last_column); $$->u1.list = $3; }
| KW_ESWITCHES LC RC /* empty switch list OK */ {$$= npval(PV_ESWITCHES,@1.first_line,@3.last_line, @1.first_column, @3.last_column); } /* if there's nothing to declare, why include it? */
eswitches : KW_ESWITCHES LC switchlist RC {
$$ = npval2(PV_ESWITCHES, &@1, &@4);
$$->u1.list = $3; }
| KW_ESWITCHES LC RC { /* empty switch list OK */
$$ = npval2(PV_ESWITCHES, &@1, &@3); } /* if there's nothing to declare, why include it? */
;
switchlist : word SEMI {
@ -714,33 +715,36 @@ switchlist : word SEMI {
| switchlist error {$$=$1;}
;
includeslist : includedname SEMI {$$=npval(PV_WORD,@1.first_line,@2.last_line, @1.first_column, @2.last_column); $$->u1.str = $1;}
| includedname BAR word3_list COLON word3_list COLON word3_list BAR word3_list BAR word3_list BAR word3_list SEMI {
$$=npval(PV_WORD,@1.first_line,@2.last_line, @1.first_column, @2.last_column);
includeslist : includedname SEMI {
$$ = npval2(PV_WORD, &@1, &@2);
$$->u1.str = $1;}
| includedname BAR word3_list COLON word3_list COLON word3_list
BAR word3_list BAR word3_list BAR word3_list SEMI {
$$ = npval2(PV_WORD, &@1, &@2);
$$->u1.str = $1;
$$->u2.arglist = npval(PV_WORD,@3.first_line,@7.last_line, @3.first_column, @7.last_column);
$$->u2.arglist = npval2(PV_WORD, &@3, &@7);
asprintf( &($$->u2.arglist->u1.str), "%s:%s:%s", $3, $5, $7);
free($3);
free($5);
free($7);
$$->u2.arglist->next = npval(PV_WORD,@9.first_line,@9.last_line, @9.first_column, @9.last_column);
$$->u2.arglist->next = npval2(PV_WORD, &@9, &@9);
$$->u2.arglist->next->u1.str = $9;
$$->u2.arglist->next->next = npval(PV_WORD,@11.first_line,@11.last_line, @11.first_column, @11.last_column);
$$->u2.arglist->next->next = npval2(PV_WORD, &@11, &@11);
$$->u2.arglist->next->next->u1.str = $11;
$$->u2.arglist->next->next->next = npval(PV_WORD,@13.first_line,@13.last_line, @13.first_column, @13.last_column);
$$->u2.arglist->next->next->next = npval2(PV_WORD, &@13, &@13);
$$->u2.arglist->next->next->next->u1.str = $13;
prev_word=0;
}
| includedname BAR word BAR word3_list BAR word3_list BAR word3_list SEMI {
$$=npval(PV_WORD,@1.first_line,@2.last_line, @1.first_column, @2.last_column);
$$ = npval2(PV_WORD, &@1, &@2);
$$->u1.str = $1;
$$->u2.arglist = npval(PV_WORD,@3.first_line,@3.last_line, @3.first_column, @3.last_column);
$$->u2.arglist = npval2(PV_WORD, &@3, &@3);
$$->u2.arglist->u1.str = $3;
$$->u2.arglist->next = npval(PV_WORD,@5.first_line,@5.last_line, @5.first_column, @5.last_column);
$$->u2.arglist->next = npval2(PV_WORD, &@5, &@5);
$$->u2.arglist->next->u1.str = $5;
$$->u2.arglist->next->next = npval(PV_WORD,@7.first_line,@7.last_line, @7.first_column, @7.last_column);
$$->u2.arglist->next->next = npval2(PV_WORD, &@7, &@7);
$$->u2.arglist->next->next->u1.str = $7;
$$->u2.arglist->next->next->next = npval(PV_WORD,@9.first_line,@9.last_line, @9.first_column, @9.last_column);
$$->u2.arglist->next->next->next = npval2(PV_WORD, &@9, &@9);
$$->u2.arglist->next->next->next->u1.str = $9;
prev_word=0;
}
@ -749,31 +753,35 @@ includeslist : includedname SEMI {$$=npval(PV_WORD,@1.first_line,@2.last_line, @
$$=$1;
z->u1.str = $2;
linku1($$,z); }
| includeslist includedname BAR word3_list COLON word3_list COLON word3_list BAR word3_list BAR word3_list BAR word3_list SEMI {pval *z = npval(PV_WORD,@2.first_line,@3.last_line, @2.first_column, @3.last_column);
$$=$1; z->u1.str = $2; linku1($$,z);
z->u2.arglist = npval(PV_WORD,@4.first_line,@4.last_line, @4.first_column, @4.last_column);
| includeslist includedname BAR word3_list COLON word3_list COLON word3_list
BAR word3_list BAR word3_list BAR word3_list SEMI {
pval *z = npval2(PV_WORD, &@2, &@3);
$$=$1; z->u1.str = $2;
linku1($$,z);
z->u2.arglist = npval2(PV_WORD, &@4, &@4);
asprintf( &($$->u2.arglist->u1.str), "%s:%s:%s", $4, $6, $8);
free($4);
free($6);
free($8);
z->u2.arglist->next = npval(PV_WORD,@10.first_line,@10.last_line, @10.first_column, @10.last_column);
z->u2.arglist->next = npval2(PV_WORD, &@10, &@10);
z->u2.arglist->next->u1.str = $10;
z->u2.arglist->next->next = npval(PV_WORD,@12.first_line,@12.last_line, @12.first_column, @12.last_column);
z->u2.arglist->next->next = npval2(PV_WORD, &@12, &@12);
z->u2.arglist->next->next->u1.str = $12;
z->u2.arglist->next->next->next = npval(PV_WORD,@14.first_line,@14.last_line, @14.first_column, @14.last_column);
z->u2.arglist->next->next->next = npval2(PV_WORD, &@14, &@14);
z->u2.arglist->next->next->next->u1.str = $14;
prev_word=0;
}
| includeslist includedname BAR word BAR word3_list BAR word3_list BAR word3_list SEMI
{pval *z = npval(PV_WORD,@2.first_line,@2.last_line, @2.first_column, @3.last_column);
$$=$1; z->u1.str = $2; linku1($$,z);
z->u2.arglist = npval(PV_WORD,@4.first_line,@4.last_line, @4.first_column, @4.last_column);
| includeslist includedname BAR word BAR word3_list BAR word3_list BAR word3_list SEMI {
pval *z = npval2(PV_WORD, &@2, &@3);
$$=$1;
z->u1.str = $2; linku1($$,z);
z->u2.arglist = npval2(PV_WORD, &@4, &@4);
$$->u2.arglist->u1.str = $4;
z->u2.arglist->next = npval(PV_WORD,@6.first_line,@6.last_line, @6.first_column, @6.last_column);
z->u2.arglist->next = npval2(PV_WORD, &@6, &@6);
z->u2.arglist->next->u1.str = $6;
z->u2.arglist->next->next = npval(PV_WORD,@8.first_line,@8.last_line, @8.first_column, @8.last_column);
z->u2.arglist->next->next = npval2(PV_WORD, &@8, &@8);
z->u2.arglist->next->next->u1.str = $8;
z->u2.arglist->next->next->next = npval(PV_WORD,@10.first_line,@10.last_line, @10.first_column, @10.last_column);
z->u2.arglist->next->next->next = npval2(PV_WORD, &@10, &@10);
z->u2.arglist->next->next->next->u1.str = $10;
prev_word=0;
}

Loading…
Cancel
Save