[svn:parrot] r45130 - in trunk/compilers: imcc pirc/src

petdance at svn.parrot.org petdance at svn.parrot.org
Tue Mar 23 14:33:02 UTC 2010


Author: petdance
Date: Tue Mar 23 14:32:56 2010
New Revision: 45130
URL: https://trac.parrot.org/parrot/changeset/45130

Log:
fixing headerizer notations on many funcs

Modified:
   trunk/compilers/imcc/imcparser.c
   trunk/compilers/imcc/imcparser.h
   trunk/compilers/pirc/src/pircompiler.c
   trunk/compilers/pirc/src/pircompiler.h
   trunk/compilers/pirc/src/pircompunit.c
   trunk/compilers/pirc/src/pircompunit.h
   trunk/compilers/pirc/src/pirparser.c
   trunk/compilers/pirc/src/pirsymbol.c
   trunk/compilers/pirc/src/pirsymbol.h

Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/imcc/imcparser.c	Tue Mar 23 14:32:56 2010	(r45130)
@@ -1303,127 +1303,6 @@
      CONCAT = 376
    };
 #endif
-/* Tokens.  */
-#define LOW_PREC 258
-#define PARAM 259
-#define HLL 260
-#define TK_LINE 261
-#define TK_FILE 262
-#define GOTO 263
-#define ARG 264
-#define IF 265
-#define UNLESS 266
-#define PNULL 267
-#define SET_RETURN 268
-#define SET_YIELD 269
-#define ADV_FLAT 270
-#define ADV_SLURPY 271
-#define ADV_OPTIONAL 272
-#define ADV_OPT_FLAG 273
-#define ADV_NAMED 274
-#define ADV_ARROW 275
-#define NEW 276
-#define ADV_INVOCANT 277
-#define ADV_CALL_SIG 278
-#define NAMESPACE 279
-#define DOT_METHOD 280
-#define SUB 281
-#define SYM 282
-#define LOCAL 283
-#define LEXICAL 284
-#define CONST 285
-#define ANNOTATE 286
-#define INC 287
-#define DEC 288
-#define GLOBAL_CONST 289
-#define PLUS_ASSIGN 290
-#define MINUS_ASSIGN 291
-#define MUL_ASSIGN 292
-#define DIV_ASSIGN 293
-#define CONCAT_ASSIGN 294
-#define BAND_ASSIGN 295
-#define BOR_ASSIGN 296
-#define BXOR_ASSIGN 297
-#define FDIV 298
-#define FDIV_ASSIGN 299
-#define MOD_ASSIGN 300
-#define SHR_ASSIGN 301
-#define SHL_ASSIGN 302
-#define SHR_U_ASSIGN 303
-#define SHIFT_LEFT 304
-#define SHIFT_RIGHT 305
-#define INTV 306
-#define FLOATV 307
-#define STRINGV 308
-#define PMCV 309
-#define LOG_XOR 310
-#define RELOP_EQ 311
-#define RELOP_NE 312
-#define RELOP_GT 313
-#define RELOP_GTE 314
-#define RELOP_LT 315
-#define RELOP_LTE 316
-#define RESULT 317
-#define RETURN 318
-#define TAILCALL 319
-#define YIELDT 320
-#define GET_RESULTS 321
-#define POW 322
-#define SHIFT_RIGHT_U 323
-#define LOG_AND 324
-#define LOG_OR 325
-#define COMMA 326
-#define ESUB 327
-#define DOTDOT 328
-#define PCC_BEGIN 329
-#define PCC_END 330
-#define PCC_CALL 331
-#define PCC_SUB 332
-#define PCC_BEGIN_RETURN 333
-#define PCC_END_RETURN 334
-#define PCC_BEGIN_YIELD 335
-#define PCC_END_YIELD 336
-#define NCI_CALL 337
-#define METH_CALL 338
-#define INVOCANT 339
-#define MAIN 340
-#define LOAD 341
-#define INIT 342
-#define IMMEDIATE 343
-#define POSTCOMP 344
-#define METHOD 345
-#define ANON 346
-#define OUTER 347
-#define NEED_LEX 348
-#define MULTI 349
-#define VTABLE_METHOD 350
-#define LOADLIB 351
-#define SUB_INSTANCE_OF 352
-#define SUBID 353
-#define NS_ENTRY 354
-#define UNIQUE_REG 355
-#define LABEL 356
-#define EMIT 357
-#define EOM 358
-#define IREG 359
-#define NREG 360
-#define SREG 361
-#define PREG 362
-#define IDENTIFIER 363
-#define REG 364
-#define MACRO 365
-#define ENDM 366
-#define STRINGC 367
-#define INTC 368
-#define FLOATC 369
-#define USTRINGC 370
-#define PARROT_OP 371
-#define VAR 372
-#define LINECOMMENT 373
-#define FILECOMMENT 374
-#define DOT 375
-#define CONCAT 376
-
 
 
 
@@ -1431,7 +1310,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 214 of yacc.c  */
+/* Line 222 of yacc.c  */
 #line 1075 "compilers/imcc/imcc.y"
 
     IdList * idlist;
@@ -1442,8 +1321,8 @@
 
 
 
-/* Line 214 of yacc.c  */
-#line 1436 "compilers/imcc/imcparser.c"
+/* Line 222 of yacc.c  */
+#line 1315 "compilers/imcc/imcparser.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1455,7 +1334,7 @@
 
 
 /* Line 264 of yacc.c  */
-#line 1448 "compilers/imcc/imcparser.c"
+#line 1327 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -3257,21 +3136,21 @@
 
 /* Line 1455 of yacc.c  */
 #line 1170 "compilers/imcc/imcc.y"
-    { if (yynerrs) YYABORT; (yyval.i) = 0; }
+    { if (yynerrs) YYABORT; (yyval.i) = 0; ;}
     break;
 
   case 5:
 
 /* Line 1455 of yacc.c  */
 #line 1179 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 6:
 
 /* Line 1455 of yacc.c  */
 #line 1180 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 7:
@@ -3282,7 +3161,7 @@
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = 0;
-         }
+         ;}
     break;
 
   case 8:
@@ -3293,42 +3172,42 @@
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = 0;
-         }
+         ;}
     break;
 
   case 9:
 
 /* Line 1455 of yacc.c  */
 #line 1193 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
 #line 1194 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
 #line 1195 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 12:
 
 /* Line 1455 of yacc.c  */
 #line 1196 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
 #line 1200 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 14:
@@ -3339,7 +3218,7 @@
            (yyval.i) = 0;
            do_loadlib(interp, (yyvsp[(2) - (3)].s));
            mem_sys_free((yyvsp[(2) - (3)].s));
-         }
+         ;}
     break;
 
   case 15:
@@ -3350,7 +3229,7 @@
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(4) - (5)].s));
-         }
+         ;}
     break;
 
   case 16:
@@ -3360,7 +3239,7 @@
     {
            /* set_filename() frees the STRINGC */
            set_filename(interp, (yyvsp[(2) - (3)].s));
-         }
+         ;}
     break;
 
   case 17:
@@ -3373,7 +3252,7 @@
           SymReg * const key = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
           (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, (yyvsp[(4) - (4)].sr));
           mem_sys_free((yyvsp[(2) - (4)].s));
-        }
+        ;}
     break;
 
   case 18:
@@ -3388,14 +3267,14 @@
             IMCC_INFO(interp)->cur_namespace = NULL;
             mem_sys_free((yyvsp[(2) - (2)].s));
             (yyval.t) = 0;
-         }
+         ;}
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
 #line 1249 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 20:
@@ -3406,14 +3285,14 @@
              mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
              mem_sys_free((yyvsp[(4) - (6)].s));
              IMCC_INFO(interp)->is_def = 0;
-         }
+         ;}
     break;
 
   case 21:
 
 /* Line 1455 of yacc.c  */
 #line 1258 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 22:
@@ -3424,14 +3303,14 @@
            (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
            mem_sys_free((yyvsp[(6) - (6)].s));
            IMCC_INFO(interp)->is_def = 0;
-         }
+         ;}
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
 #line 1265 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 24:
@@ -3443,49 +3322,49 @@
            mem_sys_free((yyvsp[(3) - (6)].s));
            mem_sys_free((yyvsp[(6) - (6)].s));
            IMCC_INFO(interp)->is_def = 0;
-         }
+         ;}
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
 #line 1284 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+    { (yyval.i) = 0;  ;}
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
 #line 1285 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+    { (yyval.i) = 0;  ;}
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
 #line 1286 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+    { (yyval.i) = 0;  ;}
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
 #line 1287 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;  }
+    { (yyval.i) = 0;  ;}
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
 #line 1288 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
 #line 1293 "compilers/imcc/imcc.y"
-    { clear_state(interp); }
+    { clear_state(interp); ;}
     break;
 
   case 37:
@@ -3497,7 +3376,7 @@
                     (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
                     IMCC_INFO(interp)->nargs, IMCC_INFO(interp) -> keyvec, 1);
             mem_sys_free((yyvsp[(2) - (3)].s));
-         }
+         ;}
     break;
 
   case 38:
@@ -3507,7 +3386,7 @@
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
-         }
+         ;}
     break;
 
   case 39:
@@ -3520,7 +3399,7 @@
                     mk_sub_label(interp, (yyvsp[(4) - (4)].s)));
            IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(3) - (4)].t);
            mem_sys_free((yyvsp[(4) - (4)].s));
