cvsuser 04/10/31 04:52:04
Modified: imcc imcparser.c
Log:
PMC constants 5 - better namespace handling - generated files
Revision Changes Path
1.135 +261 -253 parrot/imcc/imcparser.c
Index: imcparser.c
===================================================================
RCS file: /cvs/public/parrot/imcc/imcparser.c,v
retrieving revision 1.134
retrieving revision 1.135
diff -u -r1.134 -r1.135
--- imcparser.c 30 Oct 2004 11:33:31 -0000 1.134
+++ imcparser.c 31 Oct 2004 12:52:04 -0000 1.135
@@ -906,31 +906,31 @@
0, 363, 363, 367, 369, 372, 374, 375, 376, 377,
378, 379, 380, 381, 384, 390, 398, 397, 403, 402,
406, 408, 411, 413, 414, 415, 416, 417, 420, 420,
- 424, 431, 434, 439, 438, 450, 459, 457, 473, 475,
- 478, 480, 483, 485, 486, 489, 503, 521, 526, 519,
- 536, 538, 539, 543, 542, 547, 552, 554, 551, 564,
- 566, 567, 571, 570, 577, 575, 607, 609, 612, 614,
- 617, 619, 622, 624, 625, 628, 629, 630, 631, 632,
- 633, 636, 642, 644, 649, 651, 653, 657, 663, 665,
- 668, 670, 673, 675, 678, 681, 681, 687, 685, 707,
- 705, 726, 728, 730, 734, 738, 740, 751, 755, 758,
- 759, 760, 763, 765, 768, 770, 773, 780, 785, 793,
- 801, 803, 804, 805, 806, 806, 819, 819, 821, 822,
- 822, 824, 824, 826, 827, 828, 829, 830, 831, 832,
- 832, 835, 838, 839, 840, 841, 842, 845, 847, 848,
- 849, 852, 854, 855, 856, 857, 858, 861, 871, 873,
- 874, 875, 876, 877, 878, 879, 880, 881, 882, 883,
- 884, 886, 888, 890, 892, 894, 896, 898, 900, 902,
- 904, 906, 908, 910, 912, 914, 916, 918, 921, 928,
- 931, 933, 937, 939, 941, 944, 951, 950, 959, 960,
- 963, 966, 968, 970, 972, 974, 976, 978, 980, 982,
- 984, 986, 988, 992, 1000, 1001, 1005, 1006, 1007, 1010,
- 1011, 1016, 1014, 1024, 1026, 1027, 1030, 1033, 1037, 1039,
- 1042, 1045, 1047, 1049, 1051, 1053, 1057, 1059, 1060, 1061,
- 1062, 1063, 1066, 1068, 1071, 1073, 1076, 1078, 1081, 1083,
- 1091, 1093, 1096, 1098, 1101, 1103, 1106, 1108, 1111, 1111,
- 1115, 1117, 1119, 1119, 1123, 1129, 1132, 1133, 1136, 1138,
- 1139, 1140, 1141, 1144, 1146, 1147, 1148, 1151, 1153
+ 424, 431, 434, 439, 438, 450, 468, 466, 482, 484,
+ 487, 489, 492, 494, 495, 498, 512, 530, 535, 528,
+ 545, 547, 548, 552, 551, 556, 561, 563, 560, 573,
+ 575, 576, 580, 579, 586, 584, 616, 618, 621, 623,
+ 626, 628, 631, 633, 634, 637, 638, 639, 640, 641,
+ 642, 645, 651, 653, 658, 660, 662, 666, 672, 674,
+ 677, 679, 682, 684, 687, 690, 690, 696, 694, 716,
+ 714, 735, 737, 739, 743, 747, 749, 760, 764, 767,
+ 768, 769, 772, 774, 777, 779, 782, 789, 794, 802,
+ 810, 812, 813, 814, 815, 815, 828, 828, 830, 831,
+ 831, 833, 833, 835, 836, 837, 838, 839, 840, 841,
+ 841, 844, 847, 848, 849, 850, 851, 854, 856, 857,
+ 858, 861, 863, 864, 865, 866, 867, 870, 880, 882,
+ 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
+ 893, 895, 897, 899, 901, 903, 905, 907, 909, 911,
+ 913, 915, 917, 919, 921, 923, 925, 927, 930, 937,
+ 940, 942, 946, 948, 950, 953, 960, 959, 968, 969,
+ 972, 975, 977, 979, 981, 983, 985, 987, 989, 991,
+ 993, 995, 997, 1001, 1009, 1010, 1014, 1015, 1016, 1019,
+ 1020, 1025, 1023, 1033, 1035, 1036, 1039, 1042, 1046, 1048,
+ 1051, 1054, 1056, 1058, 1060, 1062, 1066, 1068, 1069, 1070,
+ 1071, 1072, 1075, 1077, 1080, 1082, 1085, 1087, 1090, 1092,
+ 1100, 1102, 1105, 1107, 1110, 1112, 1115, 1117, 1120, 1120,
+ 1124, 1126, 1128, 1128, 1132, 1138, 1141, 1142, 1145, 1147,
+ 1148, 1149, 1150, 1153, 1155, 1156, 1157, 1160, 1162
};
#endif
@@ -2062,7 +2062,7 @@
{
yyval.i = iSUBROUTINE(cur_unit, mk_sub_label(yyvsp[0].s));
yyval.i->r[1] = mk_pcc_sub(str_dup(yyval.i->r[0]->name), 0);
- add_namespace(interp, yyval.i->r[1]);
+ add_namespace(interp, cur_unit);
yyval.i->r[1]->pcc_sub->pragma = yyvsp[-1].t;
}
break;
@@ -2089,15 +2089,23 @@
break;
case 35:
-#line 451 "imcc/imcc.y"
- { yyval.i=0;
- IMCC_INFO(interp)->cur_namespace = yyvsp[-1].sr;
- cur_namespace = yyvsp[-1].sr;
- }
+#line 452 "imcc/imcc.y"
+ {
+ int re_open = 0;
+ yyval.i=0;
+ if (pasm_file && cur_namespace) {
+ imc_close_unit(interp, cur_unit);
+ re_open = 1;
+ }
+ IMCC_INFO(interp)->cur_namespace = yyvsp[-1].sr;
+ cur_namespace = yyvsp[-1].sr;
+ if (re_open)
+ cur_unit = imc_open_unit(interp, IMC_PASM);
+ }
break;
case 36:
-#line 459 "imcc/imcc.y"
+#line 468 "imcc/imcc.y"
{
Symbol * sym = new_symbol(yyvsp[0].s);
cur_unit = imc_open_unit(interp, IMC_CLASS);
@@ -2107,7 +2115,7 @@
break;
case 37:
-#line 466 "imcc/imcc.y"
+#line 475 "imcc/imcc.y"
{
/* Do nothing for now. Need to parse metadata for
* PBC creation. */
@@ -2116,17 +2124,17 @@
break;
case 39:
-#line 475 "imcc/imcc.y"
+#line 484 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 44:
-#line 486 "imcc/imcc.y"
+#line 495 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 45:
-#line 491 "imcc/imcc.y"
+#line 500 "imcc/imcc.y"
{
Symbol * sym = new_symbol(yyvsp[-1].s);
if(lookup_field_symbol(current_class, yyvsp[-1].s)) {
@@ -2140,7 +2148,7 @@
break;
case 46:
-#line 505 "imcc/imcc.y"
+#line 514 "imcc/imcc.y"
{
Method * meth;
Symbol * sym = new_symbol(yyvsp[-2].s);
@@ -2156,7 +2164,7 @@
break;
case 47:
-#line 521 "imcc/imcc.y"
+#line 530 "imcc/imcc.y"
{
cur_unit = (pragmas.fastcall ? imc_open_unit(interp, IMC_FASTSUB)
: imc_open_unit(interp, IMC_PCCSUB));
@@ -2164,97 +2172,97 @@
break;
case 48:
-#line 526 "imcc/imcc.y"
+#line 535 "imcc/imcc.y"
{
Instruction *i = iSUBROUTINE(cur_unit, yyvsp[-2].sr);
i->r[1] = yyval.sr = mk_pcc_sub(str_dup(i->r[0]->name), 0);
- add_namespace(interp, i->r[1]);
+ add_namespace(interp, cur_unit);
i->r[1]->pcc_sub->pragma = yyvsp[-1].t;
}
break;
case 49:
-#line 533 "imcc/imcc.y"
+#line 542 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 50:
-#line 537 "imcc/imcc.y"
+#line 546 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 51:
-#line 538 "imcc/imcc.y"
+#line 547 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 52:
-#line 539 "imcc/imcc.y"
+#line 548 "imcc/imcc.y"
{ add_pcc_param(yyvsp[-3].sr, yyvsp[-1].sr);}
break;
case 53:
-#line 543 "imcc/imcc.y"
+#line 552 "imcc/imcc.y"
{ is_def=1; }
break;
case 54:
-#line 544 "imcc/imcc.y"
+#line 553 "imcc/imcc.y"
{ yyval.sr = mk_ident(yyvsp[0].s, yyvsp[-1].t); is_def=0; }
break;
case 55:
-#line 548 "imcc/imcc.y"
+#line 557 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 56:
-#line 552 "imcc/imcc.y"
+#line 561 "imcc/imcc.y"
{ cur_unit = imc_open_unit(interp, IMC_PCCSUB); }
break;
case 57:
-#line 554 "imcc/imcc.y"
+#line 563 "imcc/imcc.y"
{
Instruction *i = iSUBROUTINE(cur_unit, mk_sub_label(yyvsp[-2].s));
i->r[1] = yyval.sr = mk_pcc_sub(str_dup(i->r[0]->name), 0);
- add_namespace(interp, i->r[1]);
+ add_namespace(interp, cur_unit);
i->r[1]->pcc_sub->pragma = yyvsp[-1].t;
}
break;
case 58:
-#line 561 "imcc/imcc.y"
+#line 570 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 59:
-#line 565 "imcc/imcc.y"
+#line 574 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 60:
-#line 566 "imcc/imcc.y"
+#line 575 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 61:
-#line 567 "imcc/imcc.y"
+#line 576 "imcc/imcc.y"
{ add_pcc_param(yyvsp[-3].sr, yyvsp[-1].sr);}
break;
case 62:
-#line 571 "imcc/imcc.y"
+#line 580 "imcc/imcc.y"
{ is_def=1; }
break;
case 63:
-#line 572 "imcc/imcc.y"
+#line 581 "imcc/imcc.y"
{ yyval.sr = mk_ident(yyvsp[0].s, yyvsp[-1].t); is_def=0; }
break;
case 64:
-#line 577 "imcc/imcc.y"
+#line 586 "imcc/imcc.y"
{
char name[128];
SymReg * r, *r1;
@@ -2280,82 +2288,82 @@
break;
case 65:
-#line 604 "imcc/imcc.y"
+#line 613 "imcc/imcc.y"
{ yyval.i = 0; current_call = NULL; }
break;
case 66:
-#line 608 "imcc/imcc.y"
+#line 617 "imcc/imcc.y"
{ yyval.i = NULL; current_call->r[0]->pcc_sub->label = 0; }
break;
case 67:
-#line 609 "imcc/imcc.y"
+#line 618 "imcc/imcc.y"
{ yyval.i = NULL; current_call->r[0]->pcc_sub->label = 1; }
break;
case 68:
-#line 613 "imcc/imcc.y"
+#line 622 "imcc/imcc.y"
{ yyval.i = NULL; }
break;
case 69:
-#line 615 "imcc/imcc.y"
+#line 624 "imcc/imcc.y"
{ yyval.i = NULL; current_call->r[0]->pcc_sub->object = yyvsp[-1].sr; }
break;
case 70:
-#line 618 "imcc/imcc.y"
+#line 627 "imcc/imcc.y"
{ yyval.t = P_PROTOTYPED ; }
break;
case 71:
-#line 619 "imcc/imcc.y"
+#line 628 "imcc/imcc.y"
{ yyval.t = P_NON_PROTOTYPED ; }
break;
case 72:
-#line 623 "imcc/imcc.y"
+#line 632 "imcc/imcc.y"
{ yyval.t = P_NONE; }
break;
case 73:
-#line 624 "imcc/imcc.y"
+#line 633 "imcc/imcc.y"
{ yyval.t |= yyvsp[0].t; }
break;
case 74:
-#line 625 "imcc/imcc.y"
+#line 634 "imcc/imcc.y"
{ yyval.t |= yyvsp[0].t; }
break;
case 76:
-#line 629 "imcc/imcc.y"
+#line 638 "imcc/imcc.y"
{ yyval.t = P_LOAD; }
break;
case 77:
-#line 630 "imcc/imcc.y"
+#line 639 "imcc/imcc.y"
{ yyval.t = P_MAIN; }
break;
case 78:
-#line 631 "imcc/imcc.y"
+#line 640 "imcc/imcc.y"
{ yyval.t = P_IMMEDIATE; }
break;
case 79:
-#line 632 "imcc/imcc.y"
+#line 641 "imcc/imcc.y"
{ yyval.t = P_POSTCOMP; }
break;
case 80:
-#line 633 "imcc/imcc.y"
+#line 642 "imcc/imcc.y"
{ yyval.t = P_METHOD | P_NONE ; }
break;
case 81:
-#line 638 "imcc/imcc.y"
+#line 647 "imcc/imcc.y"
{
add_pcc_sub(current_call->r[0], yyvsp[-3].sr);
add_pcc_cc(current_call->r[0], yyvsp[-1].sr);
@@ -2363,12 +2371,12 @@
break;
case 82:
-#line 643 "imcc/imcc.y"
+#line 652 "imcc/imcc.y"
{ add_pcc_sub(current_call->r[0], yyvsp[-1].sr); }
break;
case 83:
-#line 645 "imcc/imcc.y"
+#line 654 "imcc/imcc.y"
{
add_pcc_sub(current_call->r[0], yyvsp[-1].sr);
current_call->r[0]->pcc_sub->nci = 1;
@@ -2376,76 +2384,76 @@
break;
case 84:
-#line 650 "imcc/imcc.y"
+#line 659 "imcc/imcc.y"
{ add_pcc_sub(current_call->r[0], yyvsp[-1].sr); }
break;
case 85:
-#line 652 "imcc/imcc.y"
+#line 661 "imcc/imcc.y"
{ add_pcc_sub(current_call->r[0], mk_const(yyvsp[-1].s,'S')); }
break;
case 86:
-#line 654 "imcc/imcc.y"
+#line 663 "imcc/imcc.y"
{ add_pcc_sub(current_call->r[0], yyvsp[-3].sr);
add_pcc_cc(current_call->r[0], yyvsp[-1].sr);
}
break;
case 87:
-#line 658 "imcc/imcc.y"
+#line 667 "imcc/imcc.y"
{ add_pcc_sub(current_call->r[0], mk_const(yyvsp[-3].s,'S'));
add_pcc_cc(current_call->r[0], yyvsp[-1].sr);
}
break;
case 88:
-#line 664 "imcc/imcc.y"
+#line 673 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 89:
-#line 665 "imcc/imcc.y"
+#line 674 "imcc/imcc.y"
{ add_pcc_arg(current_call->r[0], yyvsp[-1].sr);}
break;
case 90:
-#line 669 "imcc/imcc.y"
+#line 678 "imcc/imcc.y"
{ yyval.sr = yyvsp[0].sr; }
break;
case 91:
-#line 670 "imcc/imcc.y"
+#line 679 "imcc/imcc.y"
{ yyvsp[0].sr->type |= VT_FLATTEN; yyval.sr = yyvsp[0].sr; }
break;
case 92:
-#line 674 "imcc/imcc.y"
+#line 683 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 93:
-#line 675 "imcc/imcc.y"
+#line 684 "imcc/imcc.y"
{ if(yyvsp[-1].sr) add_pcc_result(current_call->r[0], yyvsp[-1].sr); }
break;
case 94:
-#line 680 "imcc/imcc.y"
+#line 689 "imcc/imcc.y"
{ yyval.sr = yyvsp[0].sr; }
break;
case 95:
-#line 681 "imcc/imcc.y"
+#line 690 "imcc/imcc.y"
{ is_def=1; }
break;
case 96:
-#line 682 "imcc/imcc.y"
+#line 691 "imcc/imcc.y"
{ mk_ident(yyvsp[0].s, yyvsp[-1].t); is_def=0; yyval.sr=0; }
break;
case 97:
-#line 687 "imcc/imcc.y"
+#line 696 "imcc/imcc.y"
{
Instruction *i, *ins;
SymReg *r;
@@ -2462,12 +2470,12 @@
break;
case 98:
-#line 702 "imcc/imcc.y"
+#line 711 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 99:
-#line 707 "imcc/imcc.y"
+#line 716 "imcc/imcc.y"
{
Instruction *i, *ins;
SymReg *r;
@@ -2485,62 +2493,62 @@
break;
case 100:
-#line 723 "imcc/imcc.y"
+#line 732 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 101:
-#line 727 "imcc/imcc.y"
+#line 736 "imcc/imcc.y"
{ yyval.sr = 0; }
break;
case 102:
-#line 729 "imcc/imcc.y"
+#line 738 "imcc/imcc.y"
{ if(yyvsp[-1].sr) add_pcc_return(yyvsp[-2].sr, yyvsp[-1].sr); }
break;
case 103:
-#line 731 "imcc/imcc.y"
+#line 740 "imcc/imcc.y"
{ if(yyvsp[-1].sr) add_pcc_return(yyvsp[-3].sr, yyvsp[-1].sr); }
break;
case 104:
-#line 735 "imcc/imcc.y"
+#line 744 "imcc/imcc.y"
{ yyval.sr = yyvsp[0].sr; }
break;
case 107:
-#line 752 "imcc/imcc.y"
+#line 761 "imcc/imcc.y"
{ clear_state(); }
break;
case 108:
-#line 757 "imcc/imcc.y"
+#line 766 "imcc/imcc.y"
{ yyval.i = yyvsp[0].i; }
break;
case 109:
-#line 758 "imcc/imcc.y"
+#line 767 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 110:
-#line 759 "imcc/imcc.y"
+#line 768 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 111:
-#line 760 "imcc/imcc.y"
+#line 769 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 112:
-#line 764 "imcc/imcc.y"
+#line 773 "imcc/imcc.y"
{ yyval.i = NULL; }
break;
case 116:
-#line 774 "imcc/imcc.y"
+#line 783 "imcc/imcc.y"
{
/* $$ = iLABEL(cur_unit, mk_address(, U_add_uniq_label)); */
yyval.i = iLABEL(cur_unit, mk_local_label(cur_unit,
yyvsp[0].s));
@@ -2548,12 +2556,12 @@
break;
case 117:
-#line 782 "imcc/imcc.y"
+#line 791 "imcc/imcc.y"
{ yyval.i = yyvsp[-1].i; }
break;
case 118:
-#line 786 "imcc/imcc.y"
+#line 795 "imcc/imcc.y"
{
IdList* l = malloc(sizeof(IdList));
l->next = NULL;
@@ -2563,7 +2571,7 @@
break;
case 119:
-#line 794 "imcc/imcc.y"
+#line 803 "imcc/imcc.y"
{ IdList* l = malloc(sizeof(IdList));
l->id = yyvsp[0].s;
l->next = yyvsp[-2].idlist;
@@ -2572,22 +2580,22 @@
break;
case 122:
-#line 804 "imcc/imcc.y"
+#line 813 "imcc/imcc.y"
{ push_namespace(yyvsp[0].s); }
break;
case 123:
-#line 805 "imcc/imcc.y"
+#line 814 "imcc/imcc.y"
{ pop_namespace(yyvsp[0].s); }
break;
case 124:
-#line 806 "imcc/imcc.y"
+#line 815 "imcc/imcc.y"
{ is_def=1; }
break;
case 125:
-#line 807 "imcc/imcc.y"
+#line 816 "imcc/imcc.y"
{
IdList* l = yyvsp[0].idlist;
while(l) {
@@ -2603,149 +2611,149 @@
break;
case 126:
-#line 819 "imcc/imcc.y"
+#line 828 "imcc/imcc.y"
{ is_def=1; }
break;
case 127:
-#line 820 "imcc/imcc.y"
+#line 829 "imcc/imcc.y"
{ mk_const_ident(yyvsp[-2].s, yyvsp[-3].t, yyvsp[0].sr, 0);is_def=0; }
break;
case 129:
-#line 822 "imcc/imcc.y"
+#line 831 "imcc/imcc.y"
{ is_def=1; }
break;
case 130:
-#line 823 "imcc/imcc.y"
+#line 832 "imcc/imcc.y"
{ mk_const_ident(yyvsp[-2].s, yyvsp[-3].t, yyvsp[0].sr, 1);is_def=0; }
break;
case 131:
-#line 824 "imcc/imcc.y"
+#line 833 "imcc/imcc.y"
{ is_def=1; }
break;
case 132:
-#line 824 "imcc/imcc.y"
+#line 833 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "restore",
1, mk_ident(yyvsp[0].s,
yyvsp[-1].t));is_def=0; }
break;
case 133:
-#line 826 "imcc/imcc.y"
+#line 835 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "restore", 1, yyvsp[0].sr); }
break;
case 134:
-#line 827 "imcc/imcc.y"
+#line 836 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "restore", 1, yyvsp[0].sr); }
break;
case 135:
-#line 828 "imcc/imcc.y"
+#line 837 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "save", 1, yyvsp[0].sr); }
break;
case 136:
-#line 829 "imcc/imcc.y"
+#line 838 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "save", 1, yyvsp[0].sr); }
break;
case 137:
-#line 830 "imcc/imcc.y"
+#line 839 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "bsr", 1, yyvsp[0].sr); }
break;
case 138:
-#line 831 "imcc/imcc.y"
+#line 840 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "branch",1, yyvsp[0].sr); }
break;
case 139:
-#line 832 "imcc/imcc.y"
+#line 841 "imcc/imcc.y"
{ expect_pasm = 1; }
break;
case 140:
-#line 834 "imcc/imcc.y"
+#line 843 "imcc/imcc.y"
{ yyval.i = INS(interp, cur_unit, "newsub",0,regs,nargs,keyvec,1); }
break;
case 141:
-#line 836 "imcc/imcc.y"
+#line 845 "imcc/imcc.y"
{ yyval.i = INS(interp, cur_unit, yyvsp[-1].s, 0, regs, nargs, keyvec, 1);
free(yyvsp[-1].s); }
break;
case 142:
-#line 838 "imcc/imcc.y"
+#line 847 "imcc/imcc.y"
{ yyval.i = 0; current_call = NULL; }
break;
case 143:
-#line 839 "imcc/imcc.y"
+#line 848 "imcc/imcc.y"
{ yyval.i = 0; }
break;
case 146:
-#line 842 "imcc/imcc.y"
+#line 851 "imcc/imcc.y"
{ yyval.i = 0;}
break;
case 147:
-#line 846 "imcc/imcc.y"
+#line 855 "imcc/imcc.y"
{ yyval.t = NEWSUB; }
break;
case 148:
-#line 847 "imcc/imcc.y"
+#line 856 "imcc/imcc.y"
{ yyval.t = NEWCLOSURE; }
break;
case 149:
-#line 848 "imcc/imcc.y"
+#line 857 "imcc/imcc.y"
{ yyval.t = NEWCOR; }
break;
case 150:
-#line 849 "imcc/imcc.y"
+#line 858 "imcc/imcc.y"
{ yyval.t = NEWCONT; }
break;
case 151:
-#line 853 "imcc/imcc.y"
+#line 862 "imcc/imcc.y"
{ yyval.t = 'I'; }
break;
case 152:
-#line 854 "imcc/imcc.y"
+#line 863 "imcc/imcc.y"
{ yyval.t = 'N'; }
break;
case 153:
-#line 855 "imcc/imcc.y"
+#line 864 "imcc/imcc.y"
{ yyval.t = 'S'; }
break;
case 154:
-#line 856 "imcc/imcc.y"
+#line 865 "imcc/imcc.y"
{ yyval.t = 'P'; }
break;
case 155:
-#line 857 "imcc/imcc.y"
+#line 866 "imcc/imcc.y"
{ yyval.t = 'P'; }
break;
case 156:
-#line 858 "imcc/imcc.y"
+#line 867 "imcc/imcc.y"
{ yyval.t = 'P'; free(yyvsp[0].s); }
break;
case 157:
-#line 863 "imcc/imcc.y"
+#line 872 "imcc/imcc.y"
{
if (( cur_pmc_type = pmc_type(interp,
string_from_cstring(interp, yyvsp[0].s, 0))) <= 0) {
@@ -2755,158 +2763,158 @@
break;
case 158:
-#line 872 "imcc/imcc.y"
+#line 881 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "set", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 159:
-#line 873 "imcc/imcc.y"
+#line 882 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "not", 2, yyvsp[-3].sr, yyvsp[0].sr);}
break;
case 160:
-#line 874 "imcc/imcc.y"
+#line 883 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "neg", 2, yyvsp[-3].sr, yyvsp[0].sr);}
break;
case 161:
-#line 875 "imcc/imcc.y"
+#line 884 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "bnot", 2, yyvsp[-3].sr, yyvsp[0].sr);}
break;
case 162:
-#line 876 "imcc/imcc.y"
+#line 885 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "add", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 163:
-#line 877 "imcc/imcc.y"
+#line 886 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "sub", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 164:
-#line 878 "imcc/imcc.y"
+#line 887 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "mul", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 165:
-#line 879 "imcc/imcc.y"
+#line 888 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "pow", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 166:
-#line 880 "imcc/imcc.y"
+#line 889 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "div", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 167:
-#line 881 "imcc/imcc.y"
+#line 890 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "fdiv", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 168:
-#line 882 "imcc/imcc.y"
+#line 891 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "mod", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 169:
-#line 883 "imcc/imcc.y"
+#line 892 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "concat", 3,
yyvsp[-4].sr,yyvsp[-2].sr,yyvsp[0].sr); }
break;
case 170:
-#line 885 "imcc/imcc.y"
+#line 894 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "shl", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 171:
-#line 887 "imcc/imcc.y"
+#line 896 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "shr", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 172:
-#line 889 "imcc/imcc.y"
+#line 898 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "lsr", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 173:
-#line 891 "imcc/imcc.y"
+#line 900 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "and", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 174:
-#line 893 "imcc/imcc.y"
+#line 902 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "or", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 175:
-#line 895 "imcc/imcc.y"
+#line 904 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "xor", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 176:
-#line 897 "imcc/imcc.y"
+#line 906 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "band", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 177:
-#line 899 "imcc/imcc.y"
+#line 908 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "bor", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 178:
-#line 901 "imcc/imcc.y"
+#line 910 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "bxor", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 179:
-#line 903 "imcc/imcc.y"
+#line 912 "imcc/imcc.y"
{ yyval.i = iINDEXFETCH(interp, cur_unit, yyvsp[-5].sr, yyvsp[-3].sr,
yyvsp[-1].sr); }
break;
case 180:
-#line 905 "imcc/imcc.y"
+#line 914 "imcc/imcc.y"
{ yyval.i = iINDEXSET(interp, cur_unit, yyvsp[-5].sr, yyvsp[-3].sr,
yyvsp[0].sr); }
break;
case 181:
-#line 907 "imcc/imcc.y"
+#line 916 "imcc/imcc.y"
{ yyval.i = iNEW(interp, cur_unit, yyvsp[-5].sr, yyvsp[-2].s, yyvsp[0].sr, 1); }
break;
case 182:
-#line 909 "imcc/imcc.y"
+#line 918 "imcc/imcc.y"
{ yyval.i = iNEW(interp, cur_unit, yyvsp[-6].sr, yyvsp[-3].s, yyvsp[-1].sr, 1);
}
break;
case 183:
-#line 911 "imcc/imcc.y"
+#line 920 "imcc/imcc.y"
{ yyval.i = iNEW(interp, cur_unit, yyvsp[-3].sr, yyvsp[0].s, NULL, 1); }
break;
case 184:
-#line 913 "imcc/imcc.y"
+#line 922 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "new", 2, yyvsp[-3].sr, yyvsp[0].sr); }
break;
case 185:
-#line 915 "imcc/imcc.y"
+#line 924 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "new", 3, yyvsp[-5].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 186:
-#line 917 "imcc/imcc.y"
+#line 926 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "new", 3, yyvsp[-6].sr, yyvsp[-3].sr,
yyvsp[-1].sr); }
break;
case 187:
-#line 919 "imcc/imcc.y"
+#line 928 "imcc/imcc.y"
{ yyval.i = iNEWSUB(interp, cur_unit, yyvsp[-3].sr, yyvsp[-1].t,
mk_sub_address(yyvsp[0].s), NULL, 1); }
break;
case 188:
-#line 922 "imcc/imcc.y"
+#line 931 "imcc/imcc.y"
{ /* XXX: Fix 4arg version of newsub PASM op
* to use instead of implicit P0
*/
@@ -2916,38 +2924,38 @@
break;
case 189:
-#line 929 "imcc/imcc.y"
+#line 938 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "set_addr",
2, yyvsp[-3].sr, mk_label_address(cur_unit,
yyvsp[0].s)); }
break;
case 190:
-#line 932 "imcc/imcc.y"
+#line 941 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "find_global",2,yyvsp[-3].sr,yyvsp[0].sr);}
break;
case 191:
-#line 934 "imcc/imcc.y"
+#line 943 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "store_global",2, yyvsp[-2].sr,yyvsp[0].sr);
}
break;
case 192:
-#line 938 "imcc/imcc.y"
+#line 947 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "new", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 193:
-#line 940 "imcc/imcc.y"
+#line 949 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "new", 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 194:
-#line 942 "imcc/imcc.y"
+#line 951 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "new", 3, yyvsp[-5].sr, yyvsp[-3].sr,
yyvsp[-1].sr); }
break;
case 195:
-#line 945 "imcc/imcc.y"
+#line 954 "imcc/imcc.y"
{
add_pcc_result(yyvsp[0].i->r[0], yyvsp[-2].sr);
current_call = NULL;
@@ -2956,14 +2964,14 @@
break;
case 196:
-#line 951 "imcc/imcc.y"
+#line 960 "imcc/imcc.y"
{
yyval.i = IMCC_create_itcall_label(interp);
}
break;
case 197:
-#line 955 "imcc/imcc.y"
+#line 964 "imcc/imcc.y"
{
IMCC_itcall_sub(interp, yyvsp[-3].sr);
current_call = NULL;
@@ -2971,72 +2979,72 @@
break;
case 200:
-#line 965 "imcc/imcc.y"
+#line 974 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "add", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 201:
-#line 967 "imcc/imcc.y"
+#line 976 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "sub", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 202:
-#line 969 "imcc/imcc.y"
+#line 978 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "mul", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 203:
-#line 971 "imcc/imcc.y"
+#line 980 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "div", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 204:
-#line 973 "imcc/imcc.y"
+#line 982 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "mod", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 205:
-#line 975 "imcc/imcc.y"
+#line 984 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "fdiv", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 206:
-#line 977 "imcc/imcc.y"
+#line 986 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "concat", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 207:
-#line 979 "imcc/imcc.y"
+#line 988 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "band", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 208:
-#line 981 "imcc/imcc.y"
+#line 990 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "bor", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 209:
-#line 983 "imcc/imcc.y"
+#line 992 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "bxor", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 210:
-#line 985 "imcc/imcc.y"
+#line 994 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "shr", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 211:
-#line 987 "imcc/imcc.y"
+#line 996 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "shl", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 212:
-#line 989 "imcc/imcc.y"
+#line 998 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "lsr", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 213:
-#line 994 "imcc/imcc.y"
+#line 1003 "imcc/imcc.y"
{ yyval.i = func_ins(interp, cur_unit, yyvsp[-3].sr, yyvsp[-1].s,
regs,nargs,keyvec,1);
free(yyvsp[-1].s);
@@ -3044,12 +3052,12 @@
break;
case 214:
-#line 1000 "imcc/imcc.y"
+#line 1009 "imcc/imcc.y"
{ yyval.sr = mk_sub_address(yyvsp[0].s); }
break;
case 215:
-#line 1001 "imcc/imcc.y"
+#line 1010 "imcc/imcc.y"
{ yyval.sr = yyvsp[0].sr;
if (yyvsp[0].sr->set != 'P')
fataly(1, sourcefile, line, "Sub isn't a PMC");
@@ -3057,32 +3065,32 @@
break;
case 216:
-#line 1005 "imcc/imcc.y"
+#line 1014 "imcc/imcc.y"
{ cur_obj = yyvsp[-2].sr; yyval.sr = yyvsp[0].sr; }
break;
case 217:
-#line 1006 "imcc/imcc.y"
+#line 1015 "imcc/imcc.y"
{ cur_obj = yyvsp[-2].sr; yyval.sr = mk_const(yyvsp[0].s, 'S'); }
break;
case 218:
-#line 1007 "imcc/imcc.y"
+#line 1016 "imcc/imcc.y"
{ cur_obj = yyvsp[-2].sr; yyval.sr = yyvsp[0].sr; }
break;
case 219:
-#line 1010 "imcc/imcc.y"
+#line 1019 "imcc/imcc.y"
{ yyval.t=0; }
break;
case 220:
-#line 1011 "imcc/imcc.y"
+#line 1020 "imcc/imcc.y"
{ yyval.t=0; }
break;
case 221:
-#line 1016 "imcc/imcc.y"
+#line 1025 "imcc/imcc.y"
{
yyval.i = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, yyvsp[0].sr);
@@ -3090,127 +3098,127 @@
break;
case 222:
-#line 1021 "imcc/imcc.y"
+#line 1030 "imcc/imcc.y"
{ yyval.i = yyvsp[-3].i; }
break;
case 223:
-#line 1025 "imcc/imcc.y"
+#line 1034 "imcc/imcc.y"
{ yyval.symlist = 0; }
break;
case 224:
-#line 1026 "imcc/imcc.y"
+#line 1035 "imcc/imcc.y"
{ yyval.symlist = 0; add_pcc_arg(current_call->r[0], yyvsp[0].sr); }
break;
case 225:
-#line 1027 "imcc/imcc.y"
+#line 1036 "imcc/imcc.y"
{ yyval.symlist = 0; add_pcc_arg(current_call->r[0], yyvsp[0].sr); }
break;
case 226:
-#line 1032 "imcc/imcc.y"
+#line 1041 "imcc/imcc.y"
{ yyval.sr = yyvsp[0].sr; }
break;
case 227:
-#line 1034 "imcc/imcc.y"
+#line 1043 "imcc/imcc.y"
{ yyvsp[0].sr->type |= VT_FLATTEN; yyval.sr = yyvsp[0].sr; }
break;
case 228:
-#line 1038 "imcc/imcc.y"
+#line 1047 "imcc/imcc.y"
{ yyval.symlist = 0; add_pcc_result(current_call->r[0], yyvsp[0].sr); }
break;
case 229:
-#line 1039 "imcc/imcc.y"
+#line 1048 "imcc/imcc.y"
{ yyval.symlist = 0; add_pcc_result(current_call->r[0], yyvsp[0].sr); }
break;
case 230:
-#line 1044 "imcc/imcc.y"
+#line 1053 "imcc/imcc.y"
{ yyval.i =MK_I(interp, cur_unit, yyvsp[-3].s, 3, yyvsp[-4].sr, yyvsp[-2].sr,
yyvsp[0].sr); }
break;
case 231:
-#line 1046 "imcc/imcc.y"
+#line 1055 "imcc/imcc.y"
{ yyval.i =MK_I(interp, cur_unit, inv_op(yyvsp[-3].s), 3,
yyvsp[-4].sr,yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 232:
-#line 1048 "imcc/imcc.y"
+#line 1057 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "if", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 233:
-#line 1050 "imcc/imcc.y"
+#line 1059 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "unless",2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 234:
-#line 1052 "imcc/imcc.y"
+#line 1061 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "if", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 235:
-#line 1054 "imcc/imcc.y"
+#line 1063 "imcc/imcc.y"
{ yyval.i = MK_I(interp, cur_unit, "unless", 2, yyvsp[-2].sr, yyvsp[0].sr); }
break;
case 236:
-#line 1058 "imcc/imcc.y"
+#line 1067 "imcc/imcc.y"
{ yyval.s = "eq"; }
break;
case 237:
-#line 1059 "imcc/imcc.y"
+#line 1068 "imcc/imcc.y"
{ yyval.s = "ne"; }
break;
case 238:
-#line 1060 "imcc/imcc.y"
+#line 1069 "imcc/imcc.y"
{ yyval.s = "gt"; }
break;
case 239:
-#line 1061 "imcc/imcc.y"
+#line 1070 "imcc/imcc.y"
{ yyval.s = "ge"; }
break;
case 240:
-#line 1062 "imcc/imcc.y"
+#line 1071 "imcc/imcc.y"
{ yyval.s = "lt"; }
break;
case 241:
-#line 1063 "imcc/imcc.y"
+#line 1072 "imcc/imcc.y"
{ yyval.s = "le"; }
break;
case 244:
-#line 1072 "imcc/imcc.y"
+#line 1081 "imcc/imcc.y"
{ yyval.sr = NULL; }
break;
case 245:
-#line 1073 "imcc/imcc.y"
+#line 1082 "imcc/imcc.y"
{ yyval.sr = yyvsp[0].sr; }
break;
case 246:
-#line 1077 "imcc/imcc.y"
+#line 1086 "imcc/imcc.y"
{ yyval.sr = regs[0]; }
break;
case 248:
-#line 1082 "imcc/imcc.y"
+#line 1091 "imcc/imcc.y"
{ regs[nargs++] = yyvsp[0].sr; }
break;
case 249:
-#line 1084 "imcc/imcc.y"
+#line 1093 "imcc/imcc.y"
{
regs[nargs++] = yyvsp[-3].sr;
keyvec |= KEY_BIT(nargs);
@@ -3219,57 +3227,57 @@
break;
case 250:
-#line 1092 "imcc/imcc.y"
+#line 1101 "imcc/imcc.y"
{ yyval.sr = mk_sub_address(yyvsp[0].s); }
break;
case 251:
-#line 1093 "imcc/imcc.y"
+#line 1102 "imcc/imcc.y"
{ yyval.sr = mk_sub_address(yyvsp[0].s); }
break;
case 252:
-#line 1097 "imcc/imcc.y"
+#line 1106 "imcc/imcc.y"
{ yyval.sr = mk_label_address(cur_unit, yyvsp[0].s); }
break;
case 253:
-#line 1098 "imcc/imcc.y"
+#line 1107 "imcc/imcc.y"
{ yyval.sr = mk_label_address(cur_unit, yyvsp[0].s); }
break;
case 258:
-#line 1111 "imcc/imcc.y"
+#line 1120 "imcc/imcc.y"
{ nkeys=0; in_slice = 0; }
break;
case 259:
-#line 1112 "imcc/imcc.y"
+#line 1121 "imcc/imcc.y"
{ yyval.sr = link_keys(nkeys, keys); }
break;
case 260:
-#line 1116 "imcc/imcc.y"
+#line 1125 "imcc/imcc.y"
{ keys[nkeys++] = yyvsp[0].sr; }
break;
case 261:
-#line 1118 "imcc/imcc.y"
+#line 1127 "imcc/imcc.y"
{ keys[nkeys++] = yyvsp[0].sr; yyval.sr = keys[0]; }
break;
case 262:
-#line 1119 "imcc/imcc.y"
+#line 1128 "imcc/imcc.y"
{ in_slice = 1; }
break;
case 263:
-#line 1120 "imcc/imcc.y"
+#line 1129 "imcc/imcc.y"
{ keys[nkeys++] = yyvsp[0].sr; yyval.sr = keys[0]; }
break;
case 264:
-#line 1124 "imcc/imcc.y"
+#line 1133 "imcc/imcc.y"
{ if (in_slice) {
yyvsp[0].sr->type |= VT_START_SLICE | VT_END_SLICE;
}
@@ -3278,73 +3286,73 @@
break;
case 265:
-#line 1130 "imcc/imcc.y"
+#line 1139 "imcc/imcc.y"
{ yyvsp[-2].sr->type |= VT_START_SLICE; yyvsp[0].sr->type |= VT_END_SLICE;
keys[nkeys++] = yyvsp[-2].sr; yyval.sr = yyvsp[0].sr; }
break;
case 266:
-#line 1132 "imcc/imcc.y"
+#line 1141 "imcc/imcc.y"
{ yyvsp[0].sr->type |= VT_START_ZERO | VT_END_SLICE; yyval.sr = yyvsp[0].sr; }
break;
case 267:
-#line 1133 "imcc/imcc.y"
+#line 1142 "imcc/imcc.y"
{ yyvsp[-1].sr->type |= VT_START_SLICE | VT_END_INF; yyval.sr = yyvsp[-1].sr; }
break;
case 268:
-#line 1137 "imcc/imcc.y"
+#line 1146 "imcc/imcc.y"
{ yyval.sr = mk_symreg(yyvsp[0].s, 'I'); }
break;
case 269:
-#line 1138 "imcc/imcc.y"
+#line 1147 "imcc/imcc.y"
{ yyval.sr = mk_symreg(yyvsp[0].s, 'N'); }
break;
case 270:
-#line 1139 "imcc/imcc.y"
+#line 1148 "imcc/imcc.y"
{ yyval.sr = mk_symreg(yyvsp[0].s, 'S'); }
break;
case 271:
-#line 1140 "imcc/imcc.y"
+#line 1149 "imcc/imcc.y"
{ yyval.sr = mk_symreg(yyvsp[0].s, 'P'); }
break;
case 272:
-#line 1141 "imcc/imcc.y"
+#line 1150 "imcc/imcc.y"
{ yyval.sr = mk_pasm_reg(yyvsp[0].s); }
break;
case 273:
-#line 1145 "imcc/imcc.y"
+#line 1154 "imcc/imcc.y"
{ yyval.sr = mk_const(yyvsp[0].s, 'I'); }
break;
case 274:
-#line 1146 "imcc/imcc.y"
+#line 1155 "imcc/imcc.y"
{ yyval.sr = mk_const(yyvsp[0].s, 'N'); }
break;
case 275:
-#line 1147 "imcc/imcc.y"
+#line 1156 "imcc/imcc.y"
{ yyval.sr = mk_const(yyvsp[0].s, 'S'); }
break;
case 276:
-#line 1148 "imcc/imcc.y"
+#line 1157 "imcc/imcc.y"
{ yyval.sr = mk_const(yyvsp[0].s, 'U'); }
break;
case 277:
-#line 1152 "imcc/imcc.y"
+#line 1161 "imcc/imcc.y"
{ yyval.sr = mk_symreg(yyvsp[0].s, 'S'); }
break;
case 278:
-#line 1153 "imcc/imcc.y"
+#line 1162 "imcc/imcc.y"
{ yyval.sr = mk_const(yyvsp[0].s, 'S'); }
break;
@@ -3352,7 +3360,7 @@
}
/* Line 1016 of /usr/share/bison/yacc.c. */
-#line 3356 "imcc/imcparser.c"
+#line 3364 "imcc/imcparser.c"
yyvsp -= yylen;
yyssp -= yylen;
@@ -3571,7 +3579,7 @@
}
-#line 1158 "imcc/imcc.y"
+#line 1167 "imcc/imcc.y"