Ticket #103: self.patch

File self.patch, 53.4 KB (added by kjs, 13 years ago)

self now added when :vtable set.

  • compilers/imcc/imcc.y

     
    11691169vtable: 
    11701170     VTABLE_METHOD 
    11711171         { 
    1172            $$ = 0; 
     1172           $$ = P_VTABLE; 
    11731173           IMCC_INFO(interp)->cur_unit->vtable_name = NULL; 
    11741174           IMCC_INFO(interp)->cur_unit->is_vtable_method = 1; 
    11751175         } 
    11761176   | VTABLE_METHOD '(' STRINGC ')' 
    11771177         { 
    1178            $$ = 0; 
     1178           $$ = P_VTABLE; 
    11791179           IMCC_INFO(interp)->cur_unit->vtable_name = $3; 
    11801180           IMCC_INFO(interp)->cur_unit->is_vtable_method = 1; 
    11811181         } 
  • compilers/imcc/imcparser.c

     
    29502950    { 
    29512951        case 2: 
    29522952#line 880 "compilers/imcc/imcc.y" 
    2953     { if (yynerrs) YYABORT; (yyval.i) = 0; } 
     2953    { if (yynerrs) YYABORT; (yyval.i) = 0; ;} 
    29542954    break; 
    29552955 
    29562956  case 5: 
    29572957#line 889 "compilers/imcc/imcc.y" 
    2958     { (yyval.i) = (yyvsp[(1) - (1)].i); } 
     2958    { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 
    29592959    break; 
    29602960 
    29612961  case 6: 
    29622962#line 890 "compilers/imcc/imcc.y" 
    2963     { (yyval.i) = (yyvsp[(1) - (1)].i); } 
     2963    { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 
    29642964    break; 
    29652965 
    29662966  case 7: 
     
    29692969           (yyval.i) = (yyvsp[(1) - (1)].i); 
    29702970           imc_close_unit(interp, IMCC_INFO(interp)->cur_unit); 
    29712971           IMCC_INFO(interp)->cur_unit = 0; 
    2972          } 
     2972         ;} 
    29732973    break; 
    29742974 
    29752975  case 8: 
     
    29782978           (yyval.i) = (yyvsp[(1) - (1)].i); 
    29792979           imc_close_unit(interp, IMCC_INFO(interp)->cur_unit); 
    29802980           IMCC_INFO(interp)->cur_unit = 0; 
    2981          } 
     2981         ;} 
    29822982    break; 
    29832983 
    29842984  case 9: 
    29852985#line 903 "compilers/imcc/imcc.y" 
    2986     { (yyval.i) = 0; } 
     2986    { (yyval.i) = 0; ;} 
    29872987    break; 
    29882988 
    29892989  case 10: 
    29902990#line 904 "compilers/imcc/imcc.y" 
    2991     { (yyval.i) = 0; } 
     2991    { (yyval.i) = 0; ;} 
    29922992    break; 
    29932993 
    29942994  case 11: 
    29952995#line 905 "compilers/imcc/imcc.y" 
    2996     { (yyval.i) = 0; } 
     2996    { (yyval.i) = 0; ;} 
    29972997    break; 
    29982998 
    29992999  case 12: 
    30003000#line 906 "compilers/imcc/imcc.y" 
    3001     { (yyval.i) = 0; } 
     3001    { (yyval.i) = 0; ;} 
    30023002    break; 
    30033003 
    30043004  case 13: 
    30053005#line 910 "compilers/imcc/imcc.y" 
    3006     { (yyval.i) = 0; } 
     3006    { (yyval.i) = 0; ;} 
    30073007    break; 
    30083008 
    30093009  case 14: 
     
    30123012           (yyval.i) = 0; 
    30133013           do_loadlib(interp, (yyvsp[(2) - (3)].s)); 
    30143014           mem_sys_free((yyvsp[(2) - (3)].s)); 
    3015          } 
     3015         ;} 
    30163016    break; 
    30173017 
    30183018  case 15: 
     
    30203020    { 
    30213021           IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s)); 
    30223022           set_filename(interp, (yyvsp[(4) - (5)].s)); 
    3023          } 
     3023         ;} 
    30243024    break; 
    30253025 
    30263026  case 16: 
    30273027#line 926 "compilers/imcc/imcc.y" 
    30283028    { 
    30293029           set_filename(interp, (yyvsp[(2) - (3)].s)); 
    3030          } 
     3030         ;} 
    30313031    break; 
    30323032 
    30333033  case 17: 
     
    30383038          SymReg * const key = mk_const(interp, (yyvsp[(2) - (4)].s), 'S'); 
    30393039          (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, (yyvsp[(4) - (4)].sr)); 
    30403040          mem_sys_free((yyvsp[(2) - (4)].s)); 
    3041         } 
     3041        ;} 
    30423042    break; 
    30433043 
    30443044  case 18: 
     
    30503050 
    30513051            IMCC_INFO(interp)->cur_namespace = NULL; 
    30523052            (yyval.t) = 0; 
    3053          } 
     3053         ;} 
    30543054    break; 
    30553055 
    30563056  case 19: 
     
    30683068            Parrot_register_HLL_type(interp, ctx->current_HLL, 
    30693069                built_in_type, language_type); 
    30703070            (yyval.t) = 0; 
    3071          } 
     3071         ;} 
    30723072    break; 
    30733073 
    30743074  case 20: 
    30753075#line 971 "compilers/imcc/imcc.y" 
    3076     { is_def = 1; } 
     3076    { is_def = 1; ;} 
    30773077    break; 
    30783078 
    30793079  case 21: 
     
    30823082             mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1); 
    30833083             mem_sys_free((yyvsp[(4) - (6)].s)); 
    30843084             is_def = 0; 
    3085          } 
     3085         ;} 
    30863086    break; 
    30873087 
    30883088  case 22: 
    30893089#line 980 "compilers/imcc/imcc.y" 
    3090     { is_def=1; } 
     3090    { is_def=1; ;} 
    30913091    break; 
    30923092 
    30933093  case 23: 
     
    30953095    { 
    30963096           (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s)); 
    30973097           is_def = 0; 
    3098          } 
     3098         ;} 
    30993099    break; 
    31003100 
    31013101  case 24: 
    31023102#line 986 "compilers/imcc/imcc.y" 
    3103     { is_def=1; } 
     3103    { is_def=1; ;} 
    31043104    break; 
    31053105 
    31063106  case 25: 
     
    31083108    { 
    31093109           (yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s)); 
    31103110           is_def = 0; 
    3111          } 
     3111         ;} 
    31123112    break; 
    31133113 
    31143114  case 30: 
    31153115#line 1003 "compilers/imcc/imcc.y" 
    3116     { (yyval.i) = 0;  } 
     3116    { (yyval.i) = 0;  ;} 
    31173117    break; 
    31183118 
    31193119  case 31: 
    31203120#line 1004 "compilers/imcc/imcc.y" 
    3121     { (yyval.i) = 0;  } 
     3121    { (yyval.i) = 0;  ;} 
    31223122    break; 
    31233123 
    31243124  case 32: 
    31253125#line 1005 "compilers/imcc/imcc.y" 
    3126     { (yyval.i) = 0;  } 
     3126    { (yyval.i) = 0;  ;} 
    31273127    break; 
    31283128 
    31293129  case 33: 
    31303130#line 1006 "compilers/imcc/imcc.y" 
    3131     { (yyval.i) = 0;  } 
     3131    { (yyval.i) = 0;  ;} 
    31323132    break; 
    31333133 
    31343134  case 34: 
    31353135#line 1007 "compilers/imcc/imcc.y" 
    3136     { (yyval.i) = (yyvsp[(1) - (1)].i); } 
     3136    { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 
    31373137    break; 
    31383138 
    31393139  case 37: 
    31403140#line 1012 "compilers/imcc/imcc.y" 
    3141     { clear_state(interp); } 
     3141    { clear_state(interp); ;} 
    31423142    break; 
    31433143 
    31443144  case 38: 
     
    31483148                    (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs, 
    31493149                    IMCC_INFO(interp)->nargs, IMCC_INFO(interp) -> keyvec, 1); 
    31503150            mem_sys_free((yyvsp[(2) - (3)].s)); 
    3151          } 
     3151         ;} 
    31523152    break; 
    31533153 
    31543154  case 39: 
     
    31563156    { 
    31573157           imc_close_unit(interp, IMCC_INFO(interp)->cur_unit); 
    31583158           IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); 
    3159          } 
     3159         ;} 
    31603160    break; 
    31613161 
    31623162  case 40: 
     
    31663166                    IMCC_INFO(interp)->cur_unit, 
    31673167                    mk_sub_label(interp, (yyvsp[(4) - (4)].s))); 
    31683168           IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(3) - (4)].t); 
    3169          } 
     3169         ;} 
    31703170    break; 
    31713171 
    31723172  case 41: 
    31733173#line 1033 "compilers/imcc/imcc.y" 
    31743174    { 
    31753175           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); 
    3176          } 
     3176         ;} 
    31773177    break; 
    31783178 
    31793179  case 42: 
     
    31843184           (yyval.i) = 0; 
    31853185           mem_sys_free((yyvsp[(2) - (4)].s)); 
    31863186           mem_sys_free((yyvsp[(4) - (4)].s)); 
    3187          } 
     3187         ;} 
    31883188    break; 
    31893189 
    31903190  case 43: 
    31913191#line 1044 "compilers/imcc/imcc.y" 
    3192     { (yyval.i) = 0;} 
     3192    { (yyval.i) = 0;;} 
    31933193    break; 
    31943194 
    31953195  case 45: 
    31963196#line 1052 "compilers/imcc/imcc.y" 
    3197     { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); } 
     3197    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); ;} 
    31983198    break; 
    31993199 
    32003200  case 46: 
     
    32053205                         emit_flush(interp); 
    32063206           */ 
    32073207           (yyval.i) = 0; 
    3208          } 
     3208         ;} 
    32093209    break; 
    32103210 
    32113211  case 49: 
     
    32203220           IMCC_INFO(interp)->cur_namespace = (yyvsp[(2) - (3)].sr); 
    32213221           if (re_open) 
    32223222               IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); 
    3223          } 
     3223         ;} 
    32243224    break; 
    32253225 
    32263226  case 50: 
     
    32313231                    "Slice not allowed in namespace."); 
    32323232 
    32333233            (yyval.sr) = (yyvsp[(2) - (3)].sr); 
    3234         } 
     3234        ;} 
    32353235    break; 
    32363236 
    32373237  case 51: 
    32383238#line 1093 "compilers/imcc/imcc.y" 
    3239     { (yyval.sr) = NULL; } 
     3239    { (yyval.sr) = NULL; ;} 
    32403240    break; 
    32413241 
    32423242  case 52: 
    32433243#line 1098 "compilers/imcc/imcc.y" 
    32443244    { 
    32453245           IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB); 
    3246          } 
     3246         ;} 
    32473247    break; 
    32483248 
    32493249  case 53: 
    32503250#line 1102 "compilers/imcc/imcc.y" 
    32513251    { 
    32523252           iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr)); 
    3253          } 
     3253         ;} 
    32543254    break; 
    32553255 
    32563256  case 54: 
     
    32613261            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = str_dup( 
    32623262            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->name); 
    32633263          } 
    3264         } 
     3264        ;} 
    32653265    break; 
    32663266 
    32673267  case 55: 
    32683268#line 1114 "compilers/imcc/imcc.y" 
    3269     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; } 
     3269    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;} 
    32703270    break; 
    32713271 
    32723272  case 56: 
    32733273#line 1118 "compilers/imcc/imcc.y" 
    3274     { (yyval.sr) = 0; } 
     3274    { (yyval.sr) = 0; ;} 
    32753275    break; 
    32763276 
    32773277  case 57: 
    32783278#line 1119 "compilers/imcc/imcc.y" 
    3279     { (yyval.sr) = 0; } 
     3279    { (yyval.sr) = 0; ;} 
    32803280    break; 
    32813281 
    32823282  case 58: 
     
    32893289           } 
    32903290           else 
    32913291               add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); 
    3292          } 
     3292         ;} 
    32933293    break; 
    32943294 
    32953295  case 59: 
    32963296#line 1133 "compilers/imcc/imcc.y" 
    3297     { is_def=1; } 
     3297    { is_def=1; ;} 
    32983298    break; 
    32993299 
    33003300  case 60: 
    33013301#line 1133 "compilers/imcc/imcc.y" 
    3302     { (yyval.sr) = (yyvsp[(3) - (3)].sr); is_def=0; } 
     3302    { (yyval.sr) = (yyvsp[(3) - (3)].sr); is_def=0; ;} 
    33033303    break; 
    33043304 
    33053305  case 61: 
     
    33113311               (yyval.sr) = mk_ident(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t)); 
    33123312           (yyval.sr)->type |= (yyvsp[(3) - (3)].t); 
    33133313           mem_sys_free((yyvsp[(2) - (3)].s)); 
    3314           } 
     3314          ;} 
    33153315    break; 
    33163316 
    33173317  case 62: 
    33183318#line 1151 "compilers/imcc/imcc.y" 
    3319     { (yyval.t) = 0; } 
     3319    { (yyval.t) = 0; ;} 
    33203320    break; 
    33213321 
    33223322  case 63: 
     
    33253325           (yyval.t) = 0; 
    33263326           IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s)); 
    33273327           mem_sys_free((yyvsp[(3) - (4)].s)); 
    3328          } 
     3328         ;} 
    33293329    break; 
    33303330 
    33313331  case 64: 
     
    33343334           (yyval.t) = 0; 
    33353335           IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S'); 
    33363336           mem_sys_free((yyvsp[(3) - (4)].s)); 
    3337          } 
     3337         ;} 
    33383338    break; 
    33393339 
    33403340  case 65: 
    33413341#line 1171 "compilers/imcc/imcc.y" 
    33423342    { 
    3343            (yyval.t) = 0; 
     3343           (yyval.t) = P_VTABLE; 
    33443344           IMCC_INFO(interp)->cur_unit->vtable_name = NULL; 
    33453345           IMCC_INFO(interp)->cur_unit->is_vtable_method = 1; 
    3346          } 
     3346         ;} 
    33473347    break; 
    33483348 
    33493349  case 66: 
    33503350#line 1177 "compilers/imcc/imcc.y" 
    33513351    { 
    3352            (yyval.t) = 0; 
     3352           (yyval.t) = P_VTABLE; 
    33533353           IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s); 
    33543354           IMCC_INFO(interp)->cur_unit->is_vtable_method = 1; 
    3355          } 
     3355         ;} 
    33563356    break; 
    33573357 
    33583358  case 67: 
     
    33613361           (yyval.t) = P_METHOD; 
    33623362           IMCC_INFO(interp)->cur_unit->method_name = NULL; 
    33633363           IMCC_INFO(interp)->cur_unit->is_method = 1; 
    3364          } 
     3364         ;} 
    33653365    break; 
    33663366 
    33673367  case 68: 
     
    33703370           (yyval.t) = P_METHOD; 
    33713371           IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s); 
    33723372           IMCC_INFO(interp)->cur_unit->is_method = 1; 
    3373          } 
     3373         ;} 
    33743374    break; 
    33753375 
    33763376  case 69: 
     
    33793379           (yyval.t) = 0; 
    33803380           IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL; 
    33813381           IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1; 
    3382          } 
     3382         ;} 
    33833383    break; 
    33843384 
    33853385  case 70: 
     
    33883388           (yyval.t) = 0; 
    33893389           IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s); 
    33903390           IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1; 
    3391          } 
     3391         ;} 
    33923392    break; 
    33933393 
    33943394  case 71: 
     
    33963396    { 
    33973397           (yyval.t) = 0; 
    33983398           IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s); 
    3399          } 
     3399         ;} 
    34003400    break; 
    34013401 
    34023402  case 72: 
     
    34043404    { 
    34053405           (yyval.t) = 0; 
    34063406           IMCC_INFO(interp)->cur_unit->subid = NULL; 
    3407          } 
     3407         ;} 
    34083408    break; 
    34093409 
    34103410  case 73: 
     
    34143414           IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S'); 
    34153415           IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = str_dup_remove_quotes((yyvsp[(3) - (4)].s)); 
    34163416           mem_sys_free((yyvsp[(3) - (4)].s)); 
    3417          } 
     3417         ;} 
    34183418    break; 
    34193419 
    34203420  case 74: 
    34213421#line 1239 "compilers/imcc/imcc.y" 
    34223422    { 
    34233423           add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL); 
    3424          } 
     3424         ;} 
    34253425    break; 
    34263426 
    34273427  case 75: 
     
    34293429    { 
    34303430           (yyval.t) = 0; 
    34313431           add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr)); 
    3432          } 
     3432         ;} 
    34333433    break; 
    34343434 
    34353435  case 76: 
     
    34373437    { 
    34383438           (yyval.t) = 0; 
    34393439           add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr)); 
    3440          } 
     3440         ;} 
    34413441    break; 
    34423442 
    34433443  case 77: 
    34443444#line 1255 "compilers/imcc/imcc.y" 
    3445     { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); } 
     3445    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); ;} 
    34463446    break; 
    34473447 
    34483448  case 78: 
    34493449#line 1256 "compilers/imcc/imcc.y" 
    3450     { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); } 
     3450    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); ;} 
    34513451    break; 
    34523452 
    34533453  case 79: 
    34543454#line 1257 "compilers/imcc/imcc.y" 
    3455     { (yyval.sr) = mk_const(interp, "PMC",      'S'); } 
     3455    { (yyval.sr) = mk_const(interp, "PMC",      'S'); ;} 
    34563456    break; 
    34573457 
    34583458  case 80: 
    34593459#line 1258 "compilers/imcc/imcc.y" 
    3460     { (yyval.sr) = mk_const(interp, "STRING",   'S'); } 
     3460    { (yyval.sr) = mk_const(interp, "STRING",   'S'); ;} 
    34613461    break; 
    34623462 
    34633463  case 81: 
     
    34713471           } 
    34723472           mem_sys_free((yyvsp[(1) - (1)].s)); 
    34733473           (yyval.sr) = r; 
    3474          } 
     3474         ;} 
    34753475    break; 
    34763476 
    34773477  case 82: 
     
    34853485           } 
    34863486           mem_sys_free((yyvsp[(1) - (1)].s)); 
    34873487           (yyval.sr) = r; 
    3488          } 
     3488         ;} 
    34893489    break; 
    34903490 
    34913491  case 83: 
    34923492#line 1281 "compilers/imcc/imcc.y" 
    3493     { (yyval.sr) = (yyvsp[(2) - (3)].sr); } 
     3493    { (yyval.sr) = (yyvsp[(2) - (3)].sr); ;} 
    34943494    break; 
    34953495 
    34963496  case 86: 
     
    35173517           r1 = IMCC_INFO(interp)->cur_unit->instructions->symregs[0]; 
    35183518           if (r1 && r1->pcc_sub) 
    35193519               r1->pcc_sub->calls_a_sub |= 1; 
    3520          } 
     3520         ;} 
    35213521    break; 
    35223522 
    35233523  case 87: 
    35243524#line 1319 "compilers/imcc/imcc.y" 
    3525     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; } 
     3525    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;} 
    35263526    break; 
    35273527 
    35283528  case 88: 
    35293529#line 1323 "compilers/imcc/imcc.y" 
    3530     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; } 
     3530    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; ;} 
    35313531    break; 
    35323532 
    35333533  case 89: 
    35343534#line 1324 "compilers/imcc/imcc.y" 
    3535     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; } 
     3535    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; ;} 
    35363536    break; 
    35373537 
    35383538  case 90: 
    35393539#line 1328 "compilers/imcc/imcc.y" 
    3540     { (yyval.i) = NULL; } 
     3540    { (yyval.i) = NULL; ;} 
    35413541    break; 
    35423542 
    35433543  case 91: 
    35443544#line 1329 "compilers/imcc/imcc.y" 
    3545     { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); } 
     3545    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); ;} 
    35463546    break; 
    35473547 
    35483548  case 92: 
    35493549#line 1333 "compilers/imcc/imcc.y" 
    3550     { (yyval.t) = 0; } 
     3550    { (yyval.t) = 0; ;} 
    35513551    break; 
    35523552 
    35533553  case 94: 
    35543554#line 1338 "compilers/imcc/imcc.y" 
    3555     { (yyval.t) = (yyvsp[(1) - (1)].t); } 
     3555    { (yyval.t) = (yyvsp[(1) - (1)].t); ;} 
    35563556    break; 
    35573557 
    35583558  case 95: 
    35593559#line 1339 "compilers/imcc/imcc.y" 
    3560     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); } 
     3560    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;} 
    35613561    break; 
    35623562 
    35633563  case 96: 
    35643564#line 1343 "compilers/imcc/imcc.y" 
    3565     { (yyval.t) = P_LOAD; } 
     3565    { (yyval.t) = P_LOAD; ;} 
    35663566    break; 
    35673567 
    35683568  case 97: 
    35693569#line 1344 "compilers/imcc/imcc.y" 
    3570     { (yyval.t) = P_INIT; } 
     3570    { (yyval.t) = P_INIT; ;} 
    35713571    break; 
    35723572 
    35733573  case 98: 
    35743574#line 1345 "compilers/imcc/imcc.y" 
    3575     { (yyval.t) = P_MAIN; } 
     3575    { (yyval.t) = P_MAIN; ;} 
    35763576    break; 
    35773577 
    35783578  case 99: 
    35793579#line 1346 "compilers/imcc/imcc.y" 
    3580     { (yyval.t) = P_IMMEDIATE; } 
     3580    { (yyval.t) = P_IMMEDIATE; ;} 
    35813581    break; 
    35823582 
    35833583  case 100: 
    35843584#line 1347 "compilers/imcc/imcc.y" 
    3585     { (yyval.t) = P_POSTCOMP; } 
     3585    { (yyval.t) = P_POSTCOMP; ;} 
    35863586    break; 
    35873587 
    35883588  case 101: 
    35893589#line 1348 "compilers/imcc/imcc.y" 
    3590     { (yyval.t) = P_ANON; } 
     3590    { (yyval.t) = P_ANON; ;} 
    35913591    break; 
    35923592 
    35933593  case 102: 
    35943594#line 1349 "compilers/imcc/imcc.y" 
    3595     { (yyval.t) = P_NEED_LEX; } 
     3595    { (yyval.t) = P_NEED_LEX; ;} 
    35963596    break; 
    35973597 
    35983598  case 110: 
     
    36003600    { 
    36013601           add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr)); 
    36023602           add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr)); 
    3603          } 
     3603         ;} 
    36043604    break; 
    36053605 
    36063606  case 111: 
    36073607#line 1366 "compilers/imcc/imcc.y" 
    36083608    { 
    36093609           add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); 
    3610          } 
     3610         ;} 
    36113611    break; 
    36123612 
    36133613  case 112: 
     
    36153615    { 
    36163616           add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); 
    36173617           IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI; 
    3618          } 
     3618         ;} 
    36193619    break; 
    36203620 
    36213621  case 113: 
    36223622#line 1375 "compilers/imcc/imcc.y" 
    36233623    { 
    36243624           add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); 
    3625          } 
     3625         ;} 
    36263626    break; 
    36273627 
    36283628  case 114: 
    36293629#line 1379 "compilers/imcc/imcc.y" 
    36303630    { 
    36313631           add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S')); 
    3632          } 
     3632         ;} 
    36333633    break; 
    36343634 
    36353635  case 115: 
     
    36373637    { 
    36383638           add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr)); 
    36393639           add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr)); 
    3640          } 
     3640         ;} 
    36413641    break; 
    36423642 
    36433643  case 116: 
     
    36453645    { 
    36463646           add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S')); 
    36473647           add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr)); 
    3648          } 
     3648         ;} 
    36493649    break; 
    36503650 
    36513651  case 117: 
    36523652#line 1396 "compilers/imcc/imcc.y" 
    3653     { (yyval.sr) = 0; } 
     3653    { (yyval.sr) = 0; ;} 
    36543654    break; 
    36553655 
    36563656  case 118: 
    36573657#line 1397 "compilers/imcc/imcc.y" 
    3658     { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); } 
     3658    { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); ;} 
    36593659    break; 
    36603660 
    36613661  case 119: 
    36623662#line 1401 "compilers/imcc/imcc.y" 
    3663     { (yyval.sr) = (yyvsp[(2) - (2)].sr); } 
     3663    { (yyval.sr) = (yyvsp[(2) - (2)].sr); ;} 
    36643664    break; 
    36653665 
    36663666  case 120: 
    36673667#line 1406 "compilers/imcc/imcc.y" 
    3668     { (yyval.sr) = 0; } 
     3668    { (yyval.sr) = 0; ;} 
    36693669    break; 
    36703670 
    36713671  case 121: 
     
    36733673    { 
    36743674           if ((yyvsp[(2) - (3)].sr)) 
    36753675               add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); 
    3676          } 
     3676         ;} 
    36773677    break; 
    36783678 
    36793679  case 122: 
    36803680#line 1415 "compilers/imcc/imcc.y" 
    3681     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); } 
     3681    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;} 
    36823682    break; 
    36833683 
    36843684  case 123: 
    36853685#line 1416 "compilers/imcc/imcc.y" 
    3686     { is_def=1; } 
     3686    { is_def=1; ;} 
    36873687    break; 
    36883688 
    36893689  case 124: 
     
    36983698           UNUSED(ignored); 
    36993699           is_def=0; 
    37003700           (yyval.sr)=0; 
    3701          } 
     3701         ;} 
    37023702    break; 
    37033703 
    37043704  case 125: 
    37053705#line 1431 "compilers/imcc/imcc.y" 
    3706     { (yyval.t) = 0; } 
     3706    { (yyval.t) = 0; ;} 
    37073707    break; 
    37083708 
    37093709  case 126: 
    37103710#line 1432 "compilers/imcc/imcc.y" 
    3711     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); } 
     3711    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;} 
    37123712    break; 
    37133713 
    37143714  case 127: 
    37153715#line 1436 "compilers/imcc/imcc.y" 
    3716     { (yyval.t) = VT_FLAT;   } 
     3716    { (yyval.t) = VT_FLAT;   ;} 
    37173717    break; 
    37183718 
    37193719  case 128: 
    37203720#line 1437 "compilers/imcc/imcc.y" 
    3721     { (yyval.t) = VT_OPTIONAL; } 
     3721    { (yyval.t) = VT_OPTIONAL; ;} 
    37223722    break; 
    37233723 
    37243724  case 129: 
    37253725#line 1438 "compilers/imcc/imcc.y" 
    3726     { (yyval.t) = VT_OPT_FLAG; } 
     3726    { (yyval.t) = VT_OPT_FLAG; ;} 
    37273727    break; 
    37283728 
    37293729  case 130: 
    37303730#line 1439 "compilers/imcc/imcc.y" 
    3731     { (yyval.t) = VT_NAMED; } 
     3731    { (yyval.t) = VT_NAMED; ;} 
    37323732    break; 
    37333733 
    37343734  case 131: 
    37353735#line 1440 "compilers/imcc/imcc.y" 
    3736     { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; } 
     3736    { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;} 
    37373737    break; 
    37383738 
    37393739  case 132: 
    37403740#line 1441 "compilers/imcc/imcc.y" 
    3741     { (yyval.t) = VT_UNIQUE_REG; } 
     3741    { (yyval.t) = VT_UNIQUE_REG; ;} 
    37423742    break; 
    37433743 
    37443744  case 133: 
    37453745#line 1446 "compilers/imcc/imcc.y" 
    3746     { begin_return_or_yield(interp, 0); } 
     3746    { begin_return_or_yield(interp, 0); ;} 
    37473747    break; 
    37483748 
    37493749  case 134: 
    37503750#line 1448 "compilers/imcc/imcc.y" 
    3751     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; } 
     3751    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;} 
    37523752    break; 
    37533753 
    37543754  case 135: 
     
    37563756    { 
    37573757           IMCC_INFO(interp)->asm_state = AsmDefault; 
    37583758           (yyval.i) = 0; 
    3759          } 
     3759         ;} 
    37603760    break; 
    37613761 
    37623762  case 136: 
    37633763#line 1457 "compilers/imcc/imcc.y" 
    3764     { begin_return_or_yield(interp, 1); } 
     3764    { begin_return_or_yield(interp, 1); ;} 
    37653765    break; 
    37663766 
    37673767  case 137: 
    37683768#line 1459 "compilers/imcc/imcc.y" 
    3769     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; } 
     3769    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;} 
    37703770    break; 
    37713771 
    37723772  case 138: 
    37733773#line 1463 "compilers/imcc/imcc.y" 
    3774     { (yyval.sr) = 0; } 
     3774    { (yyval.sr) = 0; ;} 
    37753775    break; 
    37763776 
    37773777  case 139: 
     
    37793779    { 
    37803780           if ((yyvsp[(1) - (2)].sr)) 
    37813781               add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr)); 
    3782          } 
     3782         ;} 
    37833783    break; 
    37843784 
    37853785  case 140: 
     
    37873787    { 
    37883788           if ((yyvsp[(2) - (3)].sr)) 
    37893789               add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr)); 
    3790          } 
     3790         ;} 
    37913791    break; 
    37923792 
    37933793  case 141: 
    37943794#line 1477 "compilers/imcc/imcc.y" 
    3795     { (yyval.sr) = 0; } 
     3795    { (yyval.sr) = 0; ;} 
    37963796    break; 
    37973797 
    37983798  case 142: 
     
    38003800    { 
    38013801           if ((yyvsp[(1) - (2)].sr)) 
    38023802               add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr)); 
    3803          } 
     3803         ;} 
    38043804    break; 
    38053805 
    38063806  case 143: 
     
    38083808    { 
    38093809           if ((yyvsp[(2) - (3)].sr)) 
    38103810               add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr)); 
    3811          } 
     3811         ;} 
    38123812    break; 
    38133813 
    38143814  case 144: 
    38153815#line 1491 "compilers/imcc/imcc.y" 
    3816     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); } 
     3816    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;} 
    38173817    break; 
    38183818 
    38193819  case 145: 
    38203820#line 1495 "compilers/imcc/imcc.y" 
    3821     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); } 
     3821    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;} 
    38223822    break; 
    38233823 
    38243824  case 146: 
     
    38263826    { 
    38273827          if (IMCC_INFO(interp)->asm_state == AsmDefault) 
    38283828              begin_return_or_yield(interp, (yyvsp[(1) - (2)].t)); 
    3829         } 
     3829        ;} 
    38303830    break; 
    38313831 
    38323832  case 147: 
     
    38343834    { 
    38353835          IMCC_INFO(interp)->asm_state = AsmDefault; 
    38363836          (yyval.t) = 0; 
    3837         } 
     3837        ;} 
    38383838    break; 
    38393839 
    38403840  case 148: 
    38413841#line 1512 "compilers/imcc/imcc.y" 
    3842     { (yyval.t) = 0; } 
     3842    { (yyval.t) = 0; ;} 
    38433843    break; 
    38443844 
    38453845  case 149: 
    38463846#line 1513 "compilers/imcc/imcc.y" 
    3847     { (yyval.t) = 1; } 
     3847    { (yyval.t) = 1; ;} 
    38483848    break; 
    38493849 
    38503850  case 150: 
    38513851#line 1517 "compilers/imcc/imcc.y" 
    3852     { (yyval.i) = 0; } 
     3852    { (yyval.i) = 0; ;} 
    38533853    break; 
    38543854 
    38553855  case 151: 
     
    38623862           } 
    38633863           else 
    38643864               add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr)); 
    3865          } 
     3865         ;} 
    38663866    break; 
    38673867 
    38683868  case 152: 
    38693869#line 1529 "compilers/imcc/imcc.y" 
    38703870    { 
    38713871           add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr)); 
    3872          } 
     3872         ;} 
    38733873    break; 
    38743874 
    38753875  case 153: 
     
    38823882             } 
    38833883             else 
    38843884                 add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr)); 
    3885          } 
     3885         ;} 
    38863886    break; 
    38873887 
    38883888  case 154: 
    38893889#line 1543 "compilers/imcc/imcc.y" 
    38903890    { 
    38913891           add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr)); 
    3892          } 
     3892         ;} 
    38933893    break; 
    38943894 
    38953895  case 157: 
    38963896#line 1563 "compilers/imcc/imcc.y" 
    3897     { clear_state(interp); } 
     3897    { clear_state(interp); ;} 
    38983898    break; 
    38993899 
    39003900  case 158: 
    39013901#line 1568 "compilers/imcc/imcc.y" 
    3902     { (yyval.i) = (yyvsp[(2) - (2)].i); } 
     3902    { (yyval.i) = (yyvsp[(2) - (2)].i); ;} 
    39033903    break; 
    39043904 
    39053905  case 159: 
    39063906#line 1569 "compilers/imcc/imcc.y" 
    3907     { (yyval.i) = 0; } 
     3907    { (yyval.i) = 0; ;} 
    39083908    break; 
    39093909 
    39103910  case 160: 
    39113911#line 1570 "compilers/imcc/imcc.y" 
    3912     { (yyval.i) = 0; } 
     3912    { (yyval.i) = 0; ;} 
    39133913    break; 
    39143914 
    39153915  case 161: 
    39163916#line 1571 "compilers/imcc/imcc.y" 
    3917     { (yyval.i) = 0; } 
     3917    { (yyval.i) = 0; ;} 
    39183918    break; 
    39193919 
    39203920  case 162: 
    39213921#line 1572 "compilers/imcc/imcc.y" 
    3922     { (yyval.i) = 0; } 
     3922    { (yyval.i) = 0; ;} 
    39233923    break; 
    39243924 
    39253925  case 163: 
    39263926#line 1573 "compilers/imcc/imcc.y" 
    3927     { (yyval.i) = (yyvsp[(1) - (1)].i); } 
     3927    { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 
    39283928    break; 
    39293929 
    39303930  case 164: 
    39313931#line 1577 "compilers/imcc/imcc.y" 
    3932     { (yyval.i) = NULL; } 
     3932    { (yyval.i) = NULL; ;} 
    39333933    break; 
    39343934 
    39353935  case 168: 
    39363936#line 1588 "compilers/imcc/imcc.y" 
    39373937    { 
    39383938           (yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s))); 
    3939          } 
     3939         ;} 
    39403940    break; 
    39413941 
    39423942  case 169: 
    39433943#line 1596 "compilers/imcc/imcc.y" 
    3944     { (yyval.i) = (yyvsp[(2) - (3)].i); } 
     3944    { (yyval.i) = (yyvsp[(2) - (3)].i); ;} 
    39453945    break; 
    39463946 
    39473947  case 170: 
     
    39523952               YYABORT; 
    39533953           } 
    39543954           yyerrok; 
    3955          } 
     3955         ;} 
    39563956    break; 
    39573957 
    39583958  case 171: 
     
    39613961           IdList* l = (yyvsp[(1) - (1)].idlist); 
    39623962           l->next = NULL; 
    39633963           (yyval.idlist) = l; 
    3964          } 
     3964         ;} 
    39653965    break; 
    39663966 
    39673967  case 172: 
     
    39703970           IdList* l = (yyvsp[(3) - (3)].idlist); 
    39713971           l->next = (yyvsp[(1) - (3)].idlist); 
    39723972           (yyval.idlist) = l; 
    3973          } 
     3973         ;} 
    39743974    break; 
    39753975 
    39763976  case 173: 
     
    39803980           l->id           = (yyvsp[(1) - (2)].s); 
    39813981           l->unique_reg   = (yyvsp[(2) - (2)].t); 
    39823982           (yyval.idlist) = l; 
    3983          } 
     3983         ;} 
    39843984    break; 
    39853985 
    39863986  case 174: 
    39873987#line 1634 "compilers/imcc/imcc.y" 
    3988     { (yyval.t) = 0; } 
     3988    { (yyval.t) = 0; ;} 
    39893989    break; 
    39903990 
    39913991  case 175: 
    39923992#line 1635 "compilers/imcc/imcc.y" 
    3993     { (yyval.t) = 1; } 
     3993    { (yyval.t) = 1; ;} 
    39943994    break; 
    39953995 
    39963996  case 178: 
    39973997#line 1642 "compilers/imcc/imcc.y" 
    3998     { is_def=1; } 
     3998    { is_def=1; ;} 
    39993999    break; 
    40004000 
    40014001  case 179: 
     
    40144014               mem_sys_free(l1); 
    40154015           } 
    40164016           is_def=0; (yyval.i)=0; 
    4017          } 
     4017         ;} 
    40184018    break; 
    40194019 
    40204020  case 180: 
    40214021#line 1659 "compilers/imcc/imcc.y" 
    40224022    { 
    40234023           set_lexical(interp, (yyvsp[(4) - (4)].sr), (yyvsp[(2) - (4)].s)); (yyval.i) = 0; 
    4024          } 
     4024         ;} 
    40254025    break; 
    40264026 
    40274027  case 181: 
    40284028#line 1662 "compilers/imcc/imcc.y" 
    4029     { is_def=1; } 
     4029    { is_def=1; ;} 
    40304030    break; 
    40314031 
    40324032  case 182: 
     
    40354035           mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0); 
    40364036           is_def=0; 
    40374037           mem_sys_free((yyvsp[(4) - (6)].s)); 
    4038          } 
     4038         ;} 
    40394039    break; 
    40404040 
    40414041  case 184: 
    40424042#line 1670 "compilers/imcc/imcc.y" 
    4043     { is_def=1; } 
     4043    { is_def=1; ;} 
    40444044    break; 
    40454045 
    40464046  case 185: 
     
    40494049           mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1); 
    40504050           is_def=0; 
    40514051           mem_sys_free((yyvsp[(4) - (6)].s)); 
    4052          } 
     4052         ;} 
    40534053    break; 
    40544054 
    40554055  case 186: 
     
    40584058           (yyval.i) = NULL; 
    40594059           IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL; 
    40604060           IMCC_INFO(interp)->cur_call = NULL; 
    4061          } 
     4061         ;} 
    40624062    break; 
    40634063 
    40644064  case 187: 
    40654065#line 1682 "compilers/imcc/imcc.y" 
    4066     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); } 
     4066    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); ;} 
    40674067    break; 
    40684068 
    40694069  case 188: 
     
    40784078                    IMCC_INFO(interp)->keyvec, 
    40794079                    1); 
    40804080           mem_sys_free((yyvsp[(1) - (2)].s)); 
    4081          } 
     4081         ;} 
    40824082    break; 
    40834083 
    40844084  case 189: 
    40854085#line 1695 "compilers/imcc/imcc.y" 
    4086     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); } 
     4086    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); ;} 
    40874087    break; 
    40884088 
    40894089  case 190: 
    40904090#line 1696 "compilers/imcc/imcc.y" 
    4091     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; } 
     4091    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;} 
    40924092    break; 
    40934093 
    40944094  case 191: 
    40954095#line 1697 "compilers/imcc/imcc.y" 
    4096     { (yyval.i) = 0; } 
     4096    { (yyval.i) = 0; ;} 
    40974097    break; 
    40984098 
    40994099  case 194: 
    41004100#line 1700 "compilers/imcc/imcc.y" 
    4101     { (yyval.i) = 0;} 
     4101    { (yyval.i) = 0;;} 
    41024102    break; 
    41034103 
    41044104  case 195: 
    41054105#line 1704 "compilers/imcc/imcc.y" 
    4106     { (yyval.t) = 'I'; } 
     4106    { (yyval.t) = 'I'; ;} 
    41074107    break; 
    41084108 
    41094109  case 196: 
    41104110#line 1705 "compilers/imcc/imcc.y" 
    4111     { (yyval.t) = 'N'; } 
     4111    { (yyval.t) = 'N'; ;} 
    41124112    break; 
    41134113 
    41144114  case 197: 
    41154115#line 1706 "compilers/imcc/imcc.y" 
    4116     { (yyval.t) = 'S'; } 
     4116    { (yyval.t) = 'S'; ;} 
    41174117    break; 
    41184118 
    41194119  case 198: 
    41204120#line 1707 "compilers/imcc/imcc.y" 
    4121     { (yyval.t) = 'P'; } 
     4121    { (yyval.t) = 'P'; ;} 
    41224122    break; 
    41234123 
    41244124  case 199: 
     
    41314131               IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, 
    41324132                    "Unknown PMC type '%s'\n", (yyvsp[(1) - (1)].s)); 
    41334133           } 
    4134          } 
     4134         ;} 
    41354135    break; 
    41364136 
    41374137  case 200: 
    41384138#line 1725 "compilers/imcc/imcc.y" 
    4139     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  } 
     4139    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  ;} 
    41404140    break; 
    41414141 
    41424142  case 201: 
    41434143#line 1727 "compilers/imcc/imcc.y" 
    4144     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  } 
     4144    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  ;} 
    41454145    break; 
    41464146 
    41474147  case 202: 
    41484148#line 1729 "compilers/imcc/imcc.y" 
    4149     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));  } 
     4149    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));  ;} 
    41504150    break; 
    41514151 
    41524152  case 203: 
    41534153#line 1731 "compilers/imcc/imcc.y" 
    4154     { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); } 
     4154    { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); ;} 
    41554155    break; 
    41564156 
    41574157  case 204: 
    41584158#line 1733 "compilers/imcc/imcc.y" 
    4159     { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); } 
     4159    { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); ;} 
    41604160    break; 
    41614161 
    41624162  case 205: 
    41634163#line 1738 "compilers/imcc/imcc.y" 
    4164     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); } 
     4164    { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); ;} 
    41654165    break; 
    41664166 
    41674167  case 206: 
     
    41704170           add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr)); 
    41714171           IMCC_INFO(interp)->cur_call = NULL; 
    41724172           (yyval.i) = 0; 
    4173          } 
     4173         ;} 
    41744174    break; 
    41754175 
    41764176  case 207: 
    41774177#line 1747 "compilers/imcc/imcc.y" 
    41784178    { 
    41794179           (yyval.i) = IMCC_create_itcall_label(interp); 
    4180          } 
     4180         ;} 
    41814181    break; 
    41824182 
    41834183  case 208: 
     
    41854185    { 
    41864186           IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr)); 
    41874187           IMCC_INFO(interp)->cur_call = NULL; 
    4188          } 
     4188         ;} 
    41894189    break; 
    41904190 
    41914191  case 212: 
    41924192#line 1759 "compilers/imcc/imcc.y" 
    41934193    { 
    41944194           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr)); 
    4195          } 
     4195         ;} 
    41964196    break; 
    41974197 
    41984198  case 213: 
    41994199#line 1766 "compilers/imcc/imcc.y" 
    4200     { (yyval.s) = (char *)"not"; } 
     4200    { (yyval.s) = (char *)"not"; ;} 
    42014201    break; 
    42024202 
    42034203  case 214: 
    42044204#line 1767 "compilers/imcc/imcc.y" 
    4205     { (yyval.s) = (char *)"bnot"; } 
     4205    { (yyval.s) = (char *)"bnot"; ;} 
    42064206    break; 
    42074207 
    42084208  case 215: 
    42094209#line 1768 "compilers/imcc/imcc.y" 
    4210     { (yyval.s) = (char *)"neg"; } 
     4210    { (yyval.s) = (char *)"neg"; ;} 
    42114211    break; 
    42124212 
    42134213  case 216: 
    42144214#line 1772 "compilers/imcc/imcc.y" 
    4215     { (yyval.s) = (char *)"sub"; } 
     4215    { (yyval.s) = (char *)"sub"; ;} 
    42164216    break; 
    42174217 
    42184218  case 217: 
    42194219#line 1773 "compilers/imcc/imcc.y" 
    4220     { (yyval.s) = (char *)"add"; } 
     4220    { (yyval.s) = (char *)"add"; ;} 
    42214221    break; 
    42224222 
    42234223  case 218: 
    42244224#line 1774 "compilers/imcc/imcc.y" 
    4225     { (yyval.s) = (char *)"mul"; } 
     4225    { (yyval.s) = (char *)"mul"; ;} 
    42264226    break; 
    42274227 
    42284228  case 219: 
    42294229#line 1775 "compilers/imcc/imcc.y" 
    4230     { (yyval.s) = (char *)"div"; } 
     4230    { (yyval.s) = (char *)"div"; ;} 
    42314231    break; 
    42324232 
    42334233  case 220: 
    42344234#line 1776 "compilers/imcc/imcc.y" 
    4235     { (yyval.s) = (char *)"mod"; } 
     4235    { (yyval.s) = (char *)"mod"; ;} 
    42364236    break; 
    42374237 
    42384238  case 221: 
    42394239#line 1777 "compilers/imcc/imcc.y" 
    4240     { (yyval.s) = (char *)"fdiv"; } 
     4240    { (yyval.s) = (char *)"fdiv"; ;} 
    42414241    break; 
    42424242 
    42434243  case 222: 
    42444244#line 1778 "compilers/imcc/imcc.y" 
    4245     { (yyval.s) = (char *)"pow"; } 
     4245    { (yyval.s) = (char *)"pow"; ;} 
    42464246    break; 
    42474247 
    42484248  case 223: 
    42494249#line 1779 "compilers/imcc/imcc.y" 
    4250     { (yyval.s) = (char *)"concat"; } 
     4250    { (yyval.s) = (char *)"concat"; ;} 
    42514251    break; 
    42524252 
    42534253  case 224: 
    42544254#line 1780 "compilers/imcc/imcc.y" 
    4255     { (yyval.s) = (char *)"iseq"; } 
     4255    { (yyval.s) = (char *)"iseq"; ;} 
    42564256    break; 
    42574257 
    42584258  case 225: 
    42594259#line 1781 "compilers/imcc/imcc.y" 
    4260     { (yyval.s) = (char *)"isne"; } 
     4260    { (yyval.s) = (char *)"isne"; ;} 
    42614261    break; 
    42624262 
    42634263  case 226: 
    42644264#line 1782 "compilers/imcc/imcc.y" 
    4265     { (yyval.s) = (char *)"isgt"; } 
     4265    { (yyval.s) = (char *)"isgt"; ;} 
    42664266    break; 
    42674267 
    42684268  case 227: 
    42694269#line 1783 "compilers/imcc/imcc.y" 
    4270     { (yyval.s) = (char *)"isge"; } 
     4270    { (yyval.s) = (char *)"isge"; ;} 
    42714271    break; 
    42724272 
    42734273  case 228: 
    42744274#line 1784 "compilers/imcc/imcc.y" 
    4275     { (yyval.s) = (char *)"islt"; } 
     4275    { (yyval.s) = (char *)"islt"; ;} 
    42764276    break; 
    42774277 
    42784278  case 229: 
    42794279#line 1785 "compilers/imcc/imcc.y" 
    4280     { (yyval.s) = (char *)"isle"; } 
     4280    { (yyval.s) = (char *)"isle"; ;} 
    42814281    break; 
    42824282 
    42834283  case 230: 
    42844284#line 1786 "compilers/imcc/imcc.y" 
    4285     { (yyval.s) = (char *)"shl"; } 
     4285    { (yyval.s) = (char *)"shl"; ;} 
    42864286    break; 
    42874287 
    42884288  case 231: 
    42894289#line 1787 "compilers/imcc/imcc.y" 
    4290     { (yyval.s) = (char *)"shr"; } 
     4290    { (yyval.s) = (char *)"shr"; ;} 
    42914291    break; 
    42924292 
    42934293  case 232: 
    42944294#line 1788 "compilers/imcc/imcc.y" 
    4295     { (yyval.s) = (char *)"lsr"; } 
     4295    { (yyval.s) = (char *)"lsr"; ;} 
    42964296    break; 
    42974297 
    42984298  case 233: 
    42994299#line 1789 "compilers/imcc/imcc.y" 
    4300     { (yyval.s) = (char *)"and"; } 
     4300    { (yyval.s) = (char *)"and"; ;} 
    43014301    break; 
    43024302 
    43034303  case 234: 
    43044304#line 1790 "compilers/imcc/imcc.y" 
    4305     { (yyval.s) = (char *)"or"; } 
     4305    { (yyval.s) = (char *)"or"; ;} 
    43064306    break; 
    43074307 
    43084308  case 235: 
    43094309#line 1791 "compilers/imcc/imcc.y" 
    4310     { (yyval.s) = (char *)"xor"; } 
     4310    { (yyval.s) = (char *)"xor"; ;} 
    43114311    break; 
    43124312 
    43134313  case 236: 
    43144314#line 1792 "compilers/imcc/imcc.y" 
    4315     { (yyval.s) = (char *)"band"; } 
     4315    { (yyval.s) = (char *)"band"; ;} 
    43164316    break; 
    43174317 
    43184318  case 237: 
    43194319#line 1793 "compilers/imcc/imcc.y" 
    4320     { (yyval.s) = (char *)"bor"; } 
     4320    { (yyval.s) = (char *)"bor"; ;} 
    43214321    break; 
    43224322 
    43234323  case 238: 
    43244324#line 1794 "compilers/imcc/imcc.y" 
    4325     { (yyval.s) = (char *)"bxor"; } 
     4325    { (yyval.s) = (char *)"bxor"; ;} 
    43264326    break; 
    43274327 
    43284328  case 239: 
     
    43314331           (yyval.i) = IMCC_create_itcall_label(interp); 
    43324332           (yyval.i)->type &= ~ITCALL; 
    43334333           (yyval.i)->type |= ITRESULT; 
    4334          } 
     4334         ;} 
    43354335    break; 
    43364336 
    43374337  case 240: 
    43384338#line 1805 "compilers/imcc/imcc.y" 
    4339     {  (yyval.i) = 0; } 
     4339    {  (yyval.i) = 0; ;} 
    43404340    break; 
    43414341 
    43424342  case 241: 
    43434343#line 1812 "compilers/imcc/imcc.y" 
    43444344    { 
    43454345           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); 
    4346          } 
     4346         ;} 
    43474347    break; 
    43484348 
    43494349  case 242: 
    43504350#line 1818 "compilers/imcc/imcc.y" 
    4351     { (yyval.s) = (char *)"add"; } 
     4351    { (yyval.s) = (char *)"add"; ;} 
    43524352    break; 
    43534353 
    43544354  case 243: 
    43554355#line 1819 "compilers/imcc/imcc.y" 
    4356     { (yyval.s) = (char *)"sub"; } 
     4356    { (yyval.s) = (char *)"sub"; ;} 
    43574357    break; 
    43584358 
    43594359  case 244: 
    43604360#line 1820 "compilers/imcc/imcc.y" 
    4361     { (yyval.s) = (char *)"mul"; } 
     4361    { (yyval.s) = (char *)"mul"; ;} 
    43624362    break; 
    43634363 
    43644364  case 245: 
    43654365#line 1821 "compilers/imcc/imcc.y" 
    4366     { (yyval.s) = (char *)"div"; } 
     4366    { (yyval.s) = (char *)"div"; ;} 
    43674367    break; 
    43684368 
    43694369  case 246: 
    43704370#line 1822 "compilers/imcc/imcc.y" 
    4371     { (yyval.s) = (char *)"mod"; } 
     4371    { (yyval.s) = (char *)"mod"; ;} 
    43724372    break; 
    43734373 
    43744374  case 247: 
    43754375#line 1823 "compilers/imcc/imcc.y" 
    4376     { (yyval.s) = (char *)"fdiv"; } 
     4376    { (yyval.s) = (char *)"fdiv"; ;} 
    43774377    break; 
    43784378 
    43794379  case 248: 
    43804380#line 1824 "compilers/imcc/imcc.y" 
    4381     { (yyval.s) = (char *)"concat"; } 
     4381    { (yyval.s) = (char *)"concat"; ;} 
    43824382    break; 
    43834383 
    43844384  case 249: 
    43854385#line 1825 "compilers/imcc/imcc.y" 
    4386     { (yyval.s) = (char *)"band"; } 
     4386    { (yyval.s) = (char *)"band"; ;} 
    43874387    break; 
    43884388 
    43894389  case 250: 
    43904390#line 1826 "compilers/imcc/imcc.y" 
    4391     { (yyval.s) = (char *)"bor"; } 
     4391    { (yyval.s) = (char *)"bor"; ;} 
    43924392    break; 
    43934393 
    43944394  case 251: 
    43954395#line 1827 "compilers/imcc/imcc.y" 
    4396     { (yyval.s) = (char *)"bxor"; } 
     4396    { (yyval.s) = (char *)"bxor"; ;} 
    43974397    break; 
    43984398 
    43994399  case 252: 
    44004400#line 1828 "compilers/imcc/imcc.y" 
    4401     { (yyval.s) = (char *)"shr"; } 
     4401    { (yyval.s) = (char *)"shr"; ;} 
    44024402    break; 
    44034403 
    44044404  case 253: 
    44054405#line 1829 "compilers/imcc/imcc.y" 
    4406     { (yyval.s) = (char *)"shl"; } 
     4406    { (yyval.s) = (char *)"shl"; ;} 
    44074407    break; 
    44084408 
    44094409  case 254: 
    44104410#line 1830 "compilers/imcc/imcc.y" 
    4411     { (yyval.s) = (char *)"lsr"; } 
     4411    { (yyval.s) = (char *)"lsr"; ;} 
    44124412    break; 
    44134413 
    44144414  case 255: 
     
    44194419                      IMCC_INFO(interp) -> nargs, 
    44204420                      IMCC_INFO(interp) -> keyvec, 1); 
    44214421         mem_sys_free((yyvsp[(3) - (4)].s)); 
    4422        } 
     4422       ;} 
    44234423    break; 
    44244424 
    44254425  case 256: 
    44264426#line 1846 "compilers/imcc/imcc.y" 
    4427     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4427    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    44284428    break; 
    44294429 
    44304430  case 257: 
    44314431#line 1847 "compilers/imcc/imcc.y" 
    4432     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4432    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    44334433    break; 
    44344434 
    44354435  case 258: 
    44364436#line 1848 "compilers/imcc/imcc.y" 
    4437     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4437    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    44384438    break; 
    44394439 
    44404440  case 259: 
     
    44434443           (yyval.sr) = (yyvsp[(1) - (1)].sr); 
    44444444           if ((yyvsp[(1) - (1)].sr)->set != 'P') 
    44454445               IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "Sub isn't a PMC"); 
    4446          } 
     4446         ;} 
    44474447    break; 
    44484448 
    44494449  case 260: 
     
    44604460 
    44614461            IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); 
    44624462            (yyval.sr)                         = (yyvsp[(3) - (3)].sr); 
    4463         } 
     4463        ;} 
    44644464    break; 
    44654465 
    44664466  case 261: 
     
    44694469            IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); 
    44704470            (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S'); 
    44714471            mem_sys_free((yyvsp[(3) - (3)].s)); 
    4472          } 
     4472         ;} 
    44734473    break; 
    44744474 
    44754475  case 262: 
    44764476#line 1875 "compilers/imcc/imcc.y" 
    4477     { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); } 
     4477    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); ;} 
    44784478    break; 
    44794479 
    44804480  case 263: 
     
    44824482    { 
    44834483           (yyval.i) = IMCC_create_itcall_label(interp); 
    44844484           IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr)); 
    4485          } 
     4485         ;} 
    44864486    break; 
    44874487 
    44884488  case 264: 
    44894489#line 1885 "compilers/imcc/imcc.y" 
    4490     { (yyval.i) = (yyvsp[(2) - (5)].i); } 
     4490    { (yyval.i) = (yyvsp[(2) - (5)].i); ;} 
    44914491    break; 
    44924492 
    44934493  case 265: 
    44944494#line 1889 "compilers/imcc/imcc.y" 
    4495     { (yyval.sr) = 0; } 
     4495    { (yyval.sr) = 0; ;} 
    44964496    break; 
    44974497 
    44984498  case 266: 
     
    45054505           } 
    45064506           else 
    45074507               add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr)); 
    4508          } 
     4508         ;} 
    45094509    break; 
    45104510 
    45114511  case 267: 
     
    45184518           } 
    45194519           else 
    45204520               add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr)); 
    4521          } 
     4521         ;} 
    45224522    break; 
    45234523 
    45244524  case 268: 
     
    45274527           (yyval.sr) = 0; 
    45284528           add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr)); 
    45294529           mem_sys_free((yyvsp[(3) - (5)].s)); 
    4530          } 
     4530         ;} 
    45314531    break; 
    45324532 
    45334533  case 269: 
     
    45364536           (yyval.sr) = 0; 
    45374537           add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr)); 
    45384538           mem_sys_free((yyvsp[(1) - (3)].s)); 
    4539          } 
     4539         ;} 
    45404540    break; 
    45414541 
    45424542  case 270: 
    45434543#line 1925 "compilers/imcc/imcc.y" 
    4544     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); } 
     4544    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;} 
    45454545    break; 
    45464546 
    45474547  case 271: 
    45484548#line 1929 "compilers/imcc/imcc.y" 
    4549     { (yyval.t) = 0; } 
     4549    { (yyval.t) = 0; ;} 
    45504550    break; 
    45514551 
    45524552  case 272: 
    45534553#line 1930 "compilers/imcc/imcc.y" 
    4554     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); } 
     4554    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;} 
    45554555    break; 
    45564556 
    45574557  case 273: 
    45584558#line 1934 "compilers/imcc/imcc.y" 
    4559     { (yyval.t) = VT_FLAT; } 
     4559    { (yyval.t) = VT_FLAT; ;} 
    45604560    break; 
    45614561 
    45624562  case 274: 
    45634563#line 1935 "compilers/imcc/imcc.y" 
    4564     { (yyval.t) = VT_NAMED; } 
     4564    { (yyval.t) = VT_NAMED; ;} 
    45654565    break; 
    45664566 
    45674567  case 275: 
    45684568#line 1938 "compilers/imcc/imcc.y" 
    4569     { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; } 
     4569    { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;} 
    45704570    break; 
    45714571 
    45724572  case 276: 
    45734573#line 1942 "compilers/imcc/imcc.y" 
    4574     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); } 
     4574    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;} 
    45754575    break; 
    45764576 
    45774577  case 277: 
     
    45844584           } 
    45854585           else 
    45864586               add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr)); 
    4587          } 
     4587         ;} 
    45884588    break; 
    45894589 
    45904590  case 278: 
     
    45924592    { 
    45934593           add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr)); 
    45944594           mem_sys_free((yyvsp[(3) - (5)].s)); 
    4595          } 
     4595         ;} 
    45964596    break; 
    45974597 
    45984598  case 279: 
     
    46054605           } 
    46064606           else 
    46074607               add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr)); 
    4608          } 
     4608         ;} 
    46094609    break; 
    46104610 
    46114611  case 280: 
     
    46134613    { 
    46144614           add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr)); 
    46154615           mem_sys_free((yyvsp[(1) - (3)].s)); 
    4616          } 
     4616         ;} 
    46174617    break; 
    46184618 
    46194619  case 281: 
    46204620#line 1976 "compilers/imcc/imcc.y" 
    4621     { (yyval.sr) = 0; } 
     4621    { (yyval.sr) = 0; ;} 
    46224622    break; 
    46234623 
    46244624  case 282: 
    46254625#line 1980 "compilers/imcc/imcc.y" 
    4626     { (yyval.i) = (yyvsp[(1) - (1)].i); } 
     4626    { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 
    46274627    break; 
    46284628 
    46294629  case 283: 
    46304630#line 1981 "compilers/imcc/imcc.y" 
    4631     { (yyval.i) = (yyvsp[(1) - (1)].i); } 
     4631    { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 
    46324632    break; 
    46334633 
    46344634  case 284: 
    46354635#line 1986 "compilers/imcc/imcc.y" 
    46364636    { 
    46374637           (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); 
    4638          } 
     4638         ;} 
    46394639    break; 
    46404640 
    46414641  case 285: 
    46424642#line 1990 "compilers/imcc/imcc.y" 
    46434643    { 
    46444644           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); 
    4645          } 
     4645         ;} 
    46464646    break; 
    46474647 
    46484648  case 286: 
    46494649#line 1994 "compilers/imcc/imcc.y" 
    46504650    { 
    46514651           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); 
    4652          } 
     4652         ;} 
    46534653    break; 
    46544654 
    46554655  case 287: 
    46564656#line 2001 "compilers/imcc/imcc.y" 
    46574657    { 
    46584658           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); 
    4659          } 
     4659         ;} 
    46604660    break; 
    46614661 
    46624662  case 288: 
    46634663#line 2005 "compilers/imcc/imcc.y" 
    46644664    { 
    46654665           (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); 
    4666          } 
     4666         ;} 
    46674667    break; 
    46684668 
    46694669  case 289: 
    46704670#line 2009 "compilers/imcc/imcc.y" 
    46714671    { 
    46724672           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); 
    4673          } 
     4673         ;} 
    46744674    break; 
    46754675 
    46764676  case 290: 
    46774677#line 2015 "compilers/imcc/imcc.y" 
    4678     { (yyval.t) = 0; } 
     4678    { (yyval.t) = 0; ;} 
    46794679    break; 
    46804680 
    46814681  case 291: 
    46824682#line 2016 "compilers/imcc/imcc.y" 
    4683     { (yyval.t) = 0; } 
     4683    { (yyval.t) = 0; ;} 
    46844684    break; 
    46854685 
    46864686  case 292: 
    46874687#line 2020 "compilers/imcc/imcc.y" 
    4688     { (yyval.s) = (char *)"eq"; } 
     4688    { (yyval.s) = (char *)"eq"; ;} 
    46894689    break; 
    46904690 
    46914691  case 293: 
    46924692#line 2021 "compilers/imcc/imcc.y" 
    4693     { (yyval.s) = (char *)"ne"; } 
     4693    { (yyval.s) = (char *)"ne"; ;} 
    46944694    break; 
    46954695 
    46964696  case 294: 
    46974697#line 2022 "compilers/imcc/imcc.y" 
    4698     { (yyval.s) = (char *)"gt"; } 
     4698    { (yyval.s) = (char *)"gt"; ;} 
    46994699    break; 
    47004700 
    47014701  case 295: 
    47024702#line 2023 "compilers/imcc/imcc.y" 
    4703     { (yyval.s) = (char *)"ge"; } 
     4703    { (yyval.s) = (char *)"ge"; ;} 
    47044704    break; 
    47054705 
    47064706  case 296: 
    47074707#line 2024 "compilers/imcc/imcc.y" 
    4708     { (yyval.s) = (char *)"lt"; } 
     4708    { (yyval.s) = (char *)"lt"; ;} 
    47094709    break; 
    47104710 
    47114711  case 297: 
    47124712#line 2025 "compilers/imcc/imcc.y" 
    4713     { (yyval.s) = (char *)"le"; } 
     4713    { (yyval.s) = (char *)"le"; ;} 
    47144714    break; 
    47154715 
    47164716  case 300: 
    47174717#line 2034 "compilers/imcc/imcc.y" 
    4718     { (yyval.sr) = NULL; } 
     4718    { (yyval.sr) = NULL; ;} 
    47194719    break; 
    47204720 
    47214721  case 301: 
    47224722#line 2035 "compilers/imcc/imcc.y" 
    4723     { (yyval.sr) = (yyvsp[(1) - (1)].sr); } 
     4723    { (yyval.sr) = (yyvsp[(1) - (1)].sr); ;} 
    47244724    break; 
    47254725 
    47264726  case 302: 
    47274727#line 2039 "compilers/imcc/imcc.y" 
    4728     { (yyval.sr) = IMCC_INFO(interp)->regs[0]; } 
     4728    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; ;} 
    47294729    break; 
    47304730 
    47314731  case 304: 
    47324732#line 2044 "compilers/imcc/imcc.y" 
    4733     { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); } 
     4733    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); ;} 
    47344734    break; 
    47354735 
    47364736  case 305: 
     
    47404740           IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs); 
    47414741           IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(3) - (4)].sr); 
    47424742           (yyval.sr) = (yyvsp[(1) - (4)].sr); 
    4743          } 
     4743         ;} 
    47444744    break; 
    47454745 
    47464746  case 306: 
     
    47484748    { 
    47494749           IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr); 
    47504750           (yyval.sr) = (yyvsp[(2) - (3)].sr); 
    4751          } 
     4751         ;} 
    47524752    break; 
    47534753 
    47544754  case 308: 
    47554755#line 2060 "compilers/imcc/imcc.y" 
    4756     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4756    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    47574757    break; 
    47584758 
    47594759  case 309: 
    47604760#line 2061 "compilers/imcc/imcc.y" 
    4761     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4761    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    47624762    break; 
    47634763 
    47644764  case 310: 
    47654765#line 2065 "compilers/imcc/imcc.y" 
    4766     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4766    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    47674767    break; 
    47684768 
    47694769  case 311: 
    47704770#line 2066 "compilers/imcc/imcc.y" 
    4771     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4771    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    47724772    break; 
    47734773 
    47744774  case 312: 
    47754775#line 2070 "compilers/imcc/imcc.y" 
    4776     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4776    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    47774777    break; 
    47784778 
    47794779  case 313: 
    47804780#line 2071 "compilers/imcc/imcc.y" 
    4781     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4781    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    47824782    break; 
    47834783 
    47844784  case 318: 
     
    47864786    { 
    47874787           IMCC_INFO(interp)->nkeys    = 0; 
    47884788           IMCC_INFO(interp)->in_slice = 0; 
    4789          } 
     4789         ;} 
    47904790    break; 
    47914791 
    47924792  case 319: 
     
    47954795           (yyval.sr) = link_keys(interp, 
    47964796                          IMCC_INFO(interp)->nkeys, 
    47974797                          IMCC_INFO(interp)->keys, 0); 
    4798          } 
     4798         ;} 
    47994799    break; 
    48004800 
    48014801  case 320: 
     
    48034803    { 
    48044804           IMCC_INFO(interp)->nkeys = 0; 
    48054805           IMCC_INFO(interp)->in_slice = 0; 
    4806          } 
     4806         ;} 
    48074807    break; 
    48084808 
    48094809  case 321: 
     
    48124812           (yyval.sr) = link_keys(interp, 
    48134813                          IMCC_INFO(interp)->nkeys, 
    48144814                          IMCC_INFO(interp)->keys, 1); 
    4815          } 
     4815         ;} 
    48164816    break; 
    48174817 
    48184818  case 322: 
    48194819#line 2111 "compilers/imcc/imcc.y" 
    4820     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); } 
     4820    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); ;} 
    48214821    break; 
    48224822 
    48234823  case 323: 
     
    48254825    { 
    48264826           IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr); 
    48274827           (yyval.sr) = IMCC_INFO(interp)->keys[0]; 
    4828          } 
     4828         ;} 
    48294829    break; 
    48304830 
    48314831  case 324: 
     
    48344834           if (IMCC_INFO(interp)->in_slice) 
    48354835               (yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE; 
    48364836           (yyval.sr) = (yyvsp[(1) - (1)].sr); 
    4837          } 
     4837         ;} 
    48384838    break; 
    48394839 
    48404840  case 325: 
    48414841#line 2129 "compilers/imcc/imcc.y" 
    4842     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); } 
     4842    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); ;} 
    48434843    break; 
    48444844 
    48454845  case 326: 
    48464846#line 2130 "compilers/imcc/imcc.y" 
    4847     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); } 
     4847    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); ;} 
    48484848    break; 
    48494849 
    48504850  case 327: 
    48514851#line 2131 "compilers/imcc/imcc.y" 
    4852     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); } 
     4852    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); ;} 
    48534853    break; 
    48544854 
    48554855  case 328: 
    48564856#line 2132 "compilers/imcc/imcc.y" 
    4857     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); } 
     4857    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); ;} 
    48584858    break; 
    48594859 
    48604860  case 329: 
    48614861#line 2133 "compilers/imcc/imcc.y" 
    4862     { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4862    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    48634863    break; 
    48644864 
    48654865  case 330: 
    48664866#line 2137 "compilers/imcc/imcc.y" 
    4867     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4867    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    48684868    break; 
    48694869 
    48704870  case 331: 
    48714871#line 2138 "compilers/imcc/imcc.y" 
    4872     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4872    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    48734873    break; 
    48744874 
    48754875  case 332: 
    48764876#line 2139 "compilers/imcc/imcc.y" 
    4877     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4877    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    48784878    break; 
    48794879 
    48804880  case 333: 
    48814881#line 2140 "compilers/imcc/imcc.y" 
    4882     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); } 
     4882    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); ;} 
    48834883    break; 
    48844884 
    48854885 
  • compilers/imcc/pcc.c

     
    387387    SymReg      *regs[2]; 
    388388 
    389389    /* if this sub is a method, unshift 'self' as first param */ 
    390     if ((unit->type & IMC_HAS_SELF) || (sub->pcc_sub->pragma & P_METHOD)) { 
     390    if ((unit->type & IMC_HAS_SELF) || (sub->pcc_sub->pragma & (P_METHOD | P_VTABLE))) { 
    391391        SymReg *self = get_sym(interp, "self"); 
    392392        if (!self) { 
    393393            self       = mk_symreg(interp, "self", 'P'); 
  • compilers/imcc/symreg.h

     
    443443typedef enum { 
    444444    P_NONE           = 0x00,                  /* 0<<0 */ 
    445445    P_NEED_LEX       = 0x01,                  /* 1<<0 */ 
    446     /* P_XXXX        = 0x02, */               /* 1<<1 */ 
     446    P_VTABLE         = 0x02,                  /* 1<<1 */ 
    447447    P_METHOD         = 0x04,                  /* 1<<2 */ 
    448448    P_ANON           = SUB_FLAG_PF_ANON,      /* 1<<3 0x8    - private3 */ 
    449449    P_MAIN           = SUB_FLAG_PF_MAIN,      /* 1<<4 0x10   - private4 */