-         }
+         ;}
     break;
 
   case 40:
@@ -3529,7 +3408,7 @@
 #line 1315 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
-         }
+         ;}
     break;
 
   case 41:
@@ -3547,21 +3426,21 @@
            mem_sys_free(name);
            mem_sys_free((yyvsp[(2) - (4)].s));
            mem_sys_free((yyvsp[(4) - (4)].s));
-         }
+         ;}
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
 #line 1331 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;}
+    { (yyval.i) = 0;;}
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
 #line 1339 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
+    { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); ;}
     break;
 
   case 45:
@@ -3574,7 +3453,7 @@
                          emit_flush(interp);
            */
            (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 48:
@@ -3591,7 +3470,7 @@
            IMCC_INFO(interp)->cur_namespace = (yyvsp[(2) - (3)].sr);
            if (re_open)
                IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
-         }
+         ;}
     break;
 
   case 49:
@@ -3600,14 +3479,14 @@
 #line 1373 "compilers/imcc/imcc.y"
     {
             (yyval.sr) = (yyvsp[(2) - (3)].sr);
-        }
+        ;}
     break;
 
   case 50:
 
 /* Line 1455 of yacc.c  */
 #line 1376 "compilers/imcc/imcc.y"
-    { (yyval.sr) = NULL; }
+    { (yyval.sr) = NULL; ;}
     break;
 
   case 51:
@@ -3616,7 +3495,7 @@
 #line 1381 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
-         }
+         ;}
     break;
 
   case 52:
@@ -3625,7 +3504,7 @@
 #line 1385 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 53:
@@ -3638,28 +3517,28 @@
             IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = mem_sys_strdup(
             IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->name);
           }
-        }
+        ;}
     break;
 
   case 54:
 
 /* Line 1455 of yacc.c  */
 #line 1397 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
     break;
 
   case 55:
 
 /* Line 1455 of yacc.c  */
 #line 1401 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 56:
 
 /* Line 1455 of yacc.c  */
 #line 1402 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 57:
@@ -3674,21 +3553,21 @@
            }
            else
                add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 58:
 
 /* Line 1455 of yacc.c  */
 #line 1416 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 59:
 
 /* Line 1455 of yacc.c  */
 #line 1416 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; }
+    { (yyval.sr) = (yyvsp[(3) - (3)].sr); IMCC_INFO(interp)->is_def = 0; ;}
     break;
 
   case 60:
@@ -3714,14 +3593,14 @@
                (yyval.sr) = mk_ident(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
            (yyval.sr)->type |= (yyvsp[(3) - (3)].t);
            mem_sys_free((yyvsp[(2) - (3)].s));
-          }
+          ;}
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
 #line 1446 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 62:
@@ -3732,7 +3611,7 @@
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
            mem_sys_free((yyvsp[(3) - (4)].s));
-         }
+         ;}
     break;
 
   case 63:
@@ -3743,7 +3622,7 @@
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
            mem_sys_free((yyvsp[(3) - (4)].s));
-         }
+         ;}
     break;
 
   case 64:
@@ -3754,7 +3633,7 @@
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = NULL;
            IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
-         }
+         ;}
     break;
 
   case 65:
@@ -3765,7 +3644,7 @@
            (yyval.t) = P_VTABLE;
            IMCC_INFO(interp)->cur_unit->vtable_name      = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
-         }
+         ;}
     break;
 
   case 66:
@@ -3776,7 +3655,7 @@
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = NULL;
            IMCC_INFO(interp)->cur_unit->is_method   = 1;
-         }
+         ;}
     break;
 
   case 67:
@@ -3787,7 +3666,7 @@
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->is_method   = 1;
-         }
+         ;}
     break;
 
   case 68:
@@ -3798,7 +3677,7 @@
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name     = NULL;
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
-         }
+         ;}
     break;
 
   case 69:
@@ -3809,7 +3688,7 @@
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
            IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
-         }
+         ;}
     break;
 
   case 70:
@@ -3819,7 +3698,7 @@
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
-         }
+         ;}
     break;
 
   case 71:
@@ -3829,7 +3708,7 @@
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = NULL;
-         }
+         ;}
     break;
 
   case 72:
@@ -3841,7 +3720,7 @@
            IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
            IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid = str_dup_remove_quotes((yyvsp[(3) - (4)].s));
            mem_sys_free((yyvsp[(3) - (4)].s));
-         }
+         ;}
     break;
 
   case 73:
@@ -3850,7 +3729,7 @@
 #line 1534 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, NULL);
-         }
+         ;}
     break;
 
   case 74:
@@ -3860,7 +3739,7 @@
     {
            (yyval.t) = 0;
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 75:
@@ -3870,35 +3749,35 @@
     {
            (yyval.t) = 0;
            add_pcc_multi(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
 #line 1550 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
+    { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); ;}
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
 #line 1551 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
+    { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); ;}
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
 #line 1552 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
+    { (yyval.sr) = mk_const(interp, "PMC",      'S'); ;}
     break;
 
   case 79:
 
 /* Line 1455 of yacc.c  */
 #line 1553 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
+    { (yyval.sr) = mk_const(interp, "STRING",   'S'); ;}
     break;
 
   case 80:
@@ -3914,7 +3793,7 @@
            }
            mem_sys_free((yyvsp[(1) - (1)].s));
            (yyval.sr) = r;
-         }
+         ;}
     break;
 
   case 81:
@@ -3930,14 +3809,14 @@
            }
            mem_sys_free((yyvsp[(1) - (1)].s));
            (yyval.sr) = r;
-         }
+         ;}
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
 #line 1576 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); ;}
     break;
 
   case 85:
@@ -3966,112 +3845,112 @@
            r1 = IMCC_INFO(interp)->cur_unit->instructions->symregs[0];
            if (r1 && r1->pcc_sub)
                r1->pcc_sub->calls_a_sub |= 1;
-         }
+         ;}
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
 #line 1614 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
     break;
 
   case 87:
 
 /* Line 1455 of yacc.c  */
 #line 1618 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
+    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; ;}
     break;
 
   case 88:
 
 /* Line 1455 of yacc.c  */
 #line 1619 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
+    { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; ;}
     break;
 
   case 89:
 
 /* Line 1455 of yacc.c  */
 #line 1623 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; }
+    { (yyval.i) = NULL; ;}
     break;
 
   case 90:
 
 /* Line 1455 of yacc.c  */
 #line 1624 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
+    { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); ;}
     break;
 
   case 91:
 
 /* Line 1455 of yacc.c  */
 #line 1628 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 93:
 
 /* Line 1455 of yacc.c  */
 #line 1633 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (1)].t); }
+    { (yyval.t) = (yyvsp[(1) - (1)].t); ;}
     break;
 
   case 94:
 
 /* Line 1455 of yacc.c  */
 #line 1634 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 95:
 
 /* Line 1455 of yacc.c  */
 #line 1638 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_LOAD; }
+    { (yyval.t) = P_LOAD; ;}
     break;
 
   case 96:
 
 /* Line 1455 of yacc.c  */
 #line 1639 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_INIT; }
+    { (yyval.t) = P_INIT; ;}
     break;
 
   case 97:
 
 /* Line 1455 of yacc.c  */
 #line 1640 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_MAIN; }
+    { (yyval.t) = P_MAIN; ;}
     break;
 
   case 98:
 
 /* Line 1455 of yacc.c  */
 #line 1641 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_IMMEDIATE; }
+    { (yyval.t) = P_IMMEDIATE; ;}
     break;
 
   case 99:
 
 /* Line 1455 of yacc.c  */
 #line 1642 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_POSTCOMP; }
+    { (yyval.t) = P_POSTCOMP; ;}
     break;
 
   case 100:
 
 /* Line 1455 of yacc.c  */
 #line 1643 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_ANON; }
+    { (yyval.t) = P_ANON; ;}
     break;
 
   case 101:
 
 /* Line 1455 of yacc.c  */
 #line 1644 "compilers/imcc/imcc.y"
-    { (yyval.t) = P_NEED_LEX; }
+    { (yyval.t) = P_NEED_LEX; ;}
     break;
 
   case 109:
@@ -4081,7 +3960,7 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
-         }
+         ;}
     break;
 
   case 110:
@@ -4090,7 +3969,7 @@
 #line 1661 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 111:
@@ -4100,7 +3979,7 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
-         }
+         ;}
     break;
 
   case 112:
@@ -4109,7 +3988,7 @@
 #line 1670 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 113:
@@ -4118,7 +3997,7 @@
 #line 1674 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
-         }
+         ;}
     break;
 
   case 114:
@@ -4128,7 +4007,7 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
-         }
+         ;}
     break;
 
   case 115:
@@ -4138,35 +4017,35 @@
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
-         }
+         ;}
     break;
 
   case 116:
 
 /* Line 1455 of yacc.c  */
 #line 1691 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 117:
 
 /* Line 1455 of yacc.c  */
 #line 1692 "compilers/imcc/imcc.y"
-    { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
+    { add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); ;}
     break;
 
   case 118:
 
 /* Line 1455 of yacc.c  */
 #line 1696 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
+    { (yyval.sr) = (yyvsp[(2) - (2)].sr); ;}
     break;
 
   case 119:
 
 /* Line 1455 of yacc.c  */
 #line 1701 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 120:
@@ -4176,21 +4055,21 @@
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 121:
 
 /* Line 1455 of yacc.c  */
 #line 1710 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
     break;
 
   case 122:
 
 /* Line 1455 of yacc.c  */
 #line 1711 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 123:
