develooper Front page | perl.cvs.parrot | Postings from January 2009

[svn:parrot] r34884 - trunk/compilers/pirc/new

From:
kjs
Date:
January 3, 2009 07:24
Subject:
[svn:parrot] r34884 - trunk/compilers/pirc/new
Message ID:
20090103152319.06797CB9FA@x12.develooper.com
Author: kjs
Date: Sat Jan  3 07:23:12 2009
New Revision: 34884

Modified:
   trunk/compilers/pirc/new/pir.y
   trunk/compilers/pirc/new/pircompunit.c
   trunk/compilers/pirc/new/piremit.c
   trunk/compilers/pirc/new/pirparser.c
   trunk/compilers/pirc/new/pirparser.h
   trunk/compilers/pirc/new/pirsymbol.c
   trunk/compilers/pirc/new/pirsymbol.h

Log:
[pirc] fix correct pbc generation for PMC "Sub" .const stuff.
+ cleanup.

Modified: trunk/compilers/pirc/new/pir.y
==============================================================================
--- trunk/compilers/pirc/new/pir.y	(original)
+++ trunk/compilers/pirc/new/pir.y	Sat Jan  3 07:23:12 2009
@@ -308,7 +308,6 @@
        <ival> TK_NREG       "number register"
        <ival> TK_SREG       "string register"
        <ival> TK_IREG       "integer register"
-       <cval> TK_CONST_VALUE "constant-value"
 
 %token TK_ARROW             "=>"
        TK_NE                "!="
@@ -2028,10 +2027,9 @@
             ;
 
 
-constant    : TK_STRINGC     { $$ = new_const(lexer, STRING_VAL, $1); }
-            | TK_INTC        { $$ = new_const(lexer, INT_VAL, $1); }
+constant    : TK_INTC        { $$ = new_const(lexer, INT_VAL, $1); }
             | TK_NUMC        { $$ = new_const(lexer, NUM_VAL, $1); }
-            | TK_USTRINGC    { $$ = new_const(lexer, USTRING_VAL, $1); }
+            | stringconst
             ;
 
 stringconst : TK_STRINGC     { $$ = new_const(lexer, STRING_VAL, $1); }

Modified: trunk/compilers/pirc/new/pircompunit.c
==============================================================================
--- trunk/compilers/pirc/new/pircompunit.c	(original)
+++ trunk/compilers/pirc/new/pircompunit.c	Sat Jan  3 07:23:12 2009
@@ -1256,7 +1256,7 @@
         case NUM_VAL:
             c->val.nval = va_arg(arg_ptr, double);
             break;
-        case PMC_VAL:
+        case PMC_VAL:  /* value of a PMC_VAL constant is also a string */
         case STRING_VAL:
             c->val.sval = va_arg(arg_ptr, char *);
             break;
@@ -1312,11 +1312,8 @@
 new_pmc_const(lexer_state * const lexer, char const * const type,
               char const * const name, constant * const value)
 {
-    /*
-    fprintf(stderr, "new pmc (%s) const (%s) with value %s\n", type, name, value->val.sval);
-    */
-
-    if (STREQ(type, "Sub")) {
+    /* type must be 'sub', and value must be a string, holding the name of a sub */
+    if (STREQ(type, "Sub") && value->type == STRING_VAL) {
         /* create a symbol representing the constant */
         symbol *constsym = new_symbol(lexer, name, PMC_TYPE);
         /* create a target from the symbol */
@@ -1325,16 +1322,13 @@
         /* declare it as a local, so that it will get a register assigned. */
         declare_local(lexer, PMC_TYPE, constsym);
 
-        value->name  = name;
-        value->type  = PMC_VAL;
+        value->name     = name;    /* set name of constant node */
+        value->type     = PMC_VAL; /* set type of constant node */
+        value->val.pval = value->val.sval;
 
         new_sub_instr(lexer, PARROT_OP_set_p_pc, "set_p_pc", 0);
         push_operand(lexer, expr_from_target(lexer, consttarg));
-        push_operand(lexer, expr_from_int(lexer, 99)); /* must be index in const table of
-                                                           the sub stored in <value>
-                                                           must be patched back later.
-                                                           How to do this?
-                                                           */
+        push_operand(lexer, expr_from_const(lexer, value));
     }
 
 

Modified: trunk/compilers/pirc/new/piremit.c
==============================================================================
--- trunk/compilers/pirc/new/piremit.c	(original)
+++ trunk/compilers/pirc/new/piremit.c	Sat Jan  3 07:23:12 2009
@@ -479,16 +479,16 @@
             break;
         }
         case PMC_VAL: {
-            /*
-
-            int index = add_pmc_const(lexer->bc, c->val.pval);
-
-            XXX create a new PMC here using the name in c->val.pval?
-
-            emit_int_arg(lexer->bc, index);
-
-            */
-            fprintf(stderr, "emit_pbc_const_arg: pmc type\n");
+            if (c->name) { /* XXX this check necessary? */
+                /* look up the sub by its name stored in c->val.pval, then
+                 * find out what that sub's PMC_CONST is in the constant table,
+                 * and emit that.
+                 */
+
+                global_label *sub = find_global_label(lexer, c->val.pval);
+                int sub_pmc_index = sub->const_table_index;
+                emit_int_arg(lexer->bc, sub_pmc_index);
+            }
             break;
         }
         case USTRING_VAL: {

Modified: trunk/compilers/pirc/new/pirparser.c
==============================================================================
--- trunk/compilers/pirc/new/pirparser.c	(original)
+++ trunk/compilers/pirc/new/pirparser.c	Sat Jan  3 07:23:12 2009
@@ -125,72 +125,71 @@
      TK_NREG = 306,
      TK_SREG = 307,
      TK_IREG = 308,
-     TK_CONST_VALUE = 309,
-     TK_ARROW = 310,
-     TK_NE = 311,
-     TK_EQ = 312,
-     TK_LT = 313,
-     TK_LE = 314,
-     TK_GT = 315,
-     TK_GE = 316,
-     TK_USHIFT = 317,
-     TK_RSHIFT = 318,
-     TK_LSHIFT = 319,
-     TK_FDIV = 320,
-     TK_OR = 321,
-     TK_AND = 322,
-     TK_XOR = 323,
-     TK_CONC = 324,
-     TK_ASSIGN_USHIFT = 325,
-     TK_ASSIGN_RSHIFT = 326,
-     TK_ASSIGN_LSHIFT = 327,
-     TK_ASSIGN_INC = 328,
-     TK_ASSIGN_DEC = 329,
-     TK_ASSIGN_MUL = 330,
-     TK_ASSIGN_MOD = 331,
-     TK_ASSIGN_POW = 332,
-     TK_ASSIGN_DIV = 333,
-     TK_ASSIGN_BOR = 334,
-     TK_ASSIGN_BAND = 335,
-     TK_ASSIGN_FDIV = 336,
-     TK_ASSIGN_BNOT = 337,
-     TK_ASSIGN_CONC = 338,
-     TK_FLAG_INIT = 339,
-     TK_FLAG_LOAD = 340,
-     TK_FLAG_MAIN = 341,
-     TK_FLAG_ANON = 342,
-     TK_FLAG_METHOD = 343,
-     TK_FLAG_OUTER = 344,
-     TK_FLAG_VTABLE = 345,
-     TK_FLAG_LEX = 346,
-     TK_FLAG_MULTI = 347,
-     TK_FLAG_POSTCOMP = 348,
-     TK_FLAG_IMMEDIATE = 349,
-     TK_FLAG_SUBID = 350,
-     TK_FLAG_INSTANCEOF = 351,
-     TK_FLAG_NSENTRY = 352,
-     TK_FLAG_UNIQUE_REG = 353,
-     TK_FLAG_NAMED = 354,
-     TK_FLAG_SLURPY = 355,
-     TK_FLAG_FLAT = 356,
-     TK_FLAG_OPTIONAL = 357,
-     TK_FLAG_OPT_FLAG = 358,
-     TK_FLAG_INVOCANT = 359,
-     TK_MACRO = 360,
-     TK_ENDM = 361,
-     TK_MACRO_LOCAL = 362,
-     TK_MACRO_LABEL = 363,
-     TK_MACRO_CONST = 364,
-     TK_MACRO_LABEL_ID = 365,
-     TK_MACRO_LOCAL_ID = 366,
-     TK_MACRO_IDENT = 367,
-     TK_MACRO_ARG_IDENT = 368,
-     TK_MACRO_ARG_OTHER = 369,
-     TK_MACRO_CONST_VAL = 370,
-     TK_PASM_MARKER_START = 371,
-     TK_PIR_MARKER_START = 372,
-     TK_PCC_SUB = 373,
-     TK_PARROT_OP = 374
+     TK_ARROW = 309,
+     TK_NE = 310,
+     TK_EQ = 311,
+     TK_LT = 312,
+     TK_LE = 313,
+     TK_GT = 314,
+     TK_GE = 315,
+     TK_USHIFT = 316,
+     TK_RSHIFT = 317,
+     TK_LSHIFT = 318,
+     TK_FDIV = 319,
+     TK_OR = 320,
+     TK_AND = 321,
+     TK_XOR = 322,
+     TK_CONC = 323,
+     TK_ASSIGN_USHIFT = 324,
+     TK_ASSIGN_RSHIFT = 325,
+     TK_ASSIGN_LSHIFT = 326,
+     TK_ASSIGN_INC = 327,
+     TK_ASSIGN_DEC = 328,
+     TK_ASSIGN_MUL = 329,
+     TK_ASSIGN_MOD = 330,
+     TK_ASSIGN_POW = 331,
+     TK_ASSIGN_DIV = 332,
+     TK_ASSIGN_BOR = 333,
+     TK_ASSIGN_BAND = 334,
+     TK_ASSIGN_FDIV = 335,
+     TK_ASSIGN_BNOT = 336,
+     TK_ASSIGN_CONC = 337,
+     TK_FLAG_INIT = 338,
+     TK_FLAG_LOAD = 339,
+     TK_FLAG_MAIN = 340,
+     TK_FLAG_ANON = 341,
+     TK_FLAG_METHOD = 342,
+     TK_FLAG_OUTER = 343,
+     TK_FLAG_VTABLE = 344,
+     TK_FLAG_LEX = 345,
+     TK_FLAG_MULTI = 346,
+     TK_FLAG_POSTCOMP = 347,
+     TK_FLAG_IMMEDIATE = 348,
+     TK_FLAG_SUBID = 349,
+     TK_FLAG_INSTANCEOF = 350,
+     TK_FLAG_NSENTRY = 351,
+     TK_FLAG_UNIQUE_REG = 352,
+     TK_FLAG_NAMED = 353,
+     TK_FLAG_SLURPY = 354,
+     TK_FLAG_FLAT = 355,
+     TK_FLAG_OPTIONAL = 356,
+     TK_FLAG_OPT_FLAG = 357,
+     TK_FLAG_INVOCANT = 358,
+     TK_MACRO = 359,
+     TK_ENDM = 360,
+     TK_MACRO_LOCAL = 361,
+     TK_MACRO_LABEL = 362,
+     TK_MACRO_CONST = 363,
+     TK_MACRO_LABEL_ID = 364,
+     TK_MACRO_LOCAL_ID = 365,
+     TK_MACRO_IDENT = 366,
+     TK_MACRO_ARG_IDENT = 367,
+     TK_MACRO_ARG_OTHER = 368,
+     TK_MACRO_CONST_VAL = 369,
+     TK_PASM_MARKER_START = 370,
+     TK_PIR_MARKER_START = 371,
+     TK_PCC_SUB = 372,
+     TK_PARROT_OP = 373
    };
 #endif
 /* Tokens.  */
@@ -245,72 +244,71 @@
 #define TK_NREG 306
 #define TK_SREG 307
 #define TK_IREG 308
-#define TK_CONST_VALUE 309
-#define TK_ARROW 310
-#define TK_NE 311
-#define TK_EQ 312
-#define TK_LT 313
-#define TK_LE 314
-#define TK_GT 315
-#define TK_GE 316
-#define TK_USHIFT 317
-#define TK_RSHIFT 318
-#define TK_LSHIFT 319
-#define TK_FDIV 320
-#define TK_OR 321
-#define TK_AND 322
-#define TK_XOR 323
-#define TK_CONC 324
-#define TK_ASSIGN_USHIFT 325
-#define TK_ASSIGN_RSHIFT 326
-#define TK_ASSIGN_LSHIFT 327
-#define TK_ASSIGN_INC 328
-#define TK_ASSIGN_DEC 329
-#define TK_ASSIGN_MUL 330
-#define TK_ASSIGN_MOD 331
-#define TK_ASSIGN_POW 332
-#define TK_ASSIGN_DIV 333
-#define TK_ASSIGN_BOR 334
-#define TK_ASSIGN_BAND 335
-#define TK_ASSIGN_FDIV 336
-#define TK_ASSIGN_BNOT 337
-#define TK_ASSIGN_CONC 338
-#define TK_FLAG_INIT 339
-#define TK_FLAG_LOAD 340
-#define TK_FLAG_MAIN 341
-#define TK_FLAG_ANON 342
-#define TK_FLAG_METHOD 343
-#define TK_FLAG_OUTER 344
-#define TK_FLAG_VTABLE 345
-#define TK_FLAG_LEX 346
-#define TK_FLAG_MULTI 347
-#define TK_FLAG_POSTCOMP 348
-#define TK_FLAG_IMMEDIATE 349
-#define TK_FLAG_SUBID 350
-#define TK_FLAG_INSTANCEOF 351
-#define TK_FLAG_NSENTRY 352
-#define TK_FLAG_UNIQUE_REG 353
-#define TK_FLAG_NAMED 354
-#define TK_FLAG_SLURPY 355
-#define TK_FLAG_FLAT 356
-#define TK_FLAG_OPTIONAL 357
-#define TK_FLAG_OPT_FLAG 358
-#define TK_FLAG_INVOCANT 359
-#define TK_MACRO 360
-#define TK_ENDM 361
-#define TK_MACRO_LOCAL 362
-#define TK_MACRO_LABEL 363
-#define TK_MACRO_CONST 364
-#define TK_MACRO_LABEL_ID 365
-#define TK_MACRO_LOCAL_ID 366
-#define TK_MACRO_IDENT 367
-#define TK_MACRO_ARG_IDENT 368
-#define TK_MACRO_ARG_OTHER 369
-#define TK_MACRO_CONST_VAL 370
-#define TK_PASM_MARKER_START 371
-#define TK_PIR_MARKER_START 372
-#define TK_PCC_SUB 373
-#define TK_PARROT_OP 374
+#define TK_ARROW 309
+#define TK_NE 310
+#define TK_EQ 311
+#define TK_LT 312
+#define TK_LE 313
+#define TK_GT 314
+#define TK_GE 315
+#define TK_USHIFT 316
+#define TK_RSHIFT 317
+#define TK_LSHIFT 318
+#define TK_FDIV 319
+#define TK_OR 320
+#define TK_AND 321
+#define TK_XOR 322
+#define TK_CONC 323
+#define TK_ASSIGN_USHIFT 324
+#define TK_ASSIGN_RSHIFT 325
+#define TK_ASSIGN_LSHIFT 326
+#define TK_ASSIGN_INC 327
+#define TK_ASSIGN_DEC 328
+#define TK_ASSIGN_MUL 329
+#define TK_ASSIGN_MOD 330
+#define TK_ASSIGN_POW 331
+#define TK_ASSIGN_DIV 332
+#define TK_ASSIGN_BOR 333
+#define TK_ASSIGN_BAND 334
+#define TK_ASSIGN_FDIV 335
+#define TK_ASSIGN_BNOT 336
+#define TK_ASSIGN_CONC 337
+#define TK_FLAG_INIT 338
+#define TK_FLAG_LOAD 339
+#define TK_FLAG_MAIN 340
+#define TK_FLAG_ANON 341
+#define TK_FLAG_METHOD 342
+#define TK_FLAG_OUTER 343
+#define TK_FLAG_VTABLE 344
+#define TK_FLAG_LEX 345
+#define TK_FLAG_MULTI 346
+#define TK_FLAG_POSTCOMP 347
+#define TK_FLAG_IMMEDIATE 348
+#define TK_FLAG_SUBID 349
+#define TK_FLAG_INSTANCEOF 350
+#define TK_FLAG_NSENTRY 351
+#define TK_FLAG_UNIQUE_REG 352
+#define TK_FLAG_NAMED 353
+#define TK_FLAG_SLURPY 354
+#define TK_FLAG_FLAT 355
+#define TK_FLAG_OPTIONAL 356
+#define TK_FLAG_OPT_FLAG 357
+#define TK_FLAG_INVOCANT 358
+#define TK_MACRO 359
+#define TK_ENDM 360
+#define TK_MACRO_LOCAL 361
+#define TK_MACRO_LABEL 362
+#define TK_MACRO_CONST 363
+#define TK_MACRO_LABEL_ID 364
+#define TK_MACRO_LOCAL_ID 365
+#define TK_MACRO_IDENT 366
+#define TK_MACRO_ARG_IDENT 367
+#define TK_MACRO_ARG_OTHER 368
+#define TK_MACRO_CONST_VAL 369
+#define TK_PASM_MARKER_START 370
+#define TK_PIR_MARKER_START 371
+#define TK_PCC_SUB 372
+#define TK_PARROT_OP 373
 
 
 
@@ -588,7 +586,7 @@
     struct macro_param *pval;
 }
 /* Line 187 of yacc.c.  */
-#line 592 "pirparser.c"
+#line 590 "pirparser.c"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -601,7 +599,7 @@
 
 
 /* Line 216 of yacc.c.  */
-#line 605 "pirparser.c"
+#line 603 "pirparser.c"
 
 #ifdef short
 # undef short
@@ -816,20 +814,20 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  10
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1072
+#define YYLAST   1055
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  140
+#define YYNTOKENS  139
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  167
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  424
+#define YYNRULES  423
 /* YYNRULES -- Number of states.  */
 #define YYNSTATES  661
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   375
+#define YYMAXUTOK   374
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -840,16 +838,16 @@
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   131,     2,     2,     2,   136,   138,     2,
-     120,   121,   135,   133,   122,   130,   129,   134,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,   126,
-       2,   123,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,   130,     2,     2,     2,   135,   137,     2,
+     119,   120,   134,   132,   121,   129,   128,   133,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,   125,
+       2,   122,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   124,     2,   125,     2,     2,     2,     2,     2,     2,
+       2,   123,     2,   124,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   127,   137,   128,   132,     2,     2,     2,
+       2,     2,     2,   126,   136,   127,   131,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -874,7 +872,7 @@
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   139
+     115,   116,   117,   118,   138
 };
 
 #if YYDEBUG
@@ -922,184 +920,184 @@
     1093,  1095,  1097,  1099,  1101,  1103,  1105,  1107,  1109,  1111,
     1113,  1115,  1117,  1119,  1121,  1123,  1125,  1127,  1129,  1131,
     1133,  1135,  1137,  1139,  1141,  1143,  1145,  1147,  1149,  1151,
