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

@ -246,10 +246,10 @@ global_statement : word EQ { reset_semicount(parseio->scanner); } word SEMI {
; ;
arglist : word { 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; } $$->u1.str = $1; }
| arglist COMMA word { | 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; z->u1.str = $3;
$$=$1; $$=$1;
linku1($$,z); } linku1($$,z); }
@ -283,21 +283,21 @@ ignorepat : KW_IGNOREPAT EXTENMARK word SEMI {
; ;
extension : word EXTENMARK statement { 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; $$->u1.str = $1;
$$->u2.statements = $3; } $$->u2.statements = $3; }
| KW_REGEXTEN word EXTENMARK statement { | 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; $$->u1.str = $2;
$$->u2.statements = $4; $$->u2.statements = $4;
$$->u4.regexten=1;} $$->u4.regexten=1;}
| KW_HINT LP word3_list RP word EXTENMARK statement { | 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; $$->u1.str = $5;
$$->u2.statements = $7; $$->u2.statements = $7;
$$->u3.hints = $3;} $$->u3.hints = $3;}
| KW_REGEXTEN KW_HINT LP word3_list RP word EXTENMARK statement { | 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; $$->u1.str = $6;
$$->u2.statements = $8; $$->u2.statements = $8;
$$->u4.regexten=1; $$->u4.regexten=1;
@ -313,12 +313,12 @@ statements : statement {$$=$1;}
; ;
if_head : KW_IF LP { reset_parencount(parseio->scanner); } word_list RP { 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; } $$->u1.str = $4; }
; ;
random_head : KW_RANDOM LP { reset_parencount(parseio->scanner); } word_list RP { 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;} $$->u1.str=$4;}
; ;
@ -392,7 +392,7 @@ goto_word : word { $$ = $1;}
; ;
switch_head : KW_SWITCH LP { reset_parencount(parseio->scanner); } word RP LC { 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; } $$->u1.str = $4; }
; ;
@ -445,13 +445,13 @@ statement : LC statements RC {
$$->endline = @2.last_line; $$->endline = @2.last_line;
$$->endcol = @2.last_column;} $$->endcol = @2.last_column;}
| word SEMI { | 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;} $$->u1.str = $1;}
| application_call EQ {reset_semicount(parseio->scanner);} word SEMI { | application_call EQ {reset_semicount(parseio->scanner);} word SEMI {
char *bufx; char *bufx;
int tot=0; int tot=0;
pval *pptr; 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; $$->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 */ /* 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? */ /* 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 */ destroy_pval($1); /* the app call it is not, get rid of that chain */
prev_word = 0; prev_word = 0;
} }
| KW_BREAK SEMI { | KW_BREAK SEMI { $$ = npval2(PV_BREAK, &@1, &@2); }
$$ = npval(PV_BREAK,@1.first_line,@2.last_line, @1.first_column, @2.last_column);} | KW_RETURN SEMI { $$ = npval2(PV_RETURN, &@1, &@2); }
| KW_RETURN SEMI { | KW_CONTINUE SEMI { $$ = npval2(PV_CONTINUE, &@1, &@2); }
$$ = 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);}
| random_head statement { | random_head statement {
$$=$1; $$=$1;
$$->u2.statements = $2; $$->u2.statements = $2;
@ -522,84 +519,85 @@ statement : LC statements RC {
| SEMI { $$=0; } | 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 { | 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; $$->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->u1.str = $3;}
| goto_word COMMA goto_word { | 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; $$->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->u1.str = $3;}
| goto_word BAR goto_word BAR goto_word { | 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; $$->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->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; } $$->next->next->u1.str = $5; }
| goto_word COMMA goto_word COMMA goto_word { | 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; $$->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->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; } $$->next->next->u1.str = $5; }
| KW_DEFAULT BAR goto_word BAR goto_word { | 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"); $$->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->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; } $$->next->next->u1.str = $5; }
| KW_DEFAULT COMMA goto_word COMMA goto_word { | 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"); $$->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->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; } $$->next->next->u1.str = $5; }
; ;
jumptarget : goto_word { 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; $$->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] */ $$->next->u1.str = strdup("1");} /* jump extension[,priority][@context] */
| goto_word COMMA goto_word { | 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; $$->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->u1.str = $3;}
| goto_word COMMA word AT word { | 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; $$->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->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; } $$->next->next->u1.str = $3; }
| goto_word AT goto_word { | 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; $$->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->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"); } $$->next->next->u1.str = strdup("1"); }
| goto_word COMMA word AT KW_DEFAULT { | 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"); $$->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->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; } $$->next->next->u1.str = $3; }
| goto_word AT KW_DEFAULT { | 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"); $$->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->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"); } $$->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 { application_call_head: word {reset_argcount(parseio->scanner);} LP {
if (strcasecmp($1,"goto") == 0) { 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 */ 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 ); 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 } 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; } $$->u1.str = $1; }
; ;
@ -633,18 +631,18 @@ application_call : application_call_head eval_arglist RP {$$ = $1;
; ;
eval_arglist : word_list { 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;} $$->u1.str = $1;}
| /*nothing! */ { | /*nothing! */ {
$$= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/); $$= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/);
$$->u1.str = strdup(""); } $$->u1.str = strdup(""); }
| eval_arglist COMMA word { | 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; $$ = $1;
linku1($1,z); linku1($1,z);
z->u1.str = $3;} z->u1.str = $3;}
| eval_arglist COMMA { | 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; $$ = $1;
linku1($1,z); linku1($1,z);
z->u1.str = strdup("");} z->u1.str = strdup("");}
@ -699,8 +697,11 @@ switches : KW_SWITCHES LC switchlist RC {
$$ = npval2(PV_SWITCHES, &@1, &@3); } $$ = 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; } eswitches : KW_ESWITCHES LC switchlist RC {
| 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? */ $$ = 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 { switchlist : word SEMI {
@ -714,33 +715,36 @@ switchlist : word SEMI {
| switchlist error {$$=$1;} | switchlist error {$$=$1;}
; ;
includeslist : includedname SEMI {$$=npval(PV_WORD,@1.first_line,@2.last_line, @1.first_column, @2.last_column); $$->u1.str = $1;} includeslist : includedname SEMI {
| 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);
$$=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 {
$$ = npval2(PV_WORD, &@1, &@2);
$$->u1.str = $1; $$->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); asprintf( &($$->u2.arglist->u1.str), "%s:%s:%s", $3, $5, $7);
free($3); free($3);
free($5); free($5);
free($7); 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->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->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; $$->u2.arglist->next->next->next->u1.str = $13;
prev_word=0; prev_word=0;
} }
| includedname BAR word BAR word3_list BAR word3_list BAR word3_list SEMI { | 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; $$->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->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->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->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; $$->u2.arglist->next->next->next->u1.str = $9;
prev_word=0; prev_word=0;
} }
@ -749,31 +753,35 @@ includeslist : includedname SEMI {$$=npval(PV_WORD,@1.first_line,@2.last_line, @
$$=$1; $$=$1;
z->u1.str = $2; z->u1.str = $2;
linku1($$,z); } 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); | includeslist includedname BAR word3_list COLON word3_list COLON word3_list
$$=$1; z->u1.str = $2; linku1($$,z); BAR word3_list BAR word3_list BAR word3_list SEMI {
z->u2.arglist = npval(PV_WORD,@4.first_line,@4.last_line, @4.first_column, @4.last_column); 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); asprintf( &($$->u2.arglist->u1.str), "%s:%s:%s", $4, $6, $8);
free($4); free($4);
free($6); free($6);
free($8); 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->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->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; z->u2.arglist->next->next->next->u1.str = $14;
prev_word=0; prev_word=0;
} }
| includeslist includedname BAR word BAR word3_list BAR word3_list BAR word3_list SEMI | 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); pval *z = npval2(PV_WORD, &@2, &@3);
$$=$1; z->u1.str = $2; linku1($$,z); $$=$1;
z->u2.arglist = npval(PV_WORD,@4.first_line,@4.last_line, @4.first_column, @4.last_column); z->u1.str = $2; linku1($$,z);
z->u2.arglist = npval2(PV_WORD, &@4, &@4);
$$->u2.arglist->u1.str = $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->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->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; z->u2.arglist->next->next->next->u1.str = $10;
prev_word=0; prev_word=0;
} }

Loading…
Cancel
Save