@@ -4207,91 +4086,91 @@
            UNUSED(ignored);
            IMCC_INFO(interp)->is_def = 0;
            (yyval.sr) = 0;
-         }
+         ;}
     break;
 
   case 124:
 
 /* Line 1455 of yacc.c  */
 #line 1726 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 125:
 
 /* Line 1455 of yacc.c  */
 #line 1727 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 126:
 
 /* Line 1455 of yacc.c  */
 #line 1731 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_FLAT;   }
+    { (yyval.t) = VT_FLAT;   ;}
     break;
 
   case 127:
 
 /* Line 1455 of yacc.c  */
 #line 1732 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_OPTIONAL; }
+    { (yyval.t) = VT_OPTIONAL; ;}
     break;
 
   case 128:
 
 /* Line 1455 of yacc.c  */
 #line 1733 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_OPT_FLAG; }
+    { (yyval.t) = VT_OPT_FLAG; ;}
     break;
 
   case 129:
 
 /* Line 1455 of yacc.c  */
 #line 1734 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_NAMED; }
+    { (yyval.t) = VT_NAMED; ;}
     break;
 
   case 130:
 
 /* Line 1455 of yacc.c  */
 #line 1735 "compilers/imcc/imcc.y"
-    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
+    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
     break;
 
   case 131:
 
 /* Line 1455 of yacc.c  */
 #line 1736 "compilers/imcc/imcc.y"
-    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); }
+    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; mem_sys_free((yyvsp[(3) - (4)].s)); ;}
     break;
 
   case 132:
 
 /* Line 1455 of yacc.c  */
 #line 1737 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_UNIQUE_REG; }
+    { (yyval.t) = VT_UNIQUE_REG; ;}
     break;
 
   case 133:
 
 /* Line 1455 of yacc.c  */
 #line 1738 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_CALL_SIG; }
+    { (yyval.t) = VT_CALL_SIG; ;}
     break;
 
   case 134:
 
 /* Line 1455 of yacc.c  */
 #line 1743 "compilers/imcc/imcc.y"
-    { begin_return_or_yield(interp, 0); }
+    { begin_return_or_yield(interp, 0); ;}
     break;
 
   case 135:
 
 /* Line 1455 of yacc.c  */
 #line 1745 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
+    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
     break;
 
   case 136:
@@ -4301,28 +4180,28 @@
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
            (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 137:
 
 /* Line 1455 of yacc.c  */
 #line 1754 "compilers/imcc/imcc.y"
-    { begin_return_or_yield(interp, 1); }
+    { begin_return_or_yield(interp, 1); ;}
     break;
 
   case 138:
 
 /* Line 1455 of yacc.c  */
 #line 1756 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
+    { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; ;}
     break;
 
   case 139:
 
 /* Line 1455 of yacc.c  */
 #line 1760 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 140:
@@ -4332,7 +4211,7 @@
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
-         }
+         ;}
     break;
 
   case 141:
@@ -4342,14 +4221,14 @@
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 142:
 
 /* Line 1455 of yacc.c  */
 #line 1774 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 143:
@@ -4359,7 +4238,7 @@
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
-         }
+         ;}
     break;
 
   case 144:
@@ -4369,21 +4248,21 @@
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
-         }
+         ;}
     break;
 
   case 145:
 
 /* Line 1455 of yacc.c  */
 #line 1788 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
     break;
 
   case 146:
 
 /* Line 1455 of yacc.c  */
 #line 1792 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
+    { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); ;}
     break;
 
   case 147:
@@ -4393,7 +4272,7 @@
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
               begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
-        }
+        ;}
     break;
 
   case 148:
@@ -4403,28 +4282,28 @@
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
           (yyval.t) = 0;
-        }
+        ;}
     break;
 
   case 149:
 
 /* Line 1455 of yacc.c  */
 #line 1809 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 150:
 
 /* Line 1455 of yacc.c  */
 #line 1810 "compilers/imcc/imcc.y"
-    { (yyval.t) = 1; }
+    { (yyval.t) = 1; ;}
     break;
 
   case 151:
 
 /* Line 1455 of yacc.c  */
 #line 1814 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 152:
@@ -4439,7 +4318,7 @@
            }
            else
                add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 153:
@@ -4449,7 +4328,7 @@
     {
             SymReg * const name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
             add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 154:
@@ -4464,7 +4343,7 @@
              }
              else
                  add_pcc_result(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 155:
@@ -4474,63 +4353,63 @@
     {
            SymReg * const name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
-         }
+         ;}
     break;
 
   case 158:
 
 /* Line 1455 of yacc.c  */
 #line 1862 "compilers/imcc/imcc.y"
-    { clear_state(interp); }
+    { clear_state(interp); ;}
     break;
 
   case 159:
 
 /* Line 1455 of yacc.c  */
 #line 1867 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (2)].i); }
+    { (yyval.i) = (yyvsp[(2) - (2)].i); ;}
     break;
 
   case 160:
 
 /* Line 1455 of yacc.c  */
 #line 1868 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 161:
 
 /* Line 1455 of yacc.c  */
 #line 1869 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 162:
 
 /* Line 1455 of yacc.c  */
 #line 1870 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 163:
 
 /* Line 1455 of yacc.c  */
 #line 1871 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 164:
 
 /* Line 1455 of yacc.c  */
 #line 1872 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 165:
 
 /* Line 1455 of yacc.c  */
 #line 1876 "compilers/imcc/imcc.y"
-    { (yyval.i) = NULL; }
+    { (yyval.i) = NULL; ;}
     break;
 
   case 169:
@@ -4541,14 +4420,14 @@
              Instruction * const i = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
              mem_sys_free((yyvsp[(1) - (1)].s));
              (yyval.i) = i;
-         }
+         ;}
     break;
 
   case 170:
 
 /* Line 1455 of yacc.c  */
 #line 1897 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (3)].i); }
+    { (yyval.i) = (yyvsp[(2) - (3)].i); ;}
     break;
 
   case 171:
@@ -4561,7 +4440,7 @@
                YYABORT;
            }
            yyerrok;
-         }
+         ;}
     break;
 
   case 172:
@@ -4572,7 +4451,7 @@
            IdList* const l = (yyvsp[(1) - (1)].idlist);
            l->next = NULL;
            (yyval.idlist) = l;
-         }
+         ;}
     break;
 
   case 173:
@@ -4583,7 +4462,7 @@
            IdList* const l = (yyvsp[(3) - (3)].idlist);
            l->next = (yyvsp[(1) - (3)].idlist);
            (yyval.idlist) = l;
-         }
+         ;}
     break;
 
   case 174:
@@ -4595,28 +4474,28 @@
            l->id           = (yyvsp[(1) - (2)].s);
            l->unique_reg   = (yyvsp[(2) - (2)].t);
            (yyval.idlist) = l;
-         }
+         ;}
     break;
 
   case 175:
 
 /* Line 1455 of yacc.c  */
 #line 1935 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 176:
 
 /* Line 1455 of yacc.c  */
 #line 1936 "compilers/imcc/imcc.y"
-    { (yyval.t) = 1; }
+    { (yyval.t) = 1; ;}
     break;
 
   case 179:
 
 /* Line 1455 of yacc.c  */
 #line 1943 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 180:
@@ -4637,7 +4516,7 @@
                mem_sys_free(l1);
            }
            IMCC_INFO(interp)->is_def = 0; (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 181:
@@ -4659,7 +4538,7 @@
                mem_sys_free((yyvsp[(2) - (4)].s));
                mem_sys_free(name);
             }
-         }
+         ;}
     break;
 
   case 182:
@@ -4677,14 +4556,14 @@
                set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
                mem_sys_free((yyvsp[(2) - (4)].s));
             }
-         }
+         ;}
     break;
 
   case 183:
 
 /* Line 1455 of yacc.c  */
 #line 1989 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 184:
@@ -4695,14 +4574,14 @@
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
            IMCC_INFO(interp)->is_def = 0;
            mem_sys_free((yyvsp[(4) - (6)].s));
-         }
+         ;}
     break;
 
   case 186:
 
 /* Line 1455 of yacc.c  */
 #line 1997 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->is_def = 1; }
+    { IMCC_INFO(interp)->is_def = 1; ;}
     break;
 
   case 187:
@@ -4713,7 +4592,7 @@
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
            IMCC_INFO(interp)->is_def = 0;
            mem_sys_free((yyvsp[(4) - (6)].s));
-         }
+         ;}
     break;
 
   case 188:
@@ -4724,7 +4603,7 @@
            (yyval.i) = NULL;
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
            IMCC_INFO(interp)->cur_call = NULL;
-         }
+         ;}
     break;
 
   case 189:
@@ -4733,7 +4612,7 @@
 #line 2010 "compilers/imcc/imcc.y"
     {
             (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
-         }
+         ;}
     break;
 
   case 190:
@@ -4750,63 +4629,63 @@
                     IMCC_INFO(interp)->keyvec,
                     1);
            mem_sys_free((yyvsp[(1) - (2)].s));
-         }
+         ;}
     break;
 
   case 191:
 
 /* Line 1455 of yacc.c  */
 #line 2025 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); ;}
     break;
 
   case 192:
 
 /* Line 1455 of yacc.c  */
 #line 2026 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
+    { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; ;}
     break;
 
   case 193:
 
 /* Line 1455 of yacc.c  */
 #line 2027 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0; }