-    1153,  1155,  1157,  1159,  1161,  1163,  1165,  1167,  1170,  1172,
-    1174,  1177,  1179,  1182,  1184,  1187,  1190,  1192,  1195,  1198,
-    1200,  1202,  1204,  1208,  1210
+    1153,  1155,  1157,  1159,  1161,  1163,  1165,  1168,  1170,  1172,
+    1175,  1177,  1180,  1182,  1185,  1188,  1190,  1193,  1196,  1198,
+    1200,  1202,  1206,  1208
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     141,     0,    -1,   117,   142,    -1,   116,   298,    -1,   143,
-     144,   143,    -1,    -1,    35,    -1,   145,    -1,   144,    35,
-     145,    -1,   168,    -1,   282,    -1,   164,    -1,   162,    -1,
-     163,    -1,   159,    -1,   160,    -1,   161,    -1,   146,    -1,
-     147,    -1,   148,    -1,   109,    37,   115,    -1,   149,   120,
-     150,   121,    35,   153,   106,    -1,   105,   293,    -1,    -1,
-     151,    -1,   152,    -1,   151,   122,   152,    -1,   293,    -1,
-      -1,   154,    -1,   155,    -1,   154,   155,    -1,   156,    35,
-      -1,   157,    -1,   158,    -1,   108,   110,    -1,   107,   289,
-     111,    -1,     5,    46,    -1,    10,    48,    -1,    11,    46,
-      -1,    34,    46,   122,    46,    -1,     3,    46,    -1,     4,
-      46,   123,    46,    -1,    13,   124,   165,   125,    -1,    -1,
-     166,    -1,   167,    -1,   166,   126,   167,    -1,    46,    -1,
-     170,   172,    35,   178,   186,   169,    -1,     7,    -1,     6,
-     171,    -1,   293,    -1,    46,    -1,    -1,   172,   173,    -1,
-      87,    -1,    84,    -1,    85,    -1,    86,    -1,    91,    -1,
-      93,    -1,    94,    -1,    92,   174,    -1,    89,   120,   171,
-     121,    -1,    88,   278,    -1,    90,   278,    -1,    95,   279,
-      -1,    96,   279,    -1,    97,   279,    -1,   120,   175,   121,
-      -1,    -1,   176,    -1,   177,    -1,   176,   122,   177,    -1,
-     293,    -1,    46,    -1,   213,    -1,   179,    -1,    -1,   179,
-     180,    -1,     8,   181,   182,    35,    -1,   289,   293,    -1,
-      -1,   182,   183,    -1,   256,    -1,   184,    -1,   185,    -1,
-     104,   120,   177,   121,    -1,    98,    -1,    -1,   186,   187,
-      -1,    36,   188,    -1,   188,    -1,   203,    -1,   220,    -1,
-     226,    -1,   227,    -1,   231,    -1,   280,    -1,   257,    -1,
-     232,    -1,   216,    -1,   202,    -1,   201,    -1,   198,    -1,
-     199,    -1,   189,    -1,   200,    -1,   190,    -1,   112,   191,
-      35,    -1,    -1,   120,   192,   121,    -1,    -1,   193,    -1,
-     194,    -1,   193,   122,   194,    -1,   113,    -1,   114,    -1,
-     112,   191,    -1,   195,    -1,   127,   196,   128,    -1,    -1,
-     196,   197,    -1,    35,    -1,   114,    -1,   113,    -1,   112,
-     191,    -1,    35,    -1,   160,    35,    -1,     1,    35,    -1,
-      44,   290,    35,    -1,    28,   251,    35,    -1,   204,    35,
-      -1,   205,   206,    -1,   215,    -1,    37,    -1,   207,    -1,
-     209,    -1,    -1,   208,    -1,   210,    -1,   208,   122,   210,
-      -1,   213,   123,   285,    -1,   211,    -1,   213,    -1,   286,
-      -1,   293,    -1,   292,    -1,   212,    -1,   250,   213,    -1,
-     124,   214,   125,    -1,   285,    -1,   214,   126,   285,    -1,
-     290,   123,   205,   211,   122,   208,    -1,   290,   123,   205,
-     211,    -1,   290,   123,   205,   213,   122,   208,    -1,   218,
-      35,    -1,    37,    -1,   294,    -1,   290,   123,    48,    -1,
-     290,   123,    49,    -1,   290,   123,   287,    -1,   290,   123,
-     292,    -1,   290,   123,   217,    -1,   290,   123,   219,    -1,
-     290,   123,   205,   213,    -1,   290,   123,   294,   213,    -1,
-     290,   123,    50,   213,    -1,   290,   297,   285,    -1,   290,
-      73,    48,    -1,   290,    73,    49,    -1,   290,    74,    48,
-      -1,   290,    74,    49,    -1,   290,    73,   290,    -1,   290,
-      74,   290,    -1,   290,   123,   295,   285,    -1,   290,   123,
-     290,   296,   285,    -1,   294,   213,   123,   285,    -1,    50,
-     213,   123,   285,    -1,    48,   296,   290,    -1,    49,   296,
-     290,    -1,    46,   296,   290,    -1,    46,   296,    46,    -1,
-      48,   296,    48,    -1,    49,   296,    49,    -1,    48,   296,
-      49,    -1,    49,   296,    48,    -1,   221,    35,    -1,   224,
-      44,    37,    45,   293,    -1,   224,    44,    38,    45,   293,
-      -1,   224,    44,    39,    45,   293,    -1,   224,    44,    40,
-      45,   293,    -1,   224,    44,    41,    45,   293,    -1,   224,
-      44,    42,    45,   293,    -1,   224,    44,    43,    45,   293,
-      -1,   224,    44,    45,    45,   293,    -1,   224,    44,    44,
-      45,   293,    -1,   224,   286,   225,   293,    -1,   224,    44,
-      50,   225,   293,    -1,   224,    37,   225,   293,    -1,   224,
-     292,   225,   293,    -1,   224,    38,   225,   293,    -1,   224,
-      39,   225,   293,    -1,   224,    40,   225,   293,    -1,   224,
-      41,   225,   293,    -1,   224,    42,   225,   293,    -1,   224,
-      43,   225,   293,    -1,   224,    45,    45,   293,    -1,   224,
-      45,   122,   293,    -1,   224,    44,    45,   293,    -1,   224,
-      44,   122,   293,    -1,   224,   222,    45,   293,    -1,   290,
-     288,   285,    -1,    48,   288,   290,    -1,    49,   288,   290,
-      -1,    46,   288,   290,    -1,    48,   288,    48,    -1,    48,
-     288,    49,    -1,    49,   288,    48,    -1,    49,   288,    49,
-      -1,    46,   288,    46,    -1,    46,   288,   223,    -1,    48,
-     288,    46,    -1,    49,   288,    46,    -1,    48,    -1,    49,
-      -1,    42,    -1,    43,    -1,    45,    -1,   122,    -1,    45,
-     293,    35,    -1,    12,   289,   228,    35,    -1,   229,    -1,
-     228,   122,   229,    -1,   293,   230,    -1,    -1,    98,    -1,
-       9,    46,   122,   250,    35,    -1,   233,    -1,   234,    -1,
-     243,    -1,    26,    35,   235,   238,    35,   240,    27,    35,
-      -1,    -1,   236,    -1,   237,    -1,   236,   237,    -1,    30,
-     266,    35,    -1,    29,   248,   239,    -1,    32,   250,    -1,
-      14,   250,    35,    15,   249,    -1,    -1,   122,   250,    -1,
-      -1,   241,    -1,   242,    -1,   241,   242,    -1,    31,   254,
-      35,    -1,   227,    -1,   244,    35,    -1,   251,   123,   245,
-      -1,   290,   123,   245,    -1,   245,    -1,   247,    -1,   246,
-      -1,   250,   129,   249,   261,    -1,   248,   261,    -1,   250,
-      -1,    46,    -1,   293,    -1,    50,    -1,    52,    -1,    46,
-      -1,   293,    -1,    50,    -1,   120,   252,   121,    -1,    -1,
-     253,    -1,   254,    -1,   253,   122,   254,    -1,   290,   255,
-      -1,    46,    55,   290,    -1,    -1,   255,   256,    -1,   102,
-      -1,   103,    -1,   100,    -1,    99,   278,    -1,   258,    -1,
-     259,    -1,   268,    -1,   260,    -1,   269,    -1,    18,   261,
-      35,    -1,    33,   245,    35,    -1,    19,   261,    35,    -1,
-     120,   262,   121,    -1,    -1,   263,    -1,   264,    -1,   263,
-     122,   264,    -1,   266,    -1,   265,    -1,    46,    55,   267,
-      -1,   267,   276,    -1,   285,    -1,    24,    35,   273,    25,
-      35,    -1,    22,    35,   270,    23,    35,    -1,    -1,   271,
-      -1,   272,    -1,   271,   272,    -1,    20,   266,    35,    -1,
-      -1,   274,    -1,   275,    -1,   274,   275,    -1,    21,   266,
-      35,    -1,    -1,   276,   277,    -1,   101,    -1,    99,   278,
-      -1,    -1,   279,    -1,   120,    46,   121,    -1,   281,    35,
-      -1,   282,    -1,   283,    -1,    17,   284,    -1,    16,   284,
-      -1,    38,   293,   123,    48,    -1,    39,   293,   123,    49,
-      -1,    41,   293,   123,    46,    -1,    46,   293,   123,   286,
-      -1,   290,    -1,   286,    -1,    46,    -1,    48,    -1,    49,
-      -1,    47,    -1,    46,    -1,    47,    -1,    56,    -1,    57,
-      -1,    58,    -1,    59,    -1,    61,    -1,    60,    -1,    38,
-      -1,    39,    -1,    40,    -1,    41,    -1,   291,    -1,   292,
-      -1,   293,    -1,    50,    -1,    51,    -1,    53,    -1,    52,
-      -1,    37,    -1,   294,    -1,    42,    -1,    43,    -1,    45,
-      -1,    38,    -1,    39,    -1,    41,    -1,    40,    -1,    44,
-      -1,   130,    -1,   131,    -1,   132,    -1,   133,    -1,   130,
-      -1,   134,    -1,   135,    -1,   136,    -1,   137,    -1,   138,
-      -1,   132,    -1,   139,    -1,    69,    -1,    62,    -1,    63,
-      -1,    64,    -1,    66,    -1,    67,    -1,    65,    -1,    68,
-      -1,    57,    -1,    59,    -1,    58,    -1,    61,    -1,    60,
-      -1,    56,    -1,    75,    -1,    76,    -1,    77,    -1,    78,
-      -1,    81,    -1,    79,    -1,    80,    -1,    82,    -1,    83,
-      -1,    71,    -1,    72,    -1,    70,    -1,   299,   300,    -1,
-     143,    -1,   301,    -1,   300,   301,    -1,   302,    -1,   164,
-      35,    -1,   231,    -1,   160,    35,    -1,   146,    35,    -1,
-     190,    -1,    36,   303,    -1,   304,   303,    -1,   306,    -1,
-     198,    -1,   306,    -1,   305,   172,    36,    -1,   118,    -1,
-     205,   207,    35,    -1
+     140,     0,    -1,   116,   141,    -1,   115,   297,    -1,   142,
+     143,   142,    -1,    -1,    35,    -1,   144,    -1,   143,    35,
+     144,    -1,   167,    -1,   281,    -1,   163,    -1,   161,    -1,
+     162,    -1,   158,    -1,   159,    -1,   160,    -1,   145,    -1,
+     146,    -1,   147,    -1,   108,    37,   114,    -1,   148,   119,
+     149,   120,    35,   152,   105,    -1,   104,   292,    -1,    -1,
+     150,    -1,   151,    -1,   150,   121,   151,    -1,   292,    -1,
+      -1,   153,    -1,   154,    -1,   153,   154,    -1,   155,    35,
+      -1,   156,    -1,   157,    -1,   107,   109,    -1,   106,   288,
+     110,    -1,     5,    46,    -1,    10,    48,    -1,    11,    46,
+      -1,    34,    46,   121,    46,    -1,     3,    46,    -1,     4,
+      46,   122,    46,    -1,    13,   123,   164,   124,    -1,    -1,
+     165,    -1,   166,    -1,   165,   125,   166,    -1,    46,    -1,
+     169,   171,    35,   177,   185,   168,    -1,     7,    -1,     6,
+     170,    -1,   292,    -1,    46,    -1,    -1,   171,   172,    -1,
+      86,    -1,    83,    -1,    84,    -1,    85,    -1,    90,    -1,
+      92,    -1,    93,    -1,    91,   173,    -1,    88,   119,   170,
+     120,    -1,    87,   277,    -1,    89,   277,    -1,    94,   278,
+      -1,    95,   278,    -1,    96,   278,    -1,   119,   174,   120,
+      -1,    -1,   175,    -1,   176,    -1,   175,   121,   176,    -1,
+     292,    -1,    46,    -1,   212,    -1,   178,    -1,    -1,   178,
+     179,    -1,     8,   180,   181,    35,    -1,   288,   292,    -1,
+      -1,   181,   182,    -1,   255,    -1,   183,    -1,   184,    -1,
+     103,   119,   176,   120,    -1,    97,    -1,    -1,   185,   186,
+      -1,    36,   187,    -1,   187,    -1,   202,    -1,   219,    -1,
+     225,    -1,   226,    -1,   230,    -1,   279,    -1,   256,    -1,
+     231,    -1,   215,    -1,   201,    -1,   200,    -1,   197,    -1,
+     198,    -1,   188,    -1,   199,    -1,   189,    -1,   111,   190,
+      35,    -1,    -1,   119,   191,   120,    -1,    -1,   192,    -1,
+     193,    -1,   192,   121,   193,    -1,   112,    -1,   113,    -1,
+     111,   190,    -1,   194,    -1,   126,   195,   127,    -1,    -1,
+     195,   196,    -1,    35,    -1,   113,    -1,   112,    -1,   111,
+     190,    -1,    35,    -1,   159,    35,    -1,     1,    35,    -1,
+      44,   289,    35,    -1,    28,   250,    35,    -1,   203,    35,
+      -1,   204,   205,    -1,   214,    -1,    37,    -1,   206,    -1,
+     208,    -1,    -1,   207,    -1,   209,    -1,   207,   121,   209,
+      -1,   212,   122,   284,    -1,   210,    -1,   212,    -1,   285,
+      -1,   292,    -1,   291,    -1,   211,    -1,   249,   212,    -1,
+     123,   213,   124,    -1,   284,    -1,   213,   125,   284,    -1,
+     289,   122,   204,   210,   121,   207,    -1,   289,   122,   204,
+     210,    -1,   289,   122,   204,   212,   121,   207,    -1,   217,
+      35,    -1,    37,    -1,   293,    -1,   289,   122,    48,    -1,
+     289,   122,    49,    -1,   289,   122,   286,    -1,   289,   122,
+     291,    -1,   289,   122,   216,    -1,   289,   122,   218,    -1,
+     289,   122,   204,   212,    -1,   289,   122,   293,   212,    -1,
+     289,   122,    50,   212,    -1,   289,   296,   284,    -1,   289,
+      72,    48,    -1,   289,    72,    49,    -1,   289,    73,    48,
+      -1,   289,    73,    49,    -1,   289,    72,   289,    -1,   289,
+      73,   289,    -1,   289,   122,   294,   284,    -1,   289,   122,
+     289,   295,   284,    -1,   293,   212,   122,   284,    -1,    50,
+     212,   122,   284,    -1,    48,   295,   289,    -1,    49,   295,
+     289,    -1,    46,   295,   289,    -1,    46,   295,    46,    -1,
+      48,   295,    48,    -1,    49,   295,    49,    -1,    48,   295,
+      49,    -1,    49,   295,    48,    -1,   220,    35,    -1,   223,
+      44,    37,    45,   292,    -1,   223,    44,    38,    45,   292,
+      -1,   223,    44,    39,    45,   292,    -1,   223,    44,    40,
+      45,   292,    -1,   223,    44,    41,    45,   292,    -1,   223,
+      44,    42,    45,   292,    -1,   223,    44,    43,    45,   292,
+      -1,   223,    44,    45,    45,   292,    -1,   223,    44,    44,
+      45,   292,    -1,   223,   285,   224,   292,    -1,   223,    44,
+      50,   224,   292,    -1,   223,    37,   224,   292,    -1,   223,
+     291,   224,   292,    -1,   223,    38,   224,   292,    -1,   223,
+      39,   224,   292,    -1,   223,    40,   224,   292,    -1,   223,
+      41,   224,   292,    -1,   223,    42,   224,   292,    -1,   223,
+      43,   224,   292,    -1,   223,    45,    45,   292,    -1,   223,
+      45,   121,   292,    -1,   223,    44,    45,   292,    -1,   223,
+      44,   121,   292,    -1,   223,   221,    45,   292,    -1,   289,
+     287,   284,    -1,    48,   287,   289,    -1,    49,   287,   289,
+      -1,    46,   287,   289,    -1,    48,   287,    48,    -1,    48,
+     287,    49,    -1,    49,   287,    48,    -1,    49,   287,    49,
+      -1,    46,   287,    46,    -1,    46,   287,   222,    -1,    48,
+     287,    46,    -1,    49,   287,    46,    -1,    48,    -1,    49,
+      -1,    42,    -1,    43,    -1,    45,    -1,   121,    -1,    45,
+     292,    35,    -1,    12,   288,   227,    35,    -1,   228,    -1,
+     227,   121,   228,    -1,   292,   229,    -1,    -1,    97,    -1,
+       9,    46,   121,   249,    35,    -1,   232,    -1,   233,    -1,
+     242,    -1,    26,    35,   234,   237,    35,   239,    27,    35,
+      -1,    -1,   235,    -1,   236,    -1,   235,   236,    -1,    30,
+     265,    35,    -1,    29,   247,   238,    -1,    32,   249,    -1,
+      14,   249,    35,    15,   248,    -1,    -1,   121,   249,    -1,
+      -1,   240,    -1,   241,    -1,   240,   241,    -1,    31,   253,
+      35,    -1,   226,    -1,   243,    35,    -1,   250,   122,   244,
+      -1,   289,   122,   244,    -1,   244,    -1,   246,    -1,   245,
+      -1,   249,   128,   248,   260,    -1,   247,   260,    -1,   249,
+      -1,    46,    -1,   292,    -1,    50,    -1,    52,    -1,    46,
+      -1,   292,    -1,    50,    -1,   119,   251,   120,    -1,    -1,
+     252,    -1,   253,    -1,   252,   121,   253,    -1,   289,   254,
+      -1,    46,    54,   289,    -1,    -1,   254,   255,    -1,   101,
+      -1,   102,    -1,    99,    -1,    98,   277,    -1,   257,    -1,
+     258,    -1,   267,    -1,   259,    -1,   268,    -1,    18,   260,
+      35,    -1,    33,   244,    35,    -1,    19,   260,    35,    -1,
+     119,   261,   120,    -1,    -1,   262,    -1,   263,    -1,   262,
+     121,   263,    -1,   265,    -1,   264,    -1,    46,    54,   266,
+      -1,   266,   275,    -1,   284,    -1,    24,    35,   272,    25,
+      35,    -1,    22,    35,   269,    23,    35,    -1,    -1,   270,
+      -1,   271,    -1,   270,   271,    -1,    20,   265,    35,    -1,
+      -1,   273,    -1,   274,    -1,   273,   274,    -1,    21,   265,
+      35,    -1,    -1,   275,   276,    -1,   100,    -1,    98,   277,
+      -1,    -1,   278,    -1,   119,    46,   120,    -1,   280,    35,
+      -1,   281,    -1,   282,    -1,    17,   283,    -1,    16,   283,
+      -1,    38,   292,   122,    48,    -1,    39,   292,   122,    49,
+      -1,    41,   292,   122,    46,    -1,    46,   292,   122,   285,
+      -1,   289,    -1,   285,    -1,    48,    -1,    49,    -1,   286,
+      -1,    46,    -1,    47,    -1,    55,    -1,    56,    -1,    57,
+      -1,    58,    -1,    60,    -1,    59,    -1,    38,    -1,    39,
+      -1,    40,    -1,    41,    -1,   290,    -1,   291,    -1,   292,
+      -1,    50,    -1,    51,    -1,    53,    -1,    52,    -1,    37,
+      -1,   293,    -1,    42,    -1,    43,    -1,    45,    -1,    38,
+      -1,    39,    -1,    41,    -1,    40,    -1,    44,    -1,   129,
+      -1,   130,    -1,   131,    -1,   132,    -1,   129,    -1,   133,
+      -1,   134,    -1,   135,    -1,   136,    -1,   137,    -1,   131,
+      -1,   138,    -1,    68,    -1,    61,    -1,    62,    -1,    63,
+      -1,    65,    -1,    66,    -1,    64,    -1,    67,    -1,    56,
+      -1,    58,    -1,    57,    -1,    60,    -1,    59,    -1,    55,
+      -1,    74,    -1,    75,    -1,    76,    -1,    77,    -1,    80,
+      -1,    78,    -1,    79,    -1,    81,    -1,    82,    -1,    70,
+      -1,    71,    -1,    69,    -1,   298,   299,    -1,   142,    -1,
+     300,    -1,   299,   300,    -1,   301,    -1,   163,    35,    -1,
+     230,    -1,   159,    35,    -1,   145,    35,    -1,   189,    -1,
+      36,   302,    -1,   303,   302,    -1,   305,    -1,   197,    -1,
+     305,    -1,   304,   171,    36,    -1,   117,    -1,   204,   206,
+      35,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   554,   554,   555,   560,   566,   567,   570,   571,   574,
-     575,   576,   577,   578,   579,   580,   581,   582,   589,   590,
-     593,   597,   603,   610,   611,   614,   615,   618,   622,   623,
-     626,   627,   630,   633,   634,   637,   641,   652,   656,   658,
-     662,   668,   672,   676,   681,   682,   686,   688,   692,   696,
-     702,   706,   710,   711,   714,   715,   718,   720,   722,   724,
-     726,   728,   730,   732,   734,   736,   738,   740,   742,   744,
-     748,   753,   757,   761,   770,   781,   783,   785,   789,   798,
-     799,   812,   816,   821,   822,   826,   827,   828,   831,   838,
-     844,   845,   855,   857,   860,   861,   862,   863,   864,   865,
-     866,   867,   868,   869,   870,   871,   872,   873,   874,   880,
-     883,   888,   889,   894,   895,   898,   900,   908,   916,   917,
-     919,   922,   928,   929,   938,   939,   940,   941,   949,   953,
-     957,   966,   973,   980,   983,   984,   987,   996,  1003,  1006,
-    1007,  1010,  1011,  1014,  1050,  1052,  1056,  1058,  1063,  1065,
-    1069,  1092,  1096,  1098,  1107,  1118,  1130,  1140,  1143,  1144,
-    1147,  1156,  1165,  1170,  1175,  1196,  1201,  1242,  1260,  1267,
-    1272,  1283,  1294,  1305,  1316,  1321,  1326,  1331,  1341,  1360,
-    1394,  1396,  1398,  1400,  1402,  1404,  1406,  1408,  1413,  1422,
-    1424,  1426,  1428,  1430,  1432,  1434,  1436,  1438,  1440,  1452,
-    1457,  1459,  1461,  1463,  1465,  1467,  1469,  1471,  1473,  1475,
-    1477,  1479,  1481,  1512,  1538,  1546,  1555,  1564,  1566,  1568,
-    1570,  1572,  1576,  1581,  1583,  1588,  1589,  1592,  1593,  1596,
-    1597,  1600,  1608,  1612,  1614,  1618,  1622,  1623,  1626,  1641,
-    1645,  1646,  1649,  1661,  1662,  1666,  1668,  1672,  1676,  1678,
-    1680,  1686,  1687,  1692,  1693,  1697,  1699,  1708,  1710,  1714,
-    1718,  1720,  1722,  1726,  1727,  1730,  1750,  1757,  1759,  1769,
-    1786,  1788,  1790,  1794,  1803,  1808,  1815,  1816,  1820,  1822,
-    1826,  1828,  1833,  1834,  1838,  1840,  1842,  1844,  1854,  1858,
-    1859,  1860,  1861,  1864,  1869,  1880,  1887,  1892,  1893,  1897,
-    1899,  1903,  1904,  1907,  1911,  1915,  1919,  1928,  1938,  1939,
-    1944,  1946,  1951,  1956,  1957,  1961,  1963,  1967,  1973,  1974,
-    1978,  1980,  1988,  1989,  1993,  1997,  2000,  2001,  2004,  2008,
-    2012,  2014,  2016,  2018,  2026,  2027,  2031,  2032,  2033,  2034,
-    2037,  2038,  2041,  2042,  2043,  2044,  2045,  2046,  2049,  2050,
-    2051,  2052,  2060,  2063,  2064,  2075,  2076,  2077,  2078,  2082,
-    2083,  2086,  2087,  2088,  2089,  2090,  2091,  2092,  2093,  2096,
-    2097,  2098,  2101,  2102,  2103,  2104,  2105,  2106,  2107,  2108,
-    2109,  2110,  2111,  2112,  2113,  2114,  2115,  2116,  2117,  2118,
-    2119,  2120,  2121,  2122,  2123,  2129,  2130,  2131,  2132,  2133,
-    2134,  2135,  2136,  2137,  2138,  2139,  2140,  2152,  2160,  2164,
-    2165,  2168,  2169,  2170,  2171,  2172,  2173,  2176,  2178,  2179,
-    2182,  2183,  2186,  2190,  2195
+       0,   553,   553,   554,   559,   565,   566,   569,   570,   573,
+     574,   575,   576,   577,   578,   579,   580,   581,   588,   589,
+     592,   596,   602,   609,   610,   613,   614,   617,   621,   622,
+     625,   626,   629,   632,   633,   636,   640,   651,   655,   657,
+     661,   667,   671,   675,   680,   681,   685,   687,   691,   695,
+     701,   705,   709,   710,   713,   714,   717,   719,   721,   723,
+     725,   727,   729,   731,   733,   735,   737,   739,   741,   743,
+     747,   752,   756,   760,   769,   780,   782,   784,   788,   797,
+     798,   811,   815,   820,   821,   825,   826,   827,   830,   837,
+     843,   844,   854,   856,   859,   860,   861,   862,   863,   864,
+     865,   866,   867,   868,   869,   870,   871,   872,   873,   879,
+     882,   887,   888,   893,   894,   897,   899,   907,   915,   916,
+     918,   921,   927,   928,   937,   938,   939,   940,   948,   952,
+     956,   965,   972,   979,   982,   983,   986,   995,  1002,  1005,
+    1006,  1009,  1010,  1013,  1049,  1051,  1055,  1057,  1062,  1064,
+    1068,  1091,  1095,  1097,  1106,  1117,  1129,  1139,  1142,  1143,
+    1146,  1155,  1164,  1169,  1174,  1195,  1200,  1241,  1259,  1266,
+    1271,  1282,  1293,  1304,  1315,  1320,  1325,  1330,  1340,  1359,
+    1393,  1395,  1397,  1399,  1401,  1403,  1405,  1407,  1412,  1421,
+    1423,  1425,  1427,  1429,  1431,  1433,  1435,  1437,  1439,  1451,
+    1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,  1472,  1474,
+    1476,  1478,  1480,  1511,  1537,  1545,  1554,  1563,  1565,  1567,
+    1569,  1571,  1575,  1580,  1582,  1587,  1588,  1591,  1592,  1595,
+    1596,  1599,  1607,  1611,  1613,  1617,  1621,  1622,  1625,  1640,
+    1644,  1645,  1648,  1660,  1661,  1665,  1667,  1671,  1675,  1677,
+    1679,  1685,  1686,  1691,  1692,  1696,  1698,  1707,  1709,  1713,
+    1717,  1719,  1721,  1725,  1726,  1729,  1749,  1756,  1758,  1768,
+    1785,  1787,  1789,  1793,  1802,  1807,  1814,  1815,  1819,  1821,
+    1825,  1827,  1832,  1833,  1837,  1839,  1841,  1843,  1853,  1857,
+    1858,  1859,  1860,  1863,  1868,  1879,  1886,  1891,  1892,  1896,
+    1898,  1902,  1903,  1906,  1910,  1914,  1918,  1927,  1937,  1938,
+    1943,  1945,  1950,  1955,  1956,  1960,  1962,  1966,  1972,  1973,
+    1977,  1979,  1987,  1988,  1992,  1996,  1999,  2000,  2003,  2007,
+    2011,  2013,  2015,  2017,  2025,  2026,  2030,  2031,  2032,  2035,
+    2036,  2039,  2040,  2041,  2042,  2043,  2044,  2047,  2048,  2049,
+    2050,  2058,  2061,  2062,  2073,  2074,  2075,  2076,  2080,  2081,
+    2084,  2085,  2086,  2087,  2088,  2089,  2090,  2091,  2094,  2095,
+    2096,  2099,  2100,  2101,  2102,  2103,  2104,  2105,  2106,  2107,
+    2108,  2109,  2110,  2111,  2112,  2113,  2114,  2115,  2116,  2117,
+    2118,  2119,  2120,  2121,  2127,  2128,  2129,  2130,  2131,  2132,
+    2133,  2134,  2135,  2136,  2137,  2138,  2150,  2158,  2162,  2163,
+    2166,  2167,  2168,  2169,  2170,  2171,  2174,  2176,  2177,  2180,
+    2181,  2184,  2188,  2193
 };
 #endif
 