+    { (yyval.i) = 0; ;}
     break;
 
   case 196:
 
 /* Line 1455 of yacc.c  */
 #line 2030 "compilers/imcc/imcc.y"
-    { (yyval.i) = 0;}
+    { (yyval.i) = 0;;}
     break;
 
   case 197:
 
 /* Line 1455 of yacc.c  */
 #line 2034 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'I'; }
+    { (yyval.t) = 'I'; ;}
     break;
 
   case 198:
 
 /* Line 1455 of yacc.c  */
 #line 2035 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'N'; }
+    { (yyval.t) = 'N'; ;}
     break;
 
   case 199:
 
 /* Line 1455 of yacc.c  */
 #line 2036 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'S'; }
+    { (yyval.t) = 'S'; ;}
     break;
 
   case 200:
 
 /* Line 1455 of yacc.c  */
 #line 2037 "compilers/imcc/imcc.y"
-    { (yyval.t) = 'P'; }
+    { (yyval.t) = 'P'; ;}
     break;
 
   case 201:
@@ -4821,49 +4700,49 @@
                IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
                     "Unknown PMC type '%s'\n", (yyvsp[(1) - (1)].s));
            }
-         }
+         ;}
     break;
 
   case 202:
 
 /* Line 1455 of yacc.c  */
 #line 2055 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  }
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  ;}
     break;
 
   case 203:
 
 /* Line 1455 of yacc.c  */
 #line 2057 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  }
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  ;}
     break;
 
   case 204:
 
 /* Line 1455 of yacc.c  */
 #line 2059 "compilers/imcc/imcc.y"
-    { (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)); }
+    { (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)); ;}
     break;
 
   case 205:
 
 /* Line 1455 of yacc.c  */
 #line 2061 "compilers/imcc/imcc.y"
-    { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
+    { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); ;}
     break;
 
   case 206:
 
 /* Line 1455 of yacc.c  */
 #line 2063 "compilers/imcc/imcc.y"
-    { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
+    { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); ;}
     break;
 
   case 207:
 
 /* Line 1455 of yacc.c  */
 #line 2068 "compilers/imcc/imcc.y"
-    { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
+    { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); ;}
     break;
 
   case 208:
@@ -4874,7 +4753,7 @@
            add_pcc_result(interp, (yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
            (yyval.i) = 0;
-         }
+         ;}
     break;
 
   case 209:
@@ -4883,7 +4762,7 @@
 #line 2077 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
-         }
+         ;}
     break;
 
   case 210:
@@ -4893,7 +4772,7 @@
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
-         }
+         ;}
     break;
 
   case 214:
@@ -4902,189 +4781,189 @@
 #line 2089 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
-         }
+         ;}
     break;
 
   case 215:
 
 /* Line 1455 of yacc.c  */
 #line 2096 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"not"; }
+    { (yyval.s) = (char *)"not"; ;}
     break;
 
   case 216:
 
 /* Line 1455 of yacc.c  */
 #line 2097 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bnot"; }
+    { (yyval.s) = (char *)"bnot"; ;}
     break;
 
   case 217:
 
 /* Line 1455 of yacc.c  */
 #line 2098 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"neg"; }
+    { (yyval.s) = (char *)"neg"; ;}
     break;
 
   case 218:
 
 /* Line 1455 of yacc.c  */
 #line 2102 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"sub"; }
+    { (yyval.s) = (char *)"sub"; ;}
     break;
 
   case 219:
 
 /* Line 1455 of yacc.c  */
 #line 2103 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"add"; }
+    { (yyval.s) = (char *)"add"; ;}
     break;
 
   case 220:
 
 /* Line 1455 of yacc.c  */
 #line 2104 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mul"; }
+    { (yyval.s) = (char *)"mul"; ;}
     break;
 
   case 221:
 
 /* Line 1455 of yacc.c  */
 #line 2105 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"div"; }
+    { (yyval.s) = (char *)"div"; ;}
     break;
 
   case 222:
 
 /* Line 1455 of yacc.c  */
 #line 2106 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mod"; }
+    { (yyval.s) = (char *)"mod"; ;}
     break;
 
   case 223:
 
 /* Line 1455 of yacc.c  */
 #line 2107 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"fdiv"; }
+    { (yyval.s) = (char *)"fdiv"; ;}
     break;
 
   case 224:
 
 /* Line 1455 of yacc.c  */
 #line 2108 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"pow"; }
+    { (yyval.s) = (char *)"pow"; ;}
     break;
 
   case 225:
 
 /* Line 1455 of yacc.c  */
 #line 2109 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"concat"; }
+    { (yyval.s) = (char *)"concat"; ;}
     break;
 
   case 226:
 
 /* Line 1455 of yacc.c  */
 #line 2110 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"iseq"; }
+    { (yyval.s) = (char *)"iseq"; ;}
     break;
 
   case 227:
 
 /* Line 1455 of yacc.c  */
 #line 2111 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isne"; }
+    { (yyval.s) = (char *)"isne"; ;}
     break;
 
   case 228:
 
 /* Line 1455 of yacc.c  */
 #line 2112 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isgt"; }
+    { (yyval.s) = (char *)"isgt"; ;}
     break;
 
   case 229:
 
 /* Line 1455 of yacc.c  */
 #line 2113 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isge"; }
+    { (yyval.s) = (char *)"isge"; ;}
     break;
 
   case 230:
 
 /* Line 1455 of yacc.c  */
 #line 2114 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"islt"; }
+    { (yyval.s) = (char *)"islt"; ;}
     break;
 
   case 231:
 
 /* Line 1455 of yacc.c  */
 #line 2115 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"isle"; }
+    { (yyval.s) = (char *)"isle"; ;}
     break;
 
   case 232:
 
 /* Line 1455 of yacc.c  */
 #line 2116 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shl"; }
+    { (yyval.s) = (char *)"shl"; ;}
     break;
 
   case 233:
 
 /* Line 1455 of yacc.c  */
 #line 2117 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shr"; }
+    { (yyval.s) = (char *)"shr"; ;}
     break;
 
   case 234:
 
 /* Line 1455 of yacc.c  */
 #line 2118 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lsr"; }
+    { (yyval.s) = (char *)"lsr"; ;}
     break;
 
   case 235:
 
 /* Line 1455 of yacc.c  */
 #line 2119 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"and"; }
+    { (yyval.s) = (char *)"and"; ;}
     break;
 
   case 236:
 
 /* Line 1455 of yacc.c  */
 #line 2120 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"or"; }
+    { (yyval.s) = (char *)"or"; ;}
     break;
 
   case 237:
 
 /* Line 1455 of yacc.c  */
 #line 2121 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"xor"; }
+    { (yyval.s) = (char *)"xor"; ;}
     break;
 
   case 238:
 
 /* Line 1455 of yacc.c  */
 #line 2122 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"band"; }
+    { (yyval.s) = (char *)"band"; ;}
     break;
 
   case 239:
 
 /* Line 1455 of yacc.c  */
 #line 2123 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bor"; }
+    { (yyval.s) = (char *)"bor"; ;}
     break;
 
   case 240:
 
 /* Line 1455 of yacc.c  */
 #line 2124 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bxor"; }
+    { (yyval.s) = (char *)"bxor"; ;}
     break;
 
   case 241:
@@ -5095,112 +4974,112 @@
            (yyval.i) = IMCC_create_itcall_label(interp);
            (yyval.i)->type &= ~ITCALL;
            (yyval.i)->type |= ITRESULT;
-         }
+         ;}
     break;
 
   case 242:
 
 /* Line 1455 of yacc.c  */
 #line 2135 "compilers/imcc/imcc.y"
-    {  (yyval.i) = 0; }
+    {  (yyval.i) = 0; ;}
     break;
 
   case 243:
 
 /* Line 1455 of yacc.c  */
 #line 2142 "compilers/imcc/imcc.y"
-    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
+    { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); ;}
     break;
 
   case 244:
 
 /* Line 1455 of yacc.c  */
 #line 2146 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"add"; }
+    { (yyval.s) = (char *)"add"; ;}
     break;
 
   case 245:
 
 /* Line 1455 of yacc.c  */
 #line 2147 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"sub"; }
+    { (yyval.s) = (char *)"sub"; ;}
     break;
 
   case 246:
 
 /* Line 1455 of yacc.c  */
 #line 2148 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mul"; }
+    { (yyval.s) = (char *)"mul"; ;}
     break;
 
   case 247:
 
 /* Line 1455 of yacc.c  */
 #line 2149 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"div"; }
+    { (yyval.s) = (char *)"div"; ;}
     break;
 
   case 248:
 
 /* Line 1455 of yacc.c  */
 #line 2150 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"mod"; }
+    { (yyval.s) = (char *)"mod"; ;}
     break;
 
   case 249:
 
 /* Line 1455 of yacc.c  */
 #line 2151 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"fdiv"; }
+    { (yyval.s) = (char *)"fdiv"; ;}
     break;
 
   case 250:
 
 /* Line 1455 of yacc.c  */
 #line 2152 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"concat"; }
+    { (yyval.s) = (char *)"concat"; ;}
     break;
 
   case 251:
 
 /* Line 1455 of yacc.c  */
 #line 2153 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"band"; }
+    { (yyval.s) = (char *)"band"; ;}
     break;
 
   case 252:
 
 /* Line 1455 of yacc.c  */
 #line 2154 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bor"; }
+    { (yyval.s) = (char *)"bor"; ;}
     break;
 
   case 253:
 
 /* Line 1455 of yacc.c  */
 #line 2155 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"bxor"; }
+    { (yyval.s) = (char *)"bxor"; ;}
     break;
 
   case 254:
 
 /* Line 1455 of yacc.c  */
 #line 2156 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shr"; }
+    { (yyval.s) = (char *)"shr"; ;}
     break;
 
   case 255:
 
 /* Line 1455 of yacc.c  */
 #line 2157 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"shl"; }
+    { (yyval.s) = (char *)"shl"; ;}
     break;
 
   case 256:
 
 /* Line 1455 of yacc.c  */
 #line 2158 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lsr"; }
+    { (yyval.s) = (char *)"lsr"; ;}
     break;
 
   case 257:
@@ -5213,28 +5092,28 @@
                       IMCC_INFO(interp) -> nargs,
                       IMCC_INFO(interp) -> keyvec, 1);
          mem_sys_free((yyvsp[(3) - (4)].s));
-       }
+       ;}
     break;
 
   case 258:
 
 /* Line 1455 of yacc.c  */
 #line 2174 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));       mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 259:
 
 /* Line 1455 of yacc.c  */
 #line 2175 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 260:
 
 /* Line 1455 of yacc.c  */
 #line 2176 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));     mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 261:
@@ -5245,7 +5124,7 @@
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
            if ((yyvsp[(1) - (1)].sr)->set != 'P')
                IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "Sub isn't a PMC");
-         }
+         ;}
     break;
 
   case 262:
@@ -5264,7 +5143,7 @@
 
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = (yyvsp[(3) - (3)].sr);
-        }
+        ;}
     break;
 
   case 263:
@@ -5275,7 +5154,7 @@
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
             mem_sys_free((yyvsp[(3) - (3)].s));
-         }
+         ;}
     break;
 
   case 264:
@@ -5286,14 +5165,14 @@
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
             mem_sys_free((yyvsp[(3) - (3)].s));
-         }
+         ;}
     break;
 
   case 265:
 
 /* Line 1455 of yacc.c  */
 #line 2209 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
+    { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); ;}
     break;
 
   case 266:
@@ -5303,21 +5182,21 @@
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 267:
 
 /* Line 1455 of yacc.c  */
 #line 2219 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(2) - (5)].i); }
+    { (yyval.i) = (yyvsp[(2) - (5)].i); ;}
     break;
 
   case 268:
 
 /* Line 1455 of yacc.c  */
 #line 2223 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 269:
@@ -5332,7 +5211,7 @@
            }
            else
                add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 270:
@@ -5347,7 +5226,7 @@
            }
            else
                add_pcc_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 271:
@@ -5359,7 +5238,7 @@
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
                 mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
            mem_sys_free((yyvsp[(3) - (5)].s));
-         }
+         ;}
     break;
 
   case 272:
@@ -5369,7 +5248,7 @@
     {
            (yyval.sr) = 0;
            add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 273:
@@ -5381,70 +5260,70 @@
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
                 mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
-         }
+         ;}
     break;
 
   case 274:
 
 /* Line 1455 of yacc.c  */
 #line 2266 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
+    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 275:
 
 /* Line 1455 of yacc.c  */
 #line 2270 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 276:
 
 /* Line 1455 of yacc.c  */
 #line 2271 "compilers/imcc/imcc.y"
-    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
+    { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 277:
 
 /* Line 1455 of yacc.c  */
 #line 2275 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_FLAT;     }
+    { (yyval.t) = VT_FLAT;     ;}
     break;
 
   case 278:
 
 /* Line 1455 of yacc.c  */
 #line 2276 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_NAMED;    }
+    { (yyval.t) = VT_NAMED;    ;}
     break;
 
   case 279:
 
 /* Line 1455 of yacc.c  */
 #line 2277 "compilers/imcc/imcc.y"
-    { (yyval.t) = VT_CALL_SIG; }
+    { (yyval.t) = VT_CALL_SIG; ;}
     break;
 
   case 280:
 
 /* Line 1455 of yacc.c  */
 #line 2280 "compilers/imcc/imcc.y"
-    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
+    { adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; ;}
     break;
 
   case 281:
 
 /* Line 1455 of yacc.c  */
 #line 2281 "compilers/imcc/imcc.y"
-    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; }
+    { adv_named_set(interp, (yyvsp[(3) - (4)].s));   (yyval.t) = 0; ;}
     break;
 
   case 282:
 
 /* Line 1455 of yacc.c  */
 #line 2285 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
+    { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); ;}
     break;
 
   case 283:
@@ -5459,7 +5338,7 @@
            }
            else
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
-         }
+         ;}
     break;
 
   case 284:
@@ -5470,7 +5349,7 @@
             add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
                     mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
             mem_sys_free((yyvsp[(3) - (5)].s));
-         }
+         ;}
     break;
 
   case 285:
@@ -5485,7 +5364,7 @@
            }
            else
                add_pcc_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
-         }
+         ;}
     break;
 
   case 286:
@@ -5495,28 +5374,28 @@
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
-         }
+         ;}
     break;
 
   case 287:
 
 /* Line 1455 of yacc.c  */
 #line 2320 "compilers/imcc/imcc.y"
-    { (yyval.sr) = 0; }
+    { (yyval.sr) = 0; ;}
     break;
 
   case 288:
 
 /* Line 1455 of yacc.c  */
 #line 2324 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 289:
 
 /* Line 1455 of yacc.c  */
 #line 2325 "compilers/imcc/imcc.y"
-    { (yyval.i) = (yyvsp[(1) - (1)].i); }
+    { (yyval.i) = (yyvsp[(1) - (1)].i); ;}
     break;
 
   case 290:
@@ -5525,7 +5404,7 @@
 #line 2330 "compilers/imcc/imcc.y"
     {
            (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));
-         }
+         ;}
     break;
 
   case 291:
@@ -5534,7 +5413,7 @@
 #line 2334 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
-         }
+         ;}
     break;
 
   case 292:
@@ -5543,7 +5422,7 @@
 #line 2338 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
-         }
+         ;}
     break;
 
   case 293:
@@ -5552,7 +5431,7 @@
 #line 2345 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
-         }
+         ;}
     break;
 
   case 294:
@@ -5561,7 +5440,7 @@
 #line 2349 "compilers/imcc/imcc.y"
     {
            (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));
-         }
+         ;}
     break;
 
   case 295:
@@ -5570,91 +5449,91 @@
 #line 2353 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
-         }
+         ;}
     break;
 
   case 296:
 
 /* Line 1455 of yacc.c  */
 #line 2359 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 297:
 
 /* Line 1455 of yacc.c  */
 #line 2360 "compilers/imcc/imcc.y"
-    { (yyval.t) = 0; }
+    { (yyval.t) = 0; ;}
     break;
 
   case 298:
 
 /* Line 1455 of yacc.c  */
 #line 2364 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"eq"; }
+    { (yyval.s) = (char *)"eq"; ;}
     break;
 
   case 299:
 
 /* Line 1455 of yacc.c  */
 #line 2365 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"ne"; }
+    { (yyval.s) = (char *)"ne"; ;}
     break;
 
   case 300:
 
 /* Line 1455 of yacc.c  */
 #line 2366 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"gt"; }
+    { (yyval.s) = (char *)"gt"; ;}
     break;
 
   case 301:
 
 /* Line 1455 of yacc.c  */
 #line 2367 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"ge"; }
+    { (yyval.s) = (char *)"ge"; ;}
     break;
 
   case 302:
 
 /* Line 1455 of yacc.c  */
 #line 2368 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"lt"; }
+    { (yyval.s) = (char *)"lt"; ;}
     break;
 
   case 303:
 
 /* Line 1455 of yacc.c  */
 #line 2369 "compilers/imcc/imcc.y"
-    { (yyval.s) = (char *)"le"; }
+    { (yyval.s) = (char *)"le"; ;}
     break;
 
   case 306:
 
 /* Line 1455 of yacc.c  */
 #line 2378 "compilers/imcc/imcc.y"
-    { (yyval.sr) = NULL; }
+    { (yyval.sr) = NULL; ;}
     break;
 
   case 307:
 
 /* Line 1455 of yacc.c  */
 #line 2379 "compilers/imcc/imcc.y"
-    { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
+    { (yyval.sr) = (yyvsp[(1) - (1)].sr); ;}
     break;
 
   case 308:
 
 /* Line 1455 of yacc.c  */
 #line 2383 "compilers/imcc/imcc.y"
-    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
+    { (yyval.sr) = IMCC_INFO(interp)->regs[0]; ;}
     break;
 
   case 310:
 
 /* Line 1455 of yacc.c  */
 #line 2388 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
+    { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); ;}
     break;
 
   case 311:
@@ -5666,7 +5545,7 @@
            IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(3) - (4)].sr);
            (yyval.sr) = (yyvsp[(1) - (4)].sr);
-         }
+         ;}
     break;
 
   case 312:
@@ -5676,49 +5555,49 @@
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
            (yyval.sr) = (yyvsp[(2) - (3)].sr);
-         }
+         ;}
     break;
 
   case 314:
 
 /* Line 1455 of yacc.c  */
 #line 2404 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 315:
 
 /* Line 1455 of yacc.c  */
 #line 2405 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 316:
 
 /* Line 1455 of yacc.c  */
 #line 2409 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 317:
 
 /* Line 1455 of yacc.c  */
 #line 2410 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 318:
 
 /* Line 1455 of yacc.c  */
 #line 2414 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 319:
 
 /* Line 1455 of yacc.c  */
 #line 2415 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 324:
@@ -5727,7 +5606,7 @@
 #line 2429 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
-         }
+         ;}
     break;
 
   case 325:
@@ -5738,7 +5617,7 @@
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
                           IMCC_INFO(interp)->keys, 0);
-         }
+         ;}
     break;
 
   case 326:
@@ -5747,7 +5626,7 @@
 #line 2441 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
-         }
+         ;}
     break;
 
   case 327:
@@ -5758,14 +5637,14 @@
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
                           IMCC_INFO(interp)->keys, 1);
-         }
+         ;}
     break;
 
   case 328:
 
 /* Line 1455 of yacc.c  */
 #line 2453 "compilers/imcc/imcc.y"
-    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
+    { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); ;}
     break;
 
   case 329:
@@ -5775,7 +5654,7 @@
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
-         }
+         ;}
     break;
 
   case 330:
@@ -5784,76 +5663,76 @@
 #line 2463 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
-         }
+         ;}
     break;
 
   case 331:
 
 /* Line 1455 of yacc.c  */
 #line 2469 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); ;}
     break;
 
   case 332:
 
 /* Line 1455 of yacc.c  */
 #line 2470 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); ;}
     break;
 
   case 333:
 
 /* Line 1455 of yacc.c  */
 #line 2471 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); ;}
     break;
 
   case 334:
 
 /* Line 1455 of yacc.c  */
 #line 2472 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
+    { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); ;}
     break;
 
   case 335:
 
 /* Line 1455 of yacc.c  */
 #line 2473 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 336:
 
 /* Line 1455 of yacc.c  */
 #line 2477 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 337:
 
 /* Line 1455 of yacc.c  */
 #line 2478 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 338:
 
 /* Line 1455 of yacc.c  */
 #line 2479 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
   case 339:
 
 /* Line 1455 of yacc.c  */
 #line 2480 "compilers/imcc/imcc.y"
-    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
+    { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); ;}
     break;
 
 
 
 /* Line 1455 of yacc.c  */
-#line 5846 "compilers/imcc/imcparser.c"
+#line 5725 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

Modified: trunk/compilers/imcc/imcparser.h
==============================================================================
--- trunk/compilers/imcc/imcparser.h	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/imcc/imcparser.h	Tue Mar 23 14:32:56 2010	(r45130)
@@ -171,127 +171,6 @@
      CONCAT = 376
    };
 #endif
-/* Tokens.  */
-#define LOW_PREC 258
-#define PARAM 259
-#define HLL 260
-#define TK_LINE 261
-#define TK_FILE 262
-#define GOTO 263
-#define ARG 264
-#define IF 265
-#define UNLESS 266
-#define PNULL 267
-#define SET_RETURN 268
-#define SET_YIELD 269
-#define ADV_FLAT 270
-#define ADV_SLURPY 271
-#define ADV_OPTIONAL 272
-#define ADV_OPT_FLAG 273
-#define ADV_NAMED 274
-#define ADV_ARROW 275
-#define NEW 276
-#define ADV_INVOCANT 277
-#define ADV_CALL_SIG 278
-#define NAMESPACE 279
-#define DOT_METHOD 280
-#define SUB 281
-#define SYM 282
-#define LOCAL 283
-#define LEXICAL 284
-#define CONST 285
-#define ANNOTATE 286
-#define INC 287
-#define DEC 288
-#define GLOBAL_CONST 289
-#define PLUS_ASSIGN 290
-#define MINUS_ASSIGN 291
-#define MUL_ASSIGN 292
-#define DIV_ASSIGN 293
-#define CONCAT_ASSIGN 294
-#define BAND_ASSIGN 295
-#define BOR_ASSIGN 296
-#define BXOR_ASSIGN 297
-#define FDIV 298
-#define FDIV_ASSIGN 299
-#define MOD_ASSIGN 300
-#define SHR_ASSIGN 301
-#define SHL_ASSIGN 302
-#define SHR_U_ASSIGN 303
-#define SHIFT_LEFT 304
-#define SHIFT_RIGHT 305
-#define INTV 306
-#define FLOATV 307
-#define STRINGV 308
-#define PMCV 309
-#define LOG_XOR 310
-#define RELOP_EQ 311
-#define RELOP_NE 312
-#define RELOP_GT 313
-#define RELOP_GTE 314
-#define RELOP_LT 315
-#define RELOP_LTE 316
-#define RESULT 317
-#define RETURN 318
-#define TAILCALL 319
-#define YIELDT 320
-#define GET_RESULTS 321
-#define POW 322
-#define SHIFT_RIGHT_U 323
-#define LOG_AND 324
-#define LOG_OR 325
-#define COMMA 326
-#define ESUB 327
-#define DOTDOT 328
-#define PCC_BEGIN 329
-#define PCC_END 330
-#define PCC_CALL 331
-#define PCC_SUB 332
-#define PCC_BEGIN_RETURN 333
-#define PCC_END_RETURN 334
-#define PCC_BEGIN_YIELD 335
-#define PCC_END_YIELD 336
-#define NCI_CALL 337
-#define METH_CALL 338
-#define INVOCANT 339
-#define MAIN 340
-#define LOAD 341
-#define INIT 342
-#define IMMEDIATE 343
-#define POSTCOMP 344
-#define METHOD 345
-#define ANON 346
-#define OUTER 347
-#define NEED_LEX 348
-#define MULTI 349
-#define VTABLE_METHOD 350
-#define LOADLIB 351
-#define SUB_INSTANCE_OF 352
-#define SUBID 353
-#define NS_ENTRY 354
-#define UNIQUE_REG 355
-#define LABEL 356
-#define EMIT 357
-#define EOM 358
-#define IREG 359
-#define NREG 360
-#define SREG 361
-#define PREG 362
-#define IDENTIFIER 363
-#define REG 364
-#define MACRO 365
-#define ENDM 366
-#define STRINGC 367
-#define INTC 368
-#define FLOATC 369
-#define USTRINGC 370
-#define PARROT_OP 371
-#define VAR 372
-#define LINECOMMENT 373
-#define FILECOMMENT 374
-#define DOT 375
-#define CONCAT 376
-
 
 
 