@@ -1121,52 +1119,51 @@
   "\"string\"", "\"if\"", "\"unless\"", "\"null\"", "\"goto\"",
   "\"string constant\"", "\"unicode string\"", "\"integer constant\"",
   "\"number constant\"", "\"PMC register\"", "\"number register\"",
-  "\"string register\"", "\"integer register\"", "\"constant-value\"",
-  "\"=>\"", "\"!=\"", "\"==\"", "\"<\"", "\"<=\"", "\">\"", "\">=\"",
-  "\">>>\"", "\">>\"", "\"<<\"", "\"//\"", "\"||\"", "\"&&\"", "\"~~\"",
-  "\".\"", "\">>>=\"", "\">>=\"", "\"<<=\"", "\"+=\"", "\"-=\"", "\"*=\"",
-  "\"%=\"", "\"**=\"", "\"/=\"", "\"|=\"", "\"&=\"", "\"//=\"", "\"~=\"",
-  "\".=\"", "\":init\"", "\":load\"", "\":main\"", "\":anon\"",
-  "\":method\"", "\":outer\"", "\":vtable\"", "\":lex\"", "\":multi\"",
-  "\":postcomp\"", "\":immediate\"", "\":subid\"", "\":instanceof\"",
-  "\":nsentry\"", "\":unique_reg\"", "\":named\"", "\":slurpy\"",
-  "\":flat\"", "\":optional\"", "\":opt_flag\"", "\":invocant\"",
-  "\".macro\"", "\".endm\"", "\".macro_local\"", "\".macro_label\"",
-  "\".macro_const\"", "\"macro-label\"", "\"macro-local\"",
-  "\"macro-identifier\"", "\"macro-id-argument\"", "\"macro-argument\"",
-  "\"macro-constant\"", "\"<pasm-input>\"", "\"<pir-input>\"",
-  "\".pcc_sub\"", "\"parrot-op\"", "'('", "')'", "','", "'='", "'['",
-  "']'", "';'", "'{'", "'}'", "'.'", "'-'", "'!'", "'~'", "'+'", "'/'",
-  "'*'", "'%'", "'|'", "'&'", "\"**\"", "$accept", "TOP", "pir_contents",
-  "opt_nl", "pir_chunks", "pir_chunk", "macro_definition", "macro_const",
-  "macro", "macro_header", "macro_parameters", "macro_params",
-  "macro_param", "macro_body", "macro_statements", "macro_statement",
-  "macro_instr", "macro_label_decl", "macro_local_decl", "loadlib",
-  "location_directive", "annotation", "hll_specifier", "hll_mapping",
-  "namespace_decl", "opt_namespace", "namespace", "namespace_slice",
-  "sub_def", "sub_end", "sub_head", "sub_id", "sub_flags", "sub_flag",
-  "multi_type_list", "opt_multi_types", "multi_types", "multi_type",
-  "parameter_list", "parameters", "parameter", "param", "param_flags",
-  "param_flag", "invocant_param", "unique_reg_flag", "instructions",
-  "instruction", "statement", "expansion_stat", "macro_expansion",
-  "opt_macro_args", "macro_args", "macro_arg_list", "macro_arg",
-  "braced_arg", "braced_contents", "braced_item", "empty_stat",
-  "location_stat", "error_stat", "null_stat", "getresults_stat",
-  "parrot_stat", "parrot_instruction", "parrot_op", "opt_op_args",
-  "op_args", "parrot_op_args", "keylist_assignment", "op_arg",
-  "op_arg_expr", "keyaccess", "keylist", "keys", "parrot_op_assign",
-  "assignment_stat", "rhs_ident", "assignment", "binary_expr",
-  "conditional_stat", "conditional_instr", "condition", "int_or_num",
-  "if_unless", "then", "goto_stat", "local_decl", "local_id_list",
-  "local_id", "has_unique_reg", "lex_decl", "invocation_stat",
-  "invocation", "long_invocation_stat", "opt_long_arguments",
-  "long_arguments", "long_argument", "long_invocation", "opt_ret_cont",
-  "opt_long_results", "long_results", "long_result",
-  "short_invocation_stat", "short_invocation", "simple_invocation",
-  "methodcall", "subcall", "sub", "method", "pmc_object",
-  "opt_target_list", "opt_list", "target_list", "result_target",
-  "target_flags", "target_flag", "return_stat", "return_instr",
-  "short_return_stat", "short_yield_stat", "arguments",
+  "\"string register\"", "\"integer register\"", "\"=>\"", "\"!=\"",
+  "\"==\"", "\"<\"", "\"<=\"", "\">\"", "\">=\"", "\">>>\"", "\">>\"",
+  "\"<<\"", "\"//\"", "\"||\"", "\"&&\"", "\"~~\"", "\".\"", "\">>>=\"",
+  "\">>=\"", "\"<<=\"", "\"+=\"", "\"-=\"", "\"*=\"", "\"%=\"", "\"**=\"",
+  "\"/=\"", "\"|=\"", "\"&=\"", "\"//=\"", "\"~=\"", "\".=\"", "\":init\"",
+  "\":load\"", "\":main\"", "\":anon\"", "\":method\"", "\":outer\"",
+  "\":vtable\"", "\":lex\"", "\":multi\"", "\":postcomp\"",
+  "\":immediate\"", "\":subid\"", "\":instanceof\"", "\":nsentry\"",
+  "\":unique_reg\"", "\":named\"", "\":slurpy\"", "\":flat\"",
+  "\":optional\"", "\":opt_flag\"", "\":invocant\"", "\".macro\"",
+  "\".endm\"", "\".macro_local\"", "\".macro_label\"", "\".macro_const\"",
+  "\"macro-label\"", "\"macro-local\"", "\"macro-identifier\"",
+  "\"macro-id-argument\"", "\"macro-argument\"", "\"macro-constant\"",
+  "\"<pasm-input>\"", "\"<pir-input>\"", "\".pcc_sub\"", "\"parrot-op\"",
+  "'('", "')'", "','", "'='", "'['", "']'", "';'", "'{'", "'}'", "'.'",
+  "'-'", "'!'", "'~'", "'+'", "'/'", "'*'", "'%'", "'|'", "'&'", "\"**\"",
+  "$accept", "TOP", "pir_contents", "opt_nl", "pir_chunks", "pir_chunk",
+  "macro_definition", "macro_const", "macro", "macro_header",
+  "macro_parameters", "macro_params", "macro_param", "macro_body",
+  "macro_statements", "macro_statement", "macro_instr", "macro_label_decl",
+  "macro_local_decl", "loadlib", "location_directive", "annotation",
+  "hll_specifier", "hll_mapping", "namespace_decl", "opt_namespace",
+  "namespace", "namespace_slice", "sub_def", "sub_end", "sub_head",
+  "sub_id", "sub_flags", "sub_flag", "multi_type_list", "opt_multi_types",
+  "multi_types", "multi_type", "parameter_list", "parameters", "parameter",
+  "param", "param_flags", "param_flag", "invocant_param",
+  "unique_reg_flag", "instructions", "instruction", "statement",
+  "expansion_stat", "macro_expansion", "opt_macro_args", "macro_args",
+  "macro_arg_list", "macro_arg", "braced_arg", "braced_contents",
+  "braced_item", "empty_stat", "location_stat", "error_stat", "null_stat",
+  "getresults_stat", "parrot_stat", "parrot_instruction", "parrot_op",
+  "opt_op_args", "op_args", "parrot_op_args", "keylist_assignment",
+  "op_arg", "op_arg_expr", "keyaccess", "keylist", "keys",
+  "parrot_op_assign", "assignment_stat", "rhs_ident", "assignment",
+  "binary_expr", "conditional_stat", "conditional_instr", "condition",
+  "int_or_num", "if_unless", "then", "goto_stat", "local_decl",
+  "local_id_list", "local_id", "has_unique_reg", "lex_decl",
+  "invocation_stat", "invocation", "long_invocation_stat",
+  "opt_long_arguments", "long_arguments", "long_argument",
+  "long_invocation", "opt_ret_cont", "opt_long_results", "long_results",
+  "long_result", "short_invocation_stat", "short_invocation",
+  "simple_invocation", "methodcall", "subcall", "sub", "method",
+  "pmc_object", "opt_target_list", "opt_list", "target_list",
+  "result_target", "target_flags", "target_flag", "return_stat",
+  "return_instr", "short_return_stat", "short_yield_stat", "arguments",
   "opt_arguments_list", "arguments_list", "argument", "named_arg",
   "short_arg", "arg", "long_return_stat", "long_yield_stat",
   "opt_yield_expressions", "yield_expressions", "yield_expression",
@@ -1197,58 +1194,58 @@
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-      40,    41,    44,    61,    91,    93,    59,   123,   125,    46,
-      45,    33,   126,    43,    47,    42,    37,   124,    38,   375
+     365,   366,   367,   368,   369,   370,   371,   372,   373,    40,
+      41,    44,    61,    91,    93,    59,   123,   125,    46,    45,
+      33,   126,    43,    47,    42,    37,   124,    38,   374
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   140,   141,   141,   142,   143,   143,   144,   144,   145,
-     145,   145,   145,   145,   145,   145,   145,   145,   146,   146,
-     147,   148,   149,   150,   150,   151,   151,   152,   153,   153,
-     154,   154,   155,   156,   156,   157,   158,   159,   160,   160,
-     161,   162,   163,   164,   165,   165,   166,   166,   167,   168,
-     169,   170,   171,   171,   172,   172,   173,   173,   173,   173,
-     173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
-     174,   175,   175,   176,   176,   177,   177,   177,   178,   179,
-     179,   180,   181,   182,   182,   183,   183,   183,   184,   185,
-     186,   186,   187,   187,   188,   188,   188,   188,   188,   188,
-     188,   188,   188,   188,   188,   188,   188,   188,   188,   189,
-     190,   191,   191,   192,   192,   193,   193,   194,   194,   194,
-     194,   195,   196,   196,   197,   197,   197,   197,   198,   199,
-     200,   201,   202,   203,   204,   204,   205,   206,   206,   207,
-     207,   208,   208,   209,   210,   210,   211,   211,   211,   211,
-     212,   213,   214,   214,   215,   215,   215,   216,   217,   217,
-     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
-     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
-     219,   219,   219,   219,   219,   219,   219,   219,   220,   221,
-     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
-     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
-     221,   221,   221,   222,   222,   222,   222,   222,   222,   222,
-     222,   222,   222,   222,   222,   223,   223,   224,   224,   225,
-     225,   226,   227,   228,   228,   229,   230,   230,   231,   232,
-     233,   233,   234,   235,   235,   236,   236,   237,   238,   238,
-     238,   239,   239,   240,   240,   241,   241,   242,   242,   243,
-     244,   244,   244,   245,   245,   246,   247,   248,   248,   249,
-     249,   249,   249,   250,   250,   251,   252,   252,   253,   253,
-     254,   254,   255,   255,   256,   256,   256,   256,   257,   258,
-     258,   258,   258,   259,   259,   260,   261,   262,   262,   263,
-     263,   264,   264,   265,   266,   267,   268,   269,   270,   270,
-     271,   271,   272,   273,   273,   274,   274,   275,   276,   276,
-     277,   277,   278,   278,   279,   280,   281,   281,   282,   283,
-     284,   284,   284,   284,   285,   285,   286,   286,   286,   286,
-     287,   287,   288,   288,   288,   288,   288,   288,   289,   289,
-     289,   289,   290,   291,   291,   292,   292,   292,   292,   293,
-     293,   294,   294,   294,   294,   294,   294,   294,   294,   295,
-     295,   295,   296,   296,   296,   296,   296,   296,   296,   296,
-     296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
-     296,   296,   296,   296,   296,   297,   297,   297,   297,   297,
-     297,   297,   297,   297,   297,   297,   297,   298,   299,   300,
-     300,   301,   301,   301,   301,   301,   301,   302,   302,   302,
-     303,   303,   304,   305,   306
+       0,   139,   140,   140,   141,   142,   142,   143,   143,   144,
+     144,   144,   144,   144,   144,   144,   144,   144,   145,   145,
+     146,   147,   148,   149,   149,   150,   150,   151,   152,   152,
+     153,   153,   154,   155,   155,   156,   157,   158,   159,   159,
+     160,   161,   162,   163,   164,   164,   165,   165,   166,   167,
+     168,   169,   170,   170,   171,   171,   172,   172,   172,   172,
+     172,   172,   172,   172,   172,   172,   172,   172,   172,   172,
+     173,   174,   174,   175,   175,   176,   176,   176,   177,   178,
+     178,   179,   180,   181,   181,   182,   182,   182,   183,   184,
+     185,   185,   186,   186,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   188,
+     189,   190,   190,   191,   191,   192,   192,   193,   193,   193,
+     193,   194,   195,   195,   196,   196,   196,   196,   197,   198,
+     199,   200,   201,   202,   203,   203,   204,   205,   205,   206,
+     206,   207,   207,   208,   209,   209,   210,   210,   210,   210,
+     211,   212,   213,   213,   214,   214,   214,   215,   216,   216,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     218,   218,   218,   218,   218,   218,   218,   218,   219,   220,
+     220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
+     220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
+     220,   220,   220,   221,   221,   221,   221,   221,   221,   221,
+     221,   221,   221,   221,   221,   222,   222,   223,   223,   224,
+     224,   225,   226,   227,   227,   228,   229,   229,   230,   231,
+     232,   232,   233,   234,   234,   235,   235,   236,   237,   237,
+     237,   238,   238,   239,   239,   240,   240,   241,   241,   242,
+     243,   243,   243,   244,   244,   245,   246,   247,   247,   248,
+     248,   248,   248,   249,   249,   250,   251,   251,   252,   252,
+     253,   253,   254,   254,   255,   255,   255,   255,   256,   257,
+     257,   257,   257,   258,   258,   259,   260,   261,   261,   262,
+     262,   263,   263,   264,   265,   266,   267,   268,   269,   269,
+     270,   270,   271,   272,   272,   273,   273,   274,   275,   275,
+     276,   276,   277,   277,   278,   279,   280,   280,   281,   282,
+     283,   283,   283,   283,   284,   284,   285,   285,   285,   286,
+     286,   287,   287,   287,   287,   287,   287,   288,   288,   288,
+     288,   289,   290,   290,   291,   291,   291,   291,   292,   292,
+     293,   293,   293,   293,   293,   293,   293,   293,   294,   294,
+     294,   295,   295,   295,   295,   295,   295,   295,   295,   295,
+     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
+     295,   295,   295,   295,   296,   296,   296,   296,   296,   296,
+     296,   296,   296,   296,   296,   296,   297,   298,   299,   299,
+     300,   300,   300,   300,   300,   300,   301,   301,   301,   302,
+     302,   303,   304,   305
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1294,9 +1291,9 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
-       2,     1,     2,     1,     2,     2,     1,     2,     2,     1,
-       1,     1,     3,     1,     3
+       1,     1,     1,     1,     1,     1,     2,     1,     1,     2,
+       1,     2,     1,     2,     2,     1,     2,     2,     1,     1,
+       1,     3,     1,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1304,66 +1301,66 @@
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     5,     5,     0,     6,   408,     3,     0,     2,     0,
+       0,     5,     5,     0,     6,   407,     3,     0,     2,     0,
        1,     0,     0,     0,     0,     0,   136,     0,     0,   111,
-     423,     0,    18,    19,     0,     0,     0,   416,   139,   413,
-     407,   409,   411,     0,    54,   419,     0,     0,     0,     0,
+     422,     0,    18,    19,     0,     0,     0,   415,   139,   412,
+     406,   408,   410,     0,    54,   418,     0,     0,     0,     0,
        0,     0,     5,     7,    17,    14,    15,    16,    12,    13,
-      11,     9,    54,    10,     0,    38,    39,    44,   128,   420,
-     417,   421,   359,   364,   365,   367,   366,   361,   362,   368,
-     363,    22,   360,     0,   113,     0,   415,    23,   414,   412,
-     336,   339,   337,   338,   355,   356,   358,   357,     0,     0,
-     140,   141,   144,   149,   145,     0,   146,   148,   147,   410,
-     418,     0,    41,     0,    37,    53,    51,    52,     0,     0,
-       0,     0,   328,     0,     6,     4,     0,     0,    48,     0,
-      45,    46,    20,   111,   117,   118,   122,     0,   114,   115,
-     120,   110,     0,    24,    25,    27,   355,     0,   152,   335,
-     334,   352,   353,   354,   424,     0,   150,   422,    57,    58,
-      59,    56,   322,     0,   322,    60,     0,    61,    62,     0,
-       0,     0,    55,     0,     0,     0,     0,     0,     0,     8,
-      79,   274,     0,   273,    43,     0,   119,     0,   112,     0,
-       0,     0,   151,     0,   142,     0,    65,   323,     0,    66,
-      71,    63,    67,    68,    69,    42,     0,     0,     0,     0,
-      40,    90,    78,   238,    47,   124,   111,   126,   125,   121,
-     123,   116,    28,    26,   153,     0,     0,    76,     0,    72,
-      73,    77,    75,   330,   331,   332,   333,     0,     0,    80,
-     127,     0,     0,     0,    29,    30,     0,    33,    34,   324,
-      64,    70,     0,     0,    50,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   136,   361,   362,   368,   363,
-     268,   355,   276,     0,    49,    91,    93,   107,   109,   105,
-     106,   108,   104,   103,    94,     0,   139,   135,   102,     0,
-      95,     0,     0,    96,    97,    98,   101,   239,   240,   241,
-       0,   262,   264,   263,     0,   267,     0,   100,   288,   289,
-     291,   290,   292,    99,     0,   326,   327,     0,   354,   360,
-     348,   349,   350,   351,    83,     0,     0,    35,    21,    31,
-      32,    74,   130,     0,   329,   297,     0,     0,   308,   313,
-     243,     0,     0,    92,     0,     0,     0,     0,     0,   277,
-     278,   282,   129,   133,   134,   137,   138,   145,   157,   188,
-     359,   364,   365,   367,   366,   361,   362,   368,   363,   336,
-     337,   338,     0,     0,     0,   353,   259,   266,     0,     0,
-     325,   406,   404,   405,     0,     0,   395,   396,   397,   398,
-     400,   401,   399,   402,   403,     0,     0,     0,     0,    82,
-      36,     0,   233,   236,   336,     0,   298,   299,   302,   301,
-     318,   305,   293,   295,     0,     0,   309,   310,     0,     0,
-     314,   315,     0,     0,   244,   245,   132,   294,   131,   231,
-       0,     0,   275,     0,   280,     0,   229,   230,     0,     0,
+      11,     9,    54,    10,     0,    38,    39,    44,   128,   419,
+     416,   420,   358,   363,   364,   366,   365,   360,   361,   367,
+     362,    22,   359,     0,   113,     0,   414,    23,   413,   411,
+     339,   340,   336,   337,   354,   355,   357,   356,     0,     0,
+     140,   141,   144,   149,   145,     0,   146,   338,   148,   147,
+     409,   417,     0,    41,     0,    37,    53,    51,    52,     0,
+       0,     0,     0,   328,     0,     6,     4,     0,     0,    48,
+       0,    45,    46,    20,   111,   117,   118,   122,     0,   114,
+     115,   120,   110,     0,    24,    25,    27,   354,     0,   152,
+     335,   334,   351,   352,   353,   423,     0,   150,   421,    57,
+      58,    59,    56,   322,     0,   322,    60,     0,    61,    62,
+       0,     0,     0,    55,     0,     0,     0,     0,     0,     0,
+       8,    79,   274,     0,   273,    43,     0,   119,     0,   112,
+       0,     0,     0,   151,     0,   142,     0,    65,   323,     0,
+      66,    71,    63,    67,    68,    69,    42,     0,     0,     0,
+       0,    40,    90,    78,   238,    47,   124,   111,   126,   125,
+     121,   123,   116,    28,    26,   153,     0,     0,    76,     0,
+      72,    73,    77,    75,   330,   331,   332,   333,     0,     0,
+      80,   127,     0,     0,     0,    29,    30,     0,    33,    34,
+     324,    64,    70,     0,     0,    50,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   136,   360,   361,   367,
+     362,   268,   354,   276,     0,    49,    91,    93,   107,   109,
+     105,   106,   108,   104,   103,    94,     0,   139,   135,   102,
+       0,    95,     0,     0,    96,    97,    98,   101,   239,   240,
+     241,     0,   262,   264,   263,     0,   267,     0,   100,   288,
+     289,   291,   290,   292,    99,     0,   326,   327,     0,   353,
+     359,   347,   348,   349,   350,    83,     0,     0,    35,    21,
+      31,    32,    74,   130,     0,   329,   297,     0,     0,   308,
+     313,   243,     0,     0,    92,     0,     0,     0,     0,     0,
+     277,   278,   282,   129,   133,   134,   137,   138,   145,   157,
+     188,   358,   363,   364,   366,   365,   360,   361,   367,   362,
+     339,   336,   337,     0,     0,     0,   352,   259,   266,     0,
+       0,   325,   405,   403,   404,     0,     0,   394,   395,   396,
+     397,   399,   400,   398,   401,   402,     0,     0,     0,     0,
+      82,    36,     0,   233,   236,   339,     0,   298,   299,   302,
+     301,   318,   305,   293,   295,     0,     0,   309,   310,     0,
+       0,   314,   315,     0,     0,   244,   245,   132,   294,   131,
+     231,     0,     0,   275,     0,   280,     0,   229,   230,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   342,   343,
-     344,   345,   347,   346,     0,     0,     0,     0,     0,     0,
-       0,   272,   270,   271,     0,   269,   260,   170,   171,   174,
-     172,   173,   175,   359,   268,   341,   160,   161,   355,   369,
-     370,   371,     0,   164,   165,   261,   162,     0,   353,   360,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   341,
+     342,   343,   344,   346,   345,     0,     0,     0,     0,     0,
+       0,     0,   272,   270,   271,     0,   269,   260,   170,   171,
+     174,   172,   173,   175,   358,   268,   160,   161,   354,   368,
+     369,   370,     0,   164,   165,   261,   162,     0,   352,   359,
        0,   169,     0,    81,    89,   322,   286,   284,   285,     0,
       84,    86,    87,    85,   232,     0,   237,   235,     0,   296,
        0,   304,     0,     0,   311,     0,     0,   316,     0,     0,
        0,     0,     0,   246,   179,   281,   279,   283,   143,   200,
      202,   203,   204,   205,   206,   207,     0,     0,     0,     0,
-       0,     0,     0,     0,   363,   210,     0,   211,   208,   209,
+       0,     0,     0,     0,   362,   210,     0,   211,   208,   209,
      221,   225,   226,   222,   216,   223,   217,   218,   214,   224,