@@ -299,7 +178,7 @@
 typedef union YYSTYPE
 {
 
-/* Line 1676 of yacc.c  */
+/* Line 1740 of yacc.c  */
 #line 1075 "compilers/imcc/imcc.y"
 
     IdList * idlist;
@@ -310,8 +189,8 @@
 
 
 
-/* Line 1676 of yacc.c  */
-#line 304 "compilers/imcc/imcparser.h"
+/* Line 1740 of yacc.c  */
+#line 183 "compilers/imcc/imcparser.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */

Modified: trunk/compilers/pirc/src/pircompiler.c
==============================================================================
--- trunk/compilers/pirc/src/pircompiler.c	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pircompiler.c	Tue Mar 23 14:32:56 2010	(r45130)
@@ -33,9 +33,10 @@
 PARROT_WARN_UNUSED_RESULT
 static allocated_mem_ptrs * new_mem_ptrs_block(void);
 
-static void register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+static void register_ptr(ARGMOD(lexer_state *lexer), ARGIN(void *ptr))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 static void store_string(
     ARGIN(lexer_state * const lexer),
@@ -98,7 +99,7 @@
 
 */
 static void
-register_ptr(ARGIN(lexer_state *lexer), ARGIN(void *ptr))
+register_ptr(ARGMOD(lexer_state *lexer), ARGIN(void *ptr))
 {
     ASSERT_ARGS(register_ptr)
     allocated_mem_ptrs *ptrs = lexer->mem_allocations;
@@ -106,7 +107,7 @@
     PARROT_ASSERT(ptrs);
 
     if (ptrs->allocs_in_this_block == NUM_MEM_ALLOCS_PER_BLOCK) {
-        allocated_mem_ptrs *newblock = new_mem_ptrs_block();
+        allocated_mem_ptrs * const newblock = new_mem_ptrs_block();
         newblock->next               = ptrs;
         lexer->mem_allocations       = newblock;
         ptrs                         = newblock;
@@ -118,8 +119,7 @@
 
 /*
 
-=item C<void * pir_mem_allocate_zeroed(lexer_state * const lexer, size_t
-numbytes)>
+=item C<void * pir_mem_allocate_zeroed(lexer_state *lexer, size_t numbytes)>
 
 Memory allocation function for all PIR internal functions. Memory is allocated
 through Parrot's allocation functions, but the pointer to the allocated memory
@@ -135,9 +135,9 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 void *
-pir_mem_allocate_zeroed(ARGIN(lexer_state * const lexer), size_t numbytes)
+pir_mem_allocate_zeroed(ARGMOD(lexer_state *lexer), size_t numbytes)
 {
-    void *ptr = mem_sys_allocate_zeroed(numbytes);
+    void * const ptr = mem_sys_allocate_zeroed(numbytes);
 
     totalmem += numbytes;
 

Modified: trunk/compilers/pirc/src/pircompiler.h
==============================================================================
--- trunk/compilers/pirc/src/pircompiler.h	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pircompiler.h	Tue Mar 23 14:32:56 2010	(r45130)
@@ -215,10 +215,9 @@
 PARROT_MALLOC
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-void * pir_mem_allocate_zeroed(
-    ARGIN(lexer_state * const lexer),
-    size_t numbytes)
-        __attribute__nonnull__(1);
+void * pir_mem_allocate_zeroed(ARGMOD(lexer_state *lexer), size_t numbytes)
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
 void pirwarning(
     ARGIN(lexer_state * const lexer),

Modified: trunk/compilers/pirc/src/pircompunit.c
==============================================================================
--- trunk/compilers/pirc/src/pircompunit.c	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pircompunit.c	Tue Mar 23 14:32:56 2010	(r45130)
@@ -660,7 +660,7 @@
 
 /*
 
-=item C<target * new_target(lexer_state * const lexer)>
+=item C<target * new_target(lexer_state *lexer)>
 
 Create a new target node. The node's next pointer is initialized to itself.
 
@@ -670,16 +670,16 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 target *
-new_target(ARGIN(lexer_state * const lexer))
+new_target(ARGMOD(lexer_state *lexer))
 {
-    target *t       = pir_mem_allocate_zeroed_typed(lexer, target);
+    target * const t = pir_mem_allocate_zeroed_typed(lexer, target);
     t->key          = NULL;
     t->next         = t; /* circly linked list */
     return t;
 }
 
 /*
-=item C<void set_target_key(target * const t, key * const k)>
+=item C<void set_target_key(target *t, key *k)>
 
 Set the key C<k> on target C<t>. For instance:
 
@@ -691,15 +691,14 @@
 
 */
 void
-set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+set_target_key(ARGMOD(target *t), ARGIN(key *k))
 {
     t->key = k;
 }
 
 /*
 
-=item C<target * target_from_symbol(lexer_state * const lexer, symbol * const
-sym)>
+=item C<target * target_from_symbol(lexer_state * lexer, symbol *sym)>
 
 Convert symbol C<sym> into a target node. The resulting target has
 a pointer to C<sym>.
@@ -710,10 +709,9 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 target *
-target_from_symbol(ARGIN(lexer_state * const lexer),
-        ARGIN(symbol * const sym))
+target_from_symbol(ARGMOD(lexer_state * lexer), ARGIN(symbol *sym))
 {
-    target *t  = new_target(lexer);
+    target * const t = new_target(lexer);
 
     t->flags   = sym->flags; /* copy the flags */
     t->info    = &sym->info;
@@ -738,7 +736,7 @@
 PARROT_IGNORABLE_RESULT
 PARROT_CANNOT_RETURN_NULL
 target *
-add_target(ARGIN(lexer_state * const lexer),
+add_target(SHIM(lexer_state * const lexer),
         ARGMOD(target *last), ARGIN(target * const t))
 {
     PARROT_ASSERT(last);
@@ -1429,7 +1427,7 @@
 
 /*
 
-=item C<unsigned get_operand_count(lexer_state * const lexer)>
+=item C<unsigned get_operand_count(lexer_state *lexer)>
 
 Returns the number of operands of the I<current> instruction.
 This function assumes there is an instruction in place
@@ -1440,7 +1438,7 @@
 */
 PARROT_WARN_UNUSED_RESULT
 unsigned
-get_operand_count(ARGIN(lexer_state * const lexer))
+get_operand_count(ARGIN(lexer_state *lexer))
 {
     unsigned count = 0;
     expression *first, *operand;

Modified: trunk/compilers/pirc/src/pircompunit.h
==============================================================================
--- trunk/compilers/pirc/src/pircompunit.h	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pircompunit.h	Tue Mar 23 14:32:56 2010	(r45130)
@@ -439,10 +439,9 @@
 PARROT_IGNORABLE_RESULT
 PARROT_CANNOT_RETURN_NULL
 target * add_target(
-    ARGIN(lexer_state * const lexer),
+    SHIM(lexer_state * const lexer),
     ARGMOD(target *last),
     ARGIN(target * const t))
-        __attribute__nonnull__(1)
         __attribute__nonnull__(2)
         __attribute__nonnull__(3)
         FUNC_MODIFIES(*last);
@@ -522,7 +521,7 @@
         __attribute__nonnull__(1);
 
 PARROT_WARN_UNUSED_RESULT
-unsigned get_operand_count(ARGIN(lexer_state * const lexer))
+unsigned get_operand_count(ARGIN(lexer_state *lexer))
         __attribute__nonnull__(1);
 
 void get_operands(ARGIN(lexer_state * const lexer), int bitmask, ...)
@@ -619,8 +618,9 @@
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-target * new_target(ARGIN(lexer_state * const lexer))
-        __attribute__nonnull__(1);
+target * new_target(ARGMOD(lexer_state *lexer))
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
 void push_operand(
     ARGIN(lexer_state * const lexer),
@@ -800,17 +800,17 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-void set_target_key(ARGIN(target * const t), ARGIN(key * const k))
+void set_target_key(ARGMOD(target *t), ARGIN(key *k))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*t);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-target * target_from_symbol(
-    ARGIN(lexer_state * const lexer),
-    ARGIN(symbol * const sym))
+target * target_from_symbol(ARGMOD(lexer_state * lexer), ARGIN(symbol *sym))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(* lexer);
 
 PARROT_PURE_FUNCTION
 PARROT_WARN_UNUSED_RESULT
@@ -869,8 +869,7 @@
        PARROT_ASSERT_ARG(lexer) \
     , PARROT_ASSERT_ARG(name))
 #define ASSERT_ARGS_add_target __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(lexer) \
-    , PARROT_ASSERT_ARG(last) \
+       PARROT_ASSERT_ARG(last) \
     , PARROT_ASSERT_ARG(t))
 #define ASSERT_ARGS_annotate __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(lexer) \

Modified: trunk/compilers/pirc/src/pirparser.c
==============================================================================
--- trunk/compilers/pirc/src/pirparser.c	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pirparser.c	Tue Mar 23 14:32:56 2010	(r45130)
@@ -411,31 +411,39 @@
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
 static void check_first_arg_direction(
-    lexer_state * const lexer,
-    NOTNULL(char const * const opname))
-        __attribute__nonnull__(2);
+    ARGMOD(lexer_state *lexer),
+    ARGIN(char const *opname))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
 static char * concat_strings(
-    NOTNULL(lexer_state * const lexer),
-    NOTNULL(char const * a),
-    NOTNULL(char const * b))
+    ARGMOD(lexer_state *lexer),
+    ARGIN(const char * a),
+    ARGIN(const char * b))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2)
-        __attribute__nonnull__(3);
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*lexer);
 
 static void create_if_instr(
-    NOTNULL(lexer_state * const lexer),
+    ARGMOD(lexer_state *lexer),
     int invert,
     int hasnull,
-    NOTNULL(char const * const name),
-    NOTNULL(char const * const label))
+    ARGIN(const char *name),
+    ARGIN(const char *label))
         __attribute__nonnull__(1)
         __attribute__nonnull__(4)
-        __attribute__nonnull__(5);
+        __attribute__nonnull__(5)
+        FUNC_MODIFIES(*lexer);
+
+static void do_strength_reduction(ARGMOD(lexer_state *lexer))
+        __attribute__nonnull__(1)
+        FUNC_MODIFIES(*lexer);
 
-static void do_strength_reduction(lexer_state * const lexer);
 PARROT_WARN_UNUSED_RESULT
 static int evaluate_i_i(int a, pir_rel_operator op, int b);
 
@@ -446,8 +454,11 @@
 static int evaluate_n_i(double a, pir_rel_operator op, int b);
 
 static void undeclared_symbol(
-    lexer_state * const lexer,
-    char const * const symbol);
+    ARGMOD(lexer_state *lexer),
+    ARGIN(char const *symbol))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 static void yy_reduce_print (
     YYSTYPE *yyvsp,
@@ -483,7 +494,8 @@
 static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar);
 static YYSIZE_T yytnamerr (char *yyres, const char *yystr);
 #define ASSERT_ARGS_check_first_arg_direction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(opname))
+       PARROT_ASSERT_ARG(lexer) \
+    , PARROT_ASSERT_ARG(opname))
 #define ASSERT_ARGS_concat_strings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(lexer) \
     , PARROT_ASSERT_ARG(a) \
@@ -492,11 +504,14 @@
        PARROT_ASSERT_ARG(lexer) \
     , PARROT_ASSERT_ARG(name) \
     , PARROT_ASSERT_ARG(label))
-#define ASSERT_ARGS_do_strength_reduction __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_do_strength_reduction __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(lexer))
 #define ASSERT_ARGS_evaluate_i_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_evaluate_i_n __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_evaluate_n_i __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
-#define ASSERT_ARGS_undeclared_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_undeclared_symbol __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(lexer) \
+    , PARROT_ASSERT_ARG(symbol))
 #define ASSERT_ARGS_yy_reduce_print  __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_yy_stack_print  __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_yy_symbol_print  __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -5510,8 +5525,8 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 static constant *