-     219,   220,   215,   212,   198,   213,   201,   265,   394,   389,
-     391,   390,   393,   392,   382,   383,   384,   387,   385,   386,
-     388,   381,   373,   379,   372,   374,   375,   376,   377,   378,
-     380,     0,     0,     0,   168,   155,   166,     0,   167,   176,
+     219,   220,   215,   212,   198,   213,   201,   265,   393,   388,
+     390,   389,   392,   391,   381,   382,   383,   386,   384,   385,
+     387,   380,   372,   378,   371,   373,   374,   375,   376,   377,
+     379,     0,     0,     0,   168,   155,   166,     0,   167,   176,
      178,   287,     0,   234,   303,   300,   322,   320,   319,   312,
      307,   317,   306,   247,     0,   251,   267,   249,   253,   189,
      190,   191,   192,   193,   194,   195,   197,   196,   199,   183,
@@ -1377,419 +1374,415 @@
 static const yytype_int16 yydefgoto[] =
 {
       -1,     3,     8,     5,    42,    43,    21,    22,    23,    24,
-     132,   133,   134,   233,   234,   235,   236,   237,   238,    45,
-      25,    47,    48,    49,    26,   119,   120,   121,    51,   264,
-      52,   106,   101,   162,   191,   218,   219,   220,   201,   202,
-     229,   314,   388,   500,   501,   502,   227,   265,   266,   267,
-      27,    75,   127,   128,   129,   130,   177,   210,    59,   270,
-     271,   272,   273,   274,   275,    28,   344,    89,    90,   346,
-      91,    92,    93,    94,   137,   277,   278,   483,   279,   484,
-     280,   281,   362,   553,   282,   428,   283,   284,   391,   392,
-     507,    29,   286,   287,   288,   413,   414,   415,   522,   644,
-     647,   648,   649,   289,   290,   291,   292,   293,   294,   464,
-      95,   296,   338,   339,   340,   424,   503,   297,   298,   299,
-     300,   326,   395,   396,   397,   398,   399,   400,   301,   302,
-     405,   406,   407,   409,   410,   411,   511,   608,   186,   187,
-     303,   304,    53,   306,   112,   401,   139,   486,   454,   315,
-     140,   141,   142,   143,    72,   490,   591,   386,     6,     7,
+     133,   134,   135,   234,   235,   236,   237,   238,   239,    45,
+      25,    47,    48,    49,    26,   120,   121,   122,    51,   265,
+      52,   107,   102,   163,   192,   219,   220,   221,   202,   203,
+     230,   315,   389,   500,   501,   502,   228,   266,   267,   268,
+      27,    75,   128,   129,   130,   131,   178,   211,    59,   271,
+     272,   273,   274,   275,   276,    28,   345,    89,    90,   347,
+      91,    92,    93,    94,   138,   278,   279,   483,   280,   484,
+     281,   282,   363,   553,   283,   429,   284,   285,   392,   393,
+     507,    29,   287,   288,   289,   414,   415,   416,   522,   644,
+     647,   648,   649,   290,   291,   292,   293,   294,   295,   465,
+      95,   297,   339,   340,   341,   425,   503,   298,   299,   300,
+     301,   327,   396,   397,   398,   399,   400,   401,   302,   303,
+     406,   407,   408,   410,   411,   412,   511,   608,   187,   188,
+     304,   305,    53,   307,   113,   402,   140,    97,   455,   316,
+     141,   142,   143,   144,    72,   490,   591,   387,     6,     7,
       30,    31,    32,    60,    33,    34,    35
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -593
+#define YYPACT_NINF -596
 static const yytype_int16 yypact[] =
 {
-     118,     6,     6,    46,  -593,  -593,  -593,    14,  -593,    25,
-    -593,    69,     9,    81,    13,   132,  -593,   627,   106,    27,
-    -593,   128,  -593,  -593,    60,   192,   213,  -593,   549,  -593,
-      14,  -593,  -593,   132,  -593,  -593,   138,   210,   212,  1017,
-     103,   214,   234,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,   152,  -593,  -593,   230,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,   162,    48,   247,  -593,   627,  -593,  -593,
-    -593,  -593,  -593,  -593,   159,  -593,  -593,  -593,   725,   250,
-     168,  -593,  -593,  -593,  -593,   167,  -593,  -593,   173,  -593,
-    -593,   604,  -593,   169,  -593,  -593,  -593,  -593,   627,   627,
-     627,   627,  -593,   178,    25,  -593,   590,  1003,  -593,   177,
-     181,  -593,  -593,    27,  -593,  -593,  -593,   187,   189,  -593,
-    -593,  -593,   188,   202,  -593,  -593,  -593,   142,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,   549,  -593,  -593,  -593,  -593,
-    -593,  -593,   205,   206,   205,  -593,   211,  -593,  -593,   205,
-     205,   205,  -593,   286,   216,   217,   218,   219,   287,  -593,
-    -593,  -593,   299,  -593,  -593,   230,  -593,    -3,  -593,    48,
-     300,   627,  -593,   725,  -593,   290,  -593,  -593,  1017,  -593,
-      24,  -593,  -593,  -593,  -593,  -593,   289,   295,   301,    49,
-    -593,  -593,   337,  -593,  -593,  -593,    27,  -593,  -593,  -593,
-    -593,  -593,   136,  -593,  -593,   225,   228,  -593,   229,   231,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,   277,   200,  -593,
-    -593,   200,   245,   251,   136,  -593,   321,  -593,  -593,  -593,
-    -593,  -593,    24,   323,  -593,   200,   103,   239,   239,   326,
-     327,   328,   244,   989,   529,   632,   751,   768,   972,   627,
-    -593,    84,   938,   331,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,   332,   549,  -593,  -593,   334,
-    -593,   335,   785,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-     336,  -593,  -593,  -593,   239,   243,   252,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,   338,  -593,  -593,   664,    11,   167,
-    -593,  -593,  -593,  -593,  -593,   627,   263,  -593,  -593,  -593,
-    -593,  -593,  -593,   627,  -593,   802,   341,   343,   359,   360,
-     350,   351,   353,  -593,   355,   357,   262,   339,   272,   273,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,   276,  -593,  -593,
-      -6,    -6,    -6,    -6,    -6,    -6,    -6,   455,    -5,   163,
-     163,   163,   356,    -6,   163,    -6,  -593,  -593,   408,   989,
-    -593,  -593,  -593,  -593,   870,   887,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,   149,   725,   279,    79,  -593,
-    -593,   -20,  -593,   298,   345,   282,   285,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,   725,   386,   359,  -593,   725,   393,
-     360,  -593,   725,    76,   350,  -593,  -593,  -593,  -593,  -593,
-     725,   972,  -593,   938,   130,   725,  -593,  -593,   627,   627,
-     627,   627,   627,   627,   627,   374,   375,   376,   377,   378,
-     379,   380,   382,  1027,    -6,   627,   627,   627,  -593,  -593,
-    -593,  -593,  -593,  -593,   819,   836,   853,   627,   627,   725,
-     627,  -593,  -593,  -593,   239,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,   432,    20,  -593,   594,   594,    84,  -593,
-    -593,  -593,   549,  -593,  -593,  -593,  -593,   594,   396,   -21,
-     725,  -593,   725,  -593,  -593,   205,  -593,  -593,  -593,   312,
-    -593,  -593,  -593,  -593,  -593,   627,  -593,  -593,   725,  -593,
-     802,   151,   398,   399,  -593,   400,   402,  -593,   403,  1003,
-     989,  1003,   404,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,   627,   627,   627,   627,
-     627,   627,   627,   627,   627,  -593,   627,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,   955,   904,   921,  -593,   320,   322,   725,  -593,  -593,
-    -593,  -593,    24,  -593,  -593,  -593,   205,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,   421,   340,  -593,  -593,    21,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,   549,   549,  -593,
-     342,  -593,   446,  1003,  -593,   938,  -593,   437,    21,  -593,
-     168,   168,  -593,   408,  -593,   431,   433,  -593,  -593,  -593,
-    -593
+     -67,    -7,    -7,    38,  -596,  -596,  -596,    20,  -596,    72,
+    -596,    -2,    36,    51,   -15,    88,  -596,   333,    67,    52,
+    -596,    95,  -596,  -596,    56,   120,   150,  -596,   610,  -596,
+      20,  -596,  -596,    88,  -596,  -596,   137,   166,   168,  1000,
+      97,   170,   187,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,   102,  -596,  -596,   178,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,   114,    33,   194,  -596,   333,  -596,  -596,
+    -596,  -596,  -596,  -596,   107,  -596,  -596,  -596,   757,   196,
+     111,  -596,  -596,  -596,  -596,   110,  -596,  -596,  -596,   113,
+    -596,  -596,   628,  -596,   112,  -596,  -596,  -596,  -596,   333,
+     333,   333,   333,  -596,   118,    72,  -596,   609,   360,  -596,
+     116,   117,  -596,  -596,    52,  -596,  -596,  -596,   121,   123,
+    -596,  -596,  -596,   125,   128,  -596,  -596,  -596,    -8,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,   610,  -596,  -596,  -596,
+    -596,  -596,  -596,   132,   134,   132,  -596,   135,  -596,  -596,
+     132,   132,   132,  -596,   209,   139,   152,   153,   154,   213,
+    -596,  -596,  -596,   246,  -596,  -596,   178,  -596,     0,  -596,
+      33,   247,   333,  -596,   757,  -596,   238,  -596,  -596,  1000,
+    -596,   226,  -596,  -596,  -596,  -596,  -596,   241,   242,   244,
+     115,  -596,  -596,   288,  -596,  -596,  -596,    52,  -596,  -596,
+    -596,  -596,  -596,   103,  -596,  -596,   177,   181,  -596,   183,
+     184,  -596,  -596,  -596,  -596,  -596,  -596,  -596,   276,   180,
+    -596,  -596,   180,   199,   205,   103,  -596,   289,  -596,  -596,
+    -596,  -596,  -596,   226,   290,  -596,   180,    97,   204,   204,
+     306,   307,   309,   227,   293,   527,   665,   779,   796,   590,
+     333,  -596,   -23,   966,   312,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,   315,   610,  -596,  -596,
+     316,  -596,   319,   813,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,   320,  -596,  -596,  -596,   204,   228,   235,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,   323,  -596,  -596,   693,   -55,
+     110,  -596,  -596,  -596,  -596,  -596,   333,   249,  -596,  -596,
+    -596,  -596,  -596,  -596,   333,  -596,   830,   325,   327,   344,
+     345,   335,   332,   346,  -596,   351,   353,   258,   314,   270,
+     271,  -596,  -596,  -596,  -596,  -596,  -596,  -596,   269,  -596,
+    -596,   -30,   -30,   -30,   -30,   -30,   -30,   -30,   455,   -19,
+     148,   148,   148,   348,   -30,   148,   -30,  -596,  -596,   408,
+     293,  -596,  -596,  -596,  -596,   898,   915,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,   149,   757,   272,    55,
+    -596,  -596,   -22,  -596,   322,   366,   301,   302,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,   757,   399,   344,  -596,   757,
+     400,   345,  -596,   757,    13,   335,  -596,  -596,  -596,  -596,
+    -596,   757,   590,  -596,   966,    80,   757,  -596,  -596,   333,
+     333,   333,   333,   333,   333,   333,   379,   381,   383,   387,
+     388,   389,   390,   392,  1010,   -30,   333,   333,   333,  -596,
+    -596,  -596,  -596,  -596,  -596,   847,   864,   881,   333,   333,
+     757,   333,  -596,  -596,  -596,   204,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,   429,   539,   623,   623,   -23,  -596,
+    -596,  -596,   610,  -596,  -596,  -596,  -596,   623,   403,   -14,
+     757,  -596,   757,  -596,  -596,   132,  -596,  -596,  -596,   321,
+    -596,  -596,  -596,  -596,  -596,   333,  -596,  -596,   757,  -596,
+     830,    34,   404,   421,  -596,   426,   427,  -596,   428,   360,
+     293,   360,   448,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,   333,   333,   333,   333,
+     333,   333,   333,   333,   333,  -596,   333,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,   983,   932,   949,  -596,   363,   364,   757,  -596,  -596,
+    -596,  -596,   226,  -596,  -596,  -596,   132,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,   451,   368,  -596,  -596,    31,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,   610,   610,  -596,
+     367,  -596,   475,   360,  -596,   966,  -596,   416,    31,  -596,
+     111,   111,  -596,   408,  -596,   456,   466,  -596,  -596,  -596,
+    -596
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -593,  -593,  -593,    32,  -593,   372,     8,  -593,  -593,  -593,
-    -593,  -593,   306,  -593,  -593,   255,  -593,  -593,  -593,  -593,
-      -1,  -593,  -593,  -593,    10,  -593,  -593,   315,  -593,  -593,
-    -593,   303,   449,  -593,  -593,  -593,  -593,  -237,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,   253,  -593,
-    -207,  -102,  -593,  -593,   329,  -593,  -593,  -593,  -183,  -593,
-    -593,  -593,  -593,  -593,  -593,  -217,  -593,   233,  -366,  -593,
-     361,    28,  -593,   -91,  -593,  -593,  -593,  -593,  -593,  -593,
-    -593,  -593,  -593,  -593,  -593,   -90,  -593,  -592,  -593,     7,
-    -593,  -179,  -593,  -593,  -593,  -593,  -593,    99,  -593,  -593,
-    -593,  -593,  -134,  -593,  -593,  -240,  -593,  -593,    -4,  -136,
-    -115,   266,  -593,  -593,  -414,  -593,   107,  -593,  -593,  -593,
-    -593,  -236,  -593,  -593,    22,  -593,  -201,    26,  -593,  -593,
-    -593,  -593,   127,  -593,  -593,   125,  -593,  -593,  -147,    56,
-    -593,  -593,  -121,  -593,   291,   -82,   -27,  -593,  -155,  -124,
-    -209,  -593,   -25,   -17,  -211,  -593,  -341,  -593,  -593,  -593,
-    -593,   506,  -593,   509,  -593,  -593,    39
+    -596,  -596,  -596,    16,  -596,   391,     5,  -596,  -596,  -596,
+    -596,  -596,   326,  -596,  -596,   275,  -596,  -596,  -596,  -596,
+       7,  -596,  -596,  -596,    11,  -596,  -596,   331,  -596,  -596,
+    -596,   324,   459,  -596,  -596,  -596,  -596,  -239,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -596,  -596,  -596,   257,  -596,
+    -203,  -100,  -596,  -596,   334,  -596,  -596,  -596,  -196,  -596,
+    -596,  -596,  -596,  -596,  -596,  -218,  -596,   240,  -498,  -596,
+     369,    49,  -596,   -93,  -596,  -596,  -596,  -596,  -596,  -596,
+    -596,  -596,  -596,  -596,  -596,  -285,  -596,  -595,  -596,    27,
+    -596,  -194,  -596,  -596,  -596,  -596,  -596,   119,  -596,  -596,
+    -596,  -596,  -130,  -596,  -596,  -237,  -596,  -596,    15,  -120,
+    -113,   287,  -596,  -596,  -418,  -596,   122,  -596,  -596,  -596,
+    -596,  -240,  -596,  -596,    40,  -596,  -295,    46,  -596,  -596,
+    -596,  -596,   141,  -596,  -596,   130,  -596,  -596,  -147,   -74,
+    -596,  -596,  -192,  -596,   295,   -81,   -27,   171,  -214,  -166,
+    -209,  -596,   -25,   -17,  -216,  -596,  -436,  -596,  -596,  -596,
+    -596,   526,  -596,   525,  -596,  -596,    32
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -360
+#define YYTABLE_NINF -359
 static const yytype_int16 yytable[] =
 {
-      71,    96,   172,    97,   146,   321,   138,   189,    46,   526,
-     276,    98,   327,   332,  -159,   504,   309,    44,   307,    50,
-     268,   176,   107,    11,    12,    13,   646,    14,    36,    37,
-      38,    39,   205,   245,     9,    12,    13,   276,    14,   426,
-     446,     4,    40,   309,   269,   307,    10,   268,   285,   334,
-      15,    16,   645,   341,    61,  -340,   646,    55,   367,    41,
-     135,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-     217,   269,    61,   364,   115,   285,   568,   569,   570,   571,
-     572,   573,   574,   575,   576,   577,   578,   579,   580,   581,
-     519,   164,   165,   166,   167,    80,    81,    82,    83,   221,
-     173,   214,   505,    88,   230,   520,   305,   316,   521,   206,
-     207,   208,   295,    46,   493,    54,   427,   447,    96,    17,
-      97,   323,    44,    18,    50,   209,    19,    56,    98,   466,
-      17,  -273,    20,   305,    18,   592,   593,    57,   295,   295,
-    -273,   108,   109,    73,   110,   485,   597,    74,    88,   111,
-     582,   221,   583,   584,   585,   586,   587,   588,   589,   590,
-     123,   124,   125,    76,   135,   469,   472,    58,   482,    16,
-     336,   107,   226,   222,   489,   126,   487,   494,   495,   496,
-      77,   497,   498,   499,   102,   347,   473,    63,    64,    65,
-      66,    67,    68,    69,    70,   474,   475,   476,   477,   478,
-      85,    86,    87,   512,  -274,   455,   456,   515,    88,   459,
-     308,   518,   525,  -274,   341,   192,   193,   194,   387,   448,
-     449,   450,   451,   452,   453,   222,   263,    78,   567,   495,
-     496,   655,   497,   498,     1,     2,   173,   308,   310,   311,
-     312,   313,   335,   231,   232,   554,   558,   562,    79,    96,
-     606,    97,   607,   263,   295,   363,   103,   365,   104,    98,
-     113,   429,   430,   431,   432,   433,   434,   182,   183,   114,
-     295,   650,   651,   458,   117,   460,   118,   122,   243,   479,
-     480,   481,   131,  -274,   244,   144,    11,    12,    13,   245,
-     145,    88,   163,   246,    40,   247,   248,  -273,   389,   249,
-     168,   250,   174,   251,   491,   252,   393,   175,   178,   180,
-     253,   179,    58,   254,   255,    63,    64,    65,    66,   256,
-     257,   258,   259,   260,   181,   185,   188,   261,    85,    86,
-      87,   190,   195,   200,   203,   212,   215,   223,   524,   196,
-     197,   198,   199,   528,   224,   228,   239,   225,   601,   240,
-     241,   465,   173,   242,   546,   317,   320,   318,   322,   325,
-     488,   328,   329,   330,   262,   640,   342,   343,   308,   348,
-     349,   366,   368,   370,   390,   369,   402,   565,   403,   404,
-     412,   408,   630,   633,   636,   420,   416,   594,   417,    19,
-     418,   596,   419,   422,   421,   423,   506,   262,   598,   425,
-     508,   457,   492,   509,   614,   616,   617,   510,   599,   513,
-     600,   529,   530,   531,   532,   533,   534,   535,   516,   536,
-     537,   538,   539,   540,   541,   542,   545,   543,   547,   548,
-     549,  -163,   602,   609,   610,   611,   341,   612,   613,   618,
-     563,   564,   637,   566,   638,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,   461,    96,   642,    97,   462,   641,
-     463,   653,   643,   652,   656,    98,   659,  -158,   660,  -136,
+      71,    96,   147,    98,   322,   173,   526,   139,   190,   328,
+     277,    99,   310,   504,    44,   427,    46,   333,     9,   308,
+      50,  -159,   108,   646,   177,   269,   447,   519,     4,    11,
+      12,    13,   270,    14,   286,   206,   306,   277,    10,   310,
+     592,   593,   520,   246,    54,   521,   308,    61,     1,     2,
+     335,   597,   269,   646,   342,   368,    15,    16,   116,   270,
+     136,   286,   645,   306,  -273,    61,   317,   430,   431,   432,
+     433,   434,   435,  -273,   365,    36,    37,    38,    39,   459,
+     324,   461,    12,    13,    55,    14,   193,   194,   195,    40,
+     493,   428,   165,   166,   167,   168,  -274,    56,   222,   505,
+      88,   174,   448,   215,    73,  -274,    41,   231,    57,    88,
+     512,   207,   208,   209,   515,   296,   183,   184,   518,    96,
+      44,    98,    46,    58,    17,    16,    50,   210,    18,    99,
+      76,    19,   606,   467,   607,   109,   110,    20,   111,   650,
+     651,   296,   296,   112,   124,   125,   126,   456,   457,   485,
+     222,   460,   494,   495,   496,    78,   497,   498,   499,   127,
+     546,    80,    81,    82,    83,   136,   470,   473,   482,   337,
+     489,    74,   108,   227,   223,    77,    17,   487,   495,   496,
+      18,   497,   498,   103,   348,    79,   474,    63,    64,    65,
+      66,    67,    68,    69,    70,   475,    81,   476,   477,   478,
+      85,    86,    87,   449,   450,   451,   452,   453,   454,   232,
+     233,   309,   104,   525,   105,   342,   114,   388,   311,   312,
+     313,   314,   115,   118,   119,   567,   223,   655,   123,   132,
+    -274,   145,   146,    88,   164,   264,  -273,   174,   309,   169,
+     175,   179,   176,   336,   180,   181,   554,   558,   562,   182,
+      96,   186,    98,   189,   191,   196,   364,   296,   366,   201,
+      99,   197,   264,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,   218,   296,   198,   199,   200,   244,   479,   480,
+     481,   204,   213,   245,   216,    11,    12,    13,   246,   224,
+     226,   225,   247,    40,   248,   249,   229,   240,   250,   390,
+     251,   241,   252,   242,   253,   243,   491,   394,   318,   254,
+     319,    58,   255,   256,    63,    64,    65,    66,   257,   258,
+     259,   260,   261,   326,   321,   323,   262,    85,    86,    87,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,   261,
+     524,   329,   330,   172,   331,   528,   263,   343,   601,    88,
+     344,   349,   466,   174,   350,   367,   369,   370,   371,   391,
+     403,   488,   404,   640,   405,   413,   409,   417,   422,   309,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,   565,
+     421,   418,   630,   633,   636,   594,   419,    19,   420,   596,
+     423,   426,   424,   458,   492,   263,   598,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,   614,   616,   617,   599,
+     172,   600,   529,   530,   531,   532,   533,   534,   535,   506,
+     508,   509,   513,   510,   536,   516,   537,   545,   538,   547,
+     548,   549,   539,   540,   541,   542,   342,   543,  -163,   609,
+     602,   563,   564,   656,   566,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,   462,    96,   610,    98,   463,   641,
+     464,   611,   612,   613,  -158,    99,  -136,  -136,  -136,  -136,
     -136,  -136,  -136,  -136,  -136,  -136,  -136,  -136,  -136,  -136,
-    -136,  -136,  -136,  -136,  -136,  -136,   169,   213,   393,   319,
-     204,   216,   435,   436,   437,   438,   439,   440,   441,   442,
-     443,   116,   173,   173,   173,   444,   184,   333,   211,   345,
-     595,   221,   603,   523,   657,   639,   615,   658,   331,   619,
-     620,   621,   622,   623,   624,   625,   626,   627,   654,   628,
-     243,   527,   605,   514,   604,   517,    99,   324,    11,    12,
-      13,   245,   100,     0,     0,   246,    40,   247,   248,     0,
-       0,   249,     0,   250,     0,   251,  -136,   252,     0,     0,
-       0,     0,   253,     0,    58,     0,   255,    63,    64,    65,
-      66,   256,   257,   258,   259,   260,     0,   445,     0,   261,
-      85,    86,    87,     0,     0,   222,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    80,    81,    82,    83,    84,
-      85,    86,    87,     0,     0,     0,     0,     0,     0,     0,
-      96,    96,    97,    97,     0,     0,     0,     0,     0,     0,
-      98,    98,     0,     0,     0,   170,   173,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   465,     0,     0,     0,
-     147,    19,     0,     0,     0,     0,     0,     0,     0,   262,
-     568,   569,   570,   571,   572,   573,   574,   575,   576,   577,
-     578,   579,   580,   581,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    88,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,  -359,  -359,  -359,  -359,  -359,  -359,  -359,  -359,
-    -359,  -359,  -359,  -359,  -359,  -359,     0,     0,     0,     0,
-       0,     0,     0,     0,   582,     0,   583,   584,   585,   586,
-     587,   588,   589,   590,   371,   372,   373,   374,   375,   376,
-     377,   378,   379,   380,   381,   382,   383,   384,     0,     0,
-       0,     0,  -359,     0,     0,  -359,     0,     0,     0,     0,
-       0,  -359,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    80,    81,    82,    83,   136,    85,    86,    87,     0,
-       0,     0,     0,     0,     0,     0,     0,   385,  -227,  -227,
+    -136,  -136,  -136,   618,   637,   638,   642,   652,   394,   643,
+     653,   659,   436,   437,   438,   439,   440,   441,   442,   443,
+     444,   660,   174,   174,   174,   445,   170,   205,   214,   222,
+     320,   117,   334,   217,   212,   185,   639,   346,   657,   619,
+     620,   621,   622,   623,   624,   625,   626,   627,   244,   628,
+     654,   595,   603,   658,   523,   615,    11,    12,    13,   246,
+     332,   517,   325,   247,    40,   248,   249,   527,   514,   250,
+     605,   251,  -136,   252,   604,   253,   100,   486,   101,     0,
+     254,     0,    58,     0,   256,    63,    64,    65,    66,   257,
+     258,   259,   260,   261,  -339,     0,   446,   262,    85,    86,
+      87,     0,     0,     0,     0,   223,     0,     0,     0,     0,
+       0,     0,     0,     0,   568,   569,   570,   571,   572,   573,
+     574,   575,   576,   577,   578,   579,   580,   581,     0,     0,
+      96,    96,    98,    98,     0,     0,     0,     0,     0,     0,
+      99,    99,     0,     0,     0,     0,   174,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,   466,     0,    19,     0,
+     137,    85,    86,    87,   171,     0,   263,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    80,    81,    82,    83,
+      84,    85,    86,    87,   148,     0,     0,     0,   582,     0,
+     583,   584,   585,   586,   587,   588,   589,   590,   568,   569,
+     570,   571,   572,   573,   574,   575,   576,   577,   578,   579,
+     580,   581,   149,   150,   151,   152,   153,   154,   155,   156,
+     157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
+       0,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,     0,     0,     0,     0,     0,
+       0,     0,     0,    88,  -358,  -358,  -358,  -358,  -358,  -358,
+    -358,  -358,  -358,  -358,  -358,  -358,  -358,  -358,     0,     0,
+       0,     0,   582,     0,   583,   584,   585,   586,   587,   588,
+     589,   590,   372,   373,   374,   375,   376,   377,   378,   379,
+     380,   381,   382,   383,   384,   385,     0,     0,     0,     0,
+       0,     0,     0,     0,  -358,     0,     0,  -358,     0,     0,
+       0,     0,     0,  -358,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    80,    81,    82,    83,   137,    85,    86,
+      87,     0,     0,     0,     0,   386,  -227,  -227,  -227,  -227,
     -227,  -227,  -227,  -227,  -227,  -227,  -227,  -227,  -227,  -227,
-    -227,  -227,  -227,  -227,  -227,  -228,  -228,  -228,  -228,  -228,
+    -227,  -227,  -227,  -228,  -228,  -228,  -228,  -228,  -228,  -228,
     -228,  -228,  -228,  -228,  -228,  -228,  -228,  -228,  -228,  -228,
-    -228,  -228,   350,   351,   352,   353,   354,   355,   356,   357,
-     358,   359,    81,   360,   361,   136,    85,    86,    87,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,   394,    81,
-      82,    83,   136,    85,    86,    87,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,   550,     0,   551,   552,   136,
-      85,    86,    87,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,   555,     0,   556,   557,   136,    85,    86,    87,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,   559,
-       0,   560,   561,   136,    85,    86,    87,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,     0,     0,   467,   468,
-     136,    85,    86,    87,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,     0,     0,   470,   471,   136,    85,    86,
+     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
+      81,   361,   362,   137,    85,    86,    87,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,   395,    81,    82,    83,
+     137,    85,    86,    87,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,   550,     0,   551,   552,   137,    85,    86,
       87,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-       0,     0,   631,   632,   136,    85,    86,    87,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,     0,     0,   634,
-     635,   136,    85,    86,    87,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,   337,     0,     0,     0,   136,    85,
+     555,     0,   556,   557,   137,    85,    86,    87,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,   559,     0,   560,
+     561,   137,    85,    86,    87,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,     0,     0,   468,   469,   137,    85,
       86,    87,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,   629,     0,     0,     0,   136,    85,    86,    87,    62,
+      70,     0,     0,   471,   472,   137,    85,    86,    87,    62,
       63,    64,    65,    66,    67,    68,    69,    70,     0,     0,
-       0,     0,   136,    85,    86,    87,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,   260,     0,     0,     0,   171,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,     0,
-       0,     0,     0,   171,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,   105,    62,    63,    64,    65,    66,    67,
-      68,    69,   544
+     631,   632,   137,    85,    86,    87,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,     0,     0,   634,   635,   137,
+      85,    86,    87,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,   338,     0,     0,     0,   137,    85,    86,    87,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,   629,
+       0,     0,     0,   137,    85,    86,    87,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,   106,    62,    63,    64,
+      65,    66,    67,    68,    69,   544
 };
 
 static const yytype_int16 yycheck[] =
 {
-      17,    28,   117,    28,    95,   242,    88,   154,     9,   423,
-     227,    28,   248,   253,    35,    35,   227,     9,   227,     9,
-     227,   123,    39,     9,    10,    11,   618,    13,     3,     4,
-       5,     6,    35,    12,     2,    10,    11,   254,    13,    45,
-      45,    35,    17,   254,   227,   254,     0,   254,   227,   258,
-      36,    37,    31,   262,    15,    35,   648,    48,   294,    34,
-      77,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,   254,    33,   282,    42,   254,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      14,   108,   109,   110,   111,    46,    47,    48,    49,   190,
-     117,   183,   122,   124,   206,    29,   227,   231,    32,   112,
-     113,   114,   227,   114,    35,    46,   122,   122,   145,   105,
-     145,   245,   114,   109,   114,   128,   112,    46,   145,   369,
-     105,   120,   118,   254,   109,   476,   477,   124,   253,   254,
-     129,    38,    39,    37,    41,   385,   487,   120,   124,    46,
-     130,   242,   132,   133,   134,   135,   136,   137,   138,   139,
-     112,   113,   114,    35,   181,   374,   375,    35,   385,    37,
-     261,   188,   199,   190,   385,   127,   385,    98,    99,   100,
-     120,   102,   103,   104,    46,   276,    37,    38,    39,    40,
+      17,    28,    95,    28,   243,   118,   424,    88,   155,   249,
+     228,    28,   228,    35,     9,    45,     9,   254,     2,   228,
+       9,    35,    39,   618,   124,   228,    45,    14,    35,     9,
+      10,    11,   228,    13,   228,    35,   228,   255,     0,   255,
+     476,   477,    29,    12,    46,    32,   255,    15,   115,   116,
+     259,   487,   255,   648,   263,   295,    36,    37,    42,   255,
+      77,   255,    31,   255,   119,    33,   232,   352,   353,   354,
+     355,   356,   357,   128,   283,     3,     4,     5,     6,   364,
+     246,   366,    10,    11,    48,    13,   160,   161,   162,    17,
+      35,   121,   109,   110,   111,   112,   119,    46,   191,   121,
+     123,   118,   121,   184,    37,   128,    34,   207,   123,   123,
+     405,   111,   112,   113,   409,   228,   124,   125,   413,   146,
+     115,   146,   115,    35,   104,    37,   115,   127,   108,   146,
+      35,   111,    98,   370,   100,    38,    39,   117,    41,   637,
+     638,   254,   255,    46,   111,   112,   113,   361,   362,   386,
+     243,   365,    97,    98,    99,    35,   101,   102,   103,   126,
+     445,    46,    47,    48,    49,   182,   375,   376,   386,   262,
+     386,   119,   189,   200,   191,   119,   104,   386,    98,    99,
+     108,   101,   102,    46,   277,    35,    37,    38,    39,    40,
       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,   404,   120,   360,   361,   408,   124,   364,
-     227,   412,   421,   129,   423,   159,   160,   161,   309,    56,
-      57,    58,    59,    60,    61,   242,   227,    35,   464,    99,
-     100,   645,   102,   103,   116,   117,   253,   254,    38,    39,
-      40,    41,   259,   107,   108,   454,   455,   456,    35,   276,
-      99,   276,   101,   254,   369,   282,    46,   282,    46,   276,
-      46,   351,   352,   353,   354,   355,   356,   125,   126,    35,
-     385,   637,   638,   363,   122,   365,    46,   115,     1,   130,
-     131,   132,    35,   124,     7,    35,     9,    10,    11,    12,
-     122,   124,   123,    16,    17,    18,    19,   124,   315,    22,
-     122,    24,   125,    26,   386,    28,   323,   126,   121,   121,
-      33,   122,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,   122,   120,   120,    50,    51,    52,
-      53,   120,    46,    46,    35,    35,    46,    48,   420,   123,
-     123,   123,   123,   425,    49,     8,   121,    46,   495,   121,
-     121,   368,   369,   122,   444,   110,    35,   106,    35,   120,
-     385,    35,    35,    35,   120,   602,    35,    35,   385,    35,
-      35,    35,   129,    35,   111,   123,    35,   459,    35,    20,
-      30,    21,   591,   592,   593,   123,    35,   478,    35,   112,
-      35,   482,    35,   121,    55,   122,    98,   120,   489,   123,
-      55,    45,   123,   121,   519,   520,   521,   122,   490,    23,
-     492,   428,   429,   430,   431,   432,   433,   434,    25,    45,
-      45,    45,    45,    45,    45,    45,   443,    45,   445,   446,
-     447,    35,   120,    35,    35,    35,   645,    35,    35,    35,
-     457,   458,   122,   460,   122,    37,    38,    39,    40,    41,
+      51,    52,    53,    55,    56,    57,    58,    59,    60,   106,
+     107,   228,    46,   422,    46,   424,    46,   310,    38,    39,
+      40,    41,    35,   121,    46,   465,   243,   645,   114,    35,
+     123,    35,   121,   123,   122,   228,   123,   254,   255,   121,
+     124,   120,   125,   260,   121,   120,   455,   456,   457,   121,
+     277,   119,   277,   119,   119,    46,   283,   370,   283,    46,
+     277,   122,   255,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,   386,   122,   122,   122,     1,   129,   130,
+     131,    35,    35,     7,    46,     9,    10,    11,    12,    48,
+      46,    49,    16,    17,    18,    19,     8,   120,    22,   316,
+      24,   120,    26,   120,    28,   121,   387,   324,   109,    33,
+     105,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,   119,    35,    35,    50,    51,    52,    53,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+     421,    35,    35,    50,    35,   426,   119,    35,   495,   123,
+      35,    35,   369,   370,    35,    35,   128,   122,    35,   110,
+      35,   386,    35,   602,    20,    30,    21,    35,    54,   386,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,   460,
+     122,    35,   591,   592,   593,   478,    35,   111,    35,   482,
+     120,   122,   121,    45,   122,   119,   489,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,   519,   520,   521,   490,
+      50,   492,   429,   430,   431,   432,   433,   434,   435,    97,
+      54,   120,    23,   121,    45,    25,    45,   444,    45,   446,
+     447,   448,    45,    45,    45,    45,   645,    45,    35,    35,
+     119,   458,   459,    27,   461,    37,    38,    39,    40,    41,
       42,    43,    44,    45,    46,   482,    35,   482,    50,   606,
-      52,    15,   122,   121,    27,   482,    35,    35,    35,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,   114,   181,   505,   234,
-     175,   188,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    52,   519,   520,   521,    50,   145,   254,   179,   276,
-     482,   602,   505,   414,   648,   597,   520,   653,   252,   536,
-     537,   538,   539,   540,   541,   542,   543,   544,   643,   546,
-       1,   424,   510,   406,   508,   410,    30,   246,     9,    10,
-      11,    12,    33,    -1,    -1,    16,    17,    18,    19,    -1,
-      -1,    22,    -1,    24,    -1,    26,   124,    28,    -1,    -1,
-      -1,    -1,    33,    -1,    35,    -1,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    -1,   122,    -1,    50,
-      51,    52,    53,    -1,    -1,   602,    37,    38,    39,    40,
+      52,    35,    35,    35,    35,   482,    37,    38,    39,    40,
       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      51,    52,    53,    35,   121,   121,    35,   120,   505,   121,
+      15,    35,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    35,   519,   520,   521,    50,   115,   176,   182,   602,
+     235,    52,   255,   189,   180,   146,   597,   277,   648,   536,
+     537,   538,   539,   540,   541,   542,   543,   544,     1,   546,
+     643,   482,   505,   653,   415,   520,     9,    10,    11,    12,
+     253,   411,   247,    16,    17,    18,    19,   425,   407,    22,
+     510,    24,   123,    26,   508,    28,    30,   386,    33,    -1,
+      33,    -1,    35,    -1,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    35,    -1,   121,    50,    51,    52,
+      53,    -1,    -1,    -1,    -1,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
      637,   638,   637,   638,    -1,    -1,    -1,    -1,    -1,    -1,
-     637,   638,    -1,    -1,    -1,    35,   643,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   653,    -1,    -1,    -1,
-      36,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,   124,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   130,    -1,   132,   133,   134,   135,
-     136,   137,   138,   139,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    -1,    -1,
-      -1,    -1,   120,    -1,    -1,   123,    -1,    -1,    -1,    -1,
-      -1,   129,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    -1,    48,    49,    50,
+     637,   638,    -1,    -1,    -1,    -1,   643,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,   653,    -1,   111,    -1,
+      50,    51,    52,    53,    35,    -1,   119,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    36,    -1,    -1,    -1,   129,    -1,
+     131,   132,   133,   134,   135,   136,   137,   138,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    95,    96,    -1,    -1,    -1,    -1,
+      -1,    83,    84,    85,    86,    87,    88,    89,    90,    91,
+      92,    93,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   123,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    -1,    -1,
+      -1,    -1,   129,    -1,   131,   132,   133,   134,   135,   136,
+     137,   138,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    81,    82,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   119,    -1,    -1,   122,    -1,    -1,
+      -1,    -1,    -1,   128,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    -1,    -1,    -1,    -1,   122,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
       51,    52,    53,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    -1,    48,    49,    50,    51,    52,    53,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      -1,    48,    49,    50,    51,    52,    53,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    -1,    -1,    48,    49,
+      47,    48,    49,    50,    51,    52,    53,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
       50,    51,    52,    53,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    -1,    -1,    48,    49,    50,    51,    52,
+      43,    44,    45,    46,    -1,    48,    49,    50,    51,    52,
       53,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      -1,    -1,    48,    49,    50,    51,    52,    53,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    48,
+      46,    -1,    48,    49,    50,    51,    52,    53,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
       49,    50,    51,    52,    53,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    -1,    -1,    -1,    50,    51,
+      42,    43,    44,    45,    -1,    -1,    48,    49,    50,    51,
       52,    53,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    -1,    -1,    -1,    50,    51,    52,    53,    37,
+      45,    -1,    -1,    48,    49,    50,    51,    52,    53,    37,
       38,    39,    40,    41,    42,    43,    44,    45,    -1,    -1,
-      -1,    -1,    50,    51,    52,    53,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    -1,    -1,    -1,    50,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
-      -1,    -1,    -1,    50,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    37,    38,    39,    40,    41,    42,
-      43,    44,    45
+      48,    49,    50,    51,    52,    53,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    -1,    -1,    48,    49,    50,
+      51,    52,    53,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    -1,    -1,    -1,    50,    51,    52,    53,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      -1,    -1,    -1,    50,    51,    52,    53,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    37,    38,    39,
+      40,    41,    42,    43,    44,    45
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   116,   117,   141,    35,   143,   298,   299,   142,   143,
-       0,     9,    10,    11,    13,    36,    37,   105,   109,   112,
-     118,   146,   147,   148,   149,   160,   164,   190,   205,   231,
-     300,   301,   302,   304,   305,   306,     3,     4,     5,     6,
-      17,    34,   144,   145,   146,   159,   160,   161,   162,   163,
-     164,   168,   170,   282,    46,    48,    46,   124,    35,   198,
-     303,   306,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,   293,   294,    37,   120,   191,    35,   120,    35,    35,
-      46,    47,    48,    49,    50,    51,    52,    53,   124,   207,
-     208,   210,   211,   212,   213,   250,   286,   292,   293,   301,
-     303,   172,    46,    46,    46,    46,   171,   293,    38,    39,
-      41,    46,   284,    46,    35,   143,   172,   122,    46,   165,
-     166,   167,   115,   112,   113,   114,   127,   192,   193,   194,
-     195,    35,   150,   151,   152,   293,    50,   214,   285,   286,
-     290,   291,   292,   293,    35,   122,   213,    36,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,   173,   123,   293,   293,   293,   293,   122,   145,
-      35,    50,   250,   293,   125,   126,   191,   196,   121,   122,
-     121,   122,   125,   126,   210,   120,   278,   279,   120,   278,
-     120,   174,   279,   279,   279,    46,   123,   123,   123,   123,
-      46,   178,   179,    35,   167,    35,   112,   113,   114,   128,
-     197,   194,    35,   152,   285,    46,   171,    46,   175,   176,
-     177,   213,   293,    48,    49,    46,   286,   186,     8,   180,
-     191,   107,   108,   153,   154,   155,   156,   157,   158,   121,
-     121,   121,   122,     1,     7,    12,    16,    18,    19,    22,
-      24,    26,    28,    33,    36,    37,    42,    43,    44,    45,
-      46,    50,   120,   160,   169,   187,   188,   189,   190,   198,
-     199,   200,   201,   202,   203,   204,   205,   215,   216,   218,
-     220,   221,   224,   226,   227,   231,   232,   233,   234,   243,
-     244,   245,   246,   247,   248,   250,   251,   257,   258,   259,
-     260,   268,   269,   280,   281,   282,   283,   290,   293,   294,
-      38,    39,    40,    41,   181,   289,   289,   110,   106,   155,
-      35,   177,    35,   289,   284,   120,   261,   261,    35,    35,
-      35,   251,   245,   188,   290,   293,   213,    46,   252,   253,
-     254,   290,    35,    35,   206,   207,   209,   213,    35,    35,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      48,    49,   222,   286,   290,   292,    35,   261,   129,   123,
-      35,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,   123,   297,   213,   182,   293,
-     111,   228,   229,   293,    46,   262,   263,   264,   265,   266,
-     267,   285,    35,    35,    20,   270,   271,   272,    21,   273,
-     274,   275,    30,   235,   236,   237,    35,    35,    35,    35,
-     123,    55,   121,   122,   255,   123,    45,   122,   225,   225,
-     225,   225,   225,   225,   225,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    50,   122,    45,   122,    56,    57,
-      58,    59,    60,    61,   288,   288,   288,    45,   225,   288,
-     225,    46,    50,    52,   249,   293,   245,    48,    49,   290,
-      48,    49,   290,    37,    46,    47,    48,    49,    50,   130,
-     131,   132,   205,   217,   219,   245,   287,   290,   292,   294,
-     295,   285,   123,    35,    98,    99,   100,   102,   103,   104,
-     183,   184,   185,   256,    35,   122,    98,   230,    55,   121,
-     122,   276,   266,    23,   272,   266,    25,   275,   266,    14,
-      29,    32,   238,   237,   285,   290,   254,   256,   285,   293,
-     293,   293,   293,   293,   293,   293,    45,    45,    45,    45,
-      45,    45,    45,    45,    45,   293,   225,   293,   293,   293,
-      46,    48,    49,   223,   290,    46,    48,    49,   290,    46,
-      48,    49,   290,   293,   293,   285,   293,   261,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,   130,   132,   133,   134,   135,   136,   137,   138,
-     139,   296,   296,   296,   213,   211,   213,   296,   213,   285,
-     285,   278,   120,   229,   267,   264,    99,   101,   277,    35,
-      35,    35,    35,    35,   250,   248,   250,   250,    35,   293,
-     293,   293,   293,   293,   293,   293,   293,   293,   293,    46,
-     290,    48,    49,   290,    48,    49,   290,   122,   122,   285,
-     177,   278,    35,   122,   239,    31,   227,   240,   241,   242,
-     208,   208,   121,    15,   250,   254,    27,   242,   249,    35,
+       0,   115,   116,   140,    35,   142,   297,   298,   141,   142,
+       0,     9,    10,    11,    13,    36,    37,   104,   108,   111,
+     117,   145,   146,   147,   148,   159,   163,   189,   204,   230,
+     299,   300,   301,   303,   304,   305,     3,     4,     5,     6,
+      17,    34,   143,   144,   145,   158,   159,   160,   161,   162,
+     163,   167,   169,   281,    46,    48,    46,   123,    35,   197,
+     302,   305,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,   292,   293,    37,   119,   190,    35,   119,    35,    35,
+      46,    47,    48,    49,    50,    51,    52,    53,   123,   206,
+     207,   209,   210,   211,   212,   249,   285,   286,   291,   292,
+     300,   302,   171,    46,    46,    46,    46,   170,   292,    38,
+      39,    41,    46,   283,    46,    35,   142,   171,   121,    46,
+     164,   165,   166,   114,   111,   112,   113,   126,   191,   192,
+     193,   194,    35,   149,   150,   151,   292,    50,   213,   284,
+     285,   289,   290,   291,   292,    35,   121,   212,    36,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      94,    95,    96,   172,   122,   292,   292,   292,   292,   121,
+     144,    35,    50,   249,   292,   124,   125,   190,   195,   120,
+     121,   120,   121,   124,   125,   209,   119,   277,   278,   119,
+     277,   119,   173,   278,   278,   278,    46,   122,   122,   122,
+     122,    46,   177,   178,    35,   166,    35,   111,   112,   113,
+     127,   196,   193,    35,   151,   284,    46,   170,    46,   174,
+     175,   176,   212,   292,    48,    49,    46,   285,   185,     8,
+     179,   190,   106,   107,   152,   153,   154,   155,   156,   157,
+     120,   120,   120,   121,     1,     7,    12,    16,    18,    19,
+      22,    24,    26,    28,    33,    36,    37,    42,    43,    44,
+      45,    46,    50,   119,   159,   168,   186,   187,   188,   189,
+     197,   198,   199,   200,   201,   202,   203,   204,   214,   215,
+     217,   219,   220,   223,   225,   226,   230,   231,   232,   233,
+     242,   243,   244,   245,   246,   247,   249,   250,   256,   257,
+     258,   259,   267,   268,   279,   280,   281,   282,   289,   292,
+     293,    38,    39,    40,    41,   180,   288,   288,   109,   105,
+     154,    35,   176,    35,   288,   283,   119,   260,   260,    35,
+      35,    35,   250,   244,   187,   289,   292,   212,    46,   251,
+     252,   253,   289,    35,    35,   205,   206,   208,   212,    35,
+      35,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    48,    49,   221,   285,   289,   291,    35,   260,   128,
+     122,    35,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    81,    82,   122,   296,   212,   181,
+     292,   110,   227,   228,   292,    46,   261,   262,   263,   264,
+     265,   266,   284,    35,    35,    20,   269,   270,   271,    21,
+     272,   273,   274,    30,   234,   235,   236,    35,    35,    35,
+      35,   122,    54,   120,   121,   254,   122,    45,   121,   224,
+     224,   224,   224,   224,   224,   224,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    50,   121,    45,   121,    55,
+      56,    57,    58,    59,    60,   287,   287,   287,    45,   224,
+     287,   224,    46,    50,    52,   248,   292,   244,    48,    49,
+     289,    48,    49,   289,    37,    46,    48,    49,    50,   129,
+     130,   131,   204,   216,   218,   244,   286,   289,   291,   293,
+     294,   284,   122,    35,    97,    98,    99,   101,   102,   103,
+     182,   183,   184,   255,    35,   121,    97,   229,    54,   120,
+     121,   275,   265,    23,   271,   265,    25,   274,   265,    14,
+      29,    32,   237,   236,   284,   289,   253,   255,   284,   292,
+     292,   292,   292,   292,   292,   292,    45,    45,    45,    45,
+      45,    45,    45,    45,    45,   292,   224,   292,   292,   292,
+      46,    48,    49,   222,   289,    46,    48,    49,   289,    46,
+      48,    49,   289,   292,   292,   284,   292,   260,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,   129,   131,   132,   133,   134,   135,   136,   137,
+     138,   295,   295,   295,   212,   210,   212,   295,   212,   284,
+     284,   277,   119,   228,   266,   263,    98,   100,   276,    35,
+      35,    35,    35,    35,   249,   247,   249,   249,    35,   292,
+     292,   292,   292,   292,   292,   292,   292,   292,   292,    46,
+     289,    48,    49,   289,    48,    49,   289,   121,   121,   284,
+     176,   277,    35,   121,   238,    31,   226,   239,   240,   241,
+     207,   207,   120,    15,   249,   253,    27,   241,   248,    35,
       35
 };
 
@@ -2618,22 +2611,22 @@
   switch (yyn)
     {
         case 4:
-#line 563 "pir.y"
+#line 562 "pir.y"
     { fixup_global_labels(lexer); ;}
     break;
 
   case 20:
-#line 594 "pir.y"
+#line 593 "pir.y"
     { new_macro_const(lexer->macros, (yyvsp[(2) - (3)].sval), (yyvsp[(3) - (3)].sval), yypirget_lineno(yyscanner)); ;}
     break;
 
   case 21:
-#line 600 "pir.y"
+#line 599 "pir.y"
     { /* fprintf(stderr, "macro body: [%s]\n", CURRENT_MACRO(lexer)->body);*/ ;}
     break;
 
   case 22:
-#line 604 "pir.y"
+#line 603 "pir.y"
     {
                           new_macro(lexer->macros, (yyvsp[(2) - (2)].sval), yypirget_lineno(yyscanner), TRUE,
                                     lexer->macro_size);
@@ -2641,17 +2634,17 @@
     break;
 
   case 27:
-#line 619 "pir.y"
+#line 618 "pir.y"
     { add_macro_param(CURRENT_MACRO(lexer), (yyvsp[(1) - (1)].sval)); ;}
     break;
 
   case 35:
-#line 638 "pir.y"
+#line 637 "pir.y"
     { store_macro_string(CURRENT_MACRO(lexer), "%s\n", (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 36:
-#line 642 "pir.y"
+#line 641 "pir.y"
     {
                           store_macro_string(CURRENT_MACRO(lexer), ".local %s %s\n",
                                              pir_type_names[(yyvsp[(2) - (3)].ival)], (yyvsp[(3) - (3)].sval));
@@ -2659,152 +2652,152 @@
     break;
 
   case 37:
-#line 653 "pir.y"
+#line 652 "pir.y"
     { load_library(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 38:
-#line 657 "pir.y"
+#line 656 "pir.y"
     { yypirset_lineno ((yyvsp[(2) - (2)].ival), yyscanner); ;}
     break;
 
   case 39:
-#line 659 "pir.y"
+#line 658 "pir.y"
     { lexer->filename = (yyvsp[(2) - (2)].sval); ;}
     break;
 
   case 40:
-#line 663 "pir.y"
+#line 662 "pir.y"
     { annotate(lexer, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 41:
-#line 669 "pir.y"
+#line 668 "pir.y"
     { set_hll(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 42:
-#line 673 "pir.y"
+#line 672 "pir.y"
     { set_hll_map(lexer, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 43:
-#line 677 "pir.y"
+#line 676 "pir.y"
     { set_namespace(lexer, (yyvsp[(3) - (4)].key)); ;}
     break;
 
   case 44:
-#line 681 "pir.y"
+#line 680 "pir.y"
     { (yyval.key) = NULL; ;}
     break;
 
   case 45:
-#line 683 "pir.y"
+#line 682 "pir.y"
     { (yyval.key) = (yyvsp[(1) - (1)].key); ;}
     break;
 
   case 46:
-#line 687 "pir.y"
+#line 686 "pir.y"
     { (yyval.key) = new_key(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
   case 47:
-#line 689 "pir.y"
+#line 688 "pir.y"
     { (yyval.key) = add_key(lexer, (yyvsp[(1) - (3)].key), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
   case 48:
-#line 693 "pir.y"
+#line 692 "pir.y"
     { (yyval.expr) = expr_from_string(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
   case 50:
-#line 703 "pir.y"
+#line 702 "pir.y"
     { close_sub(lexer); ;}
     break;
 
   case 51:
-#line 707 "pir.y"
+#line 706 "pir.y"
     { new_subr(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 56:
-#line 719 "pir.y"
+#line 718 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_ANON);;}
     break;
 
   case 57:
-#line 721 "pir.y"
+#line 720 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_INIT); ;}
     break;
 
   case 58:
-#line 723 "pir.y"
+#line 722 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_LOAD); ;}
     break;
 
   case 59:
-#line 725 "pir.y"
+#line 724 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_MAIN); ;}
     break;
 
   case 60:
-#line 727 "pir.y"
+#line 726 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_LEX); ;}
     break;
 
   case 61:
-#line 729 "pir.y"
+#line 728 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_POSTCOMP); ;}
     break;
 
   case 62:
-#line 731 "pir.y"
+#line 730 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_IMMEDIATE); ;}
     break;
 
   case 63:
-#line 733 "pir.y"
+#line 732 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_MULTI); ;}
     break;
 
   case 64:
-#line 735 "pir.y"
+#line 734 "pir.y"
     { set_sub_outer(lexer, (yyvsp[(3) - (4)].sval)); ;}
     break;
 
   case 65:
-#line 737 "pir.y"
+#line 736 "pir.y"
     { set_sub_methodname(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 66:
-#line 739 "pir.y"
+#line 738 "pir.y"
     { set_sub_vtable(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 67:
-#line 741 "pir.y"
+#line 740 "pir.y"
     { set_sub_subid(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 68:
-#line 743 "pir.y"
+#line 742 "pir.y"
     { set_sub_instanceof(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 69:
-#line 745 "pir.y"
+#line 744 "pir.y"
     { set_sub_nsentry(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 70:
-#line 749 "pir.y"
+#line 748 "pir.y"
     { set_sub_multi_types(lexer, (yyvsp[(2) - (3)].expr)); ;}
     break;
 
   case 71:
-#line 753 "pir.y"
+#line 752 "pir.y"
     {
                           CURRENT_SUB(lexer)->info.num_multi_types = 1;
                           /* n=1 means :multi() -- without any types. */
@@ -2812,12 +2805,12 @@
     break;
 
   case 72:
-#line 758 "pir.y"
+#line 757 "pir.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;}
     break;
 
   case 73:
-#line 762 "pir.y"
+#line 761 "pir.y"
     {
                           CURRENT_SUB(lexer)->info.num_multi_types = 2;
                           /* start counting multi types; always 1 higher than actual number
@@ -2829,7 +2822,7 @@
     break;
 
   case 74:
-#line 771 "pir.y"
+#line 770 "pir.y"
     {
                           ++CURRENT_SUB(lexer)->info.num_multi_types;
                           /* link the multi types in reverse other. That's fine,
@@ -2841,22 +2834,22 @@
     break;
 
   case 75:
-#line 782 "pir.y"
+#line 781 "pir.y"
     { (yyval.expr) = expr_from_ident(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
   case 76:
-#line 784 "pir.y"
+#line 783 "pir.y"
     { (yyval.expr) = expr_from_string(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
   case 77:
-#line 786 "pir.y"
+#line 785 "pir.y"
     { (yyval.expr) = expr_from_key(lexer, (yyvsp[(1) - (1)].key)); ;}
     break;
 
   case 78:
-#line 790 "pir.y"
+#line 789 "pir.y"
     {
                            /* if there are parameters, then emit a get_params instruction. */
                            if ((yyvsp[(1) - (1)].uval) > 0)
@@ -2865,12 +2858,12 @@
     break;
 
   case 79:
-#line 798 "pir.y"
+#line 797 "pir.y"
     { (yyval.uval) = 0; ;}
     break;
 
   case 80:
-#line 800 "pir.y"
+#line 799 "pir.y"
     {
                           /* if the :named flag was set, there's an extra
                            * constant string argument for the name. count that too.
@@ -2884,27 +2877,27 @@
     break;
 
   case 81:
-#line 813 "pir.y"
+#line 812 "pir.y"
     { (yyval.targ) = set_param_flag(lexer, (yyvsp[(2) - (4)].targ), (yyvsp[(3) - (4)].ival)); ;}
     break;
 
   case 82:
-#line 817 "pir.y"
+#line 816 "pir.y"
     { (yyval.targ) = add_param(lexer, (yyvsp[(1) - (2)].ival), (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 83:
-#line 821 "pir.y"
+#line 820 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
   case 84:
-#line 823 "pir.y"
+#line 822 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 88:
-#line 832 "pir.y"
+#line 831 "pir.y"
     { (yyval.ival) = TARGET_FLAG_INVOCANT;
                            /* XXX handle multi_type */
 
@@ -2912,12 +2905,12 @@
     break;
 
   case 89:
-#line 839 "pir.y"
+#line 838 "pir.y"
     { (yyval.ival) = TARGET_FLAG_UNIQUE_REG; ;}
     break;
 
   case 91:
-#line 846 "pir.y"
+#line 845 "pir.y"
     {
                          ++lexer->stmt_counter;
                          /* increment the logical statement counter; a statement can be
@@ -2928,37 +2921,37 @@
     break;
 
   case 92:
-#line 856 "pir.y"
+#line 855 "pir.y"
     { set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
     break;
 
   case 110:
-#line 884 "pir.y"
+#line 883 "pir.y"
     { (yyval.sval) = expand_macro(yyscanner, (yyvsp[(1) - (3)].mval), (yyvsp[(2) - (3)].pval)); ;}
     break;
 
   case 111:
-#line 888 "pir.y"
+#line 887 "pir.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 112:
-#line 890 "pir.y"
+#line 889 "pir.y"
     { (yyval.pval) = (yyvsp[(2) - (3)].pval); ;}
     break;
 
   case 113:
-#line 894 "pir.y"
+#line 893 "pir.y"
     { (yyval.pval) = NULL; ;}
     break;
 
   case 115:
-#line 899 "pir.y"
+#line 898 "pir.y"
     { (yyval.pval) = new_macro_param((yyvsp[(1) - (1)].sval)); ;}
     break;
 
   case 116:
-#line 901 "pir.y"
+#line 900 "pir.y"
     {
                           macro_param *param = new_macro_param((yyvsp[(3) - (3)].sval));
                           param->next = (yyvsp[(1) - (3)].pval);
@@ -2967,7 +2960,7 @@
     break;
 
   case 117:
-#line 909 "pir.y"
+#line 908 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                           if (sym == NULL) {
@@ -2978,22 +2971,22 @@
     break;
 
   case 119:
-#line 918 "pir.y"
+#line 917 "pir.y"
     { (yyval.sval) = expand_macro(yyscanner, (yyvsp[(1) - (2)].mval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 121:
-#line 923 "pir.y"
+#line 922 "pir.y"
     { (yyval.sval) = (yyvsp[(2) - (3)].sval); ;}
     break;
 
   case 122:
-#line 928 "pir.y"
+#line 927 "pir.y"
     { (yyval.sval) = ""; ;}
     break;
 
   case 123:
-#line 930 "pir.y"
+#line 929 "pir.y"
     { /* XXX cleanup memory stuff */
                           char *newbuff = (char *)mem_sys_allocate((strlen((yyvsp[(1) - (2)].sval)) + strlen((yyvsp[(2) - (2)].sval)) + 2)
                                                                    * sizeof (char));
@@ -3003,17 +2996,17 @@
     break;
 
   case 127:
-#line 942 "pir.y"
+#line 941 "pir.y"
     { (yyval.sval) = expand_macro(yyscanner, (yyvsp[(1) - (2)].mval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
   case 128:
-#line 950 "pir.y"
+#line 949 "pir.y"
     { set_instr(lexer, NULL); ;}
     break;
 
   case 130:
-#line 958 "pir.y"
+#line 957 "pir.y"
     {
                            if (lexer->parse_errors > MAX_NUM_ERRORS)
                                panic(lexer, "Too many errors. Compilation aborted.\n");
@@ -3023,7 +3016,7 @@
     break;
 
   case 131:
-#line 967 "pir.y"
+#line 966 "pir.y"
     {
                            set_instrf(lexer, "null", "%T", (yyvsp[(2) - (3)].targ));
                            get_opinfo(yyscanner);
@@ -3031,7 +3024,7 @@
     break;
 
   case 132:
-#line 974 "pir.y"
+#line 973 "pir.y"
     {
                            set_instrf(lexer, "get_results", "%T", (yyvsp[(2) - (3)].targ));
                            get_opinfo(yyscanner);
@@ -3039,7 +3032,7 @@
     break;
 
   case 136:
-#line 988 "pir.y"
+#line 987 "pir.y"
     { /* at this point, TK_IDENT may in fact be a symbol identifier,
                             * not an op, so don't do any checks like is_parrot_op() just yet.
                             */
@@ -3049,7 +3042,7 @@
     break;
 
   case 137:
-#line 997 "pir.y"
+#line 996 "pir.y"
     { /* when this rule is activated, the initial identifier must
                            * be a parrot op.
                            */
@@ -3059,7 +3052,7 @@
     break;
 
   case 143:
-#line 1015 "pir.y"
+#line 1014 "pir.y"
     {
                          /* the "instruction" that was set now appears to be
                           * an identifier; get the name, and check its type.
@@ -3096,22 +3089,22 @@
     break;
 
   case 144:
-#line 1051 "pir.y"
+#line 1050 "pir.y"
     { push_operand(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
   case 145:
-#line 1053 "pir.y"
+#line 1052 "pir.y"
     { push_operand(lexer, expr_from_key(lexer, (yyvsp[(1) - (1)].key))); ;}
     break;
 
   case 146:
-#line 1057 "pir.y"
+#line 1056 "pir.y"
     { (yyval.expr) = expr_from_const(lexer, (yyvsp[(1) - (1)].cval)); ;}
     break;
 
   case 147:
-#line 1059 "pir.y"
+#line 1058 "pir.y"
     { /* this is either a LABEL or a symbol; in the latter case, the type
                             * will be filled in later. */
                            (yyval.expr) = expr_from_ident(lexer, (yyvsp[(1) - (1)].sval));
@@ -3119,17 +3112,17 @@
     break;
 
   case 148:
-#line 1064 "pir.y"
+#line 1063 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
     break;
 
   case 149:
-#line 1066 "pir.y"
+#line 1065 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
     break;
 
   case 150:
-#line 1070 "pir.y"
+#line 1069 "pir.y"
     {
                            /* if $1 is a register, just return that */
                            if (TEST_FLAG((yyvsp[(1) - (2)].targ)->flags, TARGET_FLAG_IS_REG))
@@ -3153,22 +3146,22 @@
     break;
 
   case 151:
-#line 1093 "pir.y"
+#line 1092 "pir.y"
     { (yyval.key) = (yyvsp[(2) - (3)].key); ;}
     break;
 
   case 152:
-#line 1097 "pir.y"
+#line 1096 "pir.y"
     { (yyval.key) = new_key(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
   case 153:
-#line 1099 "pir.y"
+#line 1098 "pir.y"
     { (yyval.key) = add_key(lexer, (yyvsp[(1) - (3)].key), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
   case 154:
-#line 1108 "pir.y"
+#line 1107 "pir.y"
     {
                           /* the instruction is already set in parrot_op rule */
                           unshift_operand(lexer, (yyvsp[(4) - (6)].expr));
@@ -3182,7 +3175,7 @@
     break;
 
   case 155:
-#line 1119 "pir.y"
+#line 1118 "pir.y"
     {
                           /* the instruction is already set in parrot_op rule */
                           unshift_operand(lexer, (yyvsp[(4) - (4)].expr));
@@ -3197,7 +3190,7 @@
     break;
 
   case 156:
-#line 1131 "pir.y"
+#line 1130 "pir.y"
     { /* XXX create a PMC const for $4 */
                           unshift_operand(lexer, expr_from_key(lexer, (yyvsp[(4) - (6)].key)));
                           unshift_operand(lexer, expr_from_target(lexer, (yyvsp[(1) - (6)].targ)));
@@ -3208,7 +3201,7 @@
     break;
 
   case 160:
-#line 1148 "pir.y"
+#line 1147 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].ival) == 0)
                               set_instrf(lexer, "null", "%T", (yyvsp[(1) - (3)].targ));
@@ -3220,7 +3213,7 @@
     break;
 
   case 161:
-#line 1157 "pir.y"
+#line 1156 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].dval) == 0.0)
                               set_instrf(lexer, "null", "%T", (yyvsp[(1) - (3)].targ));
@@ -3232,7 +3225,7 @@
     break;
 
   case 162:
-#line 1166 "pir.y"
+#line 1165 "pir.y"
     {
                           set_instrf(lexer, "set", "%T%C", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].cval));
                           get_opinfo(yyscanner);
@@ -3240,7 +3233,7 @@
     break;
 
   case 163:
-#line 1171 "pir.y"
+#line 1170 "pir.y"
     {
                           set_instrf(lexer, "set", "%T%T", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ));
                           get_opinfo(yyscanner);
@@ -3248,7 +3241,7 @@
     break;
 
   case 164:
-#line 1176 "pir.y"
+#line 1175 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(3) - (3)].sval));
                           if (sym) {
@@ -3272,7 +3265,7 @@
     break;
 
   case 165:
-#line 1197 "pir.y"
+#line 1196 "pir.y"
     {
                           unshift_operand(lexer, expr_from_target(lexer, (yyvsp[(1) - (3)].targ)));
                           get_opinfo(yyscanner);
@@ -3280,7 +3273,7 @@
     break;
 
   case 166:
-#line 1202 "pir.y"
+#line 1201 "pir.y"
     {
                           /*   $P0 = foo ["bar"]
                            *
@@ -3324,7 +3317,7 @@
     break;
 
   case 167:
-#line 1243 "pir.y"
+#line 1242 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(3) - (4)].sval));
                           target *t;
@@ -3345,7 +3338,7 @@
     break;
 
   case 168:
-#line 1261 "pir.y"
+#line 1260 "pir.y"
     {
                           target *preg = new_reg(lexer, PMC_TYPE, (yyvsp[(3) - (4)].ival));
                           set_target_key(preg, (yyvsp[(4) - (4)].key));
@@ -3355,7 +3348,7 @@
     break;
 
   case 169:
-#line 1268 "pir.y"
+#line 1267 "pir.y"
     {
                           set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%T%E", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].expr));
                           get_opinfo(yyscanner);
@@ -3363,7 +3356,7 @@
     break;
 
   case 170:
-#line 1273 "pir.y"
+#line 1272 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].ival) == 1)
                               set_instrf(lexer, "inc", "%T", (yyvsp[(1) - (3)].targ));
@@ -3377,7 +3370,7 @@
     break;
 
   case 171:
-#line 1284 "pir.y"
+#line 1283 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].dval) == 1.0)
                               set_instrf(lexer, "inc", "%T", (yyvsp[(1) - (3)].targ));
@@ -3391,7 +3384,7 @@
     break;
 
   case 172:
-#line 1295 "pir.y"
+#line 1294 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].ival) == 1)
                               set_instrf(lexer, "dec", "%T", (yyvsp[(1) - (3)].targ));
@@ -3405,7 +3398,7 @@
     break;
 
   case 173:
-#line 1306 "pir.y"
+#line 1305 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].dval) == 1.0)
                               set_instrf(lexer, "dec", "%T", (yyvsp[(1) - (3)].targ));
@@ -3419,7 +3412,7 @@
     break;
 
   case 174:
-#line 1317 "pir.y"
+#line 1316 "pir.y"
     {
                           set_instrf(lexer, "add", "%T%T", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ));
                           get_opinfo(yyscanner);
@@ -3427,7 +3420,7 @@
     break;
 
   case 175:
-#line 1322 "pir.y"
+#line 1321 "pir.y"
     {
                           set_instrf(lexer, "sub", "%T%T", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ));
                           get_opinfo(yyscanner);
@@ -3435,7 +3428,7 @@
     break;
 
   case 176:
-#line 1327 "pir.y"
+#line 1326 "pir.y"
     {
                           set_instrf(lexer, (yyvsp[(3) - (4)].sval), "%T%E", (yyvsp[(1) - (4)].targ), (yyvsp[(4) - (4)].expr));
                           get_opinfo(yyscanner);
@@ -3443,7 +3436,7 @@
     break;
 
   case 177:
-#line 1332 "pir.y"
+#line 1331 "pir.y"
     {
                           if (targets_equal((yyvsp[(1) - (5)].targ), (yyvsp[(3) - (5)].targ))) /* $P0 = $P0 + $P1 ==> $P0 += $P1 */
                               set_instrf(lexer, opnames[(yyvsp[(4) - (5)].ival)], "%T%E", (yyvsp[(1) - (5)].targ), (yyvsp[(5) - (5)].expr));
@@ -3456,7 +3449,7 @@
     break;
 
   case 178:
-#line 1342 "pir.y"
+#line 1341 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(1) - (4)].sval));
                           target *t;
@@ -3478,7 +3471,7 @@
     break;
 
   case 179:
-#line 1361 "pir.y"
+#line 1360 "pir.y"
     {
                           target *preg = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (4)].ival));
                           set_target_key(preg, (yyvsp[(2) - (4)].key));
@@ -3488,97 +3481,97 @@
     break;
 
   case 180:
-#line 1395 "pir.y"
+#line 1394 "pir.y"
     { set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%i%T", (yyvsp[(1) - (3)].ival), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 181:
-#line 1397 "pir.y"
+#line 1396 "pir.y"
     { set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%n%T", (yyvsp[(1) - (3)].dval), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 182:
-#line 1399 "pir.y"
+#line 1398 "pir.y"
     { set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%s%T", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 183:
-#line 1401 "pir.y"
+#line 1400 "pir.y"
     { set_instrf(lexer, "set", "%C", fold_s_s(yyscanner, (yyvsp[(1) - (3)].sval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].sval))); ;}
     break;
 
   case 184:
-#line 1403 "pir.y"
+#line 1402 "pir.y"
     { set_instrf(lexer, "set", "%C", fold_i_i(yyscanner, (yyvsp[(1) - (3)].ival), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival))); ;}
     break;
 
   case 185:
-#line 1405 "pir.y"
+#line 1404 "pir.y"
     { set_instrf(lexer, "set", "%C", fold_n_n(yyscanner, (yyvsp[(1) - (3)].dval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].dval))); ;}
     break;
 
   case 186:
-#line 1407 "pir.y"
+#line 1406 "pir.y"
     { set_instrf(lexer, "set", "%C", fold_i_n(yyscanner, (yyvsp[(1) - (3)].ival), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].dval))); ;}
     break;
 
   case 187:
-#line 1409 "pir.y"
+#line 1408 "pir.y"
     { set_instrf(lexer, "set", "%C", fold_n_i(yyscanner, (yyvsp[(1) - (3)].dval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival))); ;}
     break;
 
   case 188:
-#line 1414 "pir.y"
+#line 1413 "pir.y"
     { get_opinfo(yyscanner); ;}
     break;
 
   case 189:
-#line 1423 "pir.y"
+#line 1422 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, (yyvsp[(3) - (5)].sval), (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 190:
-#line 1425 "pir.y"
+#line 1424 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "int", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 191:
-#line 1427 "pir.y"
+#line 1426 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "num", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 192:
-#line 1429 "pir.y"
+#line 1428 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "pmc", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 193:
-#line 1431 "pir.y"
+#line 1430 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "string", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 194:
-#line 1433 "pir.y"
+#line 1432 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "if", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 195:
-#line 1435 "pir.y"
+#line 1434 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "unless", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 196:
-#line 1437 "pir.y"
+#line 1436 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "goto", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 197:
-#line 1439 "pir.y"
+#line 1438 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (5)].ival), 1, "null", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
   case 198:
-#line 1441 "pir.y"
+#line 1440 "pir.y"
     {
                           int istrue = evaluate_c(lexer, (yyvsp[(2) - (4)].cval));
                           /* if "unless", invert the true-ness */
@@ -3593,7 +3586,7 @@
     break;
 
   case 199:
-#line 1453 "pir.y"
+#line 1452 "pir.y"
     {
                           set_instrf(lexer, (yyvsp[(1) - (5)].ival) ? "unless_null" : "if_null", "%T%I",
                                      new_reg(lexer, PMC_TYPE, (yyvsp[(3) - (5)].ival)), (yyvsp[(5) - (5)].sval));
@@ -3601,67 +3594,67 @@
     break;
 
   case 200:
-#line 1458 "pir.y"
+#line 1457 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 201:
-#line 1460 "pir.y"
+#line 1459 "pir.y"
     { set_instrf(lexer, (yyvsp[(1) - (4)].ival) ? "unless" : "if", "%T%I", (yyvsp[(2) - (4)].targ), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 202:
-#line 1462 "pir.y"
+#line 1461 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "int", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 203:
-#line 1464 "pir.y"
+#line 1463 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "num", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 204:
-#line 1466 "pir.y"
+#line 1465 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "pmc", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 205:
-#line 1468 "pir.y"
+#line 1467 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "string", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 206:
-#line 1470 "pir.y"
+#line 1469 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "if", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 207:
-#line 1472 "pir.y"
+#line 1471 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "unless", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 208:
-#line 1474 "pir.y"
+#line 1473 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "goto", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 209:
-#line 1476 "pir.y"
+#line 1475 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "goto", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 210:
-#line 1478 "pir.y"
+#line 1477 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "null", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 211:
-#line 1480 "pir.y"
+#line 1479 "pir.y"
     { create_if_instr(yyscanner, lexer, (yyvsp[(1) - (4)].ival), 0, "null", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 212:
-#line 1482 "pir.y"
+#line 1481 "pir.y"
     {
                           if ((yyvsp[(2) - (4)].ival) == COMPUTE_DURING_RUNTIME) {
                              if ((yyvsp[(1) - (4)].ival) == NEED_INVERT_OPNAME) /* "unless" */
@@ -3689,7 +3682,7 @@
     break;
 
   case 213:
-#line 1513 "pir.y"
+#line 1512 "pir.y"
     {
                           /* the instructions "gt" and "ge" are converted to "lt" and "le".
                            * if so, then the arguments must be reversed as well. "lt" and
@@ -3718,7 +3711,7 @@
     break;
 
   case 214:
-#line 1539 "pir.y"
+#line 1538 "pir.y"
     {
                           if (((yyvsp[(0) - (3)].ival) != NEED_INVERT_OPNAME) && ((yyvsp[(2) - (3)].ival) == OP_GE || (yyvsp[(2) - (3)].ival) == OP_GT))
                               set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival) + 1], "%T%i", (yyvsp[(3) - (3)].targ), (yyvsp[(1) - (3)].ival));
@@ -3729,7 +3722,7 @@
     break;
 
   case 215:
-#line 1547 "pir.y"
+#line 1546 "pir.y"
     {
                           if (((yyvsp[(0) - (3)].ival) != NEED_INVERT_OPNAME) && ((yyvsp[(2) - (3)].ival) == OP_GE || (yyvsp[(2) - (3)].ival) == OP_GT))
                               set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival) + 1], "%T%n", (yyvsp[(3) - (3)].targ), (yyvsp[(1) - (3)].dval));
@@ -3741,7 +3734,7 @@
     break;
 
   case 216:
-#line 1556 "pir.y"
+#line 1555 "pir.y"
     {
                           if (((yyvsp[(0) - (3)].ival) != NEED_INVERT_OPNAME) && ((yyvsp[(2) - (3)].ival) == OP_GE || (yyvsp[(2) - (3)].ival) == OP_GT))
                               set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%T%s", (yyvsp[(3) - (3)].targ), (yyvsp[(1) - (3)].sval));
@@ -3753,32 +3746,32 @@
     break;
 
   case 217:
-#line 1565 "pir.y"
+#line 1564 "pir.y"
     { (yyval.ival) = evaluate_i_i((yyvsp[(1) - (3)].ival), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival)); ;}
     break;
 
   case 218:
-#line 1567 "pir.y"
+#line 1566 "pir.y"
     { (yyval.ival) = evaluate_i_n((yyvsp[(1) - (3)].ival), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].dval)); ;}
     break;
 
   case 219:
-#line 1569 "pir.y"
+#line 1568 "pir.y"
     { (yyval.ival) = evaluate_n_i((yyvsp[(1) - (3)].dval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival)); ;}
     break;
 
   case 220:
-#line 1571 "pir.y"
+#line 1570 "pir.y"
     { (yyval.ival) = evaluate_n_n((yyvsp[(1) - (3)].dval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].dval)); ;}
     break;
 
   case 221:
-#line 1573 "pir.y"
+#line 1572 "pir.y"
     { (yyval.ival) = evaluate_s_s((yyvsp[(1) - (3)].sval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].sval)); ;}
     break;
 
   case 222:
-#line 1577 "pir.y"
+#line 1576 "pir.y"
     {
                           yypirerror(yyscanner, lexer, "cannot compare string to %s",
                                      (yyvsp[(3) - (3)].ival) == INT_TYPE ? "integer" : "number");
@@ -3786,37 +3779,37 @@
     break;
 
   case 223:
-#line 1582 "pir.y"
+#line 1581 "pir.y"
     { yypirerror(yyscanner, lexer, "cannot compare integer to string"); ;}
     break;
 
   case 224:
-#line 1584 "pir.y"
+#line 1583 "pir.y"
     { yypirerror(yyscanner, lexer, "cannot compare number to string"); ;}
     break;
 
   case 225:
-#line 1588 "pir.y"
+#line 1587 "pir.y"
     { (yyval.ival) = INT_TYPE; ;}
     break;
 
   case 226:
-#line 1589 "pir.y"
+#line 1588 "pir.y"
     { (yyval.ival) = NUM_TYPE; ;}
     break;
 
   case 227:
-#line 1592 "pir.y"
+#line 1591 "pir.y"
     { (yyval.ival) = DONT_INVERT_OPNAME; /* no need to invert */ ;}
     break;
 
   case 228:
-#line 1593 "pir.y"
+#line 1592 "pir.y"
     { (yyval.ival) = NEED_INVERT_OPNAME; /* yes, invert opname */ ;}
     break;
 
   case 231:
-#line 1601 "pir.y"
+#line 1600 "pir.y"
     {
                           set_instrf(lexer, "branch", "%I", (yyvsp[(2) - (3)].sval));
                           set_op_labelflag(lexer, BIT(0)); /* bit 0 means: "1 << 0" */
@@ -3825,37 +3818,37 @@
     break;
 
   case 232:
-#line 1609 "pir.y"
+#line 1608 "pir.y"
     { declare_local(lexer, (yyvsp[(2) - (4)].ival), (yyvsp[(3) - (4)].symb)); ;}
     break;
 
   case 233:
-#line 1613 "pir.y"
+#line 1612 "pir.y"
     { (yyval.symb) = (yyvsp[(1) - (1)].symb); ;}
     break;
 
   case 234:
-#line 1615 "pir.y"
+#line 1614 "pir.y"
     { (yyval.symb) = add_local((yyvsp[(1) - (3)].symb), (yyvsp[(3) - (3)].symb)); ;}
     break;
 
   case 235:
-#line 1619 "pir.y"
+#line 1618 "pir.y"
     { (yyval.symb) = new_local(lexer, (yyvsp[(1) - (2)].sval), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 236:
-#line 1622 "pir.y"
+#line 1621 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
   case 237:
-#line 1623 "pir.y"
+#line 1622 "pir.y"
     { (yyval.ival) = 1; ;}
     break;
 
   case 238:
-#line 1627 "pir.y"
+#line 1626 "pir.y"
     { /* if $4 is not a register, it must be a declared symbol */
                           if (!TEST_FLAG((yyvsp[(4) - (5)].targ)->flags, TARGET_FLAG_IS_REG)) {
 
@@ -3868,12 +3861,12 @@
     break;
 
   case 239:
-#line 1642 "pir.y"
+#line 1641 "pir.y"
     { convert_inv_to_instr(lexer, (yyvsp[(1) - (1)].invo)); ;}
     break;
 
   case 242:
-#line 1654 "pir.y"
+#line 1653 "pir.y"
     { /* $4 contains an invocation object */
                               set_invocation_args(lexer, (yyvsp[(4) - (8)].invo), (yyvsp[(3) - (8)].argm));
                               (yyval.invo) = set_invocation_results(lexer, (yyvsp[(4) - (8)].invo), (yyvsp[(6) - (8)].targ));
@@ -3881,72 +3874,72 @@
     break;
 
   case 243:
-#line 1661 "pir.y"
+#line 1660 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
   case 244:
-#line 1663 "pir.y"
+#line 1662 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 245:
-#line 1667 "pir.y"
+#line 1666 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 246:
-#line 1669 "pir.y"
+#line 1668 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
     break;
 
   case 247:
-#line 1673 "pir.y"
+#line 1672 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
   case 248:
-#line 1677 "pir.y"
+#line 1676 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(2) - (3)].targ), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 249:
-#line 1679 "pir.y"
+#line 1678 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_NCI, (yyvsp[(2) - (2)].targ)); ;}
     break;
 
   case 250:
-#line 1682 "pir.y"
+#line 1681 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_METHOD, (yyvsp[(2) - (5)].targ), (yyvsp[(5) - (5)].expr)); ;}
     break;
 
   case 251:
-#line 1686 "pir.y"
+#line 1685 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
   case 252:
-#line 1688 "pir.y"
+#line 1687 "pir.y"
     { (yyval.targ) = (yyvsp[(2) - (2)].targ); ;}
     break;
 
   case 253:
-#line 1692 "pir.y"
+#line 1691 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
   case 254:
-#line 1694 "pir.y"
+#line 1693 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 255:
-#line 1698 "pir.y"
+#line 1697 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 256:
-#line 1700 "pir.y"
+#line 1699 "pir.y"
     {
                              if ((yyvsp[(2) - (2)].targ))
                                  (yyval.targ) = add_target(lexer, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - (2)].targ));
@@ -3956,32 +3949,32 @@
     break;
 
   case 257:
-#line 1709 "pir.y"
+#line 1708 "pir.y"
     { (yyval.targ) = (yyvsp[(2) - (3)].targ); ;}
     break;
 
   case 258:
-#line 1711 "pir.y"
+#line 1710 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
   case 260:
-#line 1719 "pir.y"
+#line 1718 "pir.y"
     { (yyval.invo) = set_invocation_results(lexer, (yyvsp[(3) - (3)].invo), (yyvsp[(1) - (3)].targ)); ;}
     break;
 
   case 261:
-#line 1721 "pir.y"
+#line 1720 "pir.y"
     { (yyval.invo) = set_invocation_results(lexer, (yyvsp[(3) - (3)].invo), (yyvsp[(1) - (3)].targ)); ;}
     break;
 
   case 262:
-#line 1723 "pir.y"
+#line 1722 "pir.y"
     {  (yyval.invo) = set_invocation_results(lexer, (yyvsp[(1) - (1)].invo), NULL); ;}
     break;
 
   case 265:
-#line 1731 "pir.y"
+#line 1730 "pir.y"
     {
                              /* if $1 is not a register, check whether the symbol was declared */
                              if (!TEST_FLAG((yyvsp[(1) - (4)].targ)->flags, TARGET_FLAG_IS_REG)) {
@@ -4002,7 +3995,7 @@
     break;
 
   case 266:
-#line 1751 "pir.y"
+#line 1750 "pir.y"
     {
                              (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(1) - (2)].targ), NULL);
                              set_invocation_args(lexer, (yyval.invo), (yyvsp[(2) - (2)].argm));
@@ -4010,12 +4003,12 @@
     break;
 
   case 267:
-#line 1758 "pir.y"
+#line 1757 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 268:
-#line 1760 "pir.y"
+#line 1759 "pir.y"
     {
                              symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                              if (sym == NULL)
@@ -4026,7 +4019,7 @@
     break;
 
   case 269:
-#line 1770 "pir.y"
+#line 1769 "pir.y"
     { /* check that this identifier was declared */
                              symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
 
@@ -4046,22 +4039,22 @@
     break;
 
   case 270:
-#line 1787 "pir.y"
+#line 1786 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival))); ;}
     break;
 
   case 271:
-#line 1789 "pir.y"
+#line 1788 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, new_reg(lexer, STRING_TYPE, (yyvsp[(1) - (1)].ival))); ;}
     break;
 
   case 272:
-#line 1791 "pir.y"
+#line 1790 "pir.y"
     { (yyval.expr) = expr_from_const(lexer, new_const(lexer, STRING_TYPE, (yyvsp[(1) - (1)].sval))); ;}
     break;
 
   case 273:
-#line 1795 "pir.y"
+#line 1794 "pir.y"
     {
                              symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                              if (sym == NULL)
@@ -4073,74 +4066,74 @@
     break;
 
   case 274:
-#line 1804 "pir.y"
+#line 1803 "pir.y"
     { (yyval.targ) = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
   case 275:
-#line 1809 "pir.y"
+#line 1808 "pir.y"
     {
                              (yyval.targ) = (yyvsp[(2) - (3)].targ);
                            ;}
     break;
 
   case 276:
-#line 1815 "pir.y"
+#line 1814 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
   case 277:
-#line 1817 "pir.y"
+#line 1816 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 278:
-#line 1821 "pir.y"
+#line 1820 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 279:
-#line 1823 "pir.y"
+#line 1822 "pir.y"
     { (yyval.targ) = add_target(lexer, (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 280:
-#line 1827 "pir.y"
+#line 1826 "pir.y"
     { (yyval.targ) = set_param_flag(lexer, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 281:
-#line 1829 "pir.y"
+#line 1828 "pir.y"
     { (yyval.targ) = set_param_alias(lexer, (yyvsp[(1) - (3)].sval)); ;}
     break;
 
   case 282:
-#line 1833 "pir.y"
+#line 1832 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
   case 283:
-#line 1835 "pir.y"
+#line 1834 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 284:
-#line 1839 "pir.y"
+#line 1838 "pir.y"
     { (yyval.ival) = TARGET_FLAG_OPTIONAL; ;}
     break;
 
   case 285:
-#line 1841 "pir.y"
+#line 1840 "pir.y"
     { (yyval.ival) = TARGET_FLAG_OPT_FLAG; ;}
     break;
 
   case 286:
-#line 1843 "pir.y"
+#line 1842 "pir.y"
     { (yyval.ival) = TARGET_FLAG_SLURPY; ;}
     break;
 
   case 287:
-#line 1845 "pir.y"
+#line 1844 "pir.y"
     {
                              (yyval.ival) = TARGET_FLAG_NAMED;
                              set_param_alias(lexer, (yyvsp[(2) - (2)].sval));
@@ -4148,12 +4141,12 @@
     break;
 
   case 288:
-#line 1855 "pir.y"
+#line 1854 "pir.y"
     { convert_inv_to_instr(lexer, (yyvsp[(1) - (1)].invo)); ;}
     break;
 
   case 293:
-#line 1865 "pir.y"
+#line 1864 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_RETURN);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(2) - (3)].argm));
@@ -4161,7 +4154,7 @@
     break;
 
   case 294:
-#line 1870 "pir.y"
+#line 1869 "pir.y"
     { /* was the invocation a method call? then it becomes a method tail
                                * call, otherwise it's just a normal (sub) tail call.
                                */
@@ -4173,7 +4166,7 @@
     break;
 
   case 295:
-#line 1881 "pir.y"
+#line 1880 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_YIELD);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(2) - (3)].argm));
@@ -4181,47 +4174,47 @@
     break;
 
   case 296:
-#line 1888 "pir.y"
+#line 1887 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
   case 297:
-#line 1892 "pir.y"
+#line 1891 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
   case 298:
-#line 1894 "pir.y"
+#line 1893 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 299:
-#line 1898 "pir.y"
+#line 1897 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 300:
-#line 1900 "pir.y"
+#line 1899 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (3)].argm), (yyvsp[(3) - (3)].argm)); ;}
     break;
 
   case 303:
-#line 1908 "pir.y"
+#line 1907 "pir.y"
     { (yyval.argm) = set_arg_alias(lexer, (yyvsp[(1) - (3)].sval)); ;}
     break;
 
   case 304:
-#line 1912 "pir.y"
+#line 1911 "pir.y"
     { (yyval.argm) = set_arg_flag((yyval.argm), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 305:
-#line 1916 "pir.y"
+#line 1915 "pir.y"
     { (yyval.argm) = set_curarg(lexer, new_argument(lexer, (yyvsp[(1) - (1)].expr)));  ;}
     break;
 
   case 306:
-#line 1922 "pir.y"
+#line 1921 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_RETURN);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(3) - (5)].argm));
@@ -4229,7 +4222,7 @@
     break;
 
   case 307:
-#line 1931 "pir.y"
+#line 1930 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_YIELD);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(3) - (5)].argm));
@@ -4237,72 +4230,72 @@
     break;
 
   case 308:
-#line 1938 "pir.y"
+#line 1937 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
   case 309:
-#line 1940 "pir.y"
+#line 1939 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 310:
-#line 1945 "pir.y"
+#line 1944 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 311:
-#line 1947 "pir.y"
+#line 1946 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
     break;
 
   case 312:
-#line 1952 "pir.y"
+#line 1951 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
   case 313:
-#line 1956 "pir.y"
+#line 1955 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
   case 314:
-#line 1958 "pir.y"
+#line 1957 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 315:
-#line 1962 "pir.y"
+#line 1961 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 316:
-#line 1964 "pir.y"
+#line 1963 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
     break;
 
   case 317:
-#line 1968 "pir.y"
+#line 1967 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
   case 318:
-#line 1973 "pir.y"
+#line 1972 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
   case 319:
-#line 1975 "pir.y"
+#line 1974 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 320:
-#line 1979 "pir.y"
+#line 1978 "pir.y"
     { (yyval.ival) = ARG_FLAG_FLAT; ;}
     break;
 
   case 321:
-#line 1981 "pir.y"
+#line 1980 "pir.y"
     {
                                (yyval.ival) = ARG_FLAG_NAMED;
                                set_arg_alias(lexer, (yyvsp[(2) - (2)].sval));
@@ -4310,147 +4303,137 @@
     break;
 
   case 322:
-#line 1988 "pir.y"
+#line 1987 "pir.y"
     { (yyval.sval) = NULL; ;}
     break;
 
   case 323:
-#line 1990 "pir.y"
+#line 1989 "pir.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].sval); ;}
     break;
 
   case 324:
-#line 1994 "pir.y"
+#line 1993 "pir.y"
     { (yyval.sval) = (yyvsp[(2) - (3)].sval); ;}
     break;
 
   case 328:
-#line 2005 "pir.y"
+#line 2004 "pir.y"
     { store_global_constant(lexer, (yyvsp[(2) - (2)].cval)); ;}
     break;
 
   case 329:
-#line 2009 "pir.y"
+#line 2008 "pir.y"
     { /* XXX is .globalconst to be kept? */ ;}
     break;
 
   case 330:
-#line 2013 "pir.y"
+#line 2012 "pir.y"
     { (yyval.cval) = new_named_const(lexer, INT_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].ival)); ;}
     break;
 
   case 331:
-#line 2015 "pir.y"
+#line 2014 "pir.y"
     { (yyval.cval) = new_named_const(lexer, NUM_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].dval)); ;}
     break;
 
   case 332:
-#line 2017 "pir.y"
+#line 2016 "pir.y"
     { (yyval.cval) = new_named_const(lexer, STRING_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 333:
-#line 2019 "pir.y"
+#line 2018 "pir.y"
     { (yyval.cval) = new_pmc_const(lexer, (yyvsp[(1) - (4)].sval), (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].cval)); ;}
     break;
 
   case 334:
-#line 2026 "pir.y"
+#line 2025 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
     break;
 
   case 335:
-#line 2027 "pir.y"
+#line 2026 "pir.y"
     { (yyval.expr) = expr_from_const(lexer, (yyvsp[(1) - (1)].cval)); ;}
     break;
 
   case 336:
-#line 2031 "pir.y"
-    { (yyval.cval) = new_const(lexer, STRING_VAL, (yyvsp[(1) - (1)].sval)); ;}
-    break;
-
-  case 337:
-#line 2032 "pir.y"
+#line 2030 "pir.y"
     { (yyval.cval) = new_const(lexer, INT_VAL, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
-  case 338:
-#line 2033 "pir.y"
+  case 337:
+#line 2031 "pir.y"
     { (yyval.cval) = new_const(lexer, NUM_VAL, (yyvsp[(1) - (1)].dval)); ;}
     break;
 
   case 339:
-#line 2034 "pir.y"
-    { (yyval.cval) = new_const(lexer, USTRING_VAL, (yyvsp[(1) - (1)].ustr)); ;}
-    break;
-
-  case 340:
-#line 2037 "pir.y"
+#line 2035 "pir.y"
     { (yyval.cval) = new_const(lexer, STRING_VAL, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 341:
-#line 2038 "pir.y"
+  case 340:
+#line 2036 "pir.y"
     { (yyval.cval) = new_const(lexer, USTRING_VAL, (yyvsp[(1) - (1)].ustr)); ;}
     break;
 
-  case 342:
-#line 2041 "pir.y"
+  case 341:
+#line 2039 "pir.y"
     { (yyval.ival) = OP_NE; ;}
     break;
 
-  case 343:
-#line 2042 "pir.y"
+  case 342:
+#line 2040 "pir.y"
     { (yyval.ival) = OP_EQ; ;}
     break;
 
-  case 344:
-#line 2043 "pir.y"
+  case 343:
+#line 2041 "pir.y"
     { (yyval.ival) = OP_LT; ;}
     break;
 
-  case 345:
-#line 2044 "pir.y"
+  case 344:
+#line 2042 "pir.y"
     { (yyval.ival) = OP_LE; ;}
     break;
 
-  case 346:
-#line 2045 "pir.y"
+  case 345:
+#line 2043 "pir.y"
     { (yyval.ival) = OP_GE; ;}
     break;
 
-  case 347:
-#line 2046 "pir.y"
+  case 346:
+#line 2044 "pir.y"
     { (yyval.ival) = OP_GT; ;}
     break;
 
-  case 348:
-#line 2049 "pir.y"
+  case 347:
+#line 2047 "pir.y"
     { (yyval.ival) = INT_TYPE; ;}
     break;
 
-  case 349:
-#line 2050 "pir.y"
+  case 348:
+#line 2048 "pir.y"
     { (yyval.ival) = NUM_TYPE; ;}
     break;
 
-  case 350:
-#line 2051 "pir.y"
+  case 349:
+#line 2049 "pir.y"
     { (yyval.ival) = PMC_TYPE; ;}
     break;
 
-  case 351:
-#line 2052 "pir.y"
+  case 350:
+#line 2050 "pir.y"
     { (yyval.ival) = STRING_TYPE; ;}
     break;
 
-  case 352:
-#line 2060 "pir.y"
+  case 351:
+#line 2058 "pir.y"
     { set_curtarget(lexer, (yyvsp[(1) - (1)].targ));  ;}
     break;
 
-  case 354:
-#line 2064 "pir.y"
+  case 353:
+#line 2062 "pir.y"
     { /* a symbol must have been declared; check that at this point. */
                            symbol * sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                            if (sym == NULL) {
@@ -4462,278 +4445,278 @@
                          ;}
     break;
 
-  case 355:
-#line 2075 "pir.y"
+  case 354:
+#line 2073 "pir.y"
     { (yyval.targ) = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival));    ;}
     break;
 
-  case 356:
-#line 2076 "pir.y"
+  case 355:
+#line 2074 "pir.y"
     { (yyval.targ) = new_reg(lexer, NUM_TYPE, (yyvsp[(1) - (1)].ival));    ;}
     break;
 
-  case 357:
-#line 2077 "pir.y"
+  case 356:
+#line 2075 "pir.y"
     { (yyval.targ) = new_reg(lexer, INT_TYPE, (yyvsp[(1) - (1)].ival));    ;}
     break;
 
-  case 358:
-#line 2078 "pir.y"
+  case 357:
+#line 2076 "pir.y"
     { (yyval.targ) = new_reg(lexer, STRING_TYPE, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
-  case 361:
-#line 2086 "pir.y"
+  case 360:
+#line 2084 "pir.y"
     { (yyval.sval) = "if"; ;}
     break;
 
-  case 362:
-#line 2087 "pir.y"
+  case 361:
+#line 2085 "pir.y"
     { (yyval.sval) = "unless"; ;}
     break;
 
-  case 363:
-#line 2088 "pir.y"
+  case 362:
+#line 2086 "pir.y"
     { (yyval.sval) = "goto"; ;}
     break;
 
-  case 364:
-#line 2089 "pir.y"
+  case 363:
+#line 2087 "pir.y"
     { (yyval.sval) = "int"; ;}
     break;
 
-  case 365:
-#line 2090 "pir.y"
+  case 364:
+#line 2088 "pir.y"
     { (yyval.sval) = "num"; ;}
     break;
 
-  case 366:
-#line 2091 "pir.y"
+  case 365:
+#line 2089 "pir.y"
     { (yyval.sval) = "string"; ;}
     break;
 
-  case 367:
-#line 2092 "pir.y"
+  case 366:
+#line 2090 "pir.y"
     { (yyval.sval) = "pmc"; ;}
     break;
 
-  case 368:
-#line 2093 "pir.y"
+  case 367:
+#line 2091 "pir.y"
     { (yyval.sval) = "null"; ;}
     break;
 
-  case 369:
-#line 2096 "pir.y"
+  case 368:
+#line 2094 "pir.y"
     { (yyval.sval) = "neg"; ;}
     break;
 
-  case 370:
-#line 2097 "pir.y"
+  case 369:
+#line 2095 "pir.y"
     { (yyval.sval) = "not"; ;}
     break;
 
-  case 371:
-#line 2098 "pir.y"
+  case 370:
+#line 2096 "pir.y"
     { (yyval.sval) = "bnot"; ;}
     break;
 
-  case 372:
-#line 2101 "pir.y"
+  case 371:
+#line 2099 "pir.y"
     { (yyval.ival) = OP_ADD; ;}
     break;
 
-  case 373:
-#line 2102 "pir.y"
+  case 372:
+#line 2100 "pir.y"
     { (yyval.ival) = OP_SUB; ;}
     break;
 
-  case 374:
-#line 2103 "pir.y"
+  case 373:
+#line 2101 "pir.y"
     { (yyval.ival) = OP_DIV; ;}
     break;
 
-  case 375:
-#line 2104 "pir.y"
+  case 374:
+#line 2102 "pir.y"
     { (yyval.ival) = OP_MUL; ;}
     break;
 
-  case 376:
-#line 2105 "pir.y"
+  case 375:
+#line 2103 "pir.y"
     { (yyval.ival) = OP_MOD; ;}
     break;
 
-  case 377:
-#line 2106 "pir.y"
+  case 376:
+#line 2104 "pir.y"
     { (yyval.ival) = OP_BOR; ;}
     break;
 
-  case 378:
-#line 2107 "pir.y"
+  case 377:
+#line 2105 "pir.y"
     { (yyval.ival) = OP_BAND; ;}
     break;
 
-  case 379:
-#line 2108 "pir.y"
+  case 378:
+#line 2106 "pir.y"
     { (yyval.ival) = OP_BXOR; ;}
     break;
 
-  case 380:
-#line 2109 "pir.y"
+  case 379:
+#line 2107 "pir.y"
     { (yyval.ival) = OP_POW; ;}
     break;
 
-  case 381:
-#line 2110 "pir.y"
+  case 380:
+#line 2108 "pir.y"
     { (yyval.ival) = OP_CONCAT; ;}
     break;
 
-  case 382:
-#line 2111 "pir.y"
+  case 381:
+#line 2109 "pir.y"
     { (yyval.ival) = OP_LSR; ;}
     break;
 
-  case 383:
-#line 2112 "pir.y"
+  case 382:
+#line 2110 "pir.y"
     { (yyval.ival) = OP_SHR; ;}
     break;
 
-  case 384:
-#line 2113 "pir.y"
+  case 383:
+#line 2111 "pir.y"
     { (yyval.ival) = OP_SHL; ;}
     break;
 
-  case 385:
-#line 2114 "pir.y"
+  case 384:
+#line 2112 "pir.y"
     { (yyval.ival) = OP_OR; ;}
     break;
 
-  case 386:
-#line 2115 "pir.y"
+  case 385:
+#line 2113 "pir.y"
     { (yyval.ival) = OP_AND; ;}
     break;
 
-  case 387:
-#line 2116 "pir.y"
+  case 386:
+#line 2114 "pir.y"
     { (yyval.ival) = OP_FDIV; ;}
     break;
 
-  case 388:
-#line 2117 "pir.y"
+  case 387:
+#line 2115 "pir.y"
     { (yyval.ival) = OP_XOR; ;}
     break;
 
-  case 389:
-#line 2118 "pir.y"
+  case 388:
+#line 2116 "pir.y"
     { (yyval.ival) = OP_ISEQ; ;}
     break;
 
-  case 390:
-#line 2119 "pir.y"
+  case 389:
+#line 2117 "pir.y"
     { (yyval.ival) = OP_ISLE; ;}
     break;
 
-  case 391:
-#line 2120 "pir.y"
+  case 390:
+#line 2118 "pir.y"
     { (yyval.ival) = OP_ISLT; ;}
     break;
 
-  case 392:
-#line 2121 "pir.y"
+  case 391:
+#line 2119 "pir.y"
     { (yyval.ival) = OP_ISGE; ;}
     break;
 
-  case 393:
-#line 2122 "pir.y"
+  case 392:
+#line 2120 "pir.y"
     { (yyval.ival) = OP_ISGT; ;}
     break;
 
-  case 394:
-#line 2123 "pir.y"
+  case 393:
+#line 2121 "pir.y"
     { (yyval.ival) = OP_ISNE; ;}
     break;
 
-  case 395:
-#line 2129 "pir.y"
+  case 394:
+#line 2127 "pir.y"
     { (yyval.ival) = OP_MUL; ;}
     break;
 
-  case 396:
-#line 2130 "pir.y"
+  case 395:
+#line 2128 "pir.y"
     { (yyval.ival) = OP_MOD; ;}
     break;
 
-  case 397:
-#line 2131 "pir.y"
+  case 396:
+#line 2129 "pir.y"
     { (yyval.ival) = OP_POW; ;}
     break;
 
-  case 398:
-#line 2132 "pir.y"
+  case 397:
+#line 2130 "pir.y"
     { (yyval.ival) = OP_DIV; ;}
     break;
 
-  case 399:
-#line 2133 "pir.y"
+  case 398:
+#line 2131 "pir.y"
     { (yyval.ival) = OP_FDIV; ;}
     break;
 
-  case 400:
-#line 2134 "pir.y"
+  case 399:
+#line 2132 "pir.y"
     { (yyval.ival) = OP_BOR; ;}
     break;
 
-  case 401:
-#line 2135 "pir.y"
+  case 400:
+#line 2133 "pir.y"
     { (yyval.ival) = OP_BAND; ;}
     break;
 
-  case 402:
-#line 2136 "pir.y"
+  case 401:
+#line 2134 "pir.y"
     { (yyval.ival) = OP_BXOR; ;}
     break;
 
-  case 403:
-#line 2137 "pir.y"
+  case 402:
+#line 2135 "pir.y"
     { (yyval.ival) = OP_CONCAT; ;}
     break;
 
-  case 404:
-#line 2138 "pir.y"
+  case 403:
+#line 2136 "pir.y"
     { (yyval.ival) = OP_SHR; ;}
     break;
 
-  case 405:
-#line 2139 "pir.y"
+  case 404:
+#line 2137 "pir.y"
     { (yyval.ival) = OP_SHL; ;}
     break;
 
-  case 406:
-#line 2140 "pir.y"
+  case 405:
+#line 2138 "pir.y"
     { (yyval.ival) = OP_LSR; ;}
     break;
 
-  case 408:
-#line 2161 "pir.y"
+  case 407:
+#line 2159 "pir.y"
     { new_subr(lexer, "@start"); ;}
     break;
 
-  case 417:
-#line 2177 "pir.y"
+  case 416:
+#line 2175 "pir.y"
     { set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
     break;
 
-  case 422:
-#line 2187 "pir.y"
+  case 421:
+#line 2185 "pir.y"
     { set_sub_name(lexer, (yyvsp[(3) - (3)].sval)); ;}
     break;
 
-  case 423:
-#line 2191 "pir.y"
+  case 422:
+#line 2189 "pir.y"
     { new_subr(lexer, NULL); ;}
     break;
 
-  case 424:
-#line 2196 "pir.y"
+  case 423:
+#line 2194 "pir.y"
     {
                                   if (is_parrot_op(lexer, (yyvsp[(1) - (3)].sval)))
                                       get_opinfo(yyscanner);
@@ -4745,7 +4728,7 @@
 
 
 /* Line 1267 of yacc.c.  */
-#line 4749 "pirparser.c"
+#line 4732 "pirparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4959,7 +4942,7 @@
 }
 
 
-#line 2207 "pir.y"
+#line 2205 "pir.y"
 
 
 

Modified: trunk/compilers/pirc/new/pirparser.h
==============================================================================
--- trunk/compilers/pirc/new/pirparser.h	(original)
+++ trunk/compilers/pirc/new/pirparser.h	Sat Jan  3 07:23:12 2009
@@ -90,72 +90,71 @@
      TK_NREG = 306,
      TK_SREG = 307,
      TK_IREG = 308,
-     TK_CONST_VALUE = 309,
-     TK_ARROW = 310,
-     TK_NE = 311,
-     TK_EQ = 312,
-     TK_LT = 313,
-     TK_LE = 314,
-     TK_GT = 315,
-     TK_GE = 316,
-     TK_USHIFT = 317,
-     TK_RSHIFT = 318,
-     TK_LSHIFT = 319,
-     TK_FDIV = 320,
-     TK_OR = 321,
-     TK_AND = 322,
-     TK_XOR = 323,
-     TK_CONC = 324,
-     TK_ASSIGN_USHIFT = 325,
-     TK_ASSIGN_RSHIFT = 326,
-     TK_ASSIGN_LSHIFT = 327,
-     TK_ASSIGN_INC = 328,
-     TK_ASSIGN_DEC = 329,
-     TK_ASSIGN_MUL = 330,
-     TK_ASSIGN_MOD = 331,
-     TK_ASSIGN_POW = 332,
-     TK_ASSIGN_DIV = 333,
-     TK_ASSIGN_BOR = 334,
-     TK_ASSIGN_BAND = 335,
-     TK_ASSIGN_FDIV = 336,
-     TK_ASSIGN_BNOT = 337,
-     TK_ASSIGN_CONC = 338,
-     TK_FLAG_INIT = 339,
-     TK_FLAG_LOAD = 340,
-     TK_FLAG_MAIN = 341,
-     TK_FLAG_ANON = 342,
-     TK_FLAG_METHOD = 343,
-     TK_FLAG_OUTER = 344,
-     TK_FLAG_VTABLE = 345,
-     TK_FLAG_LEX = 346,
-     TK_FLAG_MULTI = 347,
-     TK_FLAG_POSTCOMP = 348,
-     TK_FLAG_IMMEDIATE = 349,
-     TK_FLAG_SUBID = 350,
-     TK_FLAG_INSTANCEOF = 351,
-     TK_FLAG_NSENTRY = 352,
-     TK_FLAG_UNIQUE_REG = 353,
-     TK_FLAG_NAMED = 354,
-     TK_FLAG_SLURPY = 355,
-     TK_FLAG_FLAT = 356,
-     TK_FLAG_OPTIONAL = 357,
-     TK_FLAG_OPT_FLAG = 358,
-     TK_FLAG_INVOCANT = 359,
-     TK_MACRO = 360,
-     TK_ENDM = 361,
-     TK_MACRO_LOCAL = 362,
-     TK_MACRO_LABEL = 363,
-     TK_MACRO_CONST = 364,
-     TK_MACRO_LABEL_ID = 365,
-     TK_MACRO_LOCAL_ID = 366,
-     TK_MACRO_IDENT = 367,
-     TK_MACRO_ARG_IDENT = 368,
-     TK_MACRO_ARG_OTHER = 369,
-     TK_MACRO_CONST_VAL = 370,
-     TK_PASM_MARKER_START = 371,
-     TK_PIR_MARKER_START = 372,
-     TK_PCC_SUB = 373,
-     TK_PARROT_OP = 374
+     TK_ARROW = 309,
+     TK_NE = 310,
+     TK_EQ = 311,
+     TK_LT = 312,
+     TK_LE = 313,
+     TK_GT = 314,
+     TK_GE = 315,
+     TK_USHIFT = 316,
+     TK_RSHIFT = 317,
+     TK_LSHIFT = 318,
+     TK_FDIV = 319,
+     TK_OR = 320,
+     TK_AND = 321,
+     TK_XOR = 322,
+     TK_CONC = 323,
+     TK_ASSIGN_USHIFT = 324,
+     TK_ASSIGN_RSHIFT = 325,
+     TK_ASSIGN_LSHIFT = 326,
+     TK_ASSIGN_INC = 327,
+     TK_ASSIGN_DEC = 328,
+     TK_ASSIGN_MUL = 329,
+     TK_ASSIGN_MOD = 330,
+     TK_ASSIGN_POW = 331,
+     TK_ASSIGN_DIV = 332,
+     TK_ASSIGN_BOR = 333,
+     TK_ASSIGN_BAND = 334,
+     TK_ASSIGN_FDIV = 335,
+     TK_ASSIGN_BNOT = 336,
+     TK_ASSIGN_CONC = 337,
+     TK_FLAG_INIT = 338,
+     TK_FLAG_LOAD = 339,
+     TK_FLAG_MAIN = 340,
+     TK_FLAG_ANON = 341,
+     TK_FLAG_METHOD = 342,
+     TK_FLAG_OUTER = 343,
+     TK_FLAG_VTABLE = 344,
+     TK_FLAG_LEX = 345,
+     TK_FLAG_MULTI = 346,
+     TK_FLAG_POSTCOMP = 347,
+     TK_FLAG_IMMEDIATE = 348,
+     TK_FLAG_SUBID = 349,
+     TK_FLAG_INSTANCEOF = 350,
+     TK_FLAG_NSENTRY = 351,
+     TK_FLAG_UNIQUE_REG = 352,
+     TK_FLAG_NAMED = 353,
+     TK_FLAG_SLURPY = 354,
+     TK_FLAG_FLAT = 355,
+     TK_FLAG_OPTIONAL = 356,
+     TK_FLAG_OPT_FLAG = 357,
+     TK_FLAG_INVOCANT = 358,
+     TK_MACRO = 359,
+     TK_ENDM = 360,
+     TK_MACRO_LOCAL = 361,
+     TK_MACRO_LABEL = 362,
+     TK_MACRO_CONST = 363,
+     TK_MACRO_LABEL_ID = 364,
+     TK_MACRO_LOCAL_ID = 365,
+     TK_MACRO_IDENT = 366,
+     TK_MACRO_ARG_IDENT = 367,
+     TK_MACRO_ARG_OTHER = 368,
+     TK_MACRO_CONST_VAL = 369,
+     TK_PASM_MARKER_START = 370,
+     TK_PIR_MARKER_START = 371,
+     TK_PCC_SUB = 372,
+     TK_PARROT_OP = 373
    };
 #endif
 /* Tokens.  */
@@ -210,72 +209,71 @@
 #define TK_NREG 306
 #define TK_SREG 307
 #define TK_IREG 308
-#define TK_CONST_VALUE 309
-#define TK_ARROW 310
-#define TK_NE 311
-#define TK_EQ 312
-#define TK_LT 313
-#define TK_LE 314
-#define TK_GT 315
-#define TK_GE 316
-#define TK_USHIFT 317
-#define TK_RSHIFT 318
-#define TK_LSHIFT 319
-#define TK_FDIV 320
-#define TK_OR 321
-#define TK_AND 322
-#define TK_XOR 323
-#define TK_CONC 324
-#define TK_ASSIGN_USHIFT 325
-#define TK_ASSIGN_RSHIFT 326
-#define TK_ASSIGN_LSHIFT 327
-#define TK_ASSIGN_INC 328
-#define TK_ASSIGN_DEC 329
-#define TK_ASSIGN_MUL 330
-#define TK_ASSIGN_MOD 331
-#define TK_ASSIGN_POW 332
-#define TK_ASSIGN_DIV 333
-#define TK_ASSIGN_BOR 334
-#define TK_ASSIGN_BAND 335
-#define TK_ASSIGN_FDIV 336
-#define TK_ASSIGN_BNOT 337
-#define TK_ASSIGN_CONC 338
-#define TK_FLAG_INIT 339
-#define TK_FLAG_LOAD 340
-#define TK_FLAG_MAIN 341
-#define TK_FLAG_ANON 342
-#define TK_FLAG_METHOD 343
-#define TK_FLAG_OUTER 344
-#define TK_FLAG_VTABLE 345
-#define TK_FLAG_LEX 346
-#define TK_FLAG_MULTI 347
-#define TK_FLAG_POSTCOMP 348
-#define TK_FLAG_IMMEDIATE 349
-#define TK_FLAG_SUBID 350
-#define TK_FLAG_INSTANCEOF 351
-#define TK_FLAG_NSENTRY 352
-#define TK_FLAG_UNIQUE_REG 353
-#define TK_FLAG_NAMED 354
-#define TK_FLAG_SLURPY 355
-#define TK_FLAG_FLAT 356
-#define TK_FLAG_OPTIONAL 357
-#define TK_FLAG_OPT_FLAG 358
-#define TK_FLAG_INVOCANT 359
-#define TK_MACRO 360
-#define TK_ENDM 361
-#define TK_MACRO_LOCAL 362
-#define TK_MACRO_LABEL 363
-#define TK_MACRO_CONST 364
-#define TK_MACRO_LABEL_ID 365
-#define TK_MACRO_LOCAL_ID 366
-#define TK_MACRO_IDENT 367
-#define TK_MACRO_ARG_IDENT 368
-#define TK_MACRO_ARG_OTHER 369
-#define TK_MACRO_CONST_VAL 370
-#define TK_PASM_MARKER_START 371
-#define TK_PIR_MARKER_START 372
-#define TK_PCC_SUB 373
-#define TK_PARROT_OP 374
+#define TK_ARROW 309
+#define TK_NE 310
+#define TK_EQ 311
+#define TK_LT 312
+#define TK_LE 313
+#define TK_GT 314
+#define TK_GE 315
+#define TK_USHIFT 316
+#define TK_RSHIFT 317
+#define TK_LSHIFT 318
+#define TK_FDIV 319
+#define TK_OR 320
+#define TK_AND 321
+#define TK_XOR 322
+#define TK_CONC 323
+#define TK_ASSIGN_USHIFT 324
+#define TK_ASSIGN_RSHIFT 325
+#define TK_ASSIGN_LSHIFT 326
+#define TK_ASSIGN_INC 327
+#define TK_ASSIGN_DEC 328
+#define TK_ASSIGN_MUL 329
+#define TK_ASSIGN_MOD 330
+#define TK_ASSIGN_POW 331
+#define TK_ASSIGN_DIV 332
+#define TK_ASSIGN_BOR 333
+#define TK_ASSIGN_BAND 334
+#define TK_ASSIGN_FDIV 335
+#define TK_ASSIGN_BNOT 336
+#define TK_ASSIGN_CONC 337
+#define TK_FLAG_INIT 338
+#define TK_FLAG_LOAD 339
+#define TK_FLAG_MAIN 340
+#define TK_FLAG_ANON 341
+#define TK_FLAG_METHOD 342
+#define TK_FLAG_OUTER 343
+#define TK_FLAG_VTABLE 344
+#define TK_FLAG_LEX 345
+#define TK_FLAG_MULTI 346
+#define TK_FLAG_POSTCOMP 347
+#define TK_FLAG_IMMEDIATE 348
+#define TK_FLAG_SUBID 349
+#define TK_FLAG_INSTANCEOF 350
+#define TK_FLAG_NSENTRY 351
+#define TK_FLAG_UNIQUE_REG 352
+#define TK_FLAG_NAMED 353
+#define TK_FLAG_SLURPY 354
+#define TK_FLAG_FLAT 355
+#define TK_FLAG_OPTIONAL 356
+#define TK_FLAG_OPT_FLAG 357
+#define TK_FLAG_INVOCANT 358
+#define TK_MACRO 359
+#define TK_ENDM 360
+#define TK_MACRO_LOCAL 361
+#define TK_MACRO_LABEL 362
+#define TK_MACRO_CONST 363
+#define TK_MACRO_LABEL_ID 364
+#define TK_MACRO_LOCAL_ID 365
+#define TK_MACRO_IDENT 366
+#define TK_MACRO_ARG_IDENT 367
+#define TK_MACRO_ARG_OTHER 368
+#define TK_MACRO_CONST_VAL 369
+#define TK_PASM_MARKER_START 370
+#define TK_PIR_MARKER_START 371
+#define TK_PCC_SUB 372
+#define TK_PARROT_OP 373
 
 
 
@@ -301,7 +299,7 @@
     struct macro_param *pval;
 }
 /* Line 1489 of yacc.c.  */
-#line 305 "pirparser.h"
+#line 303 "pirparser.h"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1

Modified: trunk/compilers/pirc/new/pirsymbol.c
==============================================================================
--- trunk/compilers/pirc/new/pirsymbol.c	(original)
+++ trunk/compilers/pirc/new/pirsymbol.c	Sat Jan  3 07:23:12 2009
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2007-2008, The Perl Foundation.
+ * Copyright (C) 2007-2009, The Perl Foundation.
  */
 #include "pircompiler.h"
 #include "pirsymbol.h"

Modified: trunk/compilers/pirc/new/pirsymbol.h
==============================================================================
--- trunk/compilers/pirc/new/pirsymbol.h	(original)
+++ trunk/compilers/pirc/new/pirsymbol.h	Sat Jan  3 07:23:12 2009
@@ -1,6 +1,6 @@
 /*
  * $Id$
- * Copyright (C) 2007-2008, The Perl Foundation.
+ * Copyright (C) 2007-2009, The Perl Foundation.
  */
 
 



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About