-fold_s_s(yyscan_t yyscanner, NOTNULL(char const *a), pir_math_operator op, NOTNULL(char const *b)) {
-    lexer_state *lexer = (lexer_state *)yypirget_extra(yyscanner);
+fold_s_s(yyscan_t yyscanner, ARGIN(const char *a), pir_math_operator op, ARGIN(char const *b)) {
+    lexer_state * const lexer = (lexer_state *)yypirget_extra(yyscanner);
     switch (op) {
         case OP_CONCAT:
             return new_const(lexer, STRING_VAL, concat_strings(lexer, a, b));
@@ -5650,8 +5665,8 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-evaluate_s_s(NOTNULL(char const * const a), pir_rel_operator op, NOTNULL(char const * const b)) {
-    int result = strcmp(a, b); /* do /not/ use STREQ; we're interested in the result. */
+evaluate_s_s(ARGIN(const char *a), pir_rel_operator op, ARGIN(const char *b)) {
+    const int result = strcmp(a, b); /* do /not/ use STREQ; we're interested in the result. */
 
     switch (op) {
         case OP_NE:
@@ -5685,8 +5700,8 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-evaluate_s(NOTNULL(char const * const s)) {
-    int strlen_s = strlen(s);
+evaluate_s(ARGIN(char const *s)) {
+    const size_t strlen_s = strlen(s);
 
     if (strlen_s > 0) {
         if (strlen_s <= 3) { /* if strlen > 3, (max. nr of characters to represent "0")
@@ -5717,7 +5732,7 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-evaluate_c(NOTNULL(lexer_state * const lexer), NOTNULL(constant * const c)) {
+evaluate_c(ARGIN(lexer_state * const lexer), ARGIN(const constant *c)) {
     switch (c->type) {
         case INT_VAL:
             return (c->val.ival != 0);
@@ -5735,8 +5750,8 @@
 
 /*
 
-=item C<static char * concat_strings(lexer_state * const lexer, char const * a,
-char const * b)>
+=item C<static char * concat_strings(lexer_state *lexer, const char * a, const
+char * b)>
 
 Concatenates two strings into a new buffer. The new string is returned.
 
@@ -5745,12 +5760,13 @@
 */
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
+PARROT_MALLOC
 static char *
-concat_strings(NOTNULL(lexer_state * const lexer), NOTNULL(char const * a),
-               NOTNULL(char const * b))
+concat_strings(ARGMOD(lexer_state *lexer), ARGIN(const char * a),
+               ARGIN(const char * b))
 {
-    int strlen_a = strlen(a);
-    char *newstr = (char *)pir_mem_allocate_zeroed(lexer, (strlen_a + strlen(b) + 1)
+    const size_t strlen_a = strlen(a);
+    const char * const newstr = (char *)pir_mem_allocate_zeroed(lexer, (strlen_a + strlen(b) + 1)
                                                           * sizeof (char));
     strcpy(newstr, a);
     strcpy(newstr + strlen_a, b);
@@ -5761,8 +5777,8 @@
 
 /*
 
-=item C<static void create_if_instr(lexer_state * const lexer, int invert, int
-hasnull, char const * const name, char const * const label)>
+=item C<static void create_if_instr(lexer_state *lexer, int invert, int hasnull,
+const char *name, const char *label)>
 
 Create an C<if> or C<unless> instruction; if C<invert> is non-zero (true), the
 C<if> instruction is inverted, effectively becoming C<unless>.
@@ -5776,9 +5792,8 @@
 
 */
 static void
-create_if_instr(NOTNULL(lexer_state * const lexer), int invert, int hasnull,
-                NOTNULL(char const * const name),
-                NOTNULL(char const * const label))
+create_if_instr(ARGMOD(lexer_state *lexer), int invert, int hasnull,
+                ARGIN(const char *name), ARGIN(const char *label))
 {
     /* try to find the symbol; if it was declared it will be found; otherwise emit an error. */
     symbol *sym = find_symbol(lexer, name);
@@ -6009,7 +6024,7 @@
 
 /*
 
-=item C<static void do_strength_reduction(lexer_state * const lexer)>
+=item C<static void do_strength_reduction(lexer_state *lexer)>
 
 Implement strength reduction for the math operators C<add>, C<sub>, C<mul>, C<div> and C<fdiv>.
 If the current instruction is any of these, then the first two operands are checked; if both
@@ -6034,7 +6049,7 @@
 
 */
 static void
-do_strength_reduction(lexer_state * const lexer) {
+do_strength_reduction(ARGMOD(lexer_state *lexer)) {
     instruction *instr;
     expression  *arg1;
     expression  *arg2;
@@ -6138,13 +6153,13 @@
             break;
     }
 
-
+    return;
 }
 
 /*
 
-=item C<static void check_first_arg_direction(lexer_state * const lexer, char
-const * const opname)>
+=item C<static void check_first_arg_direction(lexer_state *lexer, char const
+*opname)>
 
 This function checks the first argument's  direction of the op C<opname>.
 If the direction is not C<OUT>, a syntax error is emitted. This function assumes
@@ -6164,7 +6179,7 @@
 
 */
 static void
-check_first_arg_direction(lexer_state * const lexer, NOTNULL(char const * const opname)) {
+check_first_arg_direction(ARGMOD(lexer_state *lexer), ARGIN(char const *opname)) {
     int dir_first_arg;
 
     /* op_count also counts the instruction itself, so must be at least 2 */
@@ -6174,7 +6189,7 @@
     if (!CURRENT_INSTRUCTION(lexer)->opinfo->dirs)
         fprintf(stderr, "no opinfo->dirs!\n");
     else {
-        op_info_t *opinfo = CURRENT_INSTRUCTION(lexer)->opinfo;
+        const op_info_t * const opinfo = CURRENT_INSTRUCTION(lexer)->opinfo;
 
         if (opinfo)
             dir_first_arg = CURRENT_INSTRUCTION(lexer)->opinfo->dirs[0];
@@ -6188,7 +6203,6 @@
     if (dir_first_arg != PARROT_ARGDIR_OUT)
         yypirerror(lexer->yyscanner, lexer, "cannot write first arg of op '%s' as a target "
                                             "(direction of argument is IN/INOUT).", opname);
-
 }
 
 
@@ -6214,12 +6228,10 @@
 */
 PARROT_WARN_UNUSED_RESULT
 static int
-check_op_args_for_symbols(lexer_state * const lexer) {
+check_op_args_for_symbols(ARGMOD(lexer_state *lexer)) {
     struct op_info_t  * opinfo;
     unsigned short      i;
     short               opcount;
-    unsigned            num_operands;
-    char               *fullopname;
     int                 opcode;
     int                 result;
     int                 label_bitmask = 0; /* an int is at least 32 bits;
@@ -6229,9 +6241,10 @@
                                             */
 
     /* iterate over all operands to set the type and PASM register on all target nodes, if any */
-    num_operands = get_operand_count(lexer);
+    const unsigned int num_operands = get_operand_count(lexer);
+
     for (i = 0; i < num_operands; i++) {
-        expression *operand = get_operand(lexer, i + 1); /* get_operand counts from 1 */
+        expression * const operand = get_operand(lexer, i + 1); /* get_operand counts from 1 */
 
         if (operand->type == EXPR_IDENT) { /* op_arg ::= identifier */
             /* the operand is an identifier, check now whether it was a symbol. If so,
@@ -6317,8 +6330,7 @@
 
 /*
 
-=item C<static void undeclared_symbol(lexer_state * const lexer, char const *
-const symbol)>
+=item C<static void undeclared_symbol(lexer_state *lexer, char const *symbol)>
 
 Report an error message saying that C<symbol> was not declared. Then test
 whether the symbol is perhaps a PASM register identifier. The user may have
@@ -6328,7 +6340,7 @@
 
 */
 static void
-undeclared_symbol(lexer_state * const lexer, char const * const symbol) {
+undeclared_symbol(ARGMOD(lexer_state *lexer), ARGIN(char const *symbol)) {
     if (TEST_FLAG(lexer->flags, LEXER_FLAG_PASMFILE)) {
         yypirerror(lexer->yyscanner, lexer,
                    "cannot use symbols in PASM mode ('%s')", symbol);

Modified: trunk/compilers/pirc/src/pirsymbol.c
==============================================================================
--- trunk/compilers/pirc/src/pirsymbol.c	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pirsymbol.c	Tue Mar 23 14:32:56 2010	(r45130)
@@ -386,8 +386,7 @@
 
 /*
 
-=item C<symbol * find_symbol(lexer_state * const lexer, char const * const
-name)>
+=item C<symbol * find_symbol(lexer_state *lexer, const const * name)>
 
 Return the node for the symbol or NULL if the symbol
 is not defined. If an attempt is made to find a symbol,
@@ -400,8 +399,7 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
 symbol *
-find_symbol(ARGIN(lexer_state * const lexer),
-        ARGIN(char const * const name))
+find_symbol(ARGMOD(lexer_state *lexer), ARGIN(const const * name))
 {
     ASSERT_ARGS(find_symbol)
     hashtable    *table    = &CURRENT_SUB(lexer)->symbols;
@@ -411,7 +409,7 @@
 
 
     while (buck) {
-        symbol *sym = bucket_symbol(buck);
+        symbol * const sym = bucket_symbol(buck);
 
         if (STREQ(sym->info.id.name, name)) {
 

Modified: trunk/compilers/pirc/src/pirsymbol.h
==============================================================================
--- trunk/compilers/pirc/src/pirsymbol.h	Tue Mar 23 14:01:28 2010	(r45129)
+++ trunk/compilers/pirc/src/pirsymbol.h	Tue Mar 23 14:32:56 2010	(r45130)
@@ -130,11 +130,10 @@
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CAN_RETURN_NULL
-symbol * find_symbol(
-    ARGIN(lexer_state * const lexer),
-    ARGIN(char const * const name))
+symbol * find_symbol(ARGMOD(lexer_state *lexer), ARGIN(const const * name))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(2);
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*lexer);
 
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL


More information about the parrot-commits mailing list