[svn:parrot] r36627 - trunk/compilers/pirc/src

kjs at svn.parrot.org kjs at svn.parrot.org
Thu Feb 12 11:39:43 UTC 2009


Author: kjs
Date: Thu Feb 12 11:39:41 2009
New Revision: 36627
URL: https://trac.parrot.org/parrot/changeset/36627

Log:
[pirc] remove deprecated .HLL_map directive and all supporting code.

Modified:
   trunk/compilers/pirc/src/pir.l
   trunk/compilers/pirc/src/pir.y
   trunk/compilers/pirc/src/pircompunit.c
   trunk/compilers/pirc/src/pircompunit.h
   trunk/compilers/pirc/src/pirlexer.c
   trunk/compilers/pirc/src/pirlexer.h
   trunk/compilers/pirc/src/pirparser.c
   trunk/compilers/pirc/src/pirparser.h

Modified: trunk/compilers/pirc/src/pir.l
==============================================================================
--- trunk/compilers/pirc/src/pir.l	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pir.l	Thu Feb 12 11:39:41 2009	(r36627)
@@ -341,7 +341,6 @@
 ".get_results"    { return TK_GET_RESULTS; }
 ".globalconst"    { return TK_GLOBALCONST; }
 ".HLL"            { return TK_HLL; }
-".HLL_map"        { return TK_HLL_MAP; }
 ".invocant"       { return TK_INVOCANT; }
 ".lex"            { return TK_LEX; }
 ".line"           { return TK_LINE; }

Modified: trunk/compilers/pirc/src/pir.y
==============================================================================
--- trunk/compilers/pirc/src/pir.y	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pir.y	Thu Feb 12 11:39:41 2009	(r36627)
@@ -254,7 +254,6 @@
 
 
 %token TK_HLL               ".HLL"
-       TK_HLL_MAP           ".HLL_map"
        TK_LOADLIB           ".loadlib"
 
 %token TK_SUB               ".sub"
@@ -588,7 +587,6 @@
                   | const_decl_chunk
                   | namespace_decl
                   | hll_specifier
-                  | hll_mapping
                   | loadlib
                   | location_directive
                   | macro_definition
@@ -678,10 +676,6 @@
                         { set_hll(lexer, $2); }
                   ;
 
-hll_mapping       : ".HLL_map" TK_STRINGC '=' TK_STRINGC
-                        { set_hll_map(lexer, $2, $4); }
-                  ;
-
 namespace_decl    : ".namespace" '[' opt_namespace ']'
                         { set_namespace(lexer, $3); }
                   ;

Modified: trunk/compilers/pirc/src/pircompunit.c
==============================================================================
--- trunk/compilers/pirc/src/pircompunit.c	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pircompunit.c	Thu Feb 12 11:39:41 2009	(r36627)
@@ -2000,43 +2000,6 @@
 }
 
 
-/*
-
-=item C<void
-set_hll_map(lexer_state * const lexer, char * const stdtype, char * const maptype)>
-
-Set a HLL PMC data type mapping; whenever Parrot needs to create a PMC object of
-a type that is mapped to a user type, user type will be instantiated. For instance,
-after the mapping:
-
- .HLL_map "Integer" = "Perl6Int"
-
-whenever Parrot needs to create a Integer PMC, a Perl6Int is created instead.
-
-Code taken from imcc.y; needs testing.
-
-=cut
-
-*/
-void
-set_hll_map(lexer_state * const lexer, char const * const stdtype, char const * const maptype) {
-    Parrot_Context *ctx           = CONTEXT(lexer->interp);
-    STRING * const  built_in_name = Parrot_str_new(lexer->interp, stdtype, strlen(stdtype));
-    STRING * const  language_name = Parrot_str_new(lexer->interp, maptype, strlen(maptype));
-    int             built_in_type = pmc_type(lexer->interp, built_in_name);
-    int             language_type = pmc_type(lexer->interp, language_name);
-
-    /* check if both the built-in and language types exist. */
-
-    if (built_in_type <= 0)
-        yypirerror(lexer->yyscanner, lexer, "type '%s' is not a built-in type", stdtype);
-
-    if (language_type <= 0)
-        yypirerror(lexer->yyscanner, lexer, "user type '%s' cannot be found", maptype);
-
-    Parrot_register_HLL_type(lexer->interp, ctx->current_HLL, built_in_type, language_type);
-}
-
 
 /*
 

Modified: trunk/compilers/pirc/src/pircompunit.h
==============================================================================
--- trunk/compilers/pirc/src/pircompunit.h	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pircompunit.h	Thu Feb 12 11:39:41 2009	(r36627)
@@ -455,8 +455,6 @@
 
 void load_library(struct lexer_state * const lexer, char const * const library);
 void set_hll(struct lexer_state * const lexer, char const * const hll);
-void set_hll_map(struct lexer_state * const lexer, char const * const stdtype,
-                 char const * const hlltype);
 
 void set_sub_flag(struct lexer_state * const lexer, sub_flag flag);
 

Modified: trunk/compilers/pirc/src/pirlexer.c
==============================================================================
--- trunk/compilers/pirc/src/pirlexer.c	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pirlexer.c	Thu Feb 12 11:39:41 2009	(r36627)
@@ -485,8 +485,8 @@
     yyg->yy_c_buf_p = yy_cp;
 
 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
-#define YY_NUM_RULES 210
-#define YY_END_OF_BUFFER 211
+#define YY_NUM_RULES 209
+#define YY_END_OF_BUFFER 210
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -494,99 +494,99 @@
     flex_int32_t yy_verify;
     flex_int32_t yy_nxt;
     };
-static yyconst flex_int16_t yy_accept[829] =
+static yyconst flex_int16_t yy_accept[825] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  211,  130,    2,    4,    2,   25,
-      130,  130,  130,   22,  130,  130,   28,   29,   23,   21,
-       30,   27,  130,   24,  123,  123,  130,   35,   15,   34,
-       16,  121,  121,   31,   32,  121,  121,  121,  121,  121,
-      121,  130,   26,  210,  137,  142,  137,  139,  140,  141,
-      138,  176,  174,  176,  176,  168,  166,  167,  166,  168,
-      162,  162,  162,  162,  162,  171,  210,  210,  210,  155,
-      147,  154,  147,  155,  155,  155,  149,  150,  155,  148,
-
-      155,  151,  151,  145,  152,  153,  135,  134,  135,  135,
-      135,  135,  135,  133,  133,  132,  130,  130,  121,  121,
-      121,  121,  121,  121,  121,  121,  210,  210,  210,  210,
-      151,  151,    1,  209,  207,  208,  207,  209,  209,  209,
-      209,  177,  209,  202,  202,  209,  200,  200,  200,  200,
-      200,  178,  179,    0,    4,    4,   12,    0,  111,    0,
+        0,    0,    0,    0,  210,  129,    2,    4,    2,   25,
+      129,  129,  129,   22,  129,  129,   28,   29,   23,   21,
+       30,   27,  129,   24,  122,  122,  129,   35,   15,   34,
+       16,  120,  120,   31,   32,  120,  120,  120,  120,  120,
+      120,  129,   26,  209,  136,  141,  136,  138,  139,  140,
+      137,  175,  173,  175,  175,  167,  165,  166,  165,  167,
+      161,  161,  161,  161,  161,  170,  209,  209,  209,  154,
+      146,  153,  146,  154,  154,  154,  148,  149,  154,  147,
+
+      154,  150,  150,  144,  151,  152,  134,  133,  134,  134,
+      134,  134,  134,  132,  132,  131,  129,  129,  120,  120,
+      120,  120,  120,  120,  120,  120,  209,  209,  209,  209,
+      150,  150,    1,  208,  206,  207,  206,  208,  208,  208,
+      208,  176,  208,  201,  201,  208,  199,  199,  199,  199,
+      199,  177,  178,    0,    4,    4,   12,    0,  110,    0,
         0,    3,    0,    0,    0,    0,    0,   40,   18,   43,
-        0,  112,    0,   39,    0,  123,   36,   37,  127,  122,
-       46,  127,  127,  143,  127,  127,  127,  127,  127,  127,
-      127,  127,  127,  127,  127,  127,  127,  127,  127,   17,
-
-       38,  122,    0,    0,    0,    0,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,    9,   13,
-       11,   10,   14,    8,    0,  121,  119,  120,  121,   47,
-      121,  121,  121,  121,  121,   42,   19,   45,   20,  142,
-      142,  138,  174,  174,    0,    0,    0,  167,  167,  163,
-      162,  162,  162,  162,  162,  171,  171,    0,    0,  170,
-      154,  154,    0,  151,    0,    0,    0,    0,  151,  151,
-      144,  151,    0,    0,    0,    0,  145,    0,  133,    0,
-        0,    0,    0,  133,  133,  133,    0,    0,    0,    0,
-      132,    0,    0,    0,    0,    0,  127,  121,  129,  120,
-
-      121,   47,  121,  121,  121,  121,  121,  208,  208,    0,
-      206,    0,    0,    0,    0,  202,  201,  193,  193,  193,
-      193,  193,  193,  201,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  200,  194,  198,  197,  196,  199,  128,
-       33,    3,  118,  117,  115,  116,   41,    0,  143,  143,
-      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
-      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
-      143,  143,   44,  122,  125,    0,  122,  126,  124,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,    7,    6,
-
-        0,    0,    0,  121,   51,  121,   52,   53,  121,  121,
-        0,    0,    0,  163,  158,  160,  159,  162,  146,    0,
-      144,  151,  151,    0,  151,  151,  151,  133,    0,  133,
-      133,    0,  133,  133,  133,    0,  165,  118,  117,  115,
-      116,  164,  172,  121,   51,  121,   52,   53,  121,  121,
-      195,    0,  193,  193,  193,  193,  193,  193,  193,  201,
-      204,    0,  201,  205,  203,    0,    0,    0,    0,    0,
-        0,    0,  122,   62,  143,  143,  143,  143,   58,  143,
-      143,  143,  143,   65,  143,  143,  143,  143,  143,  143,
-      143,  143,  143,  143,   82,  143,  143,  110,  110,  110,
-
-      110,  110,  110,   95,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,    5,    0,
-      113,    0,    0,    0,   48,   50,  121,  121,    0,    0,
-        0,  162,    0,  151,    0,  133,  173,  164,   48,   50,
-      121,  121,    0,  201,  193,  187,  193,  193,  193,  193,
-        0,    0,    0,    0,    0,    0,  143,  143,  143,   76,
-      143,  143,   87,   59,  143,  143,  143,   66,  143,  143,
-      143,  143,  143,  143,  143,  143,  143,  143,  143,   88,
-      107,  110,   89,  110,  110,   90,  110,   93,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-
-        0,  121,  121,  175,    0,    0,  162,  121,  121,  192,
-      191,  193,  193,  193,  183,    0,  182,  181,  180,    0,
-      143,  143,  143,   57,  143,  143,  143,  143,  143,  143,
-      143,   68,  136,  143,  143,  143,   72,  143,  143,  143,
-      143,  143,   83,  110,  110,  110,  110,  110,   98,  106,
-      110,  110,  110,   96,  110,  110,   99,  110,  110,    0,
-      114,    0,   54,   49,  156,    0,  161,   54,   49,  189,
-      193,  193,    0,    0,  143,  143,  143,  143,  143,  143,
-      143,  143,  143,  143,  143,  143,  143,  143,   81,  143,
-      143,  143,  143,  110,  110,  110,  110,   94,  110,  110,
-
-      110,  110,  105,  110,   97,    0,  193,  193,  193,    0,
-        0,   63,  143,  143,  143,  143,  143,  143,  143,  143,
-      143,  143,   67,  143,  143,  143,  143,  143,   56,  143,
-      143,  143,  110,  110,  110,  110,  101,  110,  110,  110,
-      110,    0,  193,  193,  186,    0,    0,   55,  143,  143,
-      143,   77,  143,  143,  143,  143,   64,  143,  143,  143,
-      143,  143,   71,  143,  143,   86,  110,  110,  108,  110,
-      104,  103,   91,  110,    0,    0,  193,  193,    0,  184,
-      143,  143,  143,  143,   79,  143,  143,  143,  143,  143,
-       69,   70,  143,   85,   92,  110,  109,  110,    0,    0,
-
-      193,  188,  185,   73,  143,  143,   78,   80,  143,  143,
-      143,  143,   84,  100,  102,    0,    0,  193,  143,   75,
-       60,   61,  131,  169,  157,  190,   74,    0
+        0,  111,    0,   39,    0,  122,   36,   37,  126,  121,
+       46,  126,  126,  142,  126,  126,  126,  126,  126,  126,
+      126,  126,  126,  126,  126,  126,  126,  126,  126,   17,
+
+       38,  121,    0,    0,    0,    0,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,    9,   13,
+       11,   10,   14,    8,    0,  120,  118,  119,  120,   47,
+      120,  120,  120,  120,  120,   42,   19,   45,   20,  141,
+      141,  137,  173,  173,    0,    0,    0,  166,  166,  162,
+      161,  161,  161,  161,  161,  170,  170,    0,    0,  169,
+      153,  153,    0,  150,    0,    0,    0,    0,  150,  150,
+      143,  150,    0,    0,    0,    0,  144,    0,  132,    0,
+        0,    0,    0,  132,  132,  132,    0,    0,    0,    0,
+      131,    0,    0,    0,    0,    0,  126,  120,  128,  119,
+
+      120,   47,  120,  120,  120,  120,  120,  207,  207,    0,
+      205,    0,    0,    0,    0,  201,  200,  192,  192,  192,
+      192,  192,  192,  200,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  199,  193,  197,  196,  195,  198,  127,
+       33,    3,  117,  116,  114,  115,   41,    0,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,   44,  121,  124,    0,  121,  125,  123,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,    7,    6,
+
+        0,    0,    0,  120,   51,  120,   52,   53,  120,  120,
+        0,    0,    0,  162,  157,  159,  158,  161,  145,    0,
+      143,  150,  150,    0,  150,  150,  150,  132,    0,  132,
+      132,    0,  132,  132,  132,    0,  164,  117,  116,  114,
+      115,  163,  171,  120,   51,  120,   52,   53,  120,  120,
+      194,    0,  192,  192,  192,  192,  192,  192,  192,  200,
+      203,    0,  200,  204,  202,    0,    0,    0,    0,    0,
+        0,    0,  121,   62,  142,  142,  142,  142,   58,  142,
+      142,  142,  142,   64,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,   81,  142,  142,  109,  109,  109,
+
+      109,  109,  109,   94,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,    5,    0,
+      112,    0,    0,    0,   48,   50,  120,  120,    0,    0,
+        0,  161,    0,  150,    0,  132,  172,  163,   48,   50,
+      120,  120,    0,  200,  192,  186,  192,  192,  192,  192,
+        0,    0,    0,    0,    0,    0,  142,  142,   75,  142,
+      142,   86,   59,  142,  142,  142,   65,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,   87,  106,
+      109,   88,  109,  109,   89,  109,   92,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,    0,
+
+      120,  120,  174,    0,    0,  161,  120,  120,  191,  190,
+      192,  192,  192,  182,    0,  181,  180,  179,    0,  142,
+      142,   57,  142,  142,  142,  142,  142,  142,  142,   67,
+      135,  142,  142,  142,   71,  142,  142,  142,  142,  142,
+       82,  109,  109,  109,  109,  109,   97,  105,  109,  109,
+      109,   95,  109,  109,   98,  109,  109,    0,  113,    0,
+       54,   49,  155,    0,  160,   54,   49,  188,  192,  192,
+        0,    0,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,   80,  142,  142,  142,  142,
+      109,  109,  109,  109,   93,  109,  109,  109,  109,  104,
+
+      109,   96,    0,  192,  192,  192,    0,    0,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,   66,  142,
+      142,  142,  142,  142,   56,  142,  142,  142,  109,  109,
+      109,  109,  100,  109,  109,  109,  109,    0,  192,  192,
+      185,    0,    0,   55,  142,  142,  142,   76,  142,  142,
+      142,  142,   63,  142,  142,  142,  142,  142,   70,  142,
+      142,   85,  109,  109,  107,  109,  103,  102,   90,  109,
+        0,    0,  192,  192,    0,  183,  142,  142,  142,  142,
+       78,  142,  142,  142,  142,  142,   68,   69,  142,   84,
+       91,  109,  108,  109,    0,    0,  192,  187,  184,   72,
+
+      142,  142,   77,   79,  142,  142,  142,  142,   83,   99,
+      101,    0,    0,  192,  142,   74,   60,   61,  130,  168,
+      156,  189,   73,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -633,209 +633,209 @@
        11,    1,   11,    1
     } ;
 
-static yyconst flex_int16_t yy_base[889] =
+static yyconst flex_int16_t yy_base[885] =
     {   0,
         0,    0,   74,    0,  146,  147,  166,    0,  240,    0,
       314,    0,  388,    0,    0,    0,  462,    0,  530,  543,
-        0,    0,  567,    0, 2396, 2397, 2376,  151,  537, 2366,
-      635,  152,  122, 2365,  530, 2380, 2397, 2397,  529,  624,
-     2397,  632,  674,  519,  726,  640,  723, 2397,  622,  629,
-      637,  520,  653, 2397, 2397,  728,  739,  736,  737,  654,
-      738,  616,  723, 2397, 2397,  665, 2388, 2397, 2397, 2397,
-        0, 2397,  682, 2387,  641, 2397, 2397,  765, 2386,    0,
-        0, 2328, 2320, 2327, 2319,  799, 2381,    0, 2358, 2397,
-     2397,  803, 2379,  765,  771, 2369, 2397, 2397,  794, 2397,
-
-      798,  804,  811,    0, 2397, 2397, 2397, 2397,  779,  810,
-     2368,  836,  817,  855,  847,    0,  845, 2370,  664,  887,
-      866,  872,  888,  901,  903,  904,  786, 2366,  916,  920,
-        0,  926, 2397, 2397, 2397,  859, 2374,  807,  916, 2364,
-      944, 2397,  949,  993,  958,  927, 2350,  971,  976,  997,
-     1006, 2397, 2397,  699,  890,  898, 2397,  822, 2397,    0,
-      156, 1001,  948, 1016, 1025, 1029, 1034, 2397, 2397, 2397,
-     2362, 2397, 2345, 2397, 1042, 1048, 2397, 2397, 2397, 1052,
-     2397,    0, 2335,    0, 2311, 2318,  712, 2309, 2312,  722,
-     2307,  793,  910,  926, 2318, 2313,  863, 2316, 2307, 2334,
-
-     2397, 1056,  669, 1070, 1012,    0,    0, 2301, 2302,  659,
-      862, 1035,  495, 1028, 2298,  946, 2298, 2291, 2397, 2397,
-     2397, 2397, 2397,  959, 2331,  857, 2348, 1088, 1078, 1043,
-     1080, 1089, 1099, 1097, 1098, 2397, 2397, 2397, 2397, 1116,
-     1123,    0, 1127, 1131, 2294, 2292, 2304, 1135, 1140,    0,
-        0, 2285, 2291, 2299, 2284, 1148, 1152, 2322, 2321, 2397,
-     1157, 1161,  939, 2397,    0, 1146, 2333, 1150, 1156, 1160,
-        0, 1164, 1002, 1178, 1169,    0,    0, 1037, 2397,    0,
-     1182, 2332, 1196, 1202, 1206, 1210, 1038, 1224, 1188,    0,
-        0, 2313, 1229, 1242, 1246, 1256,    0, 1219, 2317, 1266,
+        0,    0,  567,    0, 2392, 2393, 2372,  151,  537, 2362,
+      635,  152,  122, 2361,  530, 2376, 2393, 2393,  529,  624,
+     2393,  632,  674,  519,  726,  640,  723, 2393,  622,  629,
+      637,  520,  653, 2393, 2393,  728,  739,  736,  737,  654,
+      738,  616,  723, 2393, 2393,  665, 2384, 2393, 2393, 2393,
+        0, 2393,  682, 2383,  641, 2393, 2393,  765, 2382,    0,
+        0, 2324, 2316, 2323, 2315,  799, 2377,    0, 2354, 2393,
+     2393,  803, 2375,  765,  771, 2365, 2393, 2393,  794, 2393,
+
+      798,  804,  811,    0, 2393, 2393, 2393, 2393,  779,  810,
+     2364,  836,  817,  855,  847,    0,  845, 2366,  664,  887,
+      866,  872,  888,  901,  903,  904,  786, 2362,  916,  920,
+        0,  926, 2393, 2393, 2393,  859, 2370,  807,  916, 2360,
+      944, 2393,  949,  993,  958,  927, 2346,  971,  976,  997,
+     1006, 2393, 2393,  699,  890,  898, 2393,  822, 2393,    0,
+      156, 1001,  948, 1016, 1025, 1029, 1034, 2393, 2393, 2393,
+     2358, 2393, 2341, 2393, 1042, 1048, 2393, 2393, 2393, 1052,
+     2393,    0, 2331,    0, 2307, 2314,  712, 2305, 2308,  722,
+     2303,  793,  910,  926, 2314, 2309,  863, 2312, 2303, 2330,
+
+     2393, 1056,  669, 1070, 1012,    0,    0, 2297, 2298,  659,
+      862, 1035,  495, 1028, 2294,  946, 2294, 2287, 2393, 2393,
+     2393, 2393, 2393,  959, 2327,  857, 2344, 1088, 1078, 1043,
+     1080, 1089, 1099, 1097, 1098, 2393, 2393, 2393, 2393, 1116,
+     1123,    0, 1127, 1131, 2290, 2288, 2300, 1135, 1140,    0,
+        0, 2281, 2287, 2295, 2280, 1148, 1152, 2318, 2317, 2393,
+     1157, 1161,  939, 2393,    0, 1146, 2329, 1150, 1156, 1160,
+        0, 1164, 1002, 1178, 1169,    0,    0, 1037, 2393,    0,
+     1182, 2328, 1196, 1202, 1206, 1210, 1038, 1224, 1188,    0,
+        0, 2309, 1229, 1242, 1246, 1256,    0, 1219, 2313, 1266,
 
      1267, 1275, 1276, 1277, 1290, 1286, 1294, 1320, 1324, 1090,
-     2397,    0, 1322, 2329, 1332, 1338, 1342,    0, 2284, 1075,
-     2291, 2290, 2287, 1346, 1192, 1360, 1234,    0, 2276, 1201,
-     2274, 2286, 2272, 2307, 2397, 1364, 1378, 1383, 1388, 2397,
-     2397, 1269, 1393, 1397, 1401, 1405, 2397, 1414,    0, 2294,
-     2270, 2275, 2270, 2267, 2275, 2267, 2258, 2262, 2254, 2252,
-     2260,  993, 2269, 2252, 2258, 2260, 2251, 2248, 2247, 2263,
-     2255, 2258, 2397, 1418, 1260, 1422, 1426, 1309,    0,    0,
-     2248, 2260, 2248, 1253, 2237, 1091, 2249, 2238, 2245, 2243,
-     2249, 2234, 2233, 2233, 2230, 2247, 2239, 2246, 2397, 2265,
+     2393,    0, 1322, 2325, 1332, 1338, 1342,    0, 2280, 1075,
+     2287, 2286, 2283, 1346, 1192, 1360, 1234,    0, 2272, 1201,
+     2270, 2282, 2268, 2303, 2393, 1364, 1378, 1383, 1388, 2393,
+     2393, 1269, 1393, 1397, 1401, 1405, 2393, 1414,    0, 2290,
+     2266, 2271, 2266, 2263, 2271, 2263, 2254, 2258, 2250, 2248,
+     2256,  993, 2265, 2248, 2254, 2256, 2247, 2244, 2243, 2259,
+     2251, 2254, 2393, 1418, 1260, 1422, 1426, 1309,    0,    0,
+     2244, 2256, 2244, 1253, 2233, 1091, 2245, 2234, 2241, 2239,
+     2245, 2230, 2229, 2229, 2226, 2243, 2235, 2242, 2393, 2261,
 
-     2285, 1113, 2266, 1316, 1197, 1333, 1285, 1355, 1434, 1435,
-     2239, 2239, 2238,    0,    0,    0,    0, 2231, 1433, 1445,
+     2281, 1113, 2262, 1316, 1197, 1333, 1285, 1355, 1434, 1435,
+     2235, 2235, 2234,    0,    0,    0,    0, 2227, 1433, 1445,
         0, 1450, 1277, 1454, 1458, 1316,    0, 1470, 1482, 1486,
-     1292, 1490, 1494, 1326,    0, 2256, 2260, 1499, 1503, 1513,
-     1518,    0, 2397, 1471, 1526, 1527, 1528, 1529, 1537, 1543,
-     1542, 1553,    0, 2226, 2214, 2222, 2231, 2221, 2229, 1557,
-     1371, 1565, 1575, 1374,    0, 2217, 2218, 2220, 2227, 2218,
-     2208, 1579, 1583, 2225, 2210, 2214, 2211, 2203, 1148, 2215,
-     2219, 2216, 2203,    0, 2211, 2211, 2213, 2196, 2204, 2206,
-     2210, 2208, 2188, 2207,    0, 2195, 2194, 2191, 2184, 2197,
-
-     2182, 2181, 2185,    0, 2194, 2187, 2183, 2187, 2175, 2188,
-     2179, 1439, 2186, 2171, 2172, 2179, 2171, 2184, 2397, 1191,
-     2397,    0, 2207, 2224, 1440, 1566, 1590, 1592, 2171, 2181,
-     2164, 2167, 1590, 1597, 1601, 1605, 2397,    0, 1612, 1613,
-     1614, 1615, 1625, 1630, 2174,    0, 2173, 2160, 2171, 2175,
-     2161, 2168, 2153, 2167, 2157, 2150, 2156, 2148, 2153,    0,
-     2146, 1591,    0,    0, 2147, 2162, 2159,    0, 2150, 2149,
-     2145, 2158, 2139, 2153, 2143, 2137, 1608, 2150, 2148,    0,
-        0, 2147,    0, 2149, 2146,    0, 2147,    0, 2133, 2137,
-     2141, 2125, 2137, 2128, 2124, 2137, 2124, 2134, 2117, 2125,
-
-     1628, 1640, 1641, 2397, 2124, 2120, 2126, 1645, 1646,    0,
-        0, 2118, 2113, 2112, 2397, 2125, 2397, 2397, 2397, 2125,
-     2126, 2125, 2125,    0, 2123, 2118, 2113, 2116, 2109, 2118,
-     2100,    0, 2104, 2100, 2083, 2090,    0, 2065, 2056, 2064,
-     2059, 2062,    0, 2053, 2038, 2039, 2016, 2015,    0,    0,
-     2001, 2004, 2001,    0, 1989, 1969,    0, 1982, 1981, 1653,
-     2397,    0, 1644, 1659, 2397, 1983,    0, 1661, 1663, 1982,
-     1962, 1956, 1962, 1951, 1949, 1940, 1632, 1947, 1934, 1947,
-     1929, 1943, 1932, 1942, 1225, 1938, 1931, 1914,    0, 1917,
-     1902, 1915, 1904, 1913, 1900, 1868, 1862,    0, 1838, 1859,
-
-     1848, 1826,    0, 1823,    0, 1811, 1808, 1799, 1793, 1793,
-     1777,    0, 1783, 1776, 1761, 1752, 1741, 1731, 1732, 1722,
-     1723, 1702,    0, 1685, 1436, 1652, 1659, 1650,    0, 1640,
-     1647, 1646, 1637, 1649, 1634, 1649,    0, 1641, 1634, 1628,
-     1625, 1522, 1626, 1635,    0, 1617, 1606,    0, 1609, 1570,
-     1582,    0, 1552, 1543, 1534, 1522,    0, 1512, 1511, 1500,
-     1491, 1479,    0, 1466, 1477,    0, 1447, 1427,    0, 1434,
-        0,    0,    0, 1412, 1413, 1384, 1373, 1379, 1322, 2397,
-     1314, 1261, 1259, 1181,    0, 1172, 1111, 1100, 1089, 1053,
-        0,    0, 1039,    0,    0, 1031,    0,  936,  909,  888,
-
-      855,    0, 2397,    0,  825,  821,    0,  777,  734,  728,
-      719,  708,    0,    0,    0,  694,  611,  497,  104,    0,
-        0,    0,    0, 2397, 2397,    0,    0, 2397, 1711, 1722,
-     1733, 1744, 1755, 1766, 1770, 1777, 1783, 1786, 1792, 1795,
-     1801, 1811, 1822, 1829, 1835, 1845, 1856, 1863, 1866, 1873,
-     1883, 1894, 1901, 1907, 1917, 1926, 1937, 1948, 1955, 1961,
-     1965, 1972, 1979, 1987, 1993, 1999, 2005, 2011, 2017, 2023,
-     2027, 2037, 2048, 2055, 2059, 2065, 2068, 2075, 2085, 2096,
-     2103, 2109, 2113, 2123, 2131, 2138, 2144, 2154
+     1292, 1490, 1494, 1326,    0, 2252, 2256, 1499, 1503, 1513,
+     1518,    0, 2393, 1471, 1526, 1527, 1528, 1529, 1537, 1543,
+     1542, 1553,    0, 2222, 2210, 2218, 2227, 2217, 2225, 1557,
+     1371, 1565, 1575, 1374,    0, 2213, 2214, 2216, 2223, 2214,
+     2204, 1579, 1583,    0, 2207, 2211, 2208, 2200, 1148, 2212,
+     2216, 2213, 2200,    0, 2208, 2208, 2210, 2193, 2201, 2203,
+     2207, 2205, 2185, 2204,    0, 2192, 2191, 2188, 2181, 2194,
+
+     2179, 2178, 2182,    0, 2191, 2184, 2180, 2184, 2172, 2185,
+     2176, 1439, 2183, 2168, 2169, 2176, 2168, 2181, 2393, 1191,
+     2393,    0, 2204, 2221, 1440, 1566, 1590, 1592, 2168, 2178,
+     2161, 2164, 1590, 1597, 1601, 1605, 2393,    0, 1612, 1613,
+     1614, 1615, 1625, 1630, 2171,    0, 2170, 2157, 2168, 2172,
+     2158, 2165, 2150, 2164, 2154, 2147, 2146, 2151,    0, 2144,
+     1591,    0,    0, 2145, 2160, 2157,    0, 2148, 2147, 2143,
+     2156, 2137, 2151, 2141, 2135, 1608, 2148, 2146,    0,    0,
+     2145,    0, 2147, 2144,    0, 2145,    0, 2131, 2135, 2139,
+     2123, 2135, 2126, 2122, 2135, 2122, 2132, 2115, 2123, 1628,
+
+     1640, 1641, 2393, 2122, 2118, 2124, 1645, 1646,    0,    0,
+     2116, 2111, 2110, 2393, 2123, 2393, 2393, 2393, 2123, 2124,
+     2124,    0, 2122, 2117, 2112, 2115, 2108, 2108, 2095,    0,
+     2103, 2095, 2076, 2077,    0, 2060, 2052, 2063, 2054, 2061,
+        0, 2042, 2027, 2023, 2011, 2014,    0,    0, 1998, 2003,
+     1990,    0, 1978, 1964,    0, 1981, 1978, 1653, 2393,    0,
+     1644, 1659, 2393, 1982,    0, 1661, 1663, 1977, 1961, 1951,
+     1956, 1950, 1940, 1632, 1947, 1934, 1947, 1929, 1943, 1932,
+     1942, 1225, 1938, 1931, 1914,    0, 1917, 1902, 1915, 1904,
+     1913, 1900, 1868, 1862,    0, 1838, 1859, 1848, 1826,    0,
+
+     1823,    0, 1811, 1808, 1799, 1793, 1793, 1777, 1783, 1776,
+     1761, 1752, 1741, 1731, 1732, 1722, 1723, 1702,    0, 1685,
+     1436, 1652, 1659, 1650,    0, 1640, 1647, 1646, 1637, 1649,
+     1634, 1649,    0, 1641, 1634, 1628, 1625, 1522, 1626, 1635,
+        0, 1617, 1606,    0, 1609, 1570, 1582,    0, 1552, 1543,
+     1534, 1522,    0, 1512, 1511, 1500, 1491, 1479,    0, 1466,
+     1477,    0, 1447, 1427,    0, 1434,    0,    0,    0, 1412,
+     1413, 1384, 1373, 1379, 1322, 2393, 1314, 1261, 1259, 1181,
+        0, 1172, 1111, 1100, 1089, 1053,    0,    0, 1039,    0,
+        0, 1031,    0,  936,  909,  888,  855,    0, 2393,    0,
+
+      825,  821,    0,  777,  734,  728,  719,  708,    0,    0,
+        0,  694,  611,  497,  104,    0,    0,    0,    0, 2393,
+     2393,    0,    0, 2393, 1711, 1722, 1733, 1744, 1755, 1766,
+     1770, 1777, 1783, 1786, 1792, 1795, 1801, 1811, 1822, 1829,
+     1835, 1845, 1856, 1863, 1866, 1873, 1883, 1894, 1901, 1907,
+     1917, 1926, 1937, 1948, 1955, 1961, 1965, 1972, 1979, 1987,
+     1993, 1999, 2005, 2011, 2017, 2023, 2027, 2037, 2048, 2055,
+     2059, 2065, 2068, 2075, 2085, 2096, 2103, 2109, 2113, 2123,
+     2131, 2138, 2144, 2154
     } ;
 
-static yyconst flex_int16_t yy_def[889] =
+static yyconst flex_int16_t yy_def[885] =
     {   0,
-      828,    1,  828,    3,  829,  829,  828,    7,  828,    9,
-      828,   11,  828,   13,    1,    1,  828,   17,  830,  830,
-      831,  831,  828,   23,  828,  828,  828,  828,  828,  828,
-      832,  833,  828,  828,  828,  834,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  835,  828,  828,  828,
-      828,  836,  836,  828,  828,  836,  836,  836,  836,  836,
-      836,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      837,  828,  828,  828,  828,  828,  828,  828,  828,  838,
-      839,  839,  839,  839,  839,  828,  828,  840,  841,  828,
-      828,  828,  828,  842,  828,  843,  828,  828,  828,  828,
-
-      844,  828,  828,  845,  828,  828,  828,  828,  846,  828,
-      847,  828,  828,  828,  828,  848,  849,   43,  850,  850,
-      850,  850,  850,  850,  850,  850,  842,  843,  828,  828,
-      102,  828,  828,  828,  828,  828,  828,  851,  828,  852,
-      828,  828,  853,  828,  828,  828,  854,  854,  854,  854,
-      854,  828,  828,  855,  828,  828,  828,  856,  828,  856,
-      857,  828,  857,  828,  828,  828,  828,  828,  828,  828,
-      858,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  828,
-
-      828,  828,  828,  828,  828,  860,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  828,  828,
-      828,  828,  828,  828,  862,  863,  864,  863,  863,  863,
-      863,  863,  863,  863,  863,  828,  828,  828,  828,  828,
-      828,  865,  828,  828,  828,  828,  828,  828,  828,  866,
-      867,  867,  867,  867,  867,  828,  828,  868,  868,  828,
-      828,  828,  842,  828,  842,  828,  843,  828,  828,  828,
-      869,  828,  828,  828,  828,  870,  871,  872,  828,  872,
-      828,  873,  828,  828,  828,  828,  828,  828,  828,  874,
-      875,  876,  876,  876,  876,  876,  877,  878,  828,  878,
-
-      878,  878,  878,  878,  878,  878,  878,  828,  828,  879,
-      828,  879,  828,  880,  828,  828,  828,  881,  881,  881,
-      881,  881,  881,  828,  828,  828,  828,  882,  828,  828,
-      828,  828,  828,  883,  828,  883,  883,  883,  883,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  828,  828,  828,  828,  828,  828,  860,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  828,  828,
-
-      864,  884,  885,  886,  886,  886,  886,  886,  886,  886,
-      828,  828,  828,  866,  867,  867,  867,  867,  828,  828,
-      869,  828,  828,  828,  828,  828,  870,  828,  828,  828,
-      828,  828,  828,  828,  874,  876,  828,  876,  876,  876,
-      876,  887,  828,  878,  878,  878,  878,  878,  878,  878,
-      828,  828,  881,  881,  881,  881,  881,  881,  881,  828,
-      828,  828,  828,  828,  882,  828,  828,  828,  828,  828,
-      828,  828,  828,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  861,  861,  861,
-
-      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  828,  884,
-      828,  884,  885,  828,  886,  886,  886,  886,  828,  828,
-      828,  867,  828,  828,  828,  828,  828,  887,  878,  878,
-      878,  878,  828,  828,  881,  881,  881,  881,  881,  881,
-      828,  828,  828,  828,  828,  828,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  861,  861,
-
-      888,  886,  886,  828,  828,  828,  867,  878,  878,  881,
-      881,  881,  881,  881,  828,  828,  828,  828,  828,  828,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  861,  861,  861,  861,  861,  861,  861,
-      861,  861,  861,  861,  861,  861,  861,  861,  861,  888,
-      828,  888,  886,  886,  828,  828,  867,  878,  878,  881,
-      881,  881,  828,  828,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  861,  861,  861,  861,  861,  861,  861,
-
-      861,  861,  861,  861,  861,  828,  881,  881,  881,  828,
-      828,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  861,  861,  861,  861,  861,  861,  861,  861,
-      861,  828,  881,  881,  881,  828,  828,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  859,  859,  861,  861,  861,  861,
-      861,  861,  861,  861,  828,  828,  881,  881,  828,  828,
-      859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  859,  861,  861,  861,  861,  828,  828,
-
-      881,  881,  828,  859,  859,  859,  859,  859,  859,  859,
-      859,  859,  859,  861,  861,  828,  828,  881,  859,  859,
-      859,  859,  859,  828,  828,  881,  859,    0,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828
+      824,    1,  824,    3,  825,  825,  824,    7,  824,    9,
+      824,   11,  824,   13,    1,    1,  824,   17,  826,  826,
+      827,  827,  824,   23,  824,  824,  824,  824,  824,  824,
+      828,  829,  824,  824,  824,  830,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  831,  824,  824,  824,
+      824,  832,  832,  824,  824,  832,  832,  832,  832,  832,
+      832,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      833,  824,  824,  824,  824,  824,  824,  824,  824,  834,
+      835,  835,  835,  835,  835,  824,  824,  836,  837,  824,
+      824,  824,  824,  838,  824,  839,  824,  824,  824,  824,
+
+      840,  824,  824,  841,  824,  824,  824,  824,  842,  824,
+      843,  824,  824,  824,  824,  844,  845,   43,  846,  846,
+      846,  846,  846,  846,  846,  846,  838,  839,  824,  824,
+      102,  824,  824,  824,  824,  824,  824,  847,  824,  848,
+      824,  824,  849,  824,  824,  824,  850,  850,  850,  850,
+      850,  824,  824,  851,  824,  824,  824,  852,  824,  852,
+      853,  824,  853,  824,  824,  824,  824,  824,  824,  824,
+      854,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  824,
+
+      824,  824,  824,  824,  824,  856,  857,  857,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  824,  824,
+      824,  824,  824,  824,  858,  859,  860,  859,  859,  859,
+      859,  859,  859,  859,  859,  824,  824,  824,  824,  824,
+      824,  861,  824,  824,  824,  824,  824,  824,  824,  862,
+      863,  863,  863,  863,  863,  824,  824,  864,  864,  824,
+      824,  824,  838,  824,  838,  824,  839,  824,  824,  824,
+      865,  824,  824,  824,  824,  866,  867,  868,  824,  868,
+      824,  869,  824,  824,  824,  824,  824,  824,  824,  870,
+      871,  872,  872,  872,  872,  872,  873,  874,  824,  874,
+
+      874,  874,  874,  874,  874,  874,  874,  824,  824,  875,
+      824,  875,  824,  876,  824,  824,  824,  877,  877,  877,
+      877,  877,  877,  824,  824,  824,  824,  878,  824,  824,
+      824,  824,  824,  879,  824,  879,  879,  879,  879,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  824,  824,  824,  824,  824,  824,  856,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  824,  824,
+
+      860,  880,  881,  882,  882,  882,  882,  882,  882,  882,
+      824,  824,  824,  862,  863,  863,  863,  863,  824,  824,
+      865,  824,  824,  824,  824,  824,  866,  824,  824,  824,
+      824,  824,  824,  824,  870,  872,  824,  872,  872,  872,
+      872,  883,  824,  874,  874,  874,  874,  874,  874,  874,
+      824,  824,  877,  877,  877,  877,  877,  877,  877,  824,
+      824,  824,  824,  824,  878,  824,  824,  824,  824,  824,
+      824,  824,  824,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  857,  857,  857,
+
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  824,  880,
+      824,  880,  881,  824,  882,  882,  882,  882,  824,  824,
+      824,  863,  824,  824,  824,  824,  824,  883,  874,  874,
+      874,  874,  824,  824,  877,  877,  877,  877,  877,  877,
+      824,  824,  824,  824,  824,  824,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  884,
+
+      882,  882,  824,  824,  824,  863,  874,  874,  877,  877,
+      877,  877,  877,  824,  824,  824,  824,  824,  824,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  884,  824,  884,
+      882,  882,  824,  824,  863,  874,  874,  877,  877,  877,
+      824,  824,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
+
+      857,  857,  824,  877,  877,  877,  824,  824,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  857,  857,
+      857,  857,  857,  857,  857,  857,  857,  824,  877,  877,
+      877,  824,  824,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      855,  855,  857,  857,  857,  857,  857,  857,  857,  857,
+      824,  824,  877,  877,  824,  824,  855,  855,  855,  855,
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
+      857,  857,  857,  857,  824,  824,  877,  877,  824,  855,
+
+      855,  855,  855,  855,  855,  855,  855,  855,  855,  857,
+      857,  824,  824,  877,  855,  855,  855,  855,  855,  824,
+      824,  877,  855,    0,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824
     } ;
 
-static yyconst flex_int16_t yy_nxt[2472] =
+static yyconst flex_int16_t yy_nxt[2468] =
     {   0,
        26,   27,   28,   27,   29,   30,   31,   32,   33,   34,
        35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
@@ -854,7 +854,7 @@
        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
        71,   71,   71,   71,   64,   64,   64,   64,   73,   73,
        74,   74,  155,  155,  162,  155,  163,  164,  162,  165,
-      163,  166,  167,  827,   75,   75,   76,   77,   78,   77,
+      163,  166,  167,  823,   75,   75,   76,   77,   78,   77,
        79,   76,   76,   76,   80,   76,   76,   76,   76,   76,
        76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
        76,   76,   76,   76,   76,   76,   81,   81,   81,   81,
@@ -898,7 +898,7 @@
       119,  119,   26,   62,   26,   63,  127,  225,  200,  156,
       169,  128,  390,  173,  227,  129,  201,  129,  130,  127,
       131,  132,  132,  132,  128,  154,  174,  170,  129,  391,
-      129,  130,  826,  131,  132,  132,  132,  134,  135,  136,
+      129,  130,  822,  131,  132,  132,  132,  134,  135,  136,
       135,  137,  134,  138,  134,  139,  134,  134,  140,  134,
       134,  134,  141,  142,  141,  143,  134,  144,  145,  145,
       145,  146,  134,  134,  134,  134,  134,  147,  147,  147,
@@ -909,7 +909,7 @@
       147,  147,  147,  147,  147,  147,  147,  134,  134,  134,
       134,  159,  175,  236,  176,  176,  176,  176,  219,  220,
       175,  177,  176,  176,  176,  176,  221,  222,  202,  178,
-      176,  176,  176,  176,  223,  224,  240,  240,  825,  240,
+      176,  176,  176,  176,  223,  224,  240,  240,  821,  240,
       225,  225,  204,  228,  228,  228,  228,  227,  227,  160,
       179,  225,  179,  243,  243,  179,  243,  237,  227,  375,
       375,  204,  245,  299,  180,  180,  180,  180,  246,  247,
@@ -919,32 +919,32 @@
       184,  185,  186,  187,  182,  188,  189,  190,  182,  191,
       182,  192,  193,  194,  182,  195,  182,  196,  197,  198,
       182,  182,  182,  199,  202,  225,  176,  176,  176,  176,
-      238,  824,  227,  225,  225,  225,  225,  203,  204,  353,
-      227,  227,  227,  227,  205,  563,  248,  248,  206,  248,
-      208,  264,  354,  357,  203,  209,  563,  204,  210,  358,
+      238,  820,  227,  225,  225,  225,  225,  203,  204,  353,
+      227,  227,  227,  227,  205,  562,  248,  248,  206,  248,
+      208,  264,  354,  357,  203,  209,  562,  204,  210,  358,
       211,  212,  213,  214,  215,  279,  205,  216,  229,  217,
-      218,  230,  264,  823,  206,  233,  239,  235,  231,  822,
+      218,  230,  264,  819,  206,  233,  239,  235,  231,  818,
 
       256,  256,  232,  256,  261,  261,  266,  261,  266,  265,
       266,  266,  268,  311,  269,  269,  269,  269,  270,  270,
       270,  270,  272,  280,  269,  269,  269,  269,  159,  272,
       265,  269,  269,  269,  269,  273,  274,  285,  285,  285,
-      285,  821,  275,  274,  360,  281,  276,  281,  361,  281,
+      285,  817,  275,  274,  360,  281,  276,  281,  361,  281,
       281,  312,  273,  362,  283,  274,  284,  284,  284,  284,
       308,  308,  274,  308,  275,  286,  160,  284,  284,  284,
-      284,  820,  276,  286,  225,  284,  284,  284,  284,  288,
-      293,  227,  294,  225,  295,  296,  287,  288,  819,  225,
+      284,  816,  276,  286,  225,  284,  284,  284,  284,  288,
+      293,  227,  294,  225,  295,  296,  287,  288,  815,  225,
       227,  155,  155,  289,  155,  299,  227,  290,  288,  155,
 
       155,  299,  155,  287,  225,  225,  288,  300,  300,  300,
-      300,  227,  227,  385,  369,  289,  299,  299,  225,  818,
+      300,  227,  227,  385,  369,  289,  299,  299,  225,  814,
       225,  225,  386,  290,  302,  227,  301,  227,  227,  370,
-      299,  303,  299,  299,  268,  817,  269,  269,  269,  269,
+      299,  303,  299,  299,  268,  813,  269,  269,  269,  269,
       270,  270,  270,  270,  272,  264,  269,  269,  269,  269,
       162,  313,  163,  313,  304,  313,  313,  363,  274,  305,
-      816,  364,  315,  307,  316,  316,  316,  316,  306,  317,
+      812,  364,  315,  307,  316,  316,  316,  316,  306,  317,
       317,  317,  317,  365,  329,  366,  324,  274,  316,  316,
-      316,  316,  330,  265,  331,  332,  399,  400,  333,  815,
+      316,  316,  330,  265,  331,  332,  399,  400,  333,  811,
       326,  336,  336,  336,  336,  335,  337,  337,  337,  337,
 
       335,  319,  342,  395,  342,  342,  320,  321,  322,  326,
@@ -955,163 +955,162 @@
       345,  345,  345,  327,  346,  346,  346,  346,  431,  431,
       225,  328,  180,  180,  180,  180,  202,  227,  176,  176,
       176,  176,  180,  180,  180,  180,  374,  374,  374,  374,
-      204,  280,  387,  814,  348,  376,  388,  376,  348,  392,
-      377,  377,  377,  377,  393,  225,  311,  225,  813,  204,
+      204,  280,  387,  810,  348,  376,  388,  376,  348,  392,
+      377,  377,  377,  377,  393,  225,  311,  225,  809,  204,
 
-      812,  389,  227,  348,  227,  225,  225,  348,  228,  228,
+      808,  389,  227,  348,  227,  225,  225,  348,  228,  228,
       228,  228,  227,  227,  225,  225,  225,  240,  240,  521,
       240,  227,  227,  227,  240,  240,  455,  240,  243,  243,
       456,  243,  243,  243,  312,  243,  248,  248,  505,  248,
-      811,  248,  248,  404,  248,  405,  406,  407,  408,  256,
+      807,  248,  248,  404,  248,  405,  406,  407,  408,  256,
       256,  506,  256,  256,  256,  410,  256,  522,  261,  261,
-      409,  261,  261,  261,  810,  261,  419,  419,  419,  419,
-      270,  270,  270,  270,  272,  809,  269,  269,  269,  269,
+      409,  261,  261,  261,  806,  261,  419,  419,  419,  419,
+      270,  270,  270,  270,  272,  805,  269,  269,  269,  269,
       270,  270,  270,  270,  422,  422,  422,  422,  274,  426,
-      426,  426,  420,  424,  562,  424,  420,  521,  425,  425,
+      426,  426,  420,  424,  561,  424,  420,  521,  425,  425,
 
-      425,  425,  428,  428,  428,  428,  563,  274,  434,  434,
+      425,  425,  428,  428,  428,  428,  562,  274,  434,  434,
       434,  420,  461,  461,  225,  420,  285,  285,  285,  285,
       286,  227,  284,  284,  284,  284,  285,  285,  285,  285,
-      430,  430,  430,  430,  288,  522,  225,  808,  429,  432,
-      807,  432,  429,  227,  433,  433,  433,  433,  299,  438,
+      430,  430,  430,  430,  288,  522,  225,  804,  429,  432,
+      803,  432,  429,  227,  433,  433,  433,  433,  299,  438,
       438,  438,  438,  288,  464,  464,  464,  429,  437,  467,
       468,  429,  439,  439,  439,  439,  440,  440,  440,  440,
-      342,  437,  342,  342,  724,  437,  441,  441,  441,  441,
-      375,  375,  725,  225,  225,  437,  300,  300,  300,  300,
+      342,  437,  342,  342,  720,  437,  441,  441,  441,  441,
+      375,  375,  721,  225,  225,  437,  300,  300,  300,  300,
       227,  227,  225,  225,  225,  299,  299,  423,  423,  227,
 
       227,  227,  225,  225,  299,  299,  299,  225,  501,  227,
-      227,  225,  431,  431,  227,  299,  806,  502,  227,  299,
-      503,  308,  308,  299,  308,  308,  308,  805,  308,  378,
+      227,  225,  431,  431,  227,  299,  802,  502,  227,  299,
+      503,  308,  308,  299,  308,  308,  308,  801,  308,  378,
       378,  378,  444,  225,  446,  447,  426,  426,  426,  448,
       227,  445,  451,  451,  451,  451,  434,  434,  434,  449,
       225,  450,  317,  317,  317,  317,  324,  227,  316,  316,
       316,  316,  317,  317,  317,  317,  460,  460,  460,  460,
-      326,  804,  225,  803,  452,  462,  525,  462,  452,  227,
+      326,  800,  225,  799,  452,  462,  525,  462,  452,  227,
       463,  463,  463,  463,  336,  336,  336,  336,  335,  326,
       526,  461,  461,  452,  464,  464,  464,  452,  337,  337,
 
       337,  337,  335,  338,  338,  338,  338,  335,  339,  339,
       339,  339,  335,  343,  343,  343,  343,  344,  344,  344,
       344,  345,  345,  345,  345,  346,  346,  346,  346,  472,
-      802,  472,  801,  800,  473,  473,  473,  473,  374,  374,
+      798,  472,  797,  796,  473,  473,  473,  473,  374,  374,
       374,  374,  377,  377,  377,  377,  377,  377,  377,  377,
       348,  225,  225,  419,  419,  419,  419,  225,  227,  227,
-      533,  799,  533,  798,  227,  534,  534,  534,  534,  348,
+      533,  795,  533,  794,  227,  534,  534,  534,  534,  348,
       422,  422,  422,  422,  425,  425,  425,  425,  425,  425,
-      425,  425,  420,  759,  797,  593,  528,  796,  225,  527,
-      428,  428,  428,  428,  594,  227,  760,  535,  795,  535,
+      425,  425,  420,  755,  793,  592,  528,  792,  225,  527,
+      428,  428,  428,  428,  593,  227,  756,  535,  791,  535,
 
       299,  420,  536,  536,  536,  536,  430,  430,  430,  430,
       433,  433,  433,  433,  433,  433,  433,  433,  429,  438,
-      438,  438,  438,  439,  439,  439,  439,  794,  437,  793,
-      792,  539,  437,  440,  440,  440,  440,  429,  441,  441,
-      441,  441,  437,  225,  225,  225,  225,  437,  791,  790,
-      227,  227,  227,  227,  225,  299,  299,  299,  299,  789,
-      225,  227,  451,  451,  451,  451,  299,  227,  543,  775,
-      543,  788,  299,  544,  544,  544,  544,  460,  460,  460,
-      460,  787,  776,  225,  540,  463,  463,  463,  463,  452,
-      227,  786,  541,  785,  542,  463,  463,  463,  463,  473,
+      438,  438,  438,  439,  439,  439,  439,  790,  437,  789,
+      788,  539,  437,  440,  440,  440,  440,  429,  441,  441,
+      441,  441,  437,  225,  225,  225,  225,  437,  787,  786,
+      227,  227,  227,  227,  225,  299,  299,  299,  299,  785,
+      225,  227,  451,  451,  451,  451,  299,  227,  543,  771,
+      543,  784,  299,  544,  544,  544,  544,  460,  460,  460,
+      460,  783,  772,  225,  540,  463,  463,  463,  463,  452,
+      227,  782,  541,  781,  542,  463,  463,  463,  463,  473,
 
       473,  473,  473,  473,  473,  473,  473,  225,  452,  225,
-      534,  534,  534,  534,  227,  784,  227,  534,  534,  534,
+      534,  534,  534,  534,  227,  780,  227,  534,  534,  534,
       534,  536,  536,  536,  536,  536,  536,  536,  536,  225,
-      225,  225,  225,  783,  661,  782,  227,  227,  227,  227,
-      625,  299,  299,  299,  299,  544,  544,  544,  544,  602,
-      544,  544,  544,  544,  626,  639,  603,  225,  225,  661,
-      627,  225,  225,  225,  227,  227,  781,  780,  227,  227,
-      227,  640,  662,  608,  299,  299,  225,  641,  225,  609,
-      225,  714,  779,  227,  778,  227,  777,  227,  774,  773,
-      299,  772,  299,  663,  771,  715,  770,  662,  668,  769,
+      225,  225,  225,  779,  659,  778,  227,  227,  227,  227,
+      623,  299,  299,  299,  299,  544,  544,  544,  544,  601,
+      544,  544,  544,  544,  624,  637,  602,  225,  225,  659,
+      625,  225,  225,  225,  227,  227,  777,  776,  227,  227,
+      227,  638,  660,  607,  299,  299,  225,  639,  225,  608,
+      225,  710,  775,  227,  774,  227,  773,  227,  770,  769,
+      299,  768,  299,  661,  767,  711,  766,  660,  666,  765,
 
-      768,  716,  767,  766,  765,  664,  764,  763,  762,  761,
-      669,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      764,  712,  763,  762,  761,  662,  760,  759,  758,  757,
+      667,   72,   72,   72,   72,   72,   72,   72,   72,   72,
        72,   72,   64,   64,   64,   64,   64,   64,   64,   64,
        64,   64,   64,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  158,  758,  158,  158,  158,  158,
+      133,  133,  133,  133,  158,  754,  158,  158,  158,  158,
       158,  158,  158,  158,  158,  161,  161,  161,  161,  161,
-      161,  161,  161,  161,  161,  161,  171,  757,  171,  171,
+      161,  161,  161,  161,  161,  161,  171,  753,  171,  171,
       171,  171,  171,  171,  171,  171,  171,  207,  207,  207,
-      226,  226,  226,  756,  226,  226,  226,  242,  755,  754,
-      242,  242,  242,  250,  250,  250,  251,  753,  752,  251,
+      226,  226,  226,  752,  226,  226,  226,  242,  751,  750,
+      242,  242,  242,  250,  250,  250,  251,  749,  748,  251,
 
-      251,  251,  258,  258,  258,  259,  259,  751,  259,  259,
-      259,  263,  750,  263,  263,  263,  263,  263,  263,  263,
-      263,  263,  267,  749,  267,  267,  267,  267,  267,  267,
-      267,  267,  267,  271,  748,  747,  271,  271,  271,  277,
-      746,  745,  277,  277,  277,  278,  744,  278,  278,  278,
-      278,  278,  278,  278,  278,  278,  282,  743,  282,  282,
-      282,  282,  282,  282,  282,  282,  282,  291,  742,  741,
+      251,  251,  258,  258,  258,  259,  259,  747,  259,  259,
+      259,  263,  746,  263,  263,  263,  263,  263,  263,  263,
+      263,  263,  267,  745,  267,  267,  267,  267,  267,  267,
+      267,  267,  267,  271,  744,  743,  271,  271,  271,  277,
+      742,  741,  277,  277,  277,  278,  740,  278,  278,  278,
+      278,  278,  278,  278,  278,  278,  282,  739,  282,  282,
+      282,  282,  282,  282,  282,  282,  282,  291,  738,  737,
       291,  291,  291,  292,  292,  292,  298,  298,  298,  298,
-      298,  298,  298,  310,  740,  310,  310,  310,  310,  310,
-      310,  310,  310,  310,  314,  739,  314,  314,  314,  314,
+      298,  298,  298,  310,  736,  310,  310,  310,  310,  310,
+      310,  310,  310,  310,  314,  735,  314,  314,  314,  314,
 
-      314,  314,  314,  314,  314,  318,  738,  737,  318,  318,
-      318,  334,  334,  736,  334,  334,  334,  340,  340,  340,
-      340,  340,  340,  340,  340,  340,  158,  735,  158,  158,
+      314,  314,  314,  314,  314,  318,  734,  733,  318,  318,
+      318,  334,  334,  732,  334,  334,  334,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  158,  731,  158,  158,
       158,  158,  158,  158,  158,  158,  158,  161,  161,  161,
-      161,  161,  161,  161,  161,  161,  161,  161,  171,  734,
+      161,  161,  161,  161,  161,  161,  161,  161,  171,  730,
       171,  171,  171,  171,  171,  171,  171,  171,  171,  349,
-      733,  732,  349,  349,  349,  379,  731,  730,  379,  380,
-      729,  728,  380,  380,  380,  225,  225,  225,  727,  225,
-      225,  225,  226,  226,  226,  726,  226,  226,  226,  403,
-      723,  722,  721,  720,  403,  403,  403,  242,  719,  718,
-
-      242,  242,  242,  414,  717,  713,  414,  414,  414,  251,
-      712,  711,  251,  251,  251,  259,  259,  710,  259,  259,
-      259,  421,  709,  708,  421,  421,  421,  427,  707,  706,
-      427,  277,  705,  704,  277,  277,  277,  278,  703,  278,
-      278,  278,  278,  278,  278,  278,  278,  278,  282,  702,
+      729,  728,  349,  349,  349,  379,  727,  726,  379,  380,
+      725,  724,  380,  380,  380,  225,  225,  225,  723,  225,
+      225,  225,  226,  226,  226,  722,  226,  226,  226,  403,
+      719,  718,  717,  716,  403,  403,  403,  242,  715,  714,
+
+      242,  242,  242,  414,  713,  709,  414,  414,  414,  251,
+      708,  707,  251,  251,  251,  259,  259,  706,  259,  259,
+      259,  421,  705,  704,  421,  421,  421,  427,  703,  702,
+      427,  277,  701,  700,  277,  277,  277,  278,  699,  278,
+      278,  278,  278,  278,  278,  278,  278,  278,  282,  698,
       282,  282,  282,  282,  282,  282,  282,  282,  282,  435,
-      701,  700,  435,  291,  699,  698,  291,  291,  291,  436,
-      697,  436,  436,  436,  436,  442,  442,  442,  298,  298,
-      298,  298,  298,  298,  298,  310,  696,  310,  310,  310,
-      310,  310,  310,  310,  310,  310,  314,  695,  314,  314,
-
-      314,  314,  314,  314,  314,  314,  314,  453,  694,  693,
-      453,  453,  453,  465,  692,  691,  465,  334,  334,  690,
-      334,  334,  334,  520,  689,  520,  520,  520,  520,  520,
-      520,  520,  520,  520,  523,  523,  523,  688,  523,  523,
-      523,  226,  226,  226,  687,  226,  226,  226,  538,  686,
-      685,  538,  538,  538,  660,  684,  660,  660,  660,  660,
-      660,  660,  660,  660,  660,  683,  682,  681,  680,  679,
-      678,  677,  676,  675,  674,  673,  672,  671,  670,  667,
-      666,  665,  659,  658,  657,  656,  655,  654,  653,  652,
-      651,  650,  649,  648,  647,  646,  645,  644,  643,  642,
-
-      638,  637,  636,  635,  634,  633,  632,  631,  630,  629,
-      628,  624,  623,  622,  621,  620,  619,  618,  617,  616,
-      615,  614,  613,  612,  611,  610,  607,  606,  605,  604,
-      601,  524,  600,  599,  598,  597,  596,  595,  592,  591,
-      590,  589,  588,  587,  586,  585,  584,  583,  582,  581,
-      580,  579,  578,  577,  576,  575,  574,  573,  572,  571,
-      570,  569,  568,  567,  566,  565,  564,  561,  560,  559,
-      558,  557,  556,  555,  554,  553,  552,  551,  550,  549,
-      548,  547,  546,  545,  537,  437,  532,  531,  530,  529,
-      524,  402,  519,  518,  517,  516,  515,  514,  513,  512,
-
-      511,  510,  509,  508,  507,  504,  500,  499,  498,  497,
-      496,  495,  494,  493,  492,  491,  490,  489,  488,  485,
-      484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
-      474,  335,  471,  470,  469,  466,  459,  458,  457,  454,
-      311,  443,  437,  279,  264,  260,  260,  418,  417,  416,
-      415,  413,  412,  411,  402,  401,  398,  397,  394,  382,
-      381,  373,  372,  371,  368,  367,  359,  356,  355,  352,
-      351,  350,  347,  172,  335,  311,  309,  264,  297,  279,
-      264,  262,  260,  257,  255,  254,  253,  252,  249,  244,
-      241,  172,  168,  157,  154,  828,   25,  828,  828,  828,
-
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828
+      697,  696,  435,  291,  695,  694,  291,  291,  291,  436,
+      693,  436,  436,  436,  436,  442,  442,  442,  298,  298,
+      298,  298,  298,  298,  298,  310,  692,  310,  310,  310,
+      310,  310,  310,  310,  310,  310,  314,  691,  314,  314,
+
+      314,  314,  314,  314,  314,  314,  314,  453,  690,  689,
+      453,  453,  453,  465,  688,  687,  465,  334,  334,  686,
+      334,  334,  334,  520,  685,  520,  520,  520,  520,  520,
+      520,  520,  520,  520,  523,  523,  523,  684,  523,  523,
+      523,  226,  226,  226,  683,  226,  226,  226,  538,  682,
+      681,  538,  538,  538,  658,  680,  658,  658,  658,  658,
+      658,  658,  658,  658,  658,  679,  678,  677,  676,  675,
+      674,  673,  672,  671,  670,  669,  668,  665,  664,  663,
+      657,  656,  655,  654,  653,  652,  651,  650,  649,  648,
+      647,  646,  645,  644,  643,  642,  641,  640,  636,  635,
+
+      634,  633,  632,  631,  630,  629,  628,  627,  626,  622,
+      621,  620,  619,  618,  617,  616,  615,  614,  613,  612,
+      611,  610,  609,  606,  605,  604,  603,  600,  524,  599,
+      598,  597,  596,  595,  594,  591,  590,  589,  588,  587,
+      586,  585,  584,  583,  582,  581,  580,  579,  578,  577,
+      576,  575,  574,  573,  572,  571,  570,  569,  568,  567,
+      566,  565,  564,  563,  560,  559,  558,  557,  556,  555,
+      554,  553,  552,  551,  550,  549,  548,  547,  546,  545,
+      537,  437,  532,  531,  530,  529,  524,  402,  519,  518,
+      517,  516,  515,  514,  513,  512,  511,  510,  509,  508,
+
+      507,  504,  500,  499,  498,  497,  496,  495,  494,  493,
+      492,  491,  490,  489,  488,  485,  484,  483,  482,  481,
+      480,  479,  478,  477,  476,  475,  474,  335,  471,  470,
+      469,  466,  459,  458,  457,  454,  311,  443,  437,  279,
+      264,  260,  260,  418,  417,  416,  415,  413,  412,  411,
+      402,  401,  398,  397,  394,  382,  381,  373,  372,  371,
+      368,  367,  359,  356,  355,  352,  351,  350,  347,  172,
+      335,  311,  309,  264,  297,  279,  264,  262,  260,  257,
+      255,  254,  253,  252,  249,  244,  241,  172,  168,  157,
+      154,  824,   25,  824,  824,  824,  824,  824,  824,  824,
+
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824
     } ;
 
-static yyconst flex_int16_t yy_chk[2472] =
+static yyconst flex_int16_t yy_chk[2468] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1130,7 +1129,7 @@
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    5,    6,
         5,    6,   28,   28,   32,   28,   32,   33,  161,   33,
-      161,   33,   33,  819,    5,    6,    7,    7,    7,    7,
+      161,   33,   33,  815,    5,    6,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
@@ -1174,7 +1173,7 @@
        17,   17,   17,   17,   17,   17,   19,   52,   44,   29,
        35,   19,  213,   39,   52,   19,   44,   19,   19,   20,
        19,   19,   19,   19,   20,   29,   39,   35,   20,  213,
-       20,   20,  818,   20,   20,   20,   20,   23,   23,   23,
+       20,   20,  814,   20,   20,   20,   20,   23,   23,   23,
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
@@ -1185,7 +1184,7 @@
        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
        23,   31,   40,   62,   40,   40,   40,   40,   49,   49,
        42,   40,   42,   42,   42,   42,   50,   50,   46,   42,
-       46,   46,   46,   46,   51,   51,   66,   66,  817,   66,
+       46,   46,   46,   46,   51,   51,   66,   66,  813,   66,
        53,   60,   46,   53,   53,   53,   53,   53,   60,   31,
        43,  119,   43,   73,   73,   43,   73,   62,  119,  203,
       203,   46,   75,  119,   43,   43,   43,   43,   75,   75,
@@ -1195,32 +1194,32 @@
        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
        43,   43,   43,   43,   45,   56,   45,   45,   45,   45,
-       63,  816,   56,   58,   59,   61,   57,   45,   45,  187,
-       58,   59,   61,   57,   45,  812,   78,   78,   45,   78,
-       47,   94,  187,  190,   45,   47,  811,   45,   47,  190,
+       63,  812,   56,   58,   59,   61,   57,   45,   45,  187,
+       58,   59,   61,   57,   45,  808,   78,   78,   45,   78,
+       47,   94,  187,  190,   45,   47,  807,   45,   47,  190,
        47,   47,   47,   47,   47,  109,   45,   47,   56,   47,
-       47,   57,  127,  810,   45,   59,   63,   61,   57,  809,
+       47,   57,  127,  806,   45,   59,   63,   61,   57,  805,
 
        86,   86,   58,   86,   92,   92,   95,   92,   95,   94,
        95,   95,   99,  138,   99,   99,   99,   99,  101,  101,
       101,  101,  102,  109,  102,  102,  102,  102,  158,  103,
       127,  103,  103,  103,  103,  102,  102,  113,  113,  113,
-      113,  808,  102,  103,  192,  110,  102,  110,  192,  110,
+      113,  804,  102,  103,  192,  110,  102,  110,  192,  110,
       110,  138,  102,  192,  112,  102,  112,  112,  112,  112,
       136,  136,  103,  136,  102,  115,  158,  115,  115,  115,
-      115,  806,  102,  114,  226,  114,  114,  114,  114,  115,
-      117,  226,  117,  121,  117,  117,  114,  114,  805,  122,
+      115,  802,  102,  114,  226,  114,  114,  114,  114,  115,
+      117,  226,  117,  121,  117,  117,  114,  114,  801,  122,
       121,  155,  155,  114,  155,  121,  122,  114,  115,  156,
 
       156,  122,  156,  114,  120,  123,  114,  120,  120,  120,
-      120,  120,  123,  211,  197,  114,  120,  123,  124,  801,
+      120,  120,  123,  211,  197,  114,  120,  123,  124,  797,
       125,  126,  211,  114,  122,  124,  121,  125,  126,  197,
-      124,  122,  125,  126,  129,  800,  129,  129,  129,  129,
+      124,  122,  125,  126,  129,  796,  129,  129,  129,  129,
       130,  130,  130,  130,  132,  263,  132,  132,  132,  132,
       163,  139,  163,  139,  123,  139,  139,  193,  132,  124,
-      799,  193,  141,  126,  141,  141,  141,  141,  125,  143,
+      795,  193,  141,  126,  141,  141,  141,  141,  125,  143,
       143,  143,  143,  194,  146,  194,  145,  132,  145,  145,
-      145,  145,  146,  263,  146,  146,  224,  224,  146,  798,
+      145,  145,  146,  263,  146,  146,  224,  224,  146,  794,
       145,  148,  148,  148,  148,  148,  149,  149,  149,  149,
 
       149,  143,  162,  216,  162,  162,  143,  143,  143,  145,
@@ -1231,164 +1230,163 @@
       166,  166,  166,  144,  167,  167,  167,  167,  287,  287,
       230,  144,  175,  175,  175,  175,  176,  230,  176,  176,
       176,  176,  180,  180,  180,  180,  202,  202,  202,  202,
-      176,  278,  212,  796,  180,  204,  212,  204,  202,  214,
-      204,  204,  204,  204,  214,  229,  310,  231,  793,  176,
+      176,  278,  212,  792,  180,  204,  212,  204,  202,  214,
+      204,  204,  204,  204,  214,  229,  310,  231,  789,  176,
 
-      790,  212,  229,  180,  231,  228,  232,  202,  228,  228,
+      786,  212,  229,  180,  231,  228,  232,  202,  228,  228,
       228,  228,  228,  232,  234,  235,  233,  240,  240,  402,
       240,  234,  235,  233,  241,  241,  320,  241,  243,  243,
       320,  243,  244,  244,  310,  244,  248,  248,  386,  248,
-      789,  249,  249,  229,  249,  231,  232,  232,  233,  256,
+      785,  249,  249,  229,  249,  231,  232,  232,  233,  256,
       256,  386,  256,  257,  257,  235,  257,  402,  261,  261,
-      234,  261,  262,  262,  788,  262,  266,  266,  266,  266,
-      268,  268,  268,  268,  269,  787,  269,  269,  269,  269,
+      234,  261,  262,  262,  784,  262,  266,  266,  266,  266,
+      268,  268,  268,  268,  269,  783,  269,  269,  269,  269,
       270,  270,  270,  270,  272,  272,  272,  272,  269,  275,
       275,  275,  270,  274,  479,  274,  272,  520,  274,  274,
 
       274,  274,  281,  281,  281,  281,  479,  269,  289,  289,
       289,  270,  325,  325,  405,  272,  283,  283,  283,  283,
       284,  405,  284,  284,  284,  284,  285,  285,  285,  285,
-      286,  286,  286,  286,  284,  520,  298,  786,  285,  288,
-      784,  288,  286,  298,  288,  288,  288,  288,  298,  293,
+      286,  286,  286,  286,  284,  520,  298,  782,  285,  288,
+      780,  288,  286,  298,  288,  288,  288,  288,  298,  293,
       293,  293,  293,  284,  327,  327,  327,  285,  293,  330,
       330,  286,  294,  294,  294,  294,  295,  295,  295,  295,
-      342,  294,  342,  342,  685,  295,  296,  296,  296,  296,
-      375,  375,  685,  300,  301,  296,  300,  300,  300,  300,
+      342,  294,  342,  342,  682,  295,  296,  296,  296,  296,
+      375,  375,  682,  300,  301,  296,  300,  300,  300,  300,
       300,  301,  302,  303,  304,  300,  301,  423,  423,  302,
 
       303,  304,  407,  306,  302,  303,  304,  305,  384,  407,
-      306,  307,  431,  431,  305,  306,  783,  384,  307,  305,
-      384,  308,  308,  307,  308,  309,  309,  782,  309,  378,
+      306,  307,  431,  431,  305,  306,  779,  384,  307,  305,
+      384,  308,  308,  307,  308,  309,  309,  778,  309,  378,
       378,  378,  301,  404,  304,  304,  426,  426,  426,  305,
       404,  303,  313,  313,  313,  313,  434,  434,  434,  306,
       406,  307,  315,  315,  315,  315,  316,  406,  316,  316,
       316,  316,  317,  317,  317,  317,  324,  324,  324,  324,
-      316,  781,  408,  779,  317,  326,  404,  326,  324,  408,
+      316,  777,  408,  775,  317,  326,  404,  326,  324,  408,
       326,  326,  326,  326,  336,  336,  336,  336,  336,  316,
       406,  461,  461,  317,  464,  464,  464,  324,  337,  337,
 
       337,  337,  337,  338,  338,  338,  338,  338,  339,  339,
       339,  339,  339,  343,  343,  343,  343,  344,  344,  344,
       344,  345,  345,  345,  345,  346,  346,  346,  346,  348,
-      778,  348,  777,  776,  348,  348,  348,  348,  374,  374,
+      774,  348,  773,  772,  348,  348,  348,  348,  374,  374,
       374,  374,  376,  376,  376,  376,  377,  377,  377,  377,
       374,  409,  410,  419,  419,  419,  419,  525,  409,  410,
-      420,  775,  420,  774,  525,  420,  420,  420,  420,  374,
+      420,  771,  420,  770,  525,  420,  420,  420,  420,  374,
       422,  422,  422,  422,  424,  424,  424,  424,  425,  425,
-      425,  425,  422,  725,  770,  512,  410,  768,  444,  409,
-      428,  428,  428,  428,  512,  444,  725,  429,  767,  429,
+      425,  425,  422,  721,  766,  512,  410,  764,  444,  409,
+      428,  428,  428,  428,  512,  444,  721,  429,  763,  429,
 
       444,  422,  429,  429,  429,  429,  430,  430,  430,  430,
       432,  432,  432,  432,  433,  433,  433,  433,  430,  438,
-      438,  438,  438,  439,  439,  439,  439,  765,  438,  764,
-      762,  444,  439,  440,  440,  440,  440,  430,  441,  441,
-      441,  441,  440,  445,  446,  447,  448,  441,  761,  760,
-      445,  446,  447,  448,  449,  445,  446,  447,  448,  759,
-      450,  449,  451,  451,  451,  451,  449,  450,  452,  742,
-      452,  758,  450,  452,  452,  452,  452,  460,  460,  460,
-      460,  756,  742,  526,  446,  462,  462,  462,  462,  460,
-      526,  755,  449,  754,  450,  463,  463,  463,  463,  472,
+      438,  438,  438,  439,  439,  439,  439,  761,  438,  760,
+      758,  444,  439,  440,  440,  440,  440,  430,  441,  441,
+      441,  441,  440,  445,  446,  447,  448,  441,  757,  756,
+      445,  446,  447,  448,  449,  445,  446,  447,  448,  755,
+      450,  449,  451,  451,  451,  451,  449,  450,  452,  738,
+      452,  754,  450,  452,  452,  452,  452,  460,  460,  460,
+      460,  752,  738,  526,  446,  462,  462,  462,  462,  460,
+      526,  751,  449,  750,  450,  463,  463,  463,  463,  472,
 
       472,  472,  472,  473,  473,  473,  473,  527,  460,  528,
-      533,  533,  533,  533,  527,  753,  528,  534,  534,  534,
+      533,  533,  533,  533,  527,  749,  528,  534,  534,  534,
       534,  535,  535,  535,  535,  536,  536,  536,  536,  539,
-      540,  541,  542,  751,  601,  750,  539,  540,  541,  542,
-      562,  539,  540,  541,  542,  543,  543,  543,  543,  527,
-      544,  544,  544,  544,  562,  577,  528,  602,  603,  660,
-      562,  663,  608,  609,  602,  603,  749,  747,  663,  608,
-      609,  577,  601,  541,  608,  609,  664,  577,  668,  542,
-      669,  677,  746,  664,  744,  668,  743,  669,  741,  740,
-      668,  739,  669,  602,  738,  677,  736,  660,  608,  735,
-
-      734,  677,  733,  732,  731,  603,  730,  728,  727,  726,
-      609,  829,  829,  829,  829,  829,  829,  829,  829,  829,
-      829,  829,  830,  830,  830,  830,  830,  830,  830,  830,
-      830,  830,  830,  831,  831,  831,  831,  831,  831,  831,
-      831,  831,  831,  831,  832,  724,  832,  832,  832,  832,
-      832,  832,  832,  832,  832,  833,  833,  833,  833,  833,
-      833,  833,  833,  833,  833,  833,  834,  722,  834,  834,
-      834,  834,  834,  834,  834,  834,  834,  835,  835,  835,
-      836,  836,  836,  721,  836,  836,  836,  837,  720,  719,
-      837,  837,  837,  838,  838,  838,  839,  718,  717,  839,
-
-      839,  839,  840,  840,  840,  841,  841,  716,  841,  841,
-      841,  842,  715,  842,  842,  842,  842,  842,  842,  842,
-      842,  842,  843,  714,  843,  843,  843,  843,  843,  843,
-      843,  843,  843,  844,  713,  711,  844,  844,  844,  845,
-      710,  709,  845,  845,  845,  846,  708,  846,  846,  846,
-      846,  846,  846,  846,  846,  846,  847,  707,  847,  847,
-      847,  847,  847,  847,  847,  847,  847,  848,  706,  704,
-      848,  848,  848,  849,  849,  849,  850,  850,  850,  850,
-      850,  850,  850,  851,  702,  851,  851,  851,  851,  851,
-      851,  851,  851,  851,  852,  701,  852,  852,  852,  852,
-
-      852,  852,  852,  852,  852,  853,  700,  699,  853,  853,
-      853,  854,  854,  697,  854,  854,  854,  855,  855,  855,
-      855,  855,  855,  855,  855,  855,  856,  696,  856,  856,
-      856,  856,  856,  856,  856,  856,  856,  857,  857,  857,
-      857,  857,  857,  857,  857,  857,  857,  857,  858,  695,
-      858,  858,  858,  858,  858,  858,  858,  858,  858,  859,
-      694,  693,  859,  859,  859,  860,  692,  691,  860,  861,
-      690,  688,  861,  861,  861,  862,  862,  862,  687,  862,
-      862,  862,  863,  863,  863,  686,  863,  863,  863,  864,
-      684,  683,  682,  681,  864,  864,  864,  865,  680,  679,
-
-      865,  865,  865,  866,  678,  676,  866,  866,  866,  867,
-      675,  674,  867,  867,  867,  868,  868,  673,  868,  868,
-      868,  869,  672,  671,  869,  869,  869,  870,  670,  666,
-      870,  871,  659,  658,  871,  871,  871,  872,  656,  872,
-      872,  872,  872,  872,  872,  872,  872,  872,  873,  655,
-      873,  873,  873,  873,  873,  873,  873,  873,  873,  874,
-      653,  652,  874,  875,  651,  648,  875,  875,  875,  876,
-      647,  876,  876,  876,  876,  877,  877,  877,  878,  878,
-      878,  878,  878,  878,  878,  879,  646,  879,  879,  879,
-      879,  879,  879,  879,  879,  879,  880,  645,  880,  880,
-
-      880,  880,  880,  880,  880,  880,  880,  881,  644,  642,
-      881,  881,  881,  882,  641,  640,  882,  883,  883,  639,
-      883,  883,  883,  884,  638,  884,  884,  884,  884,  884,
-      884,  884,  884,  884,  885,  885,  885,  636,  885,  885,
-      885,  886,  886,  886,  635,  886,  886,  886,  887,  634,
-      633,  887,  887,  887,  888,  631,  888,  888,  888,  888,
-      888,  888,  888,  888,  888,  630,  629,  628,  627,  626,
-      625,  623,  622,  621,  620,  616,  614,  613,  612,  607,
-      606,  605,  600,  599,  598,  597,  596,  595,  594,  593,
-      592,  591,  590,  589,  587,  585,  584,  582,  579,  578,
-
-      576,  575,  574,  573,  572,  571,  570,  569,  567,  566,
-      565,  561,  559,  558,  557,  556,  555,  554,  553,  552,
-      551,  550,  549,  548,  547,  545,  532,  531,  530,  529,
-      524,  523,  518,  517,  516,  515,  514,  513,  511,  510,
-      509,  508,  507,  506,  505,  503,  502,  501,  500,  499,
-      498,  497,  496,  494,  493,  492,  491,  490,  489,  488,
-      487,  486,  485,  483,  482,  481,  480,  478,  477,  476,
-      475,  474,  471,  470,  469,  468,  467,  466,  459,  458,
-      457,  456,  455,  454,  437,  436,  418,  413,  412,  411,
-      403,  401,  400,  398,  397,  396,  395,  394,  393,  392,
-
-      391,  390,  389,  388,  387,  385,  383,  382,  381,  372,
-      371,  370,  369,  368,  367,  366,  365,  364,  363,  361,
-      360,  359,  358,  357,  356,  355,  354,  353,  352,  351,
-      350,  334,  333,  332,  331,  329,  323,  322,  321,  319,
-      314,  299,  292,  282,  267,  259,  258,  255,  254,  253,
-      252,  247,  246,  245,  227,  225,  218,  217,  215,  209,
-      208,  200,  199,  198,  196,  195,  191,  189,  188,  186,
-      185,  183,  173,  171,  147,  140,  137,  128,  118,  111,
-       96,   93,   89,   87,   85,   84,   83,   82,   79,   74,
-       67,   36,   34,   30,   27,   25,  828,  828,  828,  828,
-
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
-      828
+      540,  541,  542,  747,  600,  746,  539,  540,  541,  542,
+      561,  539,  540,  541,  542,  543,  543,  543,  543,  527,
+      544,  544,  544,  544,  561,  576,  528,  601,  602,  658,
+      561,  661,  607,  608,  601,  602,  745,  743,  661,  607,
+      608,  576,  600,  541,  607,  608,  662,  576,  666,  542,
+      667,  674,  742,  662,  740,  666,  739,  667,  737,  736,
+      666,  735,  667,  601,  734,  674,  732,  658,  607,  731,
+
+      730,  674,  729,  728,  727,  602,  726,  724,  723,  722,
+      608,  825,  825,  825,  825,  825,  825,  825,  825,  825,
+      825,  825,  826,  826,  826,  826,  826,  826,  826,  826,
+      826,  826,  826,  827,  827,  827,  827,  827,  827,  827,
+      827,  827,  827,  827,  828,  720,  828,  828,  828,  828,
+      828,  828,  828,  828,  828,  829,  829,  829,  829,  829,
+      829,  829,  829,  829,  829,  829,  830,  718,  830,  830,
+      830,  830,  830,  830,  830,  830,  830,  831,  831,  831,
+      832,  832,  832,  717,  832,  832,  832,  833,  716,  715,
+      833,  833,  833,  834,  834,  834,  835,  714,  713,  835,
+
+      835,  835,  836,  836,  836,  837,  837,  712,  837,  837,
+      837,  838,  711,  838,  838,  838,  838,  838,  838,  838,
+      838,  838,  839,  710,  839,  839,  839,  839,  839,  839,
+      839,  839,  839,  840,  709,  708,  840,  840,  840,  841,
+      707,  706,  841,  841,  841,  842,  705,  842,  842,  842,
+      842,  842,  842,  842,  842,  842,  843,  704,  843,  843,
+      843,  843,  843,  843,  843,  843,  843,  844,  703,  701,
+      844,  844,  844,  845,  845,  845,  846,  846,  846,  846,
+      846,  846,  846,  847,  699,  847,  847,  847,  847,  847,
+      847,  847,  847,  847,  848,  698,  848,  848,  848,  848,
+
+      848,  848,  848,  848,  848,  849,  697,  696,  849,  849,
+      849,  850,  850,  694,  850,  850,  850,  851,  851,  851,
+      851,  851,  851,  851,  851,  851,  852,  693,  852,  852,
+      852,  852,  852,  852,  852,  852,  852,  853,  853,  853,
+      853,  853,  853,  853,  853,  853,  853,  853,  854,  692,
+      854,  854,  854,  854,  854,  854,  854,  854,  854,  855,
+      691,  690,  855,  855,  855,  856,  689,  688,  856,  857,
+      687,  685,  857,  857,  857,  858,  858,  858,  684,  858,
+      858,  858,  859,  859,  859,  683,  859,  859,  859,  860,
+      681,  680,  679,  678,  860,  860,  860,  861,  677,  676,
+
+      861,  861,  861,  862,  675,  673,  862,  862,  862,  863,
+      672,  671,  863,  863,  863,  864,  864,  670,  864,  864,
+      864,  865,  669,  668,  865,  865,  865,  866,  664,  657,
+      866,  867,  656,  654,  867,  867,  867,  868,  653,  868,
+      868,  868,  868,  868,  868,  868,  868,  868,  869,  651,
+      869,  869,  869,  869,  869,  869,  869,  869,  869,  870,
+      650,  649,  870,  871,  646,  645,  871,  871,  871,  872,
+      644,  872,  872,  872,  872,  873,  873,  873,  874,  874,
+      874,  874,  874,  874,  874,  875,  643,  875,  875,  875,
+      875,  875,  875,  875,  875,  875,  876,  642,  876,  876,
+
+      876,  876,  876,  876,  876,  876,  876,  877,  640,  639,
+      877,  877,  877,  878,  638,  637,  878,  879,  879,  636,
+      879,  879,  879,  880,  634,  880,  880,  880,  880,  880,
+      880,  880,  880,  880,  881,  881,  881,  633,  881,  881,
+      881,  882,  882,  882,  632,  882,  882,  882,  883,  631,
+      629,  883,  883,  883,  884,  628,  884,  884,  884,  884,
+      884,  884,  884,  884,  884,  627,  626,  625,  624,  623,
+      621,  620,  619,  615,  613,  612,  611,  606,  605,  604,
+      599,  598,  597,  596,  595,  594,  593,  592,  591,  590,
+      589,  588,  586,  584,  583,  581,  578,  577,  575,  574,
+
+      573,  572,  571,  570,  569,  568,  566,  565,  564,  560,
+      558,  557,  556,  555,  554,  553,  552,  551,  550,  549,
+      548,  547,  545,  532,  531,  530,  529,  524,  523,  518,
+      517,  516,  515,  514,  513,  511,  510,  509,  508,  507,
+      506,  505,  503,  502,  501,  500,  499,  498,  497,  496,
+      494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
+      483,  482,  481,  480,  478,  477,  476,  475,  471,  470,
+      469,  468,  467,  466,  459,  458,  457,  456,  455,  454,
+      437,  436,  418,  413,  412,  411,  403,  401,  400,  398,
+      397,  396,  395,  394,  393,  392,  391,  390,  389,  388,
+
+      387,  385,  383,  382,  381,  372,  371,  370,  369,  368,
+      367,  366,  365,  364,  363,  361,  360,  359,  358,  357,
+      356,  355,  354,  353,  352,  351,  350,  334,  333,  332,
+      331,  329,  323,  322,  321,  319,  314,  299,  292,  282,
+      267,  259,  258,  255,  254,  253,  252,  247,  246,  245,
+      227,  225,  218,  217,  215,  209,  208,  200,  199,  198,
+      196,  195,  191,  189,  188,  186,  185,  183,  173,  171,
+      147,  140,  137,  128,  118,  111,   96,   93,   89,   87,
+       85,   84,   83,   82,   79,   74,   67,   36,   34,   30,
+       27,   25,  824,  824,  824,  824,  824,  824,  824,  824,
+
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
+      824,  824,  824,  824,  824,  824,  824
     } ;
 
 /* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[211] =
+static yyconst flex_int32_t yy_rule_can_match_eol[210] =
     {   0,
 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1396,13 +1394,13 @@
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     };
+    0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     };
 
-static yyconst flex_int16_t yy_rule_linenum[210] =
+static yyconst flex_int16_t yy_rule_linenum[209] =
     {   0,
       226,  248,  250,  252,  274,  275,  276,  277,  278,  279,
       280,  281,  282,  283,  284,  285,  287,  288,  289,  290,
@@ -1410,23 +1408,23 @@
       302,  303,  305,  310,  311,  313,  314,  315,  316,  317,
       318,  319,  320,  321,  322,  323,  325,  326,  327,  328,
       330,  331,  332,  333,  335,  336,  337,  338,  339,  341,
-      342,  343,  344,  345,  346,  347,  348,  349,  351,  352,
+      342,  343,  344,  345,  346,  347,  348,  350,  351,  352,
       353,  354,  355,  356,  357,  358,  359,  360,  361,  362,
-      363,  364,  365,  366,  367,  368,  371,  378,  379,  380,
+      363,  364,  365,  366,  367,  370,  377,  378,  379,  380,
       381,  382,  383,  384,  385,  386,  387,  388,  389,  390,
 
-      391,  393,  394,  395,  396,  397,  398,  399,  400,  402,
-      406,  423,  428,  457,  505,  506,  507,  508,  510,  515,
-      527,  555,  556,  557,  558,  559,  561,  569,  620,  633,
-      655,  660,  665,  672,  673,  688,  693,  694,  699,  700,
-      701,  703,  719,  773,  801,  806,  811,  812,  813,  814,
-      819,  830,  831,  833,  835,  846,  860,  865,  866,  867,
-      868,  870,  885,  899,  928,  953,  955,  960,  970,  975,
-      993,  999, 1006, 1039, 1041, 1046, 1082, 1083, 1084, 1086,
-     1087, 1088, 1089, 1090, 1091, 1093, 1094, 1095, 1097, 1102,
-     1107, 1108, 1111, 1145, 1150, 1153, 1154, 1155, 1156, 1158,
+      392,  393,  394,  395,  396,  397,  398,  399,  401,  405,
+      422,  427,  456,  504,  505,  506,  507,  509,  514,  526,
+      554,  555,  556,  557,  558,  560,  568,  619,  632,  654,
+      659,  664,  671,  672,  687,  692,  693,  698,  699,  700,
+      702,  718,  772,  800,  805,  810,  811,  812,  813,  818,
+      829,  830,  832,  834,  845,  859,  864,  865,  866,  867,
+      869,  884,  898,  927,  952,  954,  959,  969,  974,  992,
+      998, 1005, 1038, 1040, 1045, 1081, 1082, 1083, 1085, 1086,
+     1087, 1088, 1089, 1090, 1092, 1093, 1094, 1096, 1101, 1106,
+     1107, 1110, 1144, 1149, 1152, 1153, 1154, 1155, 1157, 1162,
 
-     1163, 1164, 1165, 1166, 1167, 1169, 1174, 1176, 1178
+     1163, 1164, 1165, 1166, 1168, 1173, 1175, 1177
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1546,7 +1544,7 @@
 
 /* The PASM state is an exclusive state, recognizing ONLY PASM tokens. */
 
-#line 1550 "pirlexer.c"
+#line 1548 "pirlexer.c"
 
 #define INITIAL 0
 #define MACROHEAD 1
@@ -1863,7 +1861,7 @@
 
 
 
-#line 1867 "pirlexer.c"
+#line 1865 "pirlexer.c"
 
     yylval = yylval_param;
 
@@ -1928,13 +1926,13 @@
             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                 {
                 yy_current_state = (int) yy_def[yy_current_state];
-                if ( yy_current_state >= 829 )
+                if ( yy_current_state >= 825 )
                     yy_c = yy_meta[(unsigned int) yy_c];
                 }
             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
             ++yy_cp;
             }
-        while ( yy_current_state != 828 );
+        while ( yy_current_state != 824 );
         yy_cp = yyg->yy_last_accepting_cpos;
         yy_current_state = yyg->yy_last_accepting_state;
 
@@ -1965,13 +1963,13 @@
             {
             if ( yy_act == 0 )
                 fprintf( stderr, "--scanner backing up\n" );
-            else if ( yy_act < 210 )
+            else if ( yy_act < 209 )
                 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                          (long)yy_rule_linenum[yy_act], yytext );
-            else if ( yy_act == 210 )
+            else if ( yy_act == 209 )
                 fprintf( stderr, "--accepting default rule (\"%s\")\n",
                          yytext );
-            else if ( yy_act == 211 )
+            else if ( yy_act == 210 )
                 fprintf( stderr, "--(end of buffer or a NUL)\n" );
             else
                 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2345,251 +2343,246 @@
 case 63:
 YY_RULE_SETUP
 #line 344 "pir.l"
-{ return TK_HLL_MAP; }
+{ return TK_INVOCANT; }
     YY_BREAK
 case 64:
 YY_RULE_SETUP
 #line 345 "pir.l"
-{ return TK_INVOCANT; }
+{ return TK_LEX; }
     YY_BREAK
 case 65:
 YY_RULE_SETUP
 #line 346 "pir.l"
-{ return TK_LEX; }
+{ return TK_LINE; }
     YY_BREAK
 case 66:
 YY_RULE_SETUP
 #line 347 "pir.l"
-{ return TK_LINE; }
+{ return TK_LOADLIB; }
     YY_BREAK
 case 67:
 YY_RULE_SETUP
 #line 348 "pir.l"
-{ return TK_LOADLIB; }
+{ return TK_LOCAL; }
     YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 349 "pir.l"
-{ return TK_LOCAL; }
+#line 350 "pir.l"
+{ return TK_METH_CALL; }
     YY_BREAK
 case 69:
 YY_RULE_SETUP
 #line 351 "pir.l"
-{ return TK_METH_CALL; }
+{ return TK_NAMESPACE; }
     YY_BREAK
 case 70:
 YY_RULE_SETUP
 #line 352 "pir.l"
-{ return TK_NAMESPACE; }
+{ return TK_NCI_CALL; }
     YY_BREAK
 case 71:
 YY_RULE_SETUP
 #line 353 "pir.l"
-{ return TK_NCI_CALL; }
+{ return TK_PARAM; }
     YY_BREAK
 case 72:
 YY_RULE_SETUP
 #line 354 "pir.l"
-{ return TK_PARAM; }
+{ return TK_BEGIN_CALL; }
     YY_BREAK
 case 73:
 YY_RULE_SETUP
 #line 355 "pir.l"
-{ return TK_BEGIN_CALL; }
+{ return TK_BEGIN_RETURN; }
     YY_BREAK
 case 74:
 YY_RULE_SETUP
 #line 356 "pir.l"
-{ return TK_BEGIN_RETURN; }
+{ return TK_BEGIN_YIELD; }
     YY_BREAK
 case 75:
 YY_RULE_SETUP
 #line 357 "pir.l"
-{ return TK_BEGIN_YIELD; }
+{ return TK_CALL; }
     YY_BREAK
 case 76:
 YY_RULE_SETUP
 #line 358 "pir.l"
-{ return TK_CALL; }
+{ return TK_END_CALL; }
     YY_BREAK
 case 77:
 YY_RULE_SETUP
 #line 359 "pir.l"
-{ return TK_END_CALL; }
+{ return TK_END_RETURN; }
     YY_BREAK
 case 78:
 YY_RULE_SETUP
 #line 360 "pir.l"
-{ return TK_END_RETURN; }
+{ return TK_END_YIELD; }
     YY_BREAK
 case 79:
 YY_RULE_SETUP
 #line 361 "pir.l"
-{ return TK_END_YIELD; }
+{ return TK_GET_RESULT; }
     YY_BREAK
 case 80:
 YY_RULE_SETUP
 #line 362 "pir.l"
-{ return TK_GET_RESULT; }
+{ return TK_RETURN; }
     YY_BREAK
 case 81:
 YY_RULE_SETUP
 #line 363 "pir.l"
-{ return TK_RETURN; }
+{ return TK_SUB; }
     YY_BREAK
 case 82:
 YY_RULE_SETUP
 #line 364 "pir.l"
-{ return TK_SUB; }
+{ return TK_YIELD; }
     YY_BREAK
 case 83:
 YY_RULE_SETUP
 #line 365 "pir.l"
-{ return TK_YIELD; }
+{ return TK_SET_RETURN; }
     YY_BREAK
 case 84:
 YY_RULE_SETUP
 #line 366 "pir.l"
-{ return TK_SET_RETURN; }
+{ return TK_SET_YIELD; }
     YY_BREAK
 case 85:
 YY_RULE_SETUP
 #line 367 "pir.l"
-{ return TK_SET_YIELD; }
-    YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 368 "pir.l"
 { return TK_TAILCALL; }
     YY_BREAK
-case 87:
+case 86:
 YY_RULE_SETUP
-#line 371 "pir.l"
+#line 370 "pir.l"
 { /* make sure these are not used outside macro defs */
                     yypirerror(yyscanner, yypirget_extra(yyscanner),
                                "cannot use '%s' outside of macro definitions", yytext);
                   }
     YY_BREAK
+case 87:
+YY_RULE_SETUP
+#line 377 "pir.l"
+{ return TK_FLAG_ANON; }
+    YY_BREAK
 case 88:
 YY_RULE_SETUP
 #line 378 "pir.l"
-{ return TK_FLAG_ANON; }
+{ return TK_FLAG_INIT; }
     YY_BREAK
 case 89:
 YY_RULE_SETUP
 #line 379 "pir.l"
-{ return TK_FLAG_INIT; }
+{ return TK_FLAG_LOAD; }
     YY_BREAK
 case 90:
 YY_RULE_SETUP
 #line 380 "pir.l"
-{ return TK_FLAG_LOAD; }
+{ return TK_FLAG_POSTCOMP; }
     YY_BREAK
 case 91:
 YY_RULE_SETUP
 #line 381 "pir.l"
-{ return TK_FLAG_POSTCOMP; }
+{ return TK_FLAG_IMMEDIATE; }
     YY_BREAK
 case 92:
 YY_RULE_SETUP
 #line 382 "pir.l"
-{ return TK_FLAG_IMMEDIATE; }
+{ return TK_FLAG_MAIN; }
     YY_BREAK
 case 93:
 YY_RULE_SETUP
 #line 383 "pir.l"
-{ return TK_FLAG_MAIN; }
+{ return TK_FLAG_METHOD; }
     YY_BREAK
 case 94:
 YY_RULE_SETUP
 #line 384 "pir.l"
-{ return TK_FLAG_METHOD; }
+{ return TK_FLAG_LEX; }
     YY_BREAK
 case 95:
 YY_RULE_SETUP
 #line 385 "pir.l"
-{ return TK_FLAG_LEX; }
+{ return TK_FLAG_OUTER; }
     YY_BREAK
 case 96:
 YY_RULE_SETUP
 #line 386 "pir.l"
-{ return TK_FLAG_OUTER; }
+{ return TK_FLAG_VTABLE; }
     YY_BREAK
 case 97:
 YY_RULE_SETUP
 #line 387 "pir.l"
-{ return TK_FLAG_VTABLE; }
+{ return TK_FLAG_MULTI; }
     YY_BREAK
 case 98:
 YY_RULE_SETUP
 #line 388 "pir.l"
-{ return TK_FLAG_MULTI; }
+{ return TK_FLAG_SUBID; }
     YY_BREAK
 case 99:
 YY_RULE_SETUP
 #line 389 "pir.l"
-{ return TK_FLAG_SUBID; }
+{ return TK_FLAG_INSTANCEOF; }
     YY_BREAK
 case 100:
 YY_RULE_SETUP
 #line 390 "pir.l"
-{ return TK_FLAG_INSTANCEOF; }
+{ return TK_FLAG_NSENTRY; }
     YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 391 "pir.l"
-{ return TK_FLAG_NSENTRY; }
+#line 392 "pir.l"
+{ return TK_FLAG_UNIQUE_REG; }
     YY_BREAK
 case 102:
 YY_RULE_SETUP
 #line 393 "pir.l"
-{ return TK_FLAG_UNIQUE_REG; }
+{ return TK_FLAG_OPTIONAL; }
     YY_BREAK
 case 103:
 YY_RULE_SETUP
 #line 394 "pir.l"
-{ return TK_FLAG_OPTIONAL; }
+{ return TK_FLAG_OPT_FLAG; }
     YY_BREAK
 case 104:
 YY_RULE_SETUP
 #line 395 "pir.l"
-{ return TK_FLAG_OPT_FLAG; }
+{ return TK_FLAG_SLURPY; }
     YY_BREAK
 case 105:
 YY_RULE_SETUP
 #line 396 "pir.l"
-{ return TK_FLAG_SLURPY; }
+{ return TK_FLAG_NAMED; }
     YY_BREAK
 case 106:
 YY_RULE_SETUP
 #line 397 "pir.l"
-{ return TK_FLAG_NAMED; }
+{ return TK_FLAG_FLAT; }
     YY_BREAK
 case 107:
 YY_RULE_SETUP
 #line 398 "pir.l"
-{ return TK_FLAG_FLAT; }
+{ return TK_FLAG_INVOCANT; }
     YY_BREAK
 case 108:
 YY_RULE_SETUP
 #line 399 "pir.l"
-{ return TK_FLAG_INVOCANT; }
-    YY_BREAK
-case 109:
-YY_RULE_SETUP
-#line 400 "pir.l"
 { return TK_FLAG_LOOKAHEAD; }
     YY_BREAK
-case 110:
+case 109:
 YY_RULE_SETUP
-#line 402 "pir.l"
+#line 401 "pir.l"
 { yypirerror(yyscanner, yypirget_extra(yyscanner),
                                "unrecognized flag: '%s'", yytext);
                   }
     YY_BREAK
-case 111:
+case 110:
 YY_RULE_SETUP
-#line 406 "pir.l"
+#line 405 "pir.l"
 { /* XXX this is a bit hacky. First the string is unescaped, but that
                      * returns a STRING * object; that's not what we want at this point.
                      * So, convert it back to a C string, and return that. Later, that
@@ -2607,17 +2600,17 @@
                     return TK_STRINGC;
                   }
     YY_BREAK
-case 112:
+case 111:
 YY_RULE_SETUP
-#line 423 "pir.l"
+#line 422 "pir.l"
 { /* copy the string, remove the quotes. */
                     yylval->sval = dupstrn(yypirget_extra(yyscanner), yytext + 1, yyleng - 2);
                     return TK_STRINGC;
                   }
     YY_BREAK
-case 113:
+case 112:
 YY_RULE_SETUP
-#line 428 "pir.l"
+#line 427 "pir.l"
 { /* XXX these double-quoted strings are not unescaped (yet) */
                     /* parse yytext, which contains the charset, a ':', and the quoted string */
                     char        *colon = strchr(yytext, ':');
@@ -2647,9 +2640,9 @@
                     return TK_USTRINGC;
                   }
     YY_BREAK
-case 114:
+case 113:
 YY_RULE_SETUP
-#line 457 "pir.l"
+#line 456 "pir.l"
 { /* XXX these double-quoted strings are not unescaped (yet) */
                     /* parse yytext, which contains the encoding, a ':', a charset,
                      * a ':', and the quoted string
@@ -2697,37 +2690,37 @@
 
                   }
     YY_BREAK
+case 114:
+YY_RULE_SETUP
+#line 504 "pir.l"
+{ yylval->ival = atoi(yytext + 2); return TK_PREG; }
+    YY_BREAK
 case 115:
 YY_RULE_SETUP
 #line 505 "pir.l"
-{ yylval->ival = atoi(yytext + 2); return TK_PREG; }
+{ yylval->ival = atoi(yytext + 2); return TK_SREG; }
     YY_BREAK
 case 116:
 YY_RULE_SETUP
 #line 506 "pir.l"
-{ yylval->ival = atoi(yytext + 2); return TK_SREG; }
+{ yylval->ival = atoi(yytext + 2); return TK_NREG; }
     YY_BREAK
 case 117:
 YY_RULE_SETUP
 #line 507 "pir.l"
-{ yylval->ival = atoi(yytext + 2); return TK_NREG; }
-    YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 508 "pir.l"
 { yylval->ival = atoi(yytext + 2); return TK_IREG; }
     YY_BREAK
-case 119:
+case 118:
 YY_RULE_SETUP
-#line 510 "pir.l"
+#line 509 "pir.l"
 { /* make the label Id available in the parser. remove the ":" first. */
                     yylval->sval = dupstrn(yypirget_extra(yyscanner), yytext, yyleng - 1);
                     return TK_LABEL;
                   }
     YY_BREAK
-case 120:
+case 119:
 YY_RULE_SETUP
-#line 515 "pir.l"
+#line 514 "pir.l"
 { /* give a warning when using PASM registers as PIR identifiers */
                     lexer_state * const lexer = yypirget_extra(yyscanner);
 
@@ -2740,9 +2733,9 @@
                     return TK_IDENT;
                   }
     YY_BREAK
-case 121:
+case 120:
 YY_RULE_SETUP
-#line 527 "pir.l"
+#line 526 "pir.l"
 { /* identifier; can be a global (sub or const), local or parrot op */
                     lexer_state * const lexer = yypirget_extra(yyscanner);
                     constdecl   * const c = find_global_constant(lexer, yytext);
@@ -2771,10 +2764,15 @@
                     return TK_IDENT;
                   }
     YY_BREAK
+case 121:
+YY_RULE_SETUP
+#line 554 "pir.l"
+{ yylval->dval = atof(yytext); return TK_NUMC; }
+    YY_BREAK
 case 122:
 YY_RULE_SETUP
 #line 555 "pir.l"
-{ yylval->dval = atof(yytext); return TK_NUMC; }
+{ yylval->ival = atoi(yytext); return TK_INTC; }
     YY_BREAK
 case 123:
 YY_RULE_SETUP
@@ -2792,16 +2790,11 @@
 { yylval->ival = atoi(yytext); return TK_INTC; }
     YY_BREAK
 case 126:
-YY_RULE_SETUP
-#line 559 "pir.l"
-{ yylval->ival = atoi(yytext); return TK_INTC; }
-    YY_BREAK
-case 127:
 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
 yyg->yy_c_buf_p = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 561 "pir.l"
+#line 560 "pir.l"
 { /* Make sure the dot is followed by a character that
                      * starts a method object. $ for registers,
                      * quotes for quoted strings, and letters for identifiers.
@@ -2810,10 +2803,10 @@
                      return '.';
                   }
     YY_BREAK
-case 128:
-/* rule 128 can match eol */
+case 127:
+/* rule 127 can match eol */
 YY_RULE_SETUP
-#line 569 "pir.l"
+#line 568 "pir.l"
 { yypirerror(yyscanner, yypirget_extra(yyscanner),
                     "no space allowed before a methodcall dot, "
                     "or space expected after the '.' operator");
@@ -2836,7 +2829,7 @@
 
 
 case YY_STATE_EOF(SCANSTR):
-#line 591 "pir.l"
+#line 590 "pir.l"
 { /* switch back from .macro_const buffer to file. */
                      lexer_state * const lexer = yypirget_extra(yyscanner);
                      yy_pop_state(yyscanner);
@@ -2844,7 +2837,7 @@
                    }
     YY_BREAK
 case YY_STATE_EOF(SCANMACRO):
-#line 597 "pir.l"
+#line 596 "pir.l"
 { /* override the default <<EOF>> action; go back to normal state and
                       * switch back to the saved file.
                       */
@@ -2868,9 +2861,9 @@
 
                    }
     YY_BREAK
-case 129:
+case 128:
 YY_RULE_SETUP
-#line 620 "pir.l"
+#line 619 "pir.l"
 { /* when scanning a macro body, the @ marker indicates the {IDENT} must
                           * be munged.
                           */
@@ -2881,14 +2874,14 @@
                        }
     YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 629 "pir.l"
+#line 628 "pir.l"
 { /* end of file, stop scanning. */
                     yyterminate();
                   }
     YY_BREAK
-case 130:
+case 129:
 YY_RULE_SETUP
-#line 633 "pir.l"
+#line 632 "pir.l"
 { /* any character not covered in the rules above is an error. */
                     yypirerror(yyscanner, yypirget_extra(yyscanner),
                                "unexpected character: '%c'", yytext[0]);
@@ -2907,25 +2900,25 @@
 /********************** .macro_const ****************************************/
 
 
-case 131:
+case 130:
 YY_RULE_SETUP
-#line 655 "pir.l"
+#line 654 "pir.l"
 {
                                yy_push_state(MACROCONST, yyscanner);
                                return TK_MACRO_CONST;
                              }
     YY_BREAK
-case 132:
+case 131:
 YY_RULE_SETUP
-#line 660 "pir.l"
+#line 659 "pir.l"
 {
                                yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
                                return TK_IDENT;
                              }
     YY_BREAK
-case 133:
+case 132:
 YY_RULE_SETUP
-#line 665 "pir.l"
+#line 664 "pir.l"
 {
                                /* only these tokens can be macro constant values */
                                yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
@@ -2933,21 +2926,21 @@
                                return TK_MACRO_CONST_VAL;
                              }
     YY_BREAK
-case 134:
+case 133:
 YY_RULE_SETUP
-#line 672 "pir.l"
+#line 671 "pir.l"
 { /* ignore whitespace */ }
     YY_BREAK
-case 135:
+case 134:
 YY_RULE_SETUP
-#line 673 "pir.l"
+#line 672 "pir.l"
 {
                                yypirerror(yyscanner, yypirget_extra(yyscanner),
                                           "unknown character: '%c'", yytext[0]);
                              }
     YY_BREAK
 case YY_STATE_EOF(MACROCONST):
-#line 677 "pir.l"
+#line 676 "pir.l"
 {
                                yypirerror(yyscanner, yypirget_extra(yyscanner),
                                           "read end of file during .macro_const definition");
@@ -2958,46 +2951,46 @@
 /**************** macro header (.macro <ident> <parameters> ) ***************/
 
 
-case 136:
+case 135:
 YY_RULE_SETUP
-#line 688 "pir.l"
+#line 687 "pir.l"
 { /* start a macro definition */
                                yy_push_state(MACROHEAD, yyscanner);
                                return TK_MACRO;
                              }
     YY_BREAK
-case 137:
+case 136:
 YY_RULE_SETUP
-#line 693 "pir.l"
+#line 692 "pir.l"
 { /* ignore whitespace */ }
     YY_BREAK
-case 138:
+case 137:
 YY_RULE_SETUP
-#line 694 "pir.l"
+#line 693 "pir.l"
 {
                                yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
                                return TK_IDENT;
                              }
     YY_BREAK
-case 139:
+case 138:
 YY_RULE_SETUP
-#line 699 "pir.l"
+#line 698 "pir.l"
 { return '('; }
     YY_BREAK
-case 140:
+case 139:
 YY_RULE_SETUP
-#line 700 "pir.l"
+#line 699 "pir.l"
 { return ')'; }
     YY_BREAK
-case 141:
+case 140:
 YY_RULE_SETUP
-#line 701 "pir.l"
+#line 700 "pir.l"
 { return ','; }
     YY_BREAK
-case 142:
-/* rule 142 can match eol */
+case 141:
+/* rule 141 can match eol */
 YY_RULE_SETUP
-#line 703 "pir.l"
+#line 702 "pir.l"
 { /* a set of continuous newlines yields a single newline token. */
                                yy_pop_state(yyscanner); /* remove MACROHEAD state */
                                yy_push_state(MACROBODY, yyscanner); /* enter MACROBODY state */
@@ -3013,9 +3006,9 @@
  */
 
 
-case 143:
+case 142:
 YY_RULE_SETUP
-#line 719 "pir.l"
+#line 718 "pir.l"
 { /* .foo; it can be a macro, macro_local, or just $P0.foo(),
                                 * but we need to check that.
                                 */
@@ -3070,9 +3063,9 @@
                                }
                              }
     YY_BREAK
-case 144:
+case 143:
 YY_RULE_SETUP
-#line 773 "pir.l"
+#line 772 "pir.l"
 { /* expand a .macro_const or parameter in argument list */
                                lexer_state * const lexer = yypirget_extra(yyscanner);
                                macro_def   * const macro = find_macro(lexer->macros, yytext + 1);
@@ -3101,80 +3094,80 @@
                                    yypirerror(yyscanner, lexer, "'%s' is not a macro", yytext + 1);
                              }
     YY_BREAK
-case 145:
+case 144:
 YY_RULE_SETUP
-#line 801 "pir.l"
+#line 800 "pir.l"
 {
                                yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
                                return TK_MACRO_ARG_IDENT;
                              }
     YY_BREAK
-case 146:
+case 145:
 YY_RULE_SETUP
-#line 806 "pir.l"
+#line 805 "pir.l"
 {
                                yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
                                return TK_MACRO_ARG_OTHER;
                              }
     YY_BREAK
+case 146:
+YY_RULE_SETUP
+#line 810 "pir.l"
+{ /* ignore whitespace */ }
+    YY_BREAK
 case 147:
 YY_RULE_SETUP
 #line 811 "pir.l"
-{ /* ignore whitespace */ }
+{ return ','; }
     YY_BREAK
 case 148:
 YY_RULE_SETUP
 #line 812 "pir.l"
-{ return ','; }
+{ return '('; }
     YY_BREAK
 case 149:
 YY_RULE_SETUP
 #line 813 "pir.l"
-{ return '('; }
-    YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 814 "pir.l"
 {
                                yy_pop_state(yyscanner); /* leave MACROEXPAND state */
                                return ')';
                              }
     YY_BREAK
-case 151:
+case 150:
 YY_RULE_SETUP
-#line 819 "pir.l"
+#line 818 "pir.l"
 {
                                yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
                                return TK_MACRO_ARG_OTHER;
                              }
     YY_BREAK
 case YY_STATE_EOF(STRINGEXPAND):
-#line 824 "pir.l"
+#line 823 "pir.l"
 {
                                lexer_state * const lexer = yypirget_extra(yyscanner);
                                yy_pop_state(yyscanner);
                                yypir_switch_to_buffer(lexer->buffer,yyscanner);
                              }
     YY_BREAK
-case 152:
+case 151:
 YY_RULE_SETUP
-#line 830 "pir.l"
+#line 829 "pir.l"
 { return '{'; }
     YY_BREAK
-case 153:
+case 152:
 YY_RULE_SETUP
-#line 831 "pir.l"
+#line 830 "pir.l"
 { return '}'; }
     YY_BREAK
-case 154:
-/* rule 154 can match eol */
+case 153:
+/* rule 153 can match eol */
 YY_RULE_SETUP
-#line 833 "pir.l"
+#line 832 "pir.l"
 { yylval->sval = "\n"; return TK_NL; }
     YY_BREAK
-case 155:
+case 154:
 YY_RULE_SETUP
-#line 835 "pir.l"
+#line 834 "pir.l"
 { yypirerror(yyscanner, yypirget_extra(yyscanner),
                                           "unknown character in macro expansion: %c", yytext[0]);
                              }
@@ -3184,9 +3177,9 @@
 /******************************** .macro_local *****************************/
 
 
-case 156:
+case 155:
 YY_RULE_SETUP
-#line 846 "pir.l"
+#line 845 "pir.l"
 { /* give a warning if the right flag is set */
                               /*
                               lexer_state * const lexer = yypirget_extra(yyscanner);
@@ -3200,37 +3193,37 @@
                               */
                             }
     YY_BREAK
-case 157:
+case 156:
 YY_RULE_SETUP
-#line 860 "pir.l"
+#line 859 "pir.l"
 {
                               yy_push_state(MACROLOCAL, yyscanner);
                               return TK_MACRO_LOCAL;
                             }
     YY_BREAK
+case 157:
+YY_RULE_SETUP
+#line 864 "pir.l"
+{ return TK_INT; }
+    YY_BREAK
 case 158:
 YY_RULE_SETUP
 #line 865 "pir.l"
-{ return TK_INT; }
+{ return TK_PMC; }
     YY_BREAK
 case 159:
 YY_RULE_SETUP
 #line 866 "pir.l"
-{ return TK_PMC; }
+{ return TK_NUM; }
     YY_BREAK
 case 160:
 YY_RULE_SETUP
 #line 867 "pir.l"
-{ return TK_NUM; }
-    YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 868 "pir.l"
 { return TK_STRING; }
     YY_BREAK
-case 162:
+case 161:
 YY_RULE_SETUP
-#line 870 "pir.l"
+#line 869 "pir.l"
 { /* normal .macro_local */
                               lexer_state * const lexer = yypirget_extra(yyscanner);
                               /* reserve space for {IDENT}, the @ marker and the NULL char. */
@@ -3246,9 +3239,9 @@
                               return TK_MACRO_LOCAL_ID;
                             }
     YY_BREAK
-case 163:
+case 162:
 YY_RULE_SETUP
-#line 885 "pir.l"
+#line 884 "pir.l"
 { /* declare a .macro_local based on a parameter */
                               lexer_state * const lexer = yypirget_extra(yyscanner);
 
@@ -3263,9 +3256,9 @@
 
                             }
     YY_BREAK
-case 164:
+case 163:
 YY_RULE_SETUP
-#line 899 "pir.l"
+#line 898 "pir.l"
 { /* .$foo */
                               lexer_state * const lexer = yypirget_extra(yyscanner);
                               macro_table * const table = peek_macro_table(lexer);
@@ -3295,9 +3288,9 @@
 
                             }
     YY_BREAK
-case 165:
+case 164:
 YY_RULE_SETUP
-#line 928 "pir.l"
+#line 927 "pir.l"
 { /* expanding a .macro_local using a macro parameter value */
                              lexer_state * const lexer     = yypirget_extra(yyscanner);
                              char  const * const paramname = dupstrn(lexer, yytext + 1, yyleng - 2);
@@ -3323,23 +3316,23 @@
                              return TK_IDENT;
                            }
     YY_BREAK
-case 166:
+case 165:
 YY_RULE_SETUP
-#line 953 "pir.l"
+#line 952 "pir.l"
 { /* ignore whitespace */ }
     YY_BREAK
-case 167:
-/* rule 167 can match eol */
+case 166:
+/* rule 166 can match eol */
 YY_RULE_SETUP
-#line 955 "pir.l"
+#line 954 "pir.l"
 { /* newline after .macro_local <type> <ident> line */
                               yy_pop_state(yyscanner);
                               return TK_NL;
                             }
     YY_BREAK
-case 168:
+case 167:
 YY_RULE_SETUP
-#line 960 "pir.l"
+#line 959 "pir.l"
 { /* this state is only used for declaring .macro_locals */
                               yypirerror(yyscanner, yypirget_extra(yyscanner),
                                  "unknown character '%c' when declaring .macro_local", yytext[0]);
@@ -3350,17 +3343,17 @@
 /****************************** .macro_label ********************************/
 
 
-case 169:
+case 168:
 YY_RULE_SETUP
-#line 970 "pir.l"
+#line 969 "pir.l"
 {
                               yy_push_state(MACROLABEL, yyscanner);
                               return TK_MACRO_LABEL;
                             }
     YY_BREAK
-case 170:
+case 169:
 YY_RULE_SETUP
-#line 975 "pir.l"
+#line 974 "pir.l"
 { /* if the "$" is there, it's a macro label using a macro
                                * parameter's value; otherwise it's a normal macro label
                                */
@@ -3378,18 +3371,18 @@
                               return TK_MACRO_LABEL_ID;
                             }
     YY_BREAK
-case 171:
-/* rule 171 can match eol */
+case 170:
+/* rule 170 can match eol */
 YY_RULE_SETUP
-#line 993 "pir.l"
+#line 992 "pir.l"
 { /* the newline character after a ".macro_label $foo:" declaration */
                               yy_pop_state(yyscanner); /* leave MACROLABEL state */
                               return TK_NL;
                             }
     YY_BREAK
-case 172:
+case 171:
 YY_RULE_SETUP
-#line 999 "pir.l"
+#line 998 "pir.l"
 { /* scan a label when expanding a buffer; declared as .macro_label */
                               lexer_state * const lexer = yypirget_extra(yyscanner);
                               char const  * const label = dupstrn(lexer, yytext, yyleng - 2);
@@ -3397,9 +3390,9 @@
                               return TK_LABEL;
                             }
     YY_BREAK
-case 173:
+case 172:
 YY_RULE_SETUP
-#line 1006 "pir.l"
+#line 1005 "pir.l"
 { /* scan a label when expanding macro; was a macro parameter */
                              lexer_state * const lexer     = yypirget_extra(yyscanner);
                              char const  * const paramname = dupstrn(lexer, yytext + 1, yyleng - 3);
@@ -3431,29 +3424,29 @@
 /*************************** macro body scanning (storing) ****************************/
 
 
-case 174:
-/* rule 174 can match eol */
+case 173:
+/* rule 173 can match eol */
 YY_RULE_SETUP
-#line 1039 "pir.l"
+#line 1038 "pir.l"
 { store_macro_char(CURRENT_MACRO(yypirget_extra(yyscanner)), '\n'); }
     YY_BREAK
-case 175:
+case 174:
 YY_RULE_SETUP
-#line 1041 "pir.l"
+#line 1040 "pir.l"
 {
                                yy_pop_state(yyscanner); /* leave MACROBODY state */
                                return TK_ENDM;
                              }
     YY_BREAK
-case 176:
+case 175:
 YY_RULE_SETUP
-#line 1046 "pir.l"
+#line 1045 "pir.l"
 { /* store everything else */
                                store_macro_char(CURRENT_MACRO(yypirget_extra(yyscanner)), yytext[0]);
                              }
     YY_BREAK
 case YY_STATE_EOF(MACROBODY):
-#line 1050 "pir.l"
+#line 1049 "pir.l"
 { /* catch run-away macro bodys */
                                yypirerror(yyscanner, yypirget_extra(yyscanner),
                                           "read end of file while reading macro body");
@@ -3483,95 +3476,95 @@
  * This becomes unmanageable
  */
 
+case 176:
+YY_RULE_SETUP
+#line 1081 "pir.l"
+{ return ','; }
+    YY_BREAK
 case 177:
 YY_RULE_SETUP
 #line 1082 "pir.l"
-{ return ','; }
+{ return '['; }
     YY_BREAK
 case 178:
 YY_RULE_SETUP
 #line 1083 "pir.l"
-{ return '['; }
+{ return ']'; }
     YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 1084 "pir.l"
-{ return ']'; }
+#line 1085 "pir.l"
+{ return TK_FLAG_MAIN; }
     YY_BREAK
 case 180:
 YY_RULE_SETUP
 #line 1086 "pir.l"
-{ return TK_FLAG_MAIN; }
+{ return TK_FLAG_LOAD; }
     YY_BREAK
 case 181:
 YY_RULE_SETUP
 #line 1087 "pir.l"
-{ return TK_FLAG_LOAD; }
+{ return TK_FLAG_INIT; }
     YY_BREAK
 case 182:
 YY_RULE_SETUP
 #line 1088 "pir.l"
-{ return TK_FLAG_INIT; }
+{ return TK_FLAG_ANON; }
     YY_BREAK
 case 183:
 YY_RULE_SETUP
 #line 1089 "pir.l"
-{ return TK_FLAG_ANON; }
+{ return TK_FLAG_POSTCOMP; }
     YY_BREAK
 case 184:
 YY_RULE_SETUP
 #line 1090 "pir.l"
-{ return TK_FLAG_POSTCOMP; }
+{ return TK_FLAG_IMMEDIATE; }
     YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 1091 "pir.l"
-{ return TK_FLAG_IMMEDIATE; }
+#line 1092 "pir.l"
+{ return TK_PCC_SUB; }
     YY_BREAK
 case 186:
 YY_RULE_SETUP
 #line 1093 "pir.l"
-{ return TK_PCC_SUB; }
+{ return TK_LEX; }
     YY_BREAK
 case 187:
 YY_RULE_SETUP
 #line 1094 "pir.l"
-{ return TK_LEX; }
-    YY_BREAK
-case 188:
-YY_RULE_SETUP
-#line 1095 "pir.l"
 { return TK_NAMESPACE; }
     YY_BREAK
-case 189:
+case 188:
 YY_RULE_SETUP
-#line 1097 "pir.l"
+#line 1096 "pir.l"
 {
                           yy_push_state(MACROHEAD, yyscanner);
                           return TK_MACRO;
                         }
     YY_BREAK
-case 190:
+case 189:
 YY_RULE_SETUP
-#line 1102 "pir.l"
+#line 1101 "pir.l"
 {
                           yy_push_state(MACROCONST, yyscanner);
                           return TK_MACRO_CONST;
                         }
     YY_BREAK
-case 191:
+case 190:
 YY_RULE_SETUP
-#line 1107 "pir.l"
+#line 1106 "pir.l"
 { return TK_LINE; }
     YY_BREAK
-case 192:
+case 191:
 YY_RULE_SETUP
-#line 1108 "pir.l"
+#line 1107 "pir.l"
 { return TK_FILE; }
     YY_BREAK
-case 193:
+case 192:
 YY_RULE_SETUP
-#line 1111 "pir.l"
+#line 1110 "pir.l"
 { /* macro expansion in PASM mode. */
                           lexer_state * const lexer = yypirget_extra(yyscanner);
                           macro_def   * const macro = find_macro(lexer->macros, yytext + 1);
@@ -3606,53 +3599,58 @@
                           }
                         }
     YY_BREAK
-case 194:
+case 193:
 YY_RULE_SETUP
-#line 1145 "pir.l"
+#line 1144 "pir.l"
 { /* a label in PASM */
                           yylval->sval = dupstrn(yypirget_extra(yyscanner), yytext, yyleng - 1);
                           return TK_LABEL;
                         }
     YY_BREAK
-case 195:
+case 194:
 YY_RULE_SETUP
-#line 1150 "pir.l"
+#line 1149 "pir.l"
 { yypirerror(yyscanner, yypirget_extra(yyscanner),
                                      "symbolic registers are not allowed in PASM mode");
                         }
     YY_BREAK
+case 195:
+YY_RULE_SETUP
+#line 1152 "pir.l"
+{ yylval->ival = atoi(yytext + 1); return TK_PREG; }
+    YY_BREAK
 case 196:
 YY_RULE_SETUP
 #line 1153 "pir.l"
-{ yylval->ival = atoi(yytext + 1); return TK_PREG; }
+{ yylval->ival = atoi(yytext + 1); return TK_NREG; }
     YY_BREAK
 case 197:
 YY_RULE_SETUP
 #line 1154 "pir.l"
-{ yylval->ival = atoi(yytext + 1); return TK_NREG; }
+{ yylval->ival = atoi(yytext + 1); return TK_IREG; }
     YY_BREAK
 case 198:
 YY_RULE_SETUP
 #line 1155 "pir.l"
-{ yylval->ival = atoi(yytext + 1); return TK_IREG; }
-    YY_BREAK
-case 199:
-YY_RULE_SETUP
-#line 1156 "pir.l"
 { yylval->ival = atoi(yytext + 1); return TK_SREG; }
     YY_BREAK
-case 200:
+case 199:
 YY_RULE_SETUP
-#line 1158 "pir.l"
+#line 1157 "pir.l"
 { /* can be a parrot op or a label; the check is done in the parser. */
                           yylval->sval = dupstr(yypirget_extra(yyscanner), yytext);
                           return TK_IDENT;
                         }
     YY_BREAK
+case 200:
+YY_RULE_SETUP
+#line 1162 "pir.l"
+{ yylval->dval = atof(yytext); return TK_NUMC; }
+    YY_BREAK
 case 201:
 YY_RULE_SETUP
 #line 1163 "pir.l"
-{ yylval->dval = atof(yytext); return TK_NUMC; }
+{ yylval->ival = atoi(yytext); return TK_INTC; }
     YY_BREAK
 case 202:
 YY_RULE_SETUP
@@ -3671,45 +3669,40 @@
     YY_BREAK
 case 205:
 YY_RULE_SETUP
-#line 1167 "pir.l"
-{ yylval->ival = atoi(yytext); return TK_INTC; }
-    YY_BREAK
-case 206:
-YY_RULE_SETUP
-#line 1169 "pir.l"
+#line 1168 "pir.l"
 { /* copy the string, remove the quotes. */
                           yylval->sval = dupstrn(yypirget_extra(yyscanner), yytext + 1, yyleng - 2);
                           return TK_STRINGC;
                         }
     YY_BREAK
-case 207:
+case 206:
 YY_RULE_SETUP
-#line 1174 "pir.l"
+#line 1173 "pir.l"
 { /* ignore whitespace */ }
     YY_BREAK
-case 208:
-/* rule 208 can match eol */
+case 207:
+/* rule 207 can match eol */
 YY_RULE_SETUP
-#line 1176 "pir.l"
+#line 1175 "pir.l"
 { return TK_NL; }
     YY_BREAK
-case 209:
+case 208:
 YY_RULE_SETUP
-#line 1178 "pir.l"
+#line 1177 "pir.l"
 { yypirerror(yyscanner, yypirget_extra(yyscanner),
                                      "unrecognized character: %c", yytext[0]);
                         }
     YY_BREAK
 case YY_STATE_EOF(PASM):
-#line 1181 "pir.l"
+#line 1180 "pir.l"
 { yyterminate(); }
     YY_BREAK
-case 210:
+case 209:
 YY_RULE_SETUP
-#line 1183 "pir.l"
+#line 1182 "pir.l"
 ECHO;
     YY_BREAK
-#line 3713 "pirlexer.c"
+#line 3706 "pirlexer.c"
 case YY_STATE_EOF(MACROHEAD):
 case YY_STATE_EOF(MACROLOCAL):
 case YY_STATE_EOF(MACROLABEL):
@@ -4029,7 +4022,7 @@
         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
             {
             yy_current_state = (int) yy_def[yy_current_state];
-            if ( yy_current_state >= 829 )
+            if ( yy_current_state >= 825 )
                 yy_c = yy_meta[(unsigned int) yy_c];
             }
         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4063,11 +4056,11 @@
     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
         {
         yy_current_state = (int) yy_def[yy_current_state];
-        if ( yy_current_state >= 829 )
+        if ( yy_current_state >= 825 )
             yy_c = yy_meta[(unsigned int) yy_c];
         }
     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-    yy_is_jam = (yy_current_state == 828);
+    yy_is_jam = (yy_current_state == 824);
 
     return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5010,7 +5003,7 @@
 
 /* %ok-for-header */
 
-#line 1183 "pir.l"
+#line 1182 "pir.l"
 
 
 

Modified: trunk/compilers/pirc/src/pirlexer.h
==============================================================================
--- trunk/compilers/pirc/src/pirlexer.h	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pirlexer.h	Thu Feb 12 11:39:41 2009	(r36627)
@@ -501,7 +501,7 @@
 #undef YY_DECL
 #endif
 
-#line 1183 "pir.l"
+#line 1182 "pir.l"
 
 
 #line 508 "pirlexer.h"

Modified: trunk/compilers/pirc/src/pirparser.c
==============================================================================
--- trunk/compilers/pirc/src/pirparser.c	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pirparser.c	Thu Feb 12 11:39:41 2009	(r36627)
@@ -75,242 +75,240 @@
       know about them.  */
    enum yytokentype {
      TK_HLL = 258,
-     TK_HLL_MAP = 259,
-     TK_LOADLIB = 260,
-     TK_SUB = 261,
-     TK_END = 262,
-     TK_PARAM = 263,
-     TK_LEX = 264,
-     TK_LINE = 265,
-     TK_FILE = 266,
-     TK_LOCAL = 267,
-     TK_NAMESPACE = 268,
-     TK_INVOCANT = 269,
-     TK_METH_CALL = 270,
-     TK_GLOBALCONST = 271,
-     TK_CONST = 272,
-     TK_RETURN = 273,
-     TK_YIELD = 274,
-     TK_SET_YIELD = 275,
-     TK_SET_RETURN = 276,
-     TK_BEGIN_YIELD = 277,
-     TK_END_YIELD = 278,
-     TK_BEGIN_RETURN = 279,
-     TK_END_RETURN = 280,
-     TK_BEGIN_CALL = 281,
-     TK_END_CALL = 282,
-     TK_GET_RESULTS = 283,
-     TK_CALL = 284,
-     TK_SET_ARG = 285,
-     TK_GET_RESULT = 286,
-     TK_NCI_CALL = 287,
-     TK_TAILCALL = 288,
-     TK_ANNOTATE = 289,
-     TK_NL = 290,
-     TK_LABEL = 291,
-     TK_IDENT = 292,
-     TK_INT = 293,
-     TK_NUM = 294,
-     TK_PMC = 295,
-     TK_STRING = 296,
-     TK_IF = 297,
-     TK_UNLESS = 298,
-     TK_NULL = 299,
-     TK_GOTO = 300,
-     TK_STRINGC = 301,
-     TK_USTRINGC = 302,
-     TK_INTC = 303,
-     TK_NUMC = 304,
-     TK_PREG = 305,
-     TK_NREG = 306,
-     TK_SREG = 307,
-     TK_IREG = 308,
-     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_FLAG_LOOKAHEAD = 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_LOADLIB = 259,
+     TK_SUB = 260,
+     TK_END = 261,
+     TK_PARAM = 262,
+     TK_LEX = 263,
+     TK_LINE = 264,
+     TK_FILE = 265,
+     TK_LOCAL = 266,
+     TK_NAMESPACE = 267,
+     TK_INVOCANT = 268,
+     TK_METH_CALL = 269,
+     TK_GLOBALCONST = 270,
+     TK_CONST = 271,
+     TK_RETURN = 272,
+     TK_YIELD = 273,
+     TK_SET_YIELD = 274,
+     TK_SET_RETURN = 275,
+     TK_BEGIN_YIELD = 276,
+     TK_END_YIELD = 277,
+     TK_BEGIN_RETURN = 278,
+     TK_END_RETURN = 279,
+     TK_BEGIN_CALL = 280,
+     TK_END_CALL = 281,
+     TK_GET_RESULTS = 282,
+     TK_CALL = 283,
+     TK_SET_ARG = 284,
+     TK_GET_RESULT = 285,
+     TK_NCI_CALL = 286,
+     TK_TAILCALL = 287,
+     TK_ANNOTATE = 288,
+     TK_NL = 289,
+     TK_LABEL = 290,
+     TK_IDENT = 291,
+     TK_INT = 292,
+     TK_NUM = 293,
+     TK_PMC = 294,
+     TK_STRING = 295,
+     TK_IF = 296,
+     TK_UNLESS = 297,
+     TK_NULL = 298,
+     TK_GOTO = 299,
+     TK_STRINGC = 300,
+     TK_USTRINGC = 301,
+     TK_INTC = 302,
+     TK_NUMC = 303,
+     TK_PREG = 304,
+     TK_NREG = 305,
+     TK_SREG = 306,
+     TK_IREG = 307,
+     TK_ARROW = 308,
+     TK_NE = 309,
+     TK_EQ = 310,
+     TK_LT = 311,
+     TK_LE = 312,
+     TK_GT = 313,
+     TK_GE = 314,
+     TK_USHIFT = 315,
+     TK_RSHIFT = 316,
+     TK_LSHIFT = 317,
+     TK_FDIV = 318,
+     TK_OR = 319,
+     TK_AND = 320,
+     TK_XOR = 321,
+     TK_CONC = 322,
+     TK_ASSIGN_USHIFT = 323,
+     TK_ASSIGN_RSHIFT = 324,
+     TK_ASSIGN_LSHIFT = 325,
+     TK_ASSIGN_INC = 326,
+     TK_ASSIGN_DEC = 327,
+     TK_ASSIGN_MUL = 328,
+     TK_ASSIGN_MOD = 329,
+     TK_ASSIGN_POW = 330,
+     TK_ASSIGN_DIV = 331,
+     TK_ASSIGN_BOR = 332,
+     TK_ASSIGN_BAND = 333,
+     TK_ASSIGN_FDIV = 334,
+     TK_ASSIGN_BNOT = 335,
+     TK_ASSIGN_CONC = 336,
+     TK_FLAG_INIT = 337,
+     TK_FLAG_LOAD = 338,
+     TK_FLAG_MAIN = 339,
+     TK_FLAG_ANON = 340,
+     TK_FLAG_METHOD = 341,
+     TK_FLAG_OUTER = 342,
+     TK_FLAG_VTABLE = 343,
+     TK_FLAG_LEX = 344,
+     TK_FLAG_MULTI = 345,
+     TK_FLAG_POSTCOMP = 346,
+     TK_FLAG_IMMEDIATE = 347,
+     TK_FLAG_SUBID = 348,
+     TK_FLAG_INSTANCEOF = 349,
+     TK_FLAG_NSENTRY = 350,
+     TK_FLAG_UNIQUE_REG = 351,
+     TK_FLAG_NAMED = 352,
+     TK_FLAG_SLURPY = 353,
+     TK_FLAG_FLAT = 354,
+     TK_FLAG_OPTIONAL = 355,
+     TK_FLAG_OPT_FLAG = 356,
+     TK_FLAG_INVOCANT = 357,
+     TK_FLAG_LOOKAHEAD = 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.  */
 #define TK_HLL 258
-#define TK_HLL_MAP 259
-#define TK_LOADLIB 260
-#define TK_SUB 261
-#define TK_END 262
-#define TK_PARAM 263
-#define TK_LEX 264
-#define TK_LINE 265
-#define TK_FILE 266
-#define TK_LOCAL 267
-#define TK_NAMESPACE 268
-#define TK_INVOCANT 269
-#define TK_METH_CALL 270
-#define TK_GLOBALCONST 271
-#define TK_CONST 272
-#define TK_RETURN 273
-#define TK_YIELD 274
-#define TK_SET_YIELD 275
-#define TK_SET_RETURN 276
-#define TK_BEGIN_YIELD 277
-#define TK_END_YIELD 278
-#define TK_BEGIN_RETURN 279
-#define TK_END_RETURN 280
-#define TK_BEGIN_CALL 281
-#define TK_END_CALL 282
-#define TK_GET_RESULTS 283
-#define TK_CALL 284
-#define TK_SET_ARG 285
-#define TK_GET_RESULT 286
-#define TK_NCI_CALL 287
-#define TK_TAILCALL 288
-#define TK_ANNOTATE 289
-#define TK_NL 290
-#define TK_LABEL 291
-#define TK_IDENT 292
-#define TK_INT 293
-#define TK_NUM 294
-#define TK_PMC 295
-#define TK_STRING 296
-#define TK_IF 297
-#define TK_UNLESS 298
-#define TK_NULL 299
-#define TK_GOTO 300
-#define TK_STRINGC 301
-#define TK_USTRINGC 302
-#define TK_INTC 303
-#define TK_NUMC 304
-#define TK_PREG 305
-#define TK_NREG 306
-#define TK_SREG 307
-#define TK_IREG 308
-#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_FLAG_LOOKAHEAD 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_LOADLIB 259
+#define TK_SUB 260
+#define TK_END 261
+#define TK_PARAM 262
+#define TK_LEX 263
+#define TK_LINE 264
+#define TK_FILE 265
+#define TK_LOCAL 266
+#define TK_NAMESPACE 267
+#define TK_INVOCANT 268
+#define TK_METH_CALL 269
+#define TK_GLOBALCONST 270
+#define TK_CONST 271
+#define TK_RETURN 272
+#define TK_YIELD 273
+#define TK_SET_YIELD 274
+#define TK_SET_RETURN 275
+#define TK_BEGIN_YIELD 276
+#define TK_END_YIELD 277
+#define TK_BEGIN_RETURN 278
+#define TK_END_RETURN 279
+#define TK_BEGIN_CALL 280
+#define TK_END_CALL 281
+#define TK_GET_RESULTS 282
+#define TK_CALL 283
+#define TK_SET_ARG 284
+#define TK_GET_RESULT 285
+#define TK_NCI_CALL 286
+#define TK_TAILCALL 287
+#define TK_ANNOTATE 288
+#define TK_NL 289
+#define TK_LABEL 290
+#define TK_IDENT 291
+#define TK_INT 292
+#define TK_NUM 293
+#define TK_PMC 294
+#define TK_STRING 295
+#define TK_IF 296
+#define TK_UNLESS 297
+#define TK_NULL 298
+#define TK_GOTO 299
+#define TK_STRINGC 300
+#define TK_USTRINGC 301
+#define TK_INTC 302
+#define TK_NUMC 303
+#define TK_PREG 304
+#define TK_NREG 305
+#define TK_SREG 306
+#define TK_IREG 307
+#define TK_ARROW 308
+#define TK_NE 309
+#define TK_EQ 310
+#define TK_LT 311
+#define TK_LE 312
+#define TK_GT 313
+#define TK_GE 314
+#define TK_USHIFT 315
+#define TK_RSHIFT 316
+#define TK_LSHIFT 317
+#define TK_FDIV 318
+#define TK_OR 319
+#define TK_AND 320
+#define TK_XOR 321
+#define TK_CONC 322
+#define TK_ASSIGN_USHIFT 323
+#define TK_ASSIGN_RSHIFT 324
+#define TK_ASSIGN_LSHIFT 325
+#define TK_ASSIGN_INC 326
+#define TK_ASSIGN_DEC 327
+#define TK_ASSIGN_MUL 328
+#define TK_ASSIGN_MOD 329
+#define TK_ASSIGN_POW 330
+#define TK_ASSIGN_DIV 331
+#define TK_ASSIGN_BOR 332
+#define TK_ASSIGN_BAND 333
+#define TK_ASSIGN_FDIV 334
+#define TK_ASSIGN_BNOT 335
+#define TK_ASSIGN_CONC 336
+#define TK_FLAG_INIT 337
+#define TK_FLAG_LOAD 338
+#define TK_FLAG_MAIN 339
+#define TK_FLAG_ANON 340
+#define TK_FLAG_METHOD 341
+#define TK_FLAG_OUTER 342
+#define TK_FLAG_VTABLE 343
+#define TK_FLAG_LEX 344
+#define TK_FLAG_MULTI 345
+#define TK_FLAG_POSTCOMP 346
+#define TK_FLAG_IMMEDIATE 347
+#define TK_FLAG_SUBID 348
+#define TK_FLAG_INSTANCEOF 349
+#define TK_FLAG_NSENTRY 350
+#define TK_FLAG_UNIQUE_REG 351
+#define TK_FLAG_NAMED 352
+#define TK_FLAG_SLURPY 353
+#define TK_FLAG_FLAT 354
+#define TK_FLAG_OPTIONAL 355
+#define TK_FLAG_OPT_FLAG 356
+#define TK_FLAG_INVOCANT 357
+#define TK_FLAG_LOOKAHEAD 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
 
 
 
@@ -589,7 +587,7 @@
     struct macro_param *pval;
 }
 /* Line 187 of yacc.c.  */
-#line 593 "pirparser.c"
+#line 591 "pirparser.c"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -602,7 +600,7 @@
 
 
 /* Line 216 of yacc.c.  */
-#line 606 "pirparser.c"
+#line 604 "pirparser.c"
 
 #ifdef short
 # undef short
@@ -817,20 +815,20 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  11
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1162
+#define YYLAST   1154
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  140
+#define YYNTOKENS  139
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  173
+#define YYNNTS  172
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  433
+#define YYNRULES  431
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  674
+#define YYNSTATES  669
 
 /* 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)
@@ -841,16 +839,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,   124,
+       2,   127,     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,   122,     2,   123,     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,   125,   136,   126,   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,
@@ -875,7 +873,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
@@ -885,226 +883,226 @@
 {
        0,     0,     3,     6,     9,    13,    14,    16,    18,    20,
       24,    26,    28,    30,    32,    34,    36,    38,    40,    42,
-      44,    46,    50,    58,    61,    62,    64,    66,    70,    72,
-      73,    75,    77,    80,    83,    85,    87,    90,    94,    97,
-     100,   103,   106,   111,   116,   117,   119,   121,   125,   127,
-     134,   136,   139,   141,   143,   144,   147,   149,   151,   153,
-     155,   157,   159,   161,   164,   169,   172,   175,   178,   181,
-     184,   188,   189,   191,   193,   197,   199,   201,   203,   205,
-     206,   209,   214,   217,   218,   221,   223,   225,   227,   229,
-     232,   237,   239,   240,   243,   246,   248,   250,   252,   254,
-     256,   258,   260,   262,   264,   266,   268,   270,   272,   274,
-     276,   278,   280,   286,   288,   292,   293,   297,   298,   300,
-     302,   306,   308,   310,   313,   315,   319,   320,   323,   325,
-     327,   329,   332,   334,   337,   340,   344,   348,   351,   354,
-     356,   358,   360,   362,   363,   365,   367,   371,   375,   377,
-     379,   381,   383,   385,   387,   390,   394,   396,   400,   407,
-     412,   419,   422,   424,   426,   430,   434,   438,   442,   446,
-     450,   455,   460,   465,   469,   473,   477,   481,   485,   489,
-     493,   498,   504,   509,   514,   518,   522,   526,   530,   534,
-     538,   542,   546,   549,   555,   561,   567,   573,   579,   585,
-     591,   597,   603,   608,   614,   619,   624,   629,   634,   639,
-     644,   649,   654,   659,   664,   669,   674,   679,   683,   687,
-     691,   695,   699,   703,   707,   711,   715,   719,   723,   727,
-     729,   731,   733,   735,   737,   739,   743,   748,   750,   754,
-     757,   758,   760,   766,   768,   770,   772,   781,   782,   784,
-     786,   789,   793,   797,   800,   806,   807,   810,   811,   813,
-     815,   818,   822,   824,   827,   831,   835,   837,   839,   841,
-     846,   849,   851,   853,   855,   857,   859,   861,   863,   865,
-     869,   870,   872,   874,   878,   881,   885,   886,   889,   891,
-     893,   895,   898,   900,   902,   904,   906,   908,   912,   916,
-     920,   924,   925,   927,   929,   933,   935,   937,   941,   944,
-     946,   952,   958,   959,   961,   963,   966,   970,   971,   973,
-     975,   978,   982,   983,   986,   988,   991,   992,   994,   998,
-    1001,  1004,  1006,  1008,  1011,  1013,  1015,  1018,  1023,  1028,
-    1033,  1038,  1043,  1045,  1047,  1049,  1051,  1053,  1055,  1057,
-    1059,  1061,  1063,  1065,  1067,  1069,  1071,  1073,  1075,  1077,
-    1079,  1081,  1083,  1085,  1087,  1089,  1091,  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,  1169,  1171,  1173,  1175,  1177,
-    1179,  1181,  1183,  1185,  1187,  1189,  1191,  1194,  1196,  1198,
-    1201,  1203,  1206,  1208,  1211,  1214,  1216,  1219,  1222,  1224,
-    1226,  1228,  1232,  1234
+      44,    48,    56,    59,    60,    62,    64,    68,    70,    71,
+      73,    75,    78,    81,    83,    85,    88,    92,    95,    98,
+     101,   104,   109,   110,   112,   114,   118,   120,   127,   129,
+     132,   134,   136,   137,   140,   142,   144,   146,   148,   150,
+     152,   154,   157,   162,   165,   168,   171,   174,   177,   181,
+     182,   184,   186,   190,   192,   194,   196,   198,   199,   202,
+     207,   210,   211,   214,   216,   218,   220,   222,   225,   230,
+     232,   233,   236,   239,   241,   243,   245,   247,   249,   251,
+     253,   255,   257,   259,   261,   263,   265,   267,   269,   271,
+     273,   279,   281,   285,   286,   290,   291,   293,   295,   299,
+     301,   303,   306,   308,   312,   313,   316,   318,   320,   322,
+     325,   327,   330,   333,   337,   341,   344,   347,   349,   351,
+     353,   355,   356,   358,   360,   364,   368,   370,   372,   374,
+     376,   378,   380,   383,   387,   389,   393,   400,   405,   412,
+     415,   417,   419,   423,   427,   431,   435,   439,   443,   448,
+     453,   458,   462,   466,   470,   474,   478,   482,   486,   491,
+     497,   502,   507,   511,   515,   519,   523,   527,   531,   535,
+     539,   542,   548,   554,   560,   566,   572,   578,   584,   590,
+     596,   601,   607,   612,   617,   622,   627,   632,   637,   642,
+     647,   652,   657,   662,   667,   672,   676,   680,   684,   688,
+     692,   696,   700,   704,   708,   712,   716,   720,   722,   724,
+     726,   728,   730,   732,   736,   741,   743,   747,   750,   751,
+     753,   759,   761,   763,   765,   774,   775,   777,   779,   782,
+     786,   790,   793,   799,   800,   803,   804,   806,   808,   811,
+     815,   817,   820,   824,   828,   830,   832,   834,   839,   842,
+     844,   846,   848,   850,   852,   854,   856,   858,   862,   863,
+     865,   867,   871,   874,   878,   879,   882,   884,   886,   888,
+     891,   893,   895,   897,   899,   901,   905,   909,   913,   917,
+     918,   920,   922,   926,   928,   930,   934,   937,   939,   945,
+     951,   952,   954,   956,   959,   963,   964,   966,   968,   971,
+     975,   976,   979,   981,   984,   985,   987,   991,   994,   997,
+     999,  1001,  1004,  1006,  1008,  1011,  1016,  1021,  1026,  1031,
+    1036,  1038,  1040,  1042,  1044,  1046,  1048,  1050,  1052,  1054,
+    1056,  1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,
+    1076,  1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,
+    1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1112,  1114,
+    1116,  1118,  1120,  1122,  1124,  1126,  1128,  1130,  1132,  1134,
+    1136,  1138,  1140,  1142,  1144,  1146,  1148,  1150,  1152,  1154,
+    1156,  1158,  1160,  1162,  1164,  1166,  1168,  1170,  1172,  1174,
+    1176,  1178,  1180,  1182,  1184,  1187,  1189,  1191,  1194,  1196,
+    1199,  1201,  1204,  1207,  1209,  1212,  1215,  1217,  1219,  1221,
+    1225,  1227
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     141,     0,    -1,   117,   142,    -1,   116,   304,    -1,   143,
-     145,   143,    -1,    -1,   144,    -1,    35,    -1,   146,    -1,
-     145,   144,   146,    -1,   168,    -1,   283,    -1,   164,    -1,
-     162,    -1,   163,    -1,   160,    -1,   161,    -1,   147,    -1,
-     202,    -1,   148,    -1,   149,    -1,   109,    37,   115,    -1,
-     150,   120,   151,   121,    35,   154,   106,    -1,   105,   299,
-      -1,    -1,   152,    -1,   153,    -1,   152,   122,   153,    -1,
-     299,    -1,    -1,   155,    -1,   156,    -1,   155,   156,    -1,
-     157,    35,    -1,   158,    -1,   159,    -1,   108,   110,    -1,
-     107,   295,   111,    -1,     5,    46,    -1,    10,    48,    -1,
-      11,    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,   144,
-     178,   187,   169,    -1,     7,    -1,     6,   171,    -1,   299,
-      -1,    46,    -1,    -1,   172,   173,    -1,    86,    -1,    83,
-      -1,    84,    -1,    85,    -1,    90,    -1,    92,    -1,    93,
-      -1,    91,   174,    -1,    88,   120,   171,   121,    -1,    87,
-     280,    -1,    89,   280,    -1,    94,   281,    -1,    95,   281,
-      -1,    96,   281,    -1,   120,   175,   121,    -1,    -1,   176,
-      -1,   177,    -1,   176,   122,   177,    -1,   299,    -1,    46,
-      -1,   215,    -1,   179,    -1,    -1,   179,   180,    -1,     8,
-     181,   182,   144,    -1,   295,   299,    -1,    -1,   182,   183,
-      -1,   258,    -1,   185,    -1,   184,    -1,   186,    -1,   104,
-     281,    -1,   103,   120,   177,   121,    -1,    97,    -1,    -1,
-     187,   188,    -1,    36,   189,    -1,   189,    -1,   205,    -1,
-     222,    -1,   228,    -1,   229,    -1,   233,    -1,   282,    -1,
-     259,    -1,   234,    -1,   218,    -1,   204,    -1,   203,    -1,
-     200,    -1,   201,    -1,   191,    -1,   190,    -1,   202,    -1,
-      34,    46,   122,   292,   144,    -1,   192,    -1,   112,   193,
-     144,    -1,    -1,   120,   194,   121,    -1,    -1,   195,    -1,
-     196,    -1,   195,   122,   196,    -1,   113,    -1,   114,    -1,
-     112,   193,    -1,   197,    -1,   127,   198,   128,    -1,    -1,
-     198,   199,    -1,    35,    -1,   114,    -1,   113,    -1,   112,
-     193,    -1,   144,    -1,   161,   144,    -1,     1,   144,    -1,
-      44,   296,   144,    -1,    28,   253,   144,    -1,   206,   144,
-      -1,   207,   208,    -1,   217,    -1,    37,    -1,   209,    -1,
-     211,    -1,    -1,   210,    -1,   212,    -1,   210,   122,   212,
-      -1,   215,   123,   291,    -1,   213,    -1,   215,    -1,   292,
-      -1,   299,    -1,   298,    -1,   214,    -1,   252,   215,    -1,
-     124,   216,   125,    -1,   291,    -1,   216,   126,   291,    -1,
-     296,   123,   207,   213,   122,   210,    -1,   296,   123,   207,
-     213,    -1,   296,   123,   207,   215,   122,   210,    -1,   220,
-     144,    -1,    37,    -1,   300,    -1,   296,   123,    48,    -1,
-     296,   123,    49,    -1,   296,   123,   293,    -1,   296,   123,
-     298,    -1,   296,   123,   219,    -1,   296,   123,   221,    -1,
-     296,   123,   207,   215,    -1,   296,   123,   300,   215,    -1,
-     296,   123,    50,   215,    -1,   296,   303,   291,    -1,   296,
-      72,    48,    -1,   296,    72,    49,    -1,   296,    73,    48,
-      -1,   296,    73,    49,    -1,   296,    72,   296,    -1,   296,
-      73,   296,    -1,   296,   123,   301,   291,    -1,   296,   123,
-     296,   302,   291,    -1,   300,   215,   123,   291,    -1,    50,
-     215,   123,   291,    -1,    48,   302,   296,    -1,    49,   302,
-     296,    -1,    46,   302,   296,    -1,    46,   302,    46,    -1,
-      48,   302,    48,    -1,    49,   302,    49,    -1,    48,   302,
-      49,    -1,    49,   302,    48,    -1,   223,   144,    -1,   226,
-      44,    37,    45,   299,    -1,   226,    44,    38,    45,   299,
-      -1,   226,    44,    39,    45,   299,    -1,   226,    44,    40,
-      45,   299,    -1,   226,    44,    41,    45,   299,    -1,   226,
-      44,    42,    45,   299,    -1,   226,    44,    43,    45,   299,
-      -1,   226,    44,    45,    45,   299,    -1,   226,    44,    44,
-      45,   299,    -1,   226,   292,   227,   299,    -1,   226,    44,
-      50,   227,   299,    -1,   226,    37,   227,   299,    -1,   226,
-     298,   227,   299,    -1,   226,    38,   227,   299,    -1,   226,
-      39,   227,   299,    -1,   226,    40,   227,   299,    -1,   226,
-      41,   227,   299,    -1,   226,    42,   227,   299,    -1,   226,
-      43,   227,   299,    -1,   226,    45,    45,   299,    -1,   226,
-      45,   122,   299,    -1,   226,    44,    45,   299,    -1,   226,
-      44,   122,   299,    -1,   226,   224,    45,   299,    -1,   296,
-     294,   291,    -1,    48,   294,   296,    -1,    49,   294,   296,
-      -1,    46,   294,   296,    -1,    48,   294,    48,    -1,    48,
-     294,    49,    -1,    49,   294,    48,    -1,    49,   294,    49,
-      -1,    46,   294,    46,    -1,    46,   294,   225,    -1,    48,
-     294,    46,    -1,    49,   294,    46,    -1,    48,    -1,    49,
-      -1,    42,    -1,    43,    -1,    45,    -1,   122,    -1,    45,
-     299,   144,    -1,    12,   295,   230,   144,    -1,   231,    -1,
-     230,   122,   231,    -1,   299,   232,    -1,    -1,    97,    -1,
-       9,    46,   122,   252,   144,    -1,   235,    -1,   236,    -1,
-     245,    -1,    26,   144,   237,   240,   144,   242,    27,   144,
-      -1,    -1,   238,    -1,   239,    -1,   238,   239,    -1,    30,
-     268,   144,    -1,    29,   250,   241,    -1,    32,   252,    -1,
-      14,   252,    35,    15,   251,    -1,    -1,   122,   252,    -1,
-      -1,   243,    -1,   244,    -1,   243,   244,    -1,    31,   256,
-     144,    -1,   229,    -1,   246,   144,    -1,   253,   123,   247,
-      -1,   296,   123,   247,    -1,   247,    -1,   249,    -1,   248,
-      -1,   252,   129,   251,   263,    -1,   250,   263,    -1,   252,
-      -1,    46,    -1,   299,    -1,    50,    -1,    52,    -1,    46,
-      -1,   299,    -1,    50,    -1,   120,   254,   121,    -1,    -1,
-     255,    -1,   256,    -1,   255,   122,   256,    -1,   296,   257,
-      -1,    46,    54,   296,    -1,    -1,   257,   258,    -1,   101,
-      -1,   102,    -1,    99,    -1,    98,   280,    -1,   260,    -1,
-     261,    -1,   270,    -1,   262,    -1,   271,    -1,    18,   263,
-     144,    -1,    33,   247,   144,    -1,    19,   263,   144,    -1,
-     120,   264,   121,    -1,    -1,   265,    -1,   266,    -1,   265,
-     122,   266,    -1,   268,    -1,   267,    -1,    46,    54,   269,
-      -1,   269,   278,    -1,   291,    -1,    24,   144,   275,    25,
-     144,    -1,    22,   144,   272,    23,   144,    -1,    -1,   273,
-      -1,   274,    -1,   273,   274,    -1,    20,   268,   144,    -1,
-      -1,   276,    -1,   277,    -1,   276,   277,    -1,    21,   268,
-     144,    -1,    -1,   278,   279,    -1,   100,    -1,    98,   280,
-      -1,    -1,   281,    -1,   120,    46,   121,    -1,   284,   144,
-      -1,    17,   288,    -1,   285,    -1,   287,    -1,    17,   286,
-      -1,   288,    -1,   289,    -1,    16,   288,    -1,    38,   299,
-     123,    48,    -1,    39,   299,   123,    49,    -1,    41,   299,
-     123,    46,    -1,    41,   299,   123,    47,    -1,    46,   299,
-     123,   290,    -1,   292,    -1,   299,    -1,   296,    -1,   292,
-      -1,    48,    -1,    49,    -1,   293,    -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,   297,    -1,   298,    -1,   299,    -1,    50,    -1,    51,
-      -1,    53,    -1,    52,    -1,    37,    -1,   300,    -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,    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,   305,   306,    -1,   143,    -1,   307,    -1,   306,   307,
-      -1,   308,    -1,   164,    35,    -1,   233,    -1,   161,    35,
-      -1,   147,    35,    -1,   192,    -1,    36,   309,    -1,   310,
-     309,    -1,   312,    -1,   200,    -1,   312,    -1,   311,   172,
-      36,    -1,   118,    -1,   207,   209,    35,    -1
+     140,     0,    -1,   116,   141,    -1,   115,   302,    -1,   142,
+     144,   142,    -1,    -1,   143,    -1,    34,    -1,   145,    -1,
+     144,   143,   145,    -1,   166,    -1,   281,    -1,   162,    -1,
+     161,    -1,   159,    -1,   160,    -1,   146,    -1,   200,    -1,
+     147,    -1,   148,    -1,   108,    36,   114,    -1,   149,   119,
+     150,   120,    34,   153,   105,    -1,   104,   297,    -1,    -1,
+     151,    -1,   152,    -1,   151,   121,   152,    -1,   297,    -1,
+      -1,   154,    -1,   155,    -1,   154,   155,    -1,   156,    34,
+      -1,   157,    -1,   158,    -1,   107,   109,    -1,   106,   293,
+     110,    -1,     4,    45,    -1,     9,    47,    -1,    10,    45,
+      -1,     3,    45,    -1,    12,   122,   163,   123,    -1,    -1,
+     164,    -1,   165,    -1,   164,   124,   165,    -1,    45,    -1,
+     168,   170,   143,   176,   185,   167,    -1,     6,    -1,     5,
+     169,    -1,   297,    -1,    45,    -1,    -1,   170,   171,    -1,
+      85,    -1,    82,    -1,    83,    -1,    84,    -1,    89,    -1,
+      91,    -1,    92,    -1,    90,   172,    -1,    87,   119,   169,
+     120,    -1,    86,   278,    -1,    88,   278,    -1,    93,   279,
+      -1,    94,   279,    -1,    95,   279,    -1,   119,   173,   120,
+      -1,    -1,   174,    -1,   175,    -1,   174,   121,   175,    -1,
+     297,    -1,    45,    -1,   213,    -1,   177,    -1,    -1,   177,
+     178,    -1,     7,   179,   180,   143,    -1,   293,   297,    -1,
+      -1,   180,   181,    -1,   256,    -1,   183,    -1,   182,    -1,
+     184,    -1,   103,   279,    -1,   102,   119,   175,   120,    -1,
+      96,    -1,    -1,   185,   186,    -1,    35,   187,    -1,   187,
+      -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,   188,
+      -1,   200,    -1,    33,    45,   121,   290,   143,    -1,   190,
+      -1,   111,   191,   143,    -1,    -1,   119,   192,   120,    -1,
+      -1,   193,    -1,   194,    -1,   193,   121,   194,    -1,   112,
+      -1,   113,    -1,   111,   191,    -1,   195,    -1,   125,   196,
+     126,    -1,    -1,   196,   197,    -1,    34,    -1,   113,    -1,
+     112,    -1,   111,   191,    -1,   143,    -1,   160,   143,    -1,
+       1,   143,    -1,    43,   294,   143,    -1,    27,   251,   143,
+      -1,   204,   143,    -1,   205,   206,    -1,   215,    -1,    36,
+      -1,   207,    -1,   209,    -1,    -1,   208,    -1,   210,    -1,
+     208,   121,   210,    -1,   213,   127,   289,    -1,   211,    -1,
+     213,    -1,   290,    -1,   297,    -1,   296,    -1,   212,    -1,
+     250,   213,    -1,   122,   214,   123,    -1,   289,    -1,   214,
+     124,   289,    -1,   294,   127,   205,   211,   121,   208,    -1,
+     294,   127,   205,   211,    -1,   294,   127,   205,   213,   121,
+     208,    -1,   218,   143,    -1,    36,    -1,   298,    -1,   294,
+     127,    47,    -1,   294,   127,    48,    -1,   294,   127,   291,
+      -1,   294,   127,   296,    -1,   294,   127,   217,    -1,   294,
+     127,   219,    -1,   294,   127,   205,   213,    -1,   294,   127,
+     298,   213,    -1,   294,   127,    49,   213,    -1,   294,   301,
+     289,    -1,   294,    71,    47,    -1,   294,    71,    48,    -1,
+     294,    72,    47,    -1,   294,    72,    48,    -1,   294,    71,
+     294,    -1,   294,    72,   294,    -1,   294,   127,   299,   289,
+      -1,   294,   127,   294,   300,   289,    -1,   298,   213,   127,
+     289,    -1,    49,   213,   127,   289,    -1,    47,   300,   294,
+      -1,    48,   300,   294,    -1,    45,   300,   294,    -1,    45,
+     300,    45,    -1,    47,   300,    47,    -1,    48,   300,    48,
+      -1,    47,   300,    48,    -1,    48,   300,    47,    -1,   221,
+     143,    -1,   224,    43,    36,    44,   297,    -1,   224,    43,
+      37,    44,   297,    -1,   224,    43,    38,    44,   297,    -1,
+     224,    43,    39,    44,   297,    -1,   224,    43,    40,    44,
+     297,    -1,   224,    43,    41,    44,   297,    -1,   224,    43,
+      42,    44,   297,    -1,   224,    43,    44,    44,   297,    -1,
+     224,    43,    43,    44,   297,    -1,   224,   290,   225,   297,
+      -1,   224,    43,    49,   225,   297,    -1,   224,    36,   225,
+     297,    -1,   224,   296,   225,   297,    -1,   224,    37,   225,
+     297,    -1,   224,    38,   225,   297,    -1,   224,    39,   225,
+     297,    -1,   224,    40,   225,   297,    -1,   224,    41,   225,
+     297,    -1,   224,    42,   225,   297,    -1,   224,    44,    44,
+     297,    -1,   224,    44,   121,   297,    -1,   224,    43,    44,
+     297,    -1,   224,    43,   121,   297,    -1,   224,   222,    44,
+     297,    -1,   294,   292,   289,    -1,    47,   292,   294,    -1,
+      48,   292,   294,    -1,    45,   292,   294,    -1,    47,   292,
+      47,    -1,    47,   292,    48,    -1,    48,   292,    47,    -1,
+      48,   292,    48,    -1,    45,   292,    45,    -1,    45,   292,
+     223,    -1,    47,   292,    45,    -1,    48,   292,    45,    -1,
+      47,    -1,    48,    -1,    41,    -1,    42,    -1,    44,    -1,
+     121,    -1,    44,   297,   143,    -1,    11,   293,   228,   143,
+      -1,   229,    -1,   228,   121,   229,    -1,   297,   230,    -1,
+      -1,    96,    -1,     8,    45,   121,   250,   143,    -1,   233,
+      -1,   234,    -1,   243,    -1,    25,   143,   235,   238,   143,
+     240,    26,   143,    -1,    -1,   236,    -1,   237,    -1,   236,
+     237,    -1,    29,   266,   143,    -1,    28,   248,   239,    -1,
+      31,   250,    -1,    13,   250,    34,    14,   249,    -1,    -1,
+     121,   250,    -1,    -1,   241,    -1,   242,    -1,   241,   242,
+      -1,    30,   254,   143,    -1,   227,    -1,   244,   143,    -1,
+     251,   127,   245,    -1,   294,   127,   245,    -1,   245,    -1,
+     247,    -1,   246,    -1,   250,   128,   249,   261,    -1,   248,
+     261,    -1,   250,    -1,    45,    -1,   297,    -1,    49,    -1,
+      51,    -1,    45,    -1,   297,    -1,    49,    -1,   119,   252,
+     120,    -1,    -1,   253,    -1,   254,    -1,   253,   121,   254,
+      -1,   294,   255,    -1,    45,    53,   294,    -1,    -1,   255,
+     256,    -1,   100,    -1,   101,    -1,    98,    -1,    97,   278,
+      -1,   258,    -1,   259,    -1,   268,    -1,   260,    -1,   269,
+      -1,    17,   261,   143,    -1,    32,   245,   143,    -1,    18,
+     261,   143,    -1,   119,   262,   120,    -1,    -1,   263,    -1,
+     264,    -1,   263,   121,   264,    -1,   266,    -1,   265,    -1,
+      45,    53,   267,    -1,   267,   276,    -1,   289,    -1,    23,
+     143,   273,    24,   143,    -1,    21,   143,   270,    22,   143,
+      -1,    -1,   271,    -1,   272,    -1,   271,   272,    -1,    19,
+     266,   143,    -1,    -1,   274,    -1,   275,    -1,   274,   275,
+      -1,    20,   266,   143,    -1,    -1,   276,   277,    -1,    99,
+      -1,    97,   278,    -1,    -1,   279,    -1,   119,    45,   120,
+      -1,   282,   143,    -1,    16,   286,    -1,   283,    -1,   285,
+      -1,    16,   284,    -1,   286,    -1,   287,    -1,    15,   286,
+      -1,    37,   297,   127,    47,    -1,    38,   297,   127,    48,
+      -1,    40,   297,   127,    45,    -1,    40,   297,   127,    46,
+      -1,    45,   297,   127,   288,    -1,   290,    -1,   297,    -1,
+     294,    -1,   290,    -1,    47,    -1,    48,    -1,   291,    -1,
+      45,    -1,    46,    -1,    54,    -1,    55,    -1,    56,    -1,
+      57,    -1,    59,    -1,    58,    -1,    37,    -1,    38,    -1,
+      39,    -1,    40,    -1,   295,    -1,   296,    -1,   297,    -1,
+      49,    -1,    50,    -1,    52,    -1,    51,    -1,    36,    -1,
+     298,    -1,    41,    -1,    42,    -1,    44,    -1,    37,    -1,
+      38,    -1,    40,    -1,    39,    -1,    43,    -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,    67,    -1,    60,    -1,    61,    -1,    62,    -1,
+      64,    -1,    65,    -1,    63,    -1,    66,    -1,    55,    -1,
+      57,    -1,    56,    -1,    59,    -1,    58,    -1,    54,    -1,
+      73,    -1,    74,    -1,    75,    -1,    76,    -1,    79,    -1,
+      77,    -1,    78,    -1,    80,    -1,    81,    -1,    69,    -1,
+      70,    -1,    68,    -1,   303,   304,    -1,   142,    -1,   305,
+      -1,   304,   305,    -1,   306,    -1,   162,    34,    -1,   231,
+      -1,   160,    34,    -1,   146,    34,    -1,   190,    -1,    35,
+     307,    -1,   308,   307,    -1,   310,    -1,   198,    -1,   310,
+      -1,   309,   170,    35,    -1,   117,    -1,   205,   207,    34,
+      -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   563,   563,   564,   569,   575,   576,   579,   583,   584,
-     587,   588,   589,   590,   591,   592,   593,   594,   595,   602,
-     603,   606,   610,   616,   623,   624,   627,   628,   631,   635,
-     636,   639,   640,   643,   646,   647,   650,   654,   665,   669,
-     671,   677,   681,   685,   690,   691,   695,   697,   701,   705,
-     711,   715,   719,   720,   723,   724,   727,   729,   731,   733,
-     735,   737,   739,   741,   743,   745,   747,   749,   751,   753,
-     757,   762,   766,   770,   779,   790,   792,   794,   798,   803,
-     804,   817,   821,   826,   827,   831,   832,   833,   834,   837,
-     844,   851,   857,   858,   868,   870,   873,   874,   875,   876,
-     877,   878,   879,   880,   881,   882,   883,   884,   885,   886,
-     887,   888,   891,   898,   901,   906,   907,   912,   913,   916,
-     918,   926,   934,   935,   937,   940,   946,   947,   956,   958,
-     959,   960,   968,   972,   976,   985,   992,   998,  1001,  1002,
-    1005,  1014,  1021,  1024,  1025,  1028,  1029,  1032,  1068,  1070,
-    1074,  1076,  1081,  1083,  1087,  1110,  1114,  1116,  1125,  1136,
-    1148,  1158,  1161,  1162,  1165,  1174,  1183,  1188,  1193,  1214,
-    1219,  1260,  1278,  1285,  1290,  1301,  1312,  1323,  1334,  1339,
-    1344,  1349,  1359,  1378,  1412,  1414,  1416,  1418,  1420,  1422,
-    1424,  1426,  1431,  1440,  1442,  1444,  1446,  1448,  1450,  1452,
-    1454,  1456,  1458,  1470,  1477,  1479,  1485,  1487,  1489,  1491,
-    1493,  1495,  1497,  1499,  1501,  1503,  1505,  1536,  1562,  1570,
-    1579,  1588,  1590,  1592,  1594,  1596,  1600,  1605,  1607,  1612,
-    1613,  1616,  1617,  1620,  1621,  1624,  1632,  1636,  1638,  1642,
-    1646,  1647,  1650,  1665,  1669,  1670,  1673,  1685,  1686,  1690,
-    1692,  1696,  1700,  1702,  1704,  1710,  1711,  1716,  1717,  1721,
-    1723,  1732,  1734,  1738,  1742,  1744,  1746,  1750,  1751,  1754,
-    1774,  1781,  1783,  1793,  1810,  1812,  1814,  1818,  1827,  1832,
-    1839,  1840,  1844,  1846,  1850,  1852,  1857,  1858,  1862,  1864,
-    1866,  1868,  1878,  1882,  1883,  1884,  1885,  1888,  1893,  1904,
-    1911,  1916,  1917,  1921,  1923,  1927,  1928,  1931,  1935,  1939,
-    1943,  1952,  1962,  1963,  1968,  1970,  1975,  1980,  1981,  1985,
-    1987,  1991,  1997,  1998,  2002,  2004,  2012,  2013,  2017,  2021,
-    2024,  2028,  2029,  2032,  2036,  2037,  2040,  2044,  2046,  2048,
-    2050,  2054,  2058,  2059,  2072,  2073,  2077,  2078,  2079,  2082,
-    2083,  2086,  2087,  2088,  2089,  2090,  2091,  2094,  2095,  2096,
-    2097,  2105,  2108,  2109,  2122,  2123,  2124,  2125,  2129,  2130,
-    2133,  2134,  2135,  2136,  2137,  2138,  2139,  2140,  2143,  2144,
-    2145,  2148,  2149,  2150,  2151,  2152,  2153,  2154,  2155,  2156,
-    2157,  2158,  2159,  2160,  2161,  2162,  2163,  2164,  2165,  2166,
-    2167,  2168,  2169,  2170,  2176,  2177,  2178,  2179,  2180,  2181,
-    2182,  2183,  2184,  2185,  2186,  2187,  2199,  2207,  2211,  2212,
-    2215,  2216,  2217,  2218,  2219,  2220,  2223,  2225,  2226,  2229,
-    2230,  2233,  2237,  2242
+       0,   562,   562,   563,   568,   574,   575,   578,   582,   583,
+     586,   587,   588,   589,   590,   591,   592,   593,   600,   601,
+     604,   608,   614,   621,   622,   625,   626,   629,   633,   634,
+     637,   638,   641,   644,   645,   648,   652,   663,   667,   669,
+     675,   679,   684,   685,   689,   691,   695,   699,   705,   709,
+     713,   714,   717,   718,   721,   723,   725,   727,   729,   731,
+     733,   735,   737,   739,   741,   743,   745,   747,   751,   756,
+     760,   764,   773,   784,   786,   788,   792,   797,   798,   811,
+     815,   820,   821,   825,   826,   827,   828,   831,   838,   845,
+     851,   852,   862,   864,   867,   868,   869,   870,   871,   872,
+     873,   874,   875,   876,   877,   878,   879,   880,   881,   882,
+     885,   892,   895,   900,   901,   906,   907,   910,   912,   920,
+     928,   929,   931,   934,   940,   941,   950,   952,   953,   954,
+     962,   966,   970,   979,   986,   992,   995,   996,   999,  1008,
+    1015,  1018,  1019,  1022,  1023,  1026,  1062,  1064,  1068,  1070,
+    1075,  1077,  1081,  1104,  1108,  1110,  1119,  1130,  1142,  1152,
+    1155,  1156,  1159,  1168,  1177,  1182,  1187,  1208,  1213,  1254,
+    1272,  1279,  1284,  1295,  1306,  1317,  1328,  1333,  1338,  1343,
+    1353,  1372,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,
+    1425,  1434,  1436,  1438,  1440,  1442,  1444,  1446,  1448,  1450,
+    1452,  1464,  1471,  1473,  1479,  1481,  1483,  1485,  1487,  1489,
+    1491,  1493,  1495,  1497,  1499,  1530,  1556,  1564,  1573,  1582,
+    1584,  1586,  1588,  1590,  1594,  1599,  1601,  1606,  1607,  1610,
+    1611,  1614,  1615,  1618,  1626,  1630,  1632,  1636,  1640,  1641,
+    1644,  1659,  1663,  1664,  1667,  1679,  1680,  1684,  1686,  1690,
+    1694,  1696,  1698,  1704,  1705,  1710,  1711,  1715,  1717,  1726,
+    1728,  1732,  1736,  1738,  1740,  1744,  1745,  1748,  1768,  1775,
+    1777,  1787,  1804,  1806,  1808,  1812,  1821,  1826,  1833,  1834,
+    1838,  1840,  1844,  1846,  1851,  1852,  1856,  1858,  1860,  1862,
+    1872,  1876,  1877,  1878,  1879,  1882,  1887,  1898,  1905,  1910,
+    1911,  1915,  1917,  1921,  1922,  1925,  1929,  1933,  1937,  1946,
+    1956,  1957,  1962,  1964,  1969,  1974,  1975,  1979,  1981,  1985,
+    1991,  1992,  1996,  1998,  2006,  2007,  2011,  2015,  2018,  2022,
+    2023,  2026,  2030,  2031,  2034,  2038,  2040,  2042,  2044,  2048,
+    2052,  2053,  2066,  2067,  2071,  2072,  2073,  2076,  2077,  2080,
+    2081,  2082,  2083,  2084,  2085,  2088,  2089,  2090,  2091,  2099,
+    2102,  2103,  2116,  2117,  2118,  2119,  2123,  2124,  2127,  2128,
+    2129,  2130,  2131,  2132,  2133,  2134,  2137,  2138,  2139,  2142,
+    2143,  2144,  2145,  2146,  2147,  2148,  2149,  2150,  2151,  2152,
+    2153,  2154,  2155,  2156,  2157,  2158,  2159,  2160,  2161,  2162,
+    2163,  2164,  2170,  2171,  2172,  2173,  2174,  2175,  2176,  2177,
+    2178,  2179,  2180,  2181,  2193,  2201,  2205,  2206,  2209,  2210,
+    2211,  2212,  2213,  2214,  2217,  2219,  2220,  2223,  2224,  2227,
+    2231,  2236
 };
 #endif
 
@@ -1113,41 +1111,40 @@
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "\".HLL\"", "\".HLL_map\"",
-  "\".loadlib\"", "\".sub\"", "\".end\"", "\".param\"", "\".lex\"",
-  "\".line\"", "\".file\"", "\".local\"", "\".namespace\"",
-  "\".invocant\"", "\".meth_call\"", "\".globalconst\"", "\".const\"",
-  "\".return\"", "\".yield\"", "\".set_yield\"", "\".set_return\"",
-  "\".begin_yield\"", "\".end_yield\"", "\".begin_return\"",
-  "\".end_return\"", "\".begin_call\"", "\".end_call\"",
-  "\".get_results\"", "\".call\"", "\".set_arg\"", "\".get_result\"",
-  "\".nci_call\"", "\".tailcall\"", "\".annotate\"", "\"\\n\"",
-  "\"label\"", "\"identifier\"", "\"int\"", "\"num\"", "\"pmc\"",
-  "\"string\"", "\"if\"", "\"unless\"", "\"null\"", "\"goto\"",
-  "\"string constant\"", "\"unicode string\"", "\"integer constant\"",
-  "\"number constant\"", "\"PMC register\"", "\"number register\"",
-  "\"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\"", "\":lookahead\"",
-  "\".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", "newline", "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", "hll_specifier", "hll_mapping",
+  "$end", "error", "$undefined", "\".HLL\"", "\".loadlib\"", "\".sub\"",
+  "\".end\"", "\".param\"", "\".lex\"", "\".line\"", "\".file\"",
+  "\".local\"", "\".namespace\"", "\".invocant\"", "\".meth_call\"",
+  "\".globalconst\"", "\".const\"", "\".return\"", "\".yield\"",
+  "\".set_yield\"", "\".set_return\"", "\".begin_yield\"",
+  "\".end_yield\"", "\".begin_return\"", "\".end_return\"",
+  "\".begin_call\"", "\".end_call\"", "\".get_results\"", "\".call\"",
+  "\".set_arg\"", "\".get_result\"", "\".nci_call\"", "\".tailcall\"",
+  "\".annotate\"", "\"\\n\"", "\"label\"", "\"identifier\"", "\"int\"",
+  "\"num\"", "\"pmc\"", "\"string\"", "\"if\"", "\"unless\"", "\"null\"",
+  "\"goto\"", "\"string constant\"", "\"unicode string\"",
+  "\"integer constant\"", "\"number constant\"", "\"PMC register\"",
+  "\"number register\"", "\"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\"",
+  "\":lookahead\"", "\".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", "newline", "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", "hll_specifier",
   "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",
@@ -1203,59 +1200,59 @@
      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,    91,    93,    59,   123,   125,    61,    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,   145,   145,
-     146,   146,   146,   146,   146,   146,   146,   146,   146,   147,
-     147,   148,   149,   150,   151,   151,   152,   152,   153,   154,
-     154,   155,   155,   156,   157,   157,   158,   159,   160,   161,
-     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,   183,   184,
-     185,   186,   187,   187,   188,   188,   189,   189,   189,   189,
-     189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
-     189,   189,   190,   191,   192,   193,   193,   194,   194,   195,
-     195,   196,   196,   196,   196,   197,   198,   198,   199,   199,
-     199,   199,   200,   201,   202,   203,   204,   205,   206,   206,
-     207,   208,   208,   209,   209,   210,   210,   211,   212,   212,
-     213,   213,   213,   213,   214,   215,   216,   216,   217,   217,
-     217,   218,   219,   219,   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,   222,   223,   223,   223,   223,   223,   223,   223,
-     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
-     223,   223,   223,   223,   223,   223,   223,   224,   224,   224,
-     224,   224,   224,   224,   224,   224,   224,   224,   224,   225,
-     225,   226,   226,   227,   227,   228,   229,   230,   230,   231,
-     232,   232,   233,   234,   235,   235,   236,   237,   237,   238,
-     238,   239,   240,   240,   240,   241,   241,   242,   242,   243,
-     243,   244,   244,   245,   246,   246,   246,   247,   247,   248,
-     249,   250,   250,   251,   251,   251,   251,   252,   252,   253,
-     254,   254,   255,   255,   256,   256,   257,   257,   258,   258,
-     258,   258,   259,   260,   260,   260,   260,   261,   261,   262,
-     263,   264,   264,   265,   265,   266,   266,   267,   268,   269,
-     270,   271,   272,   272,   273,   273,   274,   275,   275,   276,
-     276,   277,   278,   278,   279,   279,   280,   280,   281,   282,
-     283,   284,   284,   285,   286,   286,   287,   288,   288,   288,
-     288,   289,   290,   290,   291,   291,   292,   292,   292,   293,
-     293,   294,   294,   294,   294,   294,   294,   295,   295,   295,
-     295,   296,   297,   297,   298,   298,   298,   298,   299,   299,
-     300,   300,   300,   300,   300,   300,   300,   300,   301,   301,
-     301,   302,   302,   302,   302,   302,   302,   302,   302,   302,
-     302,   302,   302,   302,   302,   302,   302,   302,   302,   302,
-     302,   302,   302,   302,   303,   303,   303,   303,   303,   303,
-     303,   303,   303,   303,   303,   303,   304,   305,   306,   306,
-     307,   307,   307,   307,   307,   307,   308,   308,   308,   309,
-     309,   310,   311,   312
+       0,   139,   140,   140,   141,   142,   142,   143,   144,   144,
+     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,   163,   164,   164,   165,   166,   167,   168,
+     169,   169,   170,   170,   171,   171,   171,   171,   171,   171,
+     171,   171,   171,   171,   171,   171,   171,   171,   172,   173,
+     173,   174,   174,   175,   175,   175,   176,   177,   177,   178,
+     179,   180,   180,   181,   181,   181,   181,   182,   183,   184,
+     185,   185,   186,   186,   187,   187,   187,   187,   187,   187,
+     187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
+     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,   282,
+     282,   283,   284,   284,   285,   286,   286,   286,   286,   287,
+     288,   288,   289,   289,   290,   290,   290,   291,   291,   292,
+     292,   292,   292,   292,   292,   293,   293,   293,   293,   294,
+     295,   295,   296,   296,   296,   296,   297,   297,   298,   298,
+     298,   298,   298,   298,   298,   298,   299,   299,   299,   300,
+     300,   300,   300,   300,   300,   300,   300,   300,   300,   300,
+     300,   300,   300,   300,   300,   300,   300,   300,   300,   300,
+     300,   300,   301,   301,   301,   301,   301,   301,   301,   301,
+     301,   301,   301,   301,   302,   303,   304,   304,   305,   305,
+     305,   305,   305,   305,   306,   306,   306,   307,   307,   308,
+     309,   310
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1263,48 +1260,48 @@
 {
        0,     2,     2,     2,     3,     0,     1,     1,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     3,     7,     2,     0,     1,     1,     3,     1,     0,
-       1,     1,     2,     2,     1,     1,     2,     3,     2,     2,
-       2,     2,     4,     4,     0,     1,     1,     3,     1,     6,
-       1,     2,     1,     1,     0,     2,     1,     1,     1,     1,
-       1,     1,     1,     2,     4,     2,     2,     2,     2,     2,
-       3,     0,     1,     1,     3,     1,     1,     1,     1,     0,
-       2,     4,     2,     0,     2,     1,     1,     1,     1,     2,
-       4,     1,     0,     2,     2,     1,     1,     1,     1,     1,
+       3,     7,     2,     0,     1,     1,     3,     1,     0,     1,
+       1,     2,     2,     1,     1,     2,     3,     2,     2,     2,
+       2,     4,     0,     1,     1,     3,     1,     6,     1,     2,
+       1,     1,     0,     2,     1,     1,     1,     1,     1,     1,
+       1,     2,     4,     2,     2,     2,     2,     2,     3,     0,
+       1,     1,     3,     1,     1,     1,     1,     0,     2,     4,
+       2,     0,     2,     1,     1,     1,     1,     2,     4,     1,
+       0,     2,     2,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     5,     1,     3,     0,     3,     0,     1,     1,
-       3,     1,     1,     2,     1,     3,     0,     2,     1,     1,
-       1,     2,     1,     2,     2,     3,     3,     2,     2,     1,
-       1,     1,     1,     0,     1,     1,     3,     3,     1,     1,
-       1,     1,     1,     1,     2,     3,     1,     3,     6,     4,
-       6,     2,     1,     1,     3,     3,     3,     3,     3,     3,
-       4,     4,     4,     3,     3,     3,     3,     3,     3,     3,
-       4,     5,     4,     4,     3,     3,     3,     3,     3,     3,
-       3,     3,     2,     5,     5,     5,     5,     5,     5,     5,
-       5,     5,     4,     5,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     1,
-       1,     1,     1,     1,     1,     3,     4,     1,     3,     2,
-       0,     1,     5,     1,     1,     1,     8,     0,     1,     1,
-       2,     3,     3,     2,     5,     0,     2,     0,     1,     1,
-       2,     3,     1,     2,     3,     3,     1,     1,     1,     4,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     3,
-       0,     1,     1,     3,     2,     3,     0,     2,     1,     1,
-       1,     2,     1,     1,     1,     1,     1,     3,     3,     3,
-       3,     0,     1,     1,     3,     1,     1,     3,     2,     1,
-       5,     5,     0,     1,     1,     2,     3,     0,     1,     1,
-       2,     3,     0,     2,     1,     2,     0,     1,     3,     2,
-       2,     1,     1,     2,     1,     1,     2,     4,     4,     4,
-       4,     4,     1,     1,     1,     1,     1,     1,     1,     1,
+       5,     1,     3,     0,     3,     0,     1,     1,     3,     1,
+       1,     2,     1,     3,     0,     2,     1,     1,     1,     2,
+       1,     2,     2,     3,     3,     2,     2,     1,     1,     1,
+       1,     0,     1,     1,     3,     3,     1,     1,     1,     1,
+       1,     1,     2,     3,     1,     3,     6,     4,     6,     2,
+       1,     1,     3,     3,     3,     3,     3,     3,     4,     4,
+       4,     3,     3,     3,     3,     3,     3,     3,     4,     5,
+       4,     4,     3,     3,     3,     3,     3,     3,     3,     3,
+       2,     5,     5,     5,     5,     5,     5,     5,     5,     5,
+       4,     5,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     1,     1,     1,
+       1,     1,     1,     3,     4,     1,     3,     2,     0,     1,
+       5,     1,     1,     1,     8,     0,     1,     1,     2,     3,
+       3,     2,     5,     0,     2,     0,     1,     1,     2,     3,
+       1,     2,     3,     3,     1,     1,     1,     4,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     3,     0,     1,
+       1,     3,     2,     3,     0,     2,     1,     1,     1,     2,
+       1,     1,     1,     1,     1,     3,     3,     3,     3,     0,
+       1,     1,     3,     1,     1,     3,     2,     1,     5,     5,
+       0,     1,     1,     2,     3,     0,     1,     1,     2,     3,
+       0,     2,     1,     2,     0,     1,     3,     2,     2,     1,
+       1,     2,     1,     1,     2,     4,     4,     4,     4,     4,
        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,     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,     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
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1312,516 +1309,511 @@
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     5,     5,     0,     7,   417,     6,     3,     0,     2,
-       0,     1,     0,     0,     0,     0,     0,   140,     0,     0,
-     115,   432,     0,    19,    20,     0,     0,     0,   425,   143,
-     422,   416,   418,   420,     0,    54,   428,     0,     0,     0,
-       0,     0,     0,     5,     8,    17,    15,    16,    13,    14,
-      12,    10,    54,    18,    11,     0,    39,    40,    44,   132,
-     429,   426,   430,   368,   373,   374,   376,   375,   370,   371,
-     377,   372,    23,   369,     0,   117,     0,   424,    24,   423,
-     421,   349,   350,   346,   347,   364,   365,   367,   366,     0,
-       0,   144,   145,   148,   153,   149,     0,   150,   348,   152,
-     151,   419,   427,     0,   134,    41,     0,    38,    53,    51,
-      52,     0,     0,     0,   330,     4,     0,     0,     0,    48,
-       0,    45,    46,    21,   115,   121,   122,   126,     0,   118,
-     119,   124,   114,     0,    25,    26,    28,   364,     0,   156,
-     345,   344,   361,   362,   363,   433,     0,   154,   431,    57,
-      58,    59,    56,   326,     0,   326,    60,     0,    61,    62,
-       0,     0,     0,    55,     0,     0,     0,     0,     9,    79,
-     278,     0,   277,    43,     0,   123,     0,   116,     0,     0,
-       0,   155,     0,   146,     0,    65,   327,     0,    66,    71,
-      63,    67,    68,    69,    42,     0,     0,     0,    92,    78,
-     242,    47,   128,   115,   130,   129,   125,   127,   120,    29,
-      27,   157,     0,     0,    76,     0,    72,    73,    77,    75,
-     337,   338,   339,   340,     0,     0,    80,   131,     0,     0,
-       0,    30,    31,     0,    34,    35,   328,    64,    70,     0,
-      50,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   140,   370,   371,   377,   372,   272,   364,
-     280,     0,    49,    93,    95,   110,   109,   113,   107,   108,
-     111,   106,   105,    96,     0,   143,   139,   104,     0,    97,
-       0,     0,    98,    99,   100,   103,   243,   244,   245,     0,
-     266,   268,   267,     0,   271,     0,   102,   292,   293,   295,
-     294,   296,   101,     0,   331,   332,     0,   363,   369,   357,
-     358,   359,   360,    83,     0,     0,    36,    22,    32,    33,
-      74,     0,   336,     0,   333,   334,   335,   301,     0,     0,
-     312,   317,   247,     0,     0,     0,    94,     0,     0,     0,
-       0,     0,   281,   282,   286,   133,   137,   138,   141,   142,
-     149,   161,   192,   368,   373,   374,   376,   375,   370,   371,
-     377,   372,   349,   346,   347,     0,     0,     0,   362,   263,
-     270,     0,     0,   329,   415,   413,   414,     0,     0,   404,
-     405,   406,   407,   409,   410,   408,   411,   412,     0,     0,
-       0,     0,    82,    37,     0,   237,   240,     0,   349,     0,
-     302,   303,   306,   305,   322,   309,   297,   299,     0,     0,
-     313,   314,     0,     0,   318,   319,     0,     0,   248,   249,
-     136,   298,     0,   135,   235,     0,     0,   279,     0,   284,
-       0,   233,   234,     0,     0,     0,     0,     0,     0,     0,
+       0,     5,     5,     0,     7,   415,     6,     3,     0,     2,
+       0,     1,     0,     0,     0,     0,     0,   138,     0,     0,
+     113,   430,     0,    18,    19,     0,     0,     0,   423,   141,
+     420,   414,   416,   418,     0,    52,   426,     0,     0,     0,
+       0,     0,     5,     8,    16,    14,    15,    13,    12,    10,
+      52,    17,    11,     0,    38,    39,    42,   130,   427,   424,
+     428,   366,   371,   372,   374,   373,   368,   369,   375,   370,
+      22,   367,     0,   115,     0,   422,    23,   421,   419,   347,
+     348,   344,   345,   362,   363,   365,   364,     0,     0,   142,
+     143,   146,   151,   147,     0,   148,   346,   150,   149,   417,
+     425,     0,   132,    40,    37,    51,    49,    50,     0,     0,
+       0,   328,     4,     0,     0,     0,    46,     0,    43,    44,
+      20,   113,   119,   120,   124,     0,   116,   117,   122,   112,
+       0,    24,    25,    27,   362,     0,   154,   343,   342,   359,
+     360,   361,   431,     0,   152,   429,    55,    56,    57,    54,
+     324,     0,   324,    58,     0,    59,    60,     0,     0,     0,
+      53,     0,     0,     0,     9,    77,   276,     0,   275,    41,
+       0,   121,     0,   114,     0,     0,     0,   153,     0,   144,
+       0,    63,   325,     0,    64,    69,    61,    65,    66,    67,
+       0,     0,     0,    90,    76,   240,    45,   126,   113,   128,
+     127,   123,   125,   118,    28,    26,   155,     0,     0,    74,
+       0,    70,    71,    75,    73,   335,   336,   337,   338,     0,
+       0,    78,   129,     0,     0,     0,    29,    30,     0,    33,
+      34,   326,    62,    68,     0,    48,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   138,   368,
+     369,   375,   370,   270,   362,   278,     0,    47,    91,    93,
+     108,   107,   111,   105,   106,   109,   104,   103,    94,     0,
+     141,   137,   102,     0,    95,     0,     0,    96,    97,    98,
+     101,   241,   242,   243,     0,   264,   266,   265,     0,   269,
+       0,   100,   290,   291,   293,   292,   294,    99,     0,   329,
+     330,     0,   361,   367,   355,   356,   357,   358,    81,     0,
+       0,    35,    21,    31,    32,    72,     0,   334,     0,   331,
+     332,   333,   299,     0,     0,   310,   315,   245,     0,     0,
+       0,    92,     0,     0,     0,     0,     0,   279,   280,   284,
+     131,   135,   136,   139,   140,   147,   159,   190,   366,   371,
+     372,   374,   373,   368,   369,   375,   370,   347,   344,   345,
+       0,     0,     0,   360,   261,   268,     0,     0,   327,   413,
+     411,   412,     0,     0,   402,   403,   404,   405,   407,   408,
+     406,   409,   410,     0,     0,     0,     0,    80,    36,     0,
+     235,   238,     0,   347,     0,   300,   301,   304,   303,   320,
+     307,   295,   297,     0,     0,   311,   312,     0,     0,   316,
+     317,     0,     0,   246,   247,   134,   296,     0,   133,   233,
+       0,     0,   277,     0,   282,     0,   231,   232,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   351,   352,   353,   354,   356,   355,     0,
-       0,     0,     0,     0,     0,     0,   276,   274,   275,     0,
-     273,   264,   174,   175,   178,   176,   177,   179,   368,   272,
-     164,   165,   364,   378,   379,   380,     0,   168,   169,   265,
-     166,     0,   362,   369,     0,   173,     0,    91,   326,   290,
-     288,   289,     0,     0,    81,    84,    87,    86,    88,    85,
-       0,   236,   241,   239,     0,     0,   300,     0,   308,     0,
-       0,   315,     0,     0,   320,     0,     0,     0,     0,     0,
-     250,     0,   183,   285,   283,   287,   147,   204,   206,   207,
-     208,   209,   210,   211,     0,     0,     0,     0,     0,     0,
-       0,     0,   372,   214,     0,   215,   212,   213,   225,   229,
-     230,   226,   220,   227,   221,   222,   218,   228,   223,   224,
-     219,   216,   202,   217,   205,   269,   403,   398,   400,   399,
-     402,   401,   391,   392,   393,   396,   394,   395,   397,   390,
-     382,   388,   381,   383,   384,   385,   386,   387,   389,     0,
-       0,     0,   172,   159,   170,     0,   171,   180,   182,   291,
-       0,    89,   238,   341,   342,   343,   307,   304,   326,   324,
-     323,   316,   311,   321,   310,   251,     0,   255,   271,   253,
-     257,   112,   193,   194,   195,   196,   197,   198,   199,   201,
-     200,   203,   187,   186,   188,   190,   184,   191,   189,   185,
-       0,     0,   181,     0,   325,     0,     0,   252,     0,   262,
-       0,   258,   259,   158,   160,    90,     0,   256,     0,     0,
-     260,   254,   261,   246
+       0,     0,     0,     0,     0,     0,     0,     0,   349,   350,
+     351,   352,   354,   353,     0,     0,     0,     0,     0,     0,
+       0,   274,   272,   273,     0,   271,   262,   172,   173,   176,
+     174,   175,   177,   366,   270,   162,   163,   362,   376,   377,
+     378,     0,   166,   167,   263,   164,     0,   360,   367,     0,
+     171,     0,    89,   324,   288,   286,   287,     0,     0,    79,
+      82,    85,    84,    86,    83,     0,   234,   239,   237,     0,
+       0,   298,     0,   306,     0,     0,   313,     0,     0,   318,
+       0,     0,     0,     0,     0,   248,     0,   181,   283,   281,
+     285,   145,   202,   204,   205,   206,   207,   208,   209,     0,
+       0,     0,     0,     0,     0,     0,     0,   370,   212,     0,
+     213,   210,   211,   223,   227,   228,   224,   218,   225,   219,
+     220,   216,   226,   221,   222,   217,   214,   200,   215,   203,
+     267,   401,   396,   398,   397,   400,   399,   389,   390,   391,
+     394,   392,   393,   395,   388,   380,   386,   379,   381,   382,
+     383,   384,   385,   387,     0,     0,     0,   170,   157,   168,
+       0,   169,   178,   180,   289,     0,    87,   236,   339,   340,
+     341,   305,   302,   324,   322,   321,   314,   309,   319,   308,
+     249,     0,   253,   269,   251,   255,   110,   191,   192,   193,
+     194,   195,   196,   197,   199,   198,   201,   185,   184,   186,
+     188,   182,   189,   187,   183,     0,     0,   179,     0,   323,
+       0,     0,   250,     0,   260,     0,   256,   257,   156,   158,
+      88,     0,   254,     0,     0,   258,   252,   259,   244
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     3,     9,     5,    59,    43,    44,    22,    23,    24,
-      25,   133,   134,   135,   230,   231,   232,   233,   234,   235,
-      46,    26,    48,    49,    27,   120,   121,   122,    51,   262,
-      52,   109,   103,   163,   190,   215,   216,   217,   198,   199,
-     226,   313,   391,   505,   506,   507,   508,   224,   263,   264,
-     265,   266,    28,    76,   128,   129,   130,   131,   176,   207,
-      60,   269,    53,   271,   272,   273,   274,    29,   347,    90,
-      91,   349,    92,    93,    94,    95,   138,   276,   277,   487,
-     278,   488,   279,   280,   365,   561,   281,   433,   282,   283,
-     394,   395,   513,    30,   285,   286,   287,   417,   418,   419,
-     529,   657,   660,   661,   662,   288,   289,   290,   291,   292,
-     293,   469,    96,   295,   341,   342,   343,   429,   509,   296,
-     297,   298,   299,   328,   399,   400,   401,   402,   403,   404,
-     300,   301,   409,   410,   411,   413,   414,   415,   518,   620,
-     185,   186,   302,    54,   303,   304,   324,   305,   114,   326,
-     613,   405,   140,    98,   459,   314,   141,   142,   143,   144,
-      73,   494,   599,   389,     7,     8,    31,    32,    33,    61,
-      34,    35,    36
+      -1,     3,     9,     5,    57,    42,    43,    22,    23,    24,
+      25,   130,   131,   132,   225,   226,   227,   228,   229,   230,
+      45,    26,    47,    27,   117,   118,   119,    49,   257,    50,
+     106,   101,   160,   186,   210,   211,   212,   193,   194,   221,
+     308,   386,   500,   501,   502,   503,   219,   258,   259,   260,
+     261,    28,    74,   125,   126,   127,   128,   172,   202,    58,
+     264,    51,   266,   267,   268,   269,    29,   342,    88,    89,
+     344,    90,    91,    92,    93,   135,   271,   272,   482,   273,
+     483,   274,   275,   360,   556,   276,   428,   277,   278,   389,
+     390,   508,    30,   280,   281,   282,   412,   413,   414,   524,
+     652,   655,   656,   657,   283,   284,   285,   286,   287,   288,
+     464,    94,   290,   336,   337,   338,   424,   504,   291,   292,
+     293,   294,   323,   394,   395,   396,   397,   398,   399,   295,
+     296,   404,   405,   406,   408,   409,   410,   513,   615,   181,
+     182,   297,    52,   298,   299,   319,   300,   111,   321,   608,
+     400,   137,    96,   454,   309,   138,   139,   140,   141,    71,
+     489,   594,   384,     7,     8,    31,    32,    33,    59,    34,
+      35,    36
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -602
+#define YYPACT_NINF -593
 static const yytype_int16 yypact[] =
 {
-      33,     8,     8,    32,  -602,  -602,  -602,  -602,    13,  -602,
-     186,  -602,    -7,    -2,    36,   -33,    55,  -602,  1108,    60,
-     -17,  -602,    74,  -602,  -602,    10,    89,    99,  -602,   710,
-    -602,    13,  -602,  -602,    55,  -602,  -602,     8,   107,   109,
-     113,   828,   141,     8,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,    53,  -602,  -602,   137,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,    78,    34,     8,  -602,  1108,  -602,
-    -602,  -602,  -602,  -602,  -602,    76,  -602,  -602,  -602,   904,
-     189,   110,  -602,  -602,  -602,  -602,    86,  -602,  -602,  -602,
-     112,  -602,  -602,   827,  -602,  -602,    75,  -602,  -602,  -602,
-    -602,  1108,  1108,  1108,  -602,  -602,    51,   752,   607,  -602,
-     118,   108,  -602,  -602,   -17,  -602,  -602,  -602,   132,   139,
-    -602,  -602,  -602,   134,   142,  -602,  -602,  -602,    46,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,   710,  -602,  -602,  -602,
-    -602,  -602,  -602,   143,   145,   143,  -602,   149,  -602,  -602,
-     143,   143,   143,  -602,   213,   147,   148,   152,  -602,  -602,
-    -602,     8,  -602,  -602,   137,  -602,    23,  -602,    34,   237,
-    1108,  -602,   904,  -602,   230,  -602,  -602,   828,  -602,   274,
-    -602,  -602,  -602,  -602,  -602,   238,   229,   176,  -602,   279,
-    -602,  -602,  -602,   -17,  -602,  -602,  -602,  -602,  -602,   133,
-    -602,  -602,   168,   171,  -602,   172,   174,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,   543,   167,  -602,  -602,   167,   184,
-     192,   133,  -602,   264,  -602,  -602,  -602,  -602,  -602,   274,
-    -602,   167,   141,   163,   180,   180,     8,     8,     8,   183,
-     466,   258,   660,   780,   921,   938,   403,  1108,  -602,   -35,
-     328,     8,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,     8,   710,  -602,  -602,     8,  -602,
-       8,   955,  -602,  -602,  -602,  -602,  -602,  -602,  -602,     8,
-    -602,  -602,  -602,   180,   177,   198,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,     8,  -602,  -602,   817,   -82,    86,  -602,
-    -602,  -602,  -602,  -602,  1108,   194,  -602,  -602,  -602,  -602,
-    -602,  1108,  -602,  1108,  -602,  -602,  -602,   972,     8,     8,
-     287,   301,   293,     8,     8,   202,  -602,     8,     8,   203,
-     271,   208,   209,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-     207,  -602,  -602,   -12,   -12,   -12,   -12,   -12,   -12,   -12,
-     175,   -11,   225,   225,   225,   289,   -12,   225,   -12,  -602,
-    -602,   590,   466,  -602,  -602,  -602,  -602,  1023,  1040,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,   693,   904,
-     212,    41,  -602,  -602,    -5,  -602,   241,   216,   286,   220,
-     221,  -602,  -602,  -602,  -602,  -602,  -602,  -602,   904,   319,
-     287,  -602,   904,   322,   301,  -602,   904,    72,   293,  -602,
-    -602,  -602,   182,  -602,  -602,   904,   403,  -602,   328,    67,
-     904,  -602,  -602,  1108,  1108,  1108,  1108,  1108,  1108,  1108,
-     299,   303,   304,   306,   307,   309,   310,   311,  1117,   -12,
-    1108,  1108,  1108,  -602,  -602,  -602,  -602,  -602,  -602,   440,
-     989,  1006,  1108,  1108,   904,  1108,  -602,  -602,  -602,   180,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,   563,   661,
-     746,   746,   -35,  -602,  -602,  -602,   710,  -602,  -602,  -602,
-    -602,   746,   325,   -10,   904,  -602,   904,  -602,   143,  -602,
-    -602,  -602,   242,   143,  -602,  -602,  -602,  -602,  -602,  -602,
-    1108,  -602,  -602,  -602,   887,   904,  -602,   972,    88,     8,
-       8,  -602,     8,     8,  -602,     8,   607,   466,   607,     8,
-    -602,     8,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  1108,  1108,  1108,  1108,  1108,  1108,
-    1108,  1108,  1108,  -602,  1108,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  1091,
-    1057,  1074,  -602,   235,   239,   904,  -602,  -602,  -602,  -602,
-     274,  -602,  -602,  -602,  -602,  -602,  -602,  -602,   143,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,   329,   254,  -602,  -602,
-      65,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
-     710,   710,  -602,   261,  -602,   368,   607,  -602,   328,  -602,
-     358,    65,  -602,   110,   110,  -602,   590,  -602,     8,     8,
-    -602,  -602,  -602,  -602
+     -16,    -3,    -3,    45,  -593,  -593,  -593,  -593,    20,  -593,
+      77,  -593,    43,    18,    75,   -43,    38,  -593,  1101,    76,
+       4,  -593,    93,  -593,  -593,    16,   105,   107,  -593,   699,
+    -593,    20,  -593,  -593,    38,  -593,  -593,    -3,    87,   110,
+     923,   165,    -3,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,    31,  -593,  -593,   114,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
+    -593,  -593,    55,    49,    -3,  -593,  1101,  -593,  -593,  -593,
+    -593,  -593,  -593,    35,  -593,  -593,  -593,   889,   137,    54,
+    -593,  -593,  -593,  -593,    62,  -593,  -593,  -593,    79,  -593,
+    -593,   815,  -593,  -593,  -593,  -593,  -593,  -593,  1101,  1101,
+    1101,  -593,  -593,    34,   740,   816,  -593,   102,    53,  -593,
+    -593,     4,  -593,  -593,  -593,   109,   106,  -593,  -593,  -593,
+     113,   116,  -593,  -593,  -593,    -9,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,   699,  -593,  -593,  -593,  -593,  -593,  -593,
+     128,   129,   128,  -593,   131,  -593,  -593,   128,   128,   128,
+    -593,   125,   126,   127,  -593,  -593,  -593,    -3,  -593,  -593,
+     114,  -593,    32,  -593,    49,   222,  1101,  -593,   889,  -593,
+     213,  -593,  -593,   923,  -593,   171,  -593,  -593,  -593,  -593,
+     228,   229,   142,  -593,   253,  -593,  -593,  -593,     4,  -593,
+    -593,  -593,  -593,  -593,   112,  -593,  -593,   164,   172,  -593,
+     174,   177,  -593,  -593,  -593,  -593,  -593,  -593,  -593,   534,
+     227,  -593,  -593,   227,   186,   194,   112,  -593,   266,  -593,
+    -593,  -593,  -593,  -593,   171,  -593,   227,   165,   233,   182,
+     182,    -3,    -3,    -3,   183,   462,   261,   649,   768,   906,
+     935,   399,  1101,  -593,    98,  1054,    -3,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,    -3,
+     699,  -593,  -593,    -3,  -593,    -3,   952,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,    -3,  -593,  -593,  -593,   182,   179,
+     184,  -593,  -593,  -593,  -593,  -593,  -593,  -593,    -3,  -593,
+    -593,   843,   -59,    62,  -593,  -593,  -593,  -593,  -593,  1101,
+     206,  -593,  -593,  -593,  -593,  -593,  1101,  -593,  1101,  -593,
+    -593,  -593,   969,    -3,    -3,   298,   299,   289,    -3,    -3,
+     199,  -593,    -3,    -3,   197,   268,   205,   208,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,   203,  -593,  -593,     8,     8,
+       8,     8,     8,     8,     8,   155,    15,   232,   232,   232,
+     282,     8,   232,     8,  -593,  -593,   586,   462,  -593,  -593,
+    -593,  -593,   986,  1003,  -593,  -593,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,   682,   889,   207,   212,  -593,  -593,   -10,
+    -593,   237,   209,   284,   215,   217,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,   889,   317,   298,  -593,   889,   318,   299,
+    -593,   889,   120,   289,  -593,  -593,  -593,   234,  -593,  -593,
+     889,   399,  -593,  1054,    67,   889,  -593,  -593,  1101,  1101,
+    1101,  1101,  1101,  1101,  1101,   297,   302,   303,   304,   305,
+     307,   308,   311,  1110,     8,  1101,  1101,  1101,  -593,  -593,
+    -593,  -593,  -593,  -593,   324,   436,   841,  1101,  1101,   889,
+    1101,  -593,  -593,  -593,   182,  -593,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,   557,   650,   735,   735,    98,  -593,  -593,
+    -593,   699,  -593,  -593,  -593,  -593,   735,   309,   -19,   889,
+    -593,   889,  -593,   128,  -593,  -593,  -593,   238,   128,  -593,
+    -593,  -593,  -593,  -593,  -593,  1101,  -593,  -593,  -593,  1088,
+     889,  -593,   969,    -5,    -3,    -3,  -593,    -3,    -3,  -593,
+      -3,   816,   462,   816,    -3,  -593,    -3,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  1101,
+    1101,  1101,  1101,  1101,  1101,  1101,  1101,  1101,  -593,  1101,
+    -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,  1071,  1020,  1037,  -593,   235,   257,
+     889,  -593,  -593,  -593,  -593,   171,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,   128,  -593,  -593,  -593,  -593,  -593,  -593,
+    -593,   325,   259,  -593,  -593,    40,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,   699,   699,  -593,   262,  -593,
+     367,   816,  -593,  1054,  -593,   357,    40,  -593,    54,    54,
+    -593,   586,  -593,    -3,    -3,  -593,  -593,  -593,  -593
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -602,  -602,  -602,    35,    -1,  -602,   270,     4,  -602,  -602,
-    -602,  -602,  -602,   211,  -602,  -602,   156,  -602,  -602,  -602,
-    -602,    -3,  -602,  -602,    11,  -602,  -602,   214,  -602,  -602,
-    -602,   205,   337,  -602,  -602,  -602,  -602,  -233,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,   144,
-    -602,  -602,  -145,   -97,  -602,  -602,   219,  -602,  -602,  -602,
-    -140,  -602,  -137,  -602,  -602,  -602,  -602,  -211,  -602,   119,
-    -399,  -602,   253,   -86,  -602,   -81,  -602,  -602,  -602,  -602,
-    -602,  -602,  -602,  -602,  -602,  -602,  -602,  -285,  -602,  -601,
-    -602,  -108,  -602,  -129,  -602,  -602,  -602,  -602,  -602,   -15,
-    -602,  -602,  -602,  -602,  -257,  -602,  -602,  -231,  -602,  -602,
-    -118,  -256,   -98,   162,  -602,  -602,  -420,  -602,   -16,  -602,
-    -602,  -602,  -602,  -227,  -602,  -602,  -102,  -602,  -368,   -96,
-    -602,  -602,  -602,  -602,     7,  -602,  -602,    17,  -602,  -602,
-    -152,  -150,  -602,  -602,  -602,  -602,  -602,  -602,    15,  -602,
-    -602,   -80,   -27,    30,  -235,  -148,  -193,  -602,   -25,   -13,
-    -207,  -602,  -318,  -602,  -602,  -602,  -602,   396,  -602,   398,
-    -602,  -602,    19
+    -593,  -593,  -593,    19,    -1,  -593,   271,     9,  -593,  -593,
+    -593,  -593,  -593,   210,  -593,  -593,   161,  -593,  -593,  -593,
+    -593,    12,  -593,    13,  -593,  -593,   219,  -593,  -593,  -593,
+     211,   341,  -593,  -593,  -593,  -593,  -228,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,  -593,  -593,  -593,   145,  -593,
+    -593,  -194,   -64,  -593,  -593,   221,  -593,  -593,  -593,  -172,
+    -593,  -171,  -593,  -593,  -593,  -593,  -207,  -593,   123,  -422,
+    -593,   254,   -83,  -593,   -81,  -593,  -593,  -593,  -593,  -593,
+    -593,  -593,  -593,  -593,  -593,  -593,  -244,  -593,  -592,  -593,
+    -106,  -593,  -170,  -593,  -593,  -593,  -593,  -593,    -8,  -593,
+    -593,  -593,  -593,  -252,  -593,  -593,  -227,  -593,  -593,  -116,
+    -253,   -98,   166,  -593,  -593,  -415,  -593,   -12,  -593,  -593,
+    -593,  -593,  -220,  -593,  -593,   -99,  -593,  -257,   -96,  -593,
+    -593,  -593,  -593,    17,  -593,  -593,    22,  -593,  -593,  -149,
+    -148,  -593,  -593,  -593,  -593,  -593,  -593,    -2,  -593,  -593,
+     -80,   -27,    44,  -176,  -152,  -193,  -593,   -25,   -13,  -205,
+    -593,  -385,  -593,  -593,  -593,  -593,   395,  -593,   394,  -593,
+    -593,    51
 };
 
 /* 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 -369
+#define YYTABLE_NINF -367
 static const yytype_int16 yytable[] =
 {
-       6,     6,    97,   188,    99,    72,   320,    47,   534,   139,
-     191,   192,   193,   275,    45,   147,   100,   308,   329,   334,
-     171,    50,    12,    13,    14,  -163,    15,   175,   110,   659,
-       4,   306,    11,   431,   451,    62,   104,    10,  -277,    55,
-     519,   275,   116,     4,   522,   308,    56,  -277,   525,    16,
-      17,    -6,    37,    62,    38,    39,    40,    41,   202,   306,
-     659,    13,    14,   337,    15,   136,   370,   344,    42,   434,
-     435,   436,   437,   438,   439,   132,     4,   241,   115,   267,
-     315,   463,    57,   465,   268,  -278,   526,   270,   367,    89,
-       4,    58,    17,   321,  -278,   284,   658,    74,   165,   166,
-     167,   527,   211,    75,   528,   172,   227,   267,   218,    77,
-     432,   452,   268,    47,    89,   270,   169,   510,    18,    97,
-      45,    99,    19,   284,    79,    20,   294,    50,   460,   461,
-      78,    21,   464,   100,    80,   203,   204,   205,   497,   498,
-     499,   471,   500,   501,   502,   503,   124,   125,   126,     1,
-       2,   206,   294,   105,   294,   106,    18,   489,   218,   107,
-      19,   127,   600,   601,   554,   498,   499,   136,   500,   501,
-     200,   181,   182,   605,   110,   118,   219,   486,   339,   111,
-     112,   493,   113,   119,   474,   477,   618,    37,   619,    38,
-      39,    40,    41,   123,   350,   491,    13,    14,   164,    15,
-    -278,   111,   112,    42,   113,   309,   310,   311,   312,   323,
-      89,   307,   440,   441,   442,   443,   444,   445,   446,   447,
-     448,   261,   222,   223,   145,   449,   219,   390,    81,    82,
-      83,    84,   146,   533,   174,   344,  -277,   172,   668,   307,
-     228,   229,   575,   173,   338,   330,   331,   332,    97,   261,
-      99,   663,   664,   177,   366,   179,   368,   322,   325,   194,
-     345,   178,   100,   184,   180,   187,   562,   566,   570,   189,
-     195,   196,   209,   346,   294,   197,   212,   351,   221,   352,
-     453,   454,   455,   456,   457,   458,   220,   225,   369,   236,
-     294,    18,   237,   238,   316,    19,   239,   450,   317,   319,
-     327,   392,   373,   260,   335,   393,   371,   408,   396,   495,
-     397,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-     214,   372,   412,   416,   422,   426,   425,   406,   407,   427,
-     430,   428,   420,   421,   462,   496,   423,   424,   512,   514,
-     515,   516,   520,   517,   544,   532,   609,   523,   545,   546,
-     536,   547,   548,   611,   549,   550,   551,   650,   470,   172,
-    -167,   651,   610,   492,   655,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,   340,   307,   656,   653,   137,    86,
-      87,    88,   665,   666,   573,   669,   168,   318,   201,   117,
-     504,   210,   213,   511,   348,   531,   336,   208,    89,   183,
-     603,   602,   612,   530,   670,   604,   643,   646,   649,   627,
-     671,   333,   606,   535,   607,   617,   608,   521,   490,   616,
-     537,   538,   539,   540,   541,   542,   543,   101,   626,   628,
-     629,   524,   102,     0,     0,   553,     0,   555,   556,   557,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,   571,
-     572,     0,   574,   137,    86,    87,    88,     0,     0,    97,
-       0,    99,     0,     0,     0,   344,   654,     0,     0,     0,
-       0,     0,     0,   100,     0,     0,     0,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,   558,   614,   559,   560,
-     137,    86,    87,    88,     0,     0,     0,   396,     0,     0,
-       0,   615,     0,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,   258,   172,   172,   172,   170,     0,   621,   622,
-       0,   623,   624,     0,   625,   652,     0,     0,   630,   218,
-     631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-       0,   641,     0,     0,    37,     0,     0,     0,     0,     0,
-     240,     0,    12,    13,    14,   241,     0,     0,   667,   242,
-     243,   244,   245,     0,     0,   246,     0,   247,     0,   248,
-       0,   249,     0,     0,     0,     0,   250,   251,     4,   252,
-     253,    64,    65,    66,    67,   254,   255,   256,   257,   258,
-       0,     0,     0,   259,    86,    87,    88,   219,  -162,     0,
-    -140,  -140,  -140,  -140,  -140,  -140,  -140,  -140,  -140,  -140,
-    -140,  -140,  -140,  -140,  -140,  -140,  -140,     0,     0,     0,
-       0,     0,     0,    97,    97,    99,    99,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,   466,   100,   100,     0,
-     467,     0,   468,   172,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,   470,     0,    20,     0,   170,     0,     0,
-       0,    37,     0,   260,     0,     0,     0,   672,   673,    12,
-      13,    14,   241,     0,     0,     0,   242,   243,   244,   245,
-       0,     0,   246,     0,   247,     0,   248,  -140,   249,     0,
-       0,     0,     0,   250,   251,     4,  -349,   253,    64,    65,
-      66,    67,   254,   255,   256,   257,   258,     0,     0,     0,
-     259,    86,    87,    88,     0,     0,   576,   577,   578,   579,
-     580,   581,   582,   583,   584,   585,   586,   587,   588,   589,
-     478,    64,    65,    66,    67,    68,    69,    70,    71,   479,
-      82,   480,   481,   482,    86,    87,    88,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    81,    82,    83,    84,
-      85,    86,    87,    88,     0,     0,     0,     0,     0,     0,
-       0,     0,    20,     0,     0,     0,     0,     0,     0,     0,
-     260,     0,     0,     0,     0,     0,     0,     4,     0,     0,
-       0,   590,     0,   591,   592,   593,   594,   595,   596,   597,
-     598,   576,   577,   578,   579,   580,   581,   582,   583,   584,
-     585,   586,   587,   588,   589,     0,     0,     0,     0,     0,
-       0,     0,     0,   483,   484,   485,     0,     0,     0,     0,
-       0,     0,     0,     0,    89,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,  -368,
-    -368,  -368,  -368,  -368,  -368,  -368,  -368,  -368,  -368,  -368,
-    -368,  -368,  -368,   148,     0,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,   108,     0,   590,     0,   591,   592,
-     593,   594,   595,   596,   597,   598,   374,   375,   376,   377,
-     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
-    -368,     0,     0,  -368,     0,     0,     0,     0,     0,  -368,
+       6,     6,    95,   184,    97,    70,   315,   136,   529,   187,
+     188,   189,   270,   144,   303,  -161,    98,   167,   329,    44,
+     324,    10,    46,    48,     4,   262,   301,   107,    12,    13,
+      14,     4,    15,   654,    -6,    37,   102,    38,    39,    40,
+     270,   113,   303,    13,    14,    11,    15,   263,   265,   279,
+      41,   236,   426,   262,   301,    16,    17,   171,   332,   446,
+    -275,   112,   339,   133,   654,    54,   197,    60,   365,  -275,
+     653,   310,     4,   129,    17,   263,   265,   279,    37,    56,
+      38,    39,    40,   362,   316,    60,    13,    14,    53,    15,
+     595,   596,   613,    41,   614,   161,   162,   163,   206,     1,
+       2,   600,   168,    87,   213,   429,   430,   431,   432,   433,
+     434,   505,    72,   165,   177,   178,    95,   458,    97,   460,
+      55,   289,    44,    73,    18,    46,    48,    75,    19,   427,
+      98,    20,   103,   521,   222,    76,   447,    21,    18,    77,
+     466,    78,    19,   198,   199,   200,   514,   289,   522,   289,
+     517,   523,   115,   213,   520,   104,   484,  -276,   201,   116,
+     121,   122,   123,   133,   493,   494,   195,   495,   496,   120,
+     107,   142,   214,   334,   124,   143,   481,   170,   488,   469,
+     472,    18,   455,   456,    87,    19,   459,   217,   218,   345,
+     486,   435,   436,   437,   438,   439,   440,   441,   442,   443,
+     549,  -275,   108,   109,   444,   110,   302,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,   209,  -276,   223,   224,
+      87,   214,   385,   658,   659,   169,  -276,   174,   528,   173,
+     339,   256,   168,   175,   302,   317,   320,   176,   663,   333,
+     325,   326,   327,    95,   570,    97,     4,   180,   183,   361,
+     185,   363,   190,   191,   192,   340,   204,    98,   207,   256,
+     220,   557,   561,   565,   304,   305,   306,   307,   341,   289,
+     108,   109,   346,   110,   347,   215,   445,   216,   318,    79,
+      80,    81,    82,   364,   231,   289,   448,   449,   450,   451,
+     452,   453,   232,    87,   233,   311,   387,   368,   234,   312,
+     314,   322,   255,   391,   490,   392,   330,   366,   492,   493,
+     494,   367,   495,   496,   497,   498,   388,   403,   411,   407,
+     417,   421,   401,   402,   420,   422,   457,   415,   416,   423,
+     425,   418,   419,   507,   491,   511,   509,   510,   512,   515,
+     527,   539,   518,  -165,   604,   531,   540,   541,   542,   543,
+     606,   544,   545,   465,   168,   546,   645,   605,   487,   650,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,   553,
+     302,   554,   555,   134,    84,    85,    86,   648,   646,   568,
+     651,   661,   660,   664,   164,   499,   205,   313,   506,   196,
+     526,   114,   331,   343,   208,   203,   597,   179,   598,   607,
+     599,   638,   641,   644,   665,   525,   622,   601,   666,   602,
+     328,   603,   530,   612,   611,   532,   533,   534,   535,   536,
+     537,   538,   516,   621,   623,   624,    99,   485,   100,     0,
+     548,   519,   550,   551,   552,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,   566,   567,     0,   569,   134,    84,
+      85,    86,     0,     0,    95,     0,    97,     0,     0,     0,
+     339,     0,     0,     0,   649,     0,     0,     0,    98,     0,
+       0,     0,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,   558,   609,   559,   560,   134,    84,    85,    86,     0,
+       0,     0,   391,     0,     0,     0,   610,     0,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,   253,   168,   168,
+     168,   166,     0,   616,   617,     0,   618,   619,     0,   620,
+     647,     0,     0,   625,   213,   626,   627,   628,   629,   630,
+     631,   632,   633,   634,   635,    37,   636,     0,     0,     0,
+     235,     0,    12,    13,    14,   236,     0,     0,     0,   237,
+     238,   239,   240,   662,     0,   241,     0,   242,     0,   243,
+       0,   244,     0,     0,     0,     0,   245,   246,     4,   247,
+     248,    62,    63,    64,    65,   249,   250,   251,   252,   253,
+       0,     0,     0,   254,    84,    85,    86,     0,     0,     0,
+       0,  -160,   214,  -138,  -138,  -138,  -138,  -138,  -138,  -138,
+    -138,  -138,  -138,  -138,  -138,  -138,  -138,  -138,  -138,  -138,
+       0,     0,     0,     0,     0,     0,     0,     0,    95,    95,
+      97,    97,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,   461,    98,    98,     0,   462,     0,   463,   168,     0,
+       0,     0,     0,     0,     0,    20,     0,     0,   465,     0,
+      37,     0,     0,   255,     0,     0,     0,    12,    13,    14,
+     236,     0,   667,   668,   237,   238,   239,   240,     0,     0,
+     241,     0,   242,     0,   243,     0,   244,     0,     0,  -138,
+       0,   245,   246,     4,  -347,   248,    62,    63,    64,    65,
+     249,   250,   251,   252,   253,     0,     0,     0,   254,    84,
+      85,    86,     0,     0,   571,   572,   573,   574,   575,   576,
+     577,   578,   579,   580,   581,   582,   583,   584,   473,    62,
+      63,    64,    65,    66,    67,    68,    69,   474,    80,   475,
+     476,   477,    84,    85,    86,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    79,    80,    81,    82,    83,    84,
+      85,    86,     0,     0,     0,     0,     0,     0,     0,     0,
+      20,     0,     0,     0,     0,     0,     0,     0,   255,     0,
+       0,     0,     0,     0,     4,     0,     0,     0,     0,   585,
+       0,   586,   587,   588,   589,   590,   591,   592,   593,   571,
+     572,   573,   574,   575,   576,   577,   578,   579,   580,   581,
+     582,   583,   584,     0,     0,     0,     0,     0,     0,     0,
+       0,   478,   479,   480,     0,     0,     0,     0,     0,     0,
+       0,    87,   146,   147,   148,   149,   150,   151,   152,   153,
+     154,   155,   156,   157,   158,   159,  -366,  -366,  -366,  -366,
+    -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,  -366,
+     145,     0,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,     0,     0,     0,   585,   166,   586,   587,   588,   589,
+     590,   591,   592,   593,     0,     0,     0,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,   562,  -366,   563,   564,
+     134,    84,    85,    86,     0,  -366,  -366,   146,   147,   148,
      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    81,    82,    83,    84,     0,     0,     0,
-     388,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      81,    82,    83,    84,   137,    86,    87,    88,  -231,  -231,
-    -231,  -231,  -231,  -231,  -231,  -231,  -231,  -231,  -231,  -231,
-    -231,  -231,  -231,  -231,  -231,  -232,  -232,  -232,  -232,  -232,
-    -232,  -232,  -232,  -232,  -232,  -232,  -232,  -232,  -232,  -232,
-    -232,  -232,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,    82,   363,   364,   137,    86,    87,    88,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,   398,    82,
-      83,    84,   137,    86,    87,    88,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,   563,     0,   564,   565,   137,
-      86,    87,    88,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,   567,     0,   568,   569,   137,    86,    87,    88,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,     0,
-       0,   472,   473,   137,    86,    87,    88,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,     0,     0,   475,   476,
-     137,    86,    87,    88,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,     0,     0,   644,   645,   137,    86,    87,
-      88,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-       0,     0,   647,   648,   137,    86,    87,    88,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,   642,     0,     0,
-       0,   137,    86,    87,    88,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    63,    64,    65,    66,    67,    68,
-      69,    70,   552
+     159,   369,   370,   371,   372,   373,   374,   375,   376,   377,
+     378,   379,   380,   381,   382,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    79,    80,    81,    82,   134,    84,
+      85,    86,  -229,  -229,  -229,  -229,  -229,  -229,  -229,  -229,
+    -229,  -229,  -229,  -229,  -229,  -229,  -229,  -229,  -229,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,   105,     0,
+     383,  -230,  -230,  -230,  -230,  -230,  -230,  -230,  -230,  -230,
+    -230,  -230,  -230,  -230,  -230,  -230,  -230,  -230,   348,   349,
+     350,   351,   352,   353,   354,   355,   356,   357,    80,   358,
+     359,   134,    84,    85,    86,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,   393,    80,    81,    82,   134,    84,
+      85,    86,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,     0,     0,   467,   468,   134,    84,    85,    86,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,     0,     0,
+     470,   471,   134,    84,    85,    86,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,     0,     0,   639,   640,   134,
+      84,    85,    86,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,     0,     0,   642,   643,   134,    84,    85,    86,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,   335,
+       0,     0,     0,   134,    84,    85,    86,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,   637,     0,     0,     0,
+     134,    84,    85,    86,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,    79,    80,    81,    82,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    61,    62,    63,    64,
+      65,    66,    67,    68,   547
 };
 
 static const yytype_int16 yycheck[] =
 {
-       1,     2,    29,   155,    29,    18,   239,    10,   428,    89,
-     160,   161,   162,   224,    10,    96,    29,   224,   245,   250,
-     118,    10,     9,    10,    11,    35,    13,   124,    41,   630,
-      35,   224,     0,    45,    45,    16,    37,     2,   120,    46,
-     408,   252,    43,    35,   412,   252,    48,   129,   416,    36,
-      37,     0,     1,    34,     3,     4,     5,     6,    35,   252,
-     661,    10,    11,   256,    13,    78,   293,   260,    17,   354,
-     355,   356,   357,   358,   359,    76,    35,    12,    43,   224,
-     228,   366,    46,   368,   224,   120,    14,   224,   281,   124,
-      35,   124,    37,   241,   129,   224,    31,    37,   111,   112,
-     113,    29,   182,   120,    32,   118,   203,   252,   189,    35,
-     122,   122,   252,   116,   124,   252,   117,   122,   105,   146,
-     116,   146,   109,   252,    35,   112,   224,   116,   363,   364,
-     120,   118,   367,   146,    35,   112,   113,   114,    97,    98,
-      99,   372,   101,   102,   103,   104,   112,   113,   114,   116,
-     117,   128,   250,    46,   252,    46,   105,   388,   239,    46,
-     109,   127,   480,   481,   449,    98,    99,   180,   101,   102,
-     171,   125,   126,   491,   187,   122,   189,   388,   259,    38,
-      39,   388,    41,    46,   377,   378,    98,     1,   100,     3,
-       4,     5,     6,   115,   275,   388,    10,    11,   123,    13,
-     124,    38,    39,    17,    41,    38,    39,    40,    41,    46,
-     124,   224,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,   224,    46,    47,    35,    50,   239,   308,    46,    47,
-      48,    49,   122,   426,   126,   428,   124,   250,   658,   252,
-     107,   108,   469,   125,   257,   246,   247,   248,   275,   252,
-     275,   650,   651,   121,   281,   121,   281,   242,   243,    46,
-     261,   122,   275,   120,   122,   120,   459,   460,   461,   120,
-     123,   123,    35,   274,   372,   123,    46,   278,    49,   280,
-      55,    56,    57,    58,    59,    60,    48,     8,   289,   121,
-     388,   105,   121,   121,   110,   109,   122,   122,   106,    35,
-     120,   314,   303,   120,    46,   111,   129,    20,   321,   389,
-     323,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,   123,    21,    30,   122,    54,   123,   328,   329,   121,
-     123,   122,   333,   334,    45,   123,   337,   338,    97,   123,
-      54,   121,    23,   122,    45,   425,   498,    25,    45,    45,
-     430,    45,    45,   503,    45,    45,    45,   122,   371,   372,
-      35,   122,   120,   388,    35,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,   388,   122,   610,    50,    51,
-      52,    53,   121,    15,   464,    27,   116,   231,   174,    52,
-     391,   180,   187,   394,   275,   422,   252,   178,   124,   146,
-     486,   482,   510,   418,   661,   486,   599,   600,   601,   527,
-     666,   249,   493,   429,   494,   517,   496,   410,   388,   515,
-     433,   434,   435,   436,   437,   438,   439,    31,   526,   527,
-     528,   414,    34,    -1,    -1,   448,    -1,   450,   451,   452,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,   462,
-     463,    -1,   465,    50,    51,    52,    53,    -1,    -1,   486,
-      -1,   486,    -1,    -1,    -1,   658,   618,    -1,    -1,    -1,
-      -1,    -1,    -1,   486,    -1,    -1,    -1,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,   514,    48,    49,
-      50,    51,    52,    53,    -1,    -1,    -1,   510,    -1,    -1,
-      -1,   514,    -1,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,   526,   527,   528,    50,    -1,   519,   520,
-      -1,   522,   523,    -1,   525,   605,    -1,    -1,   529,   610,
-     531,   544,   545,   546,   547,   548,   549,   550,   551,   552,
-      -1,   554,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
-       7,    -1,     9,    10,    11,    12,    -1,    -1,   656,    16,
-      17,    18,    19,    -1,    -1,    22,    -1,    24,    -1,    26,
-      -1,    28,    -1,    -1,    -1,    -1,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      -1,    -1,    -1,    50,    51,    52,    53,   610,    35,    -1,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
-      -1,    -1,    -1,   650,   651,   650,   651,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,   650,   651,    -1,
-      50,    -1,    52,   656,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,   666,    -1,   112,    -1,    50,    -1,    -1,
-      -1,     1,    -1,   120,    -1,    -1,    -1,   668,   669,     9,
-      10,    11,    12,    -1,    -1,    -1,    16,    17,    18,    19,
-      -1,    -1,    22,    -1,    24,    -1,    26,   124,    28,    -1,
-      -1,    -1,    -1,    33,    34,    35,    35,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    -1,    -1,    -1,
-      50,    51,    52,    53,    -1,    -1,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      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,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     120,    -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,
-      -1,   130,    -1,   132,   133,   134,   135,   136,   137,   138,
-     139,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   130,   131,   132,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   124,    83,    84,    85,    86,    87,
-      88,    89,    90,    91,    92,    93,    94,    95,    96,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    36,    -1,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    -1,   130,    -1,   132,   133,
-     134,   135,   136,   137,   138,   139,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-     120,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,   129,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    -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,
+       1,     2,    29,   152,    29,    18,   234,    87,   423,   157,
+     158,   159,   219,    94,   219,    34,    29,   115,   245,    10,
+     240,     2,    10,    10,    34,   219,   219,    40,     8,     9,
+      10,    34,    12,   625,     0,     1,    37,     3,     4,     5,
+     247,    42,   247,     9,    10,     0,    12,   219,   219,   219,
+      16,    11,    44,   247,   247,    35,    36,   121,   251,    44,
+     119,    42,   255,    76,   656,    47,    34,    16,   288,   128,
+      30,   223,    34,    74,    36,   247,   247,   247,     1,   122,
+       3,     4,     5,   276,   236,    34,     9,    10,    45,    12,
+     475,   476,    97,    16,    99,   108,   109,   110,   178,   115,
+     116,   486,   115,   122,   185,   349,   350,   351,   352,   353,
+     354,   121,    36,   114,   123,   124,   143,   361,   143,   363,
+      45,   219,   113,   119,   104,   113,   113,    34,   108,   121,
+     143,   111,    45,    13,   198,   119,   121,   117,   104,    34,
+     367,    34,   108,   111,   112,   113,   403,   245,    28,   247,
+     407,    31,   121,   234,   411,    45,   383,   122,   126,    45,
+     111,   112,   113,   176,    97,    98,   167,   100,   101,   114,
+     183,    34,   185,   254,   125,   121,   383,   124,   383,   372,
+     373,   104,   358,   359,   122,   108,   362,    45,    46,   270,
+     383,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+     444,   122,    37,    38,    49,    40,   219,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,   119,   106,   107,
+     122,   234,   303,   645,   646,   123,   128,   121,   421,   120,
+     423,   219,   245,   120,   247,   237,   238,   121,   653,   252,
+     241,   242,   243,   270,   464,   270,    34,   119,   119,   276,
+     119,   276,   127,   127,   127,   256,    34,   270,    45,   247,
+       7,   454,   455,   456,    37,    38,    39,    40,   269,   367,
+      37,    38,   273,    40,   275,    47,   121,    48,    45,    45,
+      46,    47,    48,   284,   120,   383,    54,    55,    56,    57,
+      58,    59,   120,   122,   120,   109,   309,   298,   121,   105,
+      34,   119,   119,   316,   384,   318,    45,   128,    96,    97,
+      98,   127,   100,   101,   102,   103,   110,    19,    29,    20,
+     121,    53,   323,   324,   127,   120,    44,   328,   329,   121,
+     127,   332,   333,    96,   127,   120,   127,    53,   121,    22,
+     420,    44,    24,    34,   493,   425,    44,    44,    44,    44,
+     498,    44,    44,   366,   367,    44,   121,   119,   383,    34,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+     383,    47,    48,    49,    50,    51,    52,   605,   121,   459,
+     121,    14,   120,    26,   113,   386,   176,   226,   389,   170,
+     417,    50,   247,   270,   183,   174,   477,   143,   481,   505,
+     481,   594,   595,   596,   656,   413,   522,   488,   661,   489,
+     244,   491,   424,   512,   510,   428,   429,   430,   431,   432,
+     433,   434,   405,   521,   522,   523,    31,   383,    34,    -1,
+     443,   409,   445,   446,   447,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,   457,   458,    -1,   460,    49,    50,
+      51,    52,    -1,    -1,   481,    -1,   481,    -1,    -1,    -1,
+     653,    -1,    -1,    -1,   613,    -1,    -1,    -1,   481,    -1,
+      -1,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,   509,    47,    48,    49,    50,    51,    52,    -1,
+      -1,    -1,   505,    -1,    -1,    -1,   509,    -1,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,   521,   522,
+     523,    49,    -1,   514,   515,    -1,   517,   518,    -1,   520,
+     600,    -1,    -1,   524,   605,   526,   539,   540,   541,   542,
+     543,   544,   545,   546,   547,     1,   549,    -1,    -1,    -1,
+       6,    -1,     8,     9,    10,    11,    -1,    -1,    -1,    15,
+      16,    17,    18,   651,    -1,    21,    -1,    23,    -1,    25,
+      -1,    27,    -1,    -1,    -1,    -1,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      -1,    -1,    -1,    49,    50,    51,    52,    -1,    -1,    -1,
+      -1,    34,   605,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   645,   646,
+     645,   646,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,   645,   646,    -1,    49,    -1,    51,   651,    -1,
+      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,   661,    -1,
+       1,    -1,    -1,   119,    -1,    -1,    -1,     8,     9,    10,
+      11,    -1,   663,   664,    15,    16,    17,    18,    -1,    -1,
+      21,    -1,    23,    -1,    25,    -1,    27,    -1,    -1,   122,
+      -1,    32,    33,    34,    34,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    -1,    -1,    -1,    49,    50,
+      51,    52,    -1,    -1,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    36,    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,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    -1,    48,    49,    50,    51,    52,    53,
+      48,    49,    50,    51,    52,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   119,    -1,
+      -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,   129,
+      -1,   131,   132,   133,   134,   135,   136,   137,   138,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   129,   130,   131,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   122,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      35,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    -1,    -1,    -1,   129,    49,   131,   132,   133,   134,
+     135,   136,   137,   138,    -1,    -1,    -1,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,   119,    47,    48,
+      49,    50,    51,    52,    -1,   127,   128,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    81,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    36,
       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,    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,    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,    37,    38,    39,    40,    41,    42,
-      43,    44,    45
+     127,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    -1,    -1,    47,    48,    49,    50,    51,    52,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    -1,    -1,
+      47,    48,    49,    50,    51,    52,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    -1,    -1,    47,    48,    49,
+      50,    51,    52,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    -1,    -1,    47,    48,    49,    50,    51,    52,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      -1,    -1,    -1,    49,    50,    51,    52,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
+      49,    50,    51,    52,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    36,    37,    38,    39,
+      40,    41,    42,    43,    44
 };
 
 /* 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,   144,   304,   305,   142,
-     143,     0,     9,    10,    11,    13,    36,    37,   105,   109,
-     112,   118,   147,   148,   149,   150,   161,   164,   192,   207,
-     233,   306,   307,   308,   310,   311,   312,     1,     3,     4,
-       5,     6,    17,   145,   146,   147,   160,   161,   162,   163,
-     164,   168,   170,   202,   283,    46,    48,    46,   124,   144,
-     200,   309,   312,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,   299,   300,    37,   120,   193,    35,   120,    35,
-      35,    46,    47,    48,    49,    50,    51,    52,    53,   124,
-     209,   210,   212,   213,   214,   215,   252,   292,   293,   298,
-     299,   307,   309,   172,   144,    46,    46,    46,    46,   171,
-     299,    38,    39,    41,   288,   143,   144,   172,   122,    46,
-     165,   166,   167,   115,   112,   113,   114,   127,   194,   195,
-     196,   197,   144,   151,   152,   153,   299,    50,   216,   291,
-     292,   296,   297,   298,   299,    35,   122,   215,    36,    83,
-      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,   173,   123,   299,   299,   299,   146,   144,
-      50,   252,   299,   125,   126,   193,   198,   121,   122,   121,
-     122,   125,   126,   212,   120,   280,   281,   120,   280,   120,
-     174,   281,   281,   281,    46,   123,   123,   123,   178,   179,
-     144,   167,    35,   112,   113,   114,   128,   199,   196,    35,
-     153,   291,    46,   171,    46,   175,   176,   177,   215,   299,
-      48,    49,    46,    47,   187,     8,   180,   193,   107,   108,
-     154,   155,   156,   157,   158,   159,   121,   121,   121,   122,
-       7,    12,    16,    17,    18,    19,    22,    24,    26,    28,
-      33,    34,    36,    37,    42,    43,    44,    45,    46,    50,
-     120,   161,   169,   188,   189,   190,   191,   192,   200,   201,
-     202,   203,   204,   205,   206,   207,   217,   218,   220,   222,
-     223,   226,   228,   229,   233,   234,   235,   236,   245,   246,
-     247,   248,   249,   250,   252,   253,   259,   260,   261,   262,
-     270,   271,   282,   284,   285,   287,   296,   299,   300,    38,
-      39,    40,    41,   181,   295,   295,   110,   106,   156,    35,
-     177,   295,   288,    46,   286,   288,   289,   120,   263,   263,
-     144,   144,   144,   253,   247,    46,   189,   296,   299,   215,
-      46,   254,   255,   256,   296,   144,   144,   208,   209,   211,
-     215,   144,   144,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    48,    49,   224,   292,   296,   298,   144,
-     263,   129,   123,   144,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,   123,   303,
-     215,   182,   299,   111,   230,   231,   299,   299,    46,   264,
-     265,   266,   267,   268,   269,   291,   144,   144,    20,   272,
-     273,   274,    21,   275,   276,   277,    30,   237,   238,   239,
-     144,   144,   122,   144,   144,   123,    54,   121,   122,   257,
-     123,    45,   122,   227,   227,   227,   227,   227,   227,   227,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    50,
-     122,    45,   122,    55,    56,    57,    58,    59,    60,   294,
-     294,   294,    45,   227,   294,   227,    46,    50,    52,   251,
-     299,   247,    48,    49,   296,    48,    49,   296,    37,    46,
-      48,    49,    50,   130,   131,   132,   207,   219,   221,   247,
-     293,   296,   298,   300,   301,   291,   123,    97,    98,    99,
-     101,   102,   103,   104,   144,   183,   184,   185,   186,   258,
-     122,   144,    97,   232,   123,    54,   121,   122,   278,   268,
-      23,   274,   268,    25,   277,   268,    14,    29,    32,   240,
-     239,   292,   291,   296,   256,   258,   291,   299,   299,   299,
-     299,   299,   299,   299,    45,    45,    45,    45,    45,    45,
-      45,    45,    45,   299,   227,   299,   299,   299,    46,    48,
-      49,   225,   296,    46,    48,    49,   296,    46,    48,    49,
-     296,   299,   299,   291,   299,   263,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-     130,   132,   133,   134,   135,   136,   137,   138,   139,   302,
-     302,   302,   215,   213,   215,   302,   215,   291,   291,   280,
-     120,   281,   231,   290,   292,   299,   269,   266,    98,   100,
-     279,   144,   144,   144,   144,   144,   252,   250,   252,   252,
-     144,   144,   299,   299,   299,   299,   299,   299,   299,   299,
-     299,   299,    46,   296,    48,    49,   296,    48,    49,   296,
-     122,   122,   291,   177,   280,    35,   122,   241,    31,   229,
-     242,   243,   244,   210,   210,   121,    15,   252,   256,    27,
-     244,   251,   144,   144
+       0,   115,   116,   140,    34,   142,   143,   302,   303,   141,
+     142,     0,     8,     9,    10,    12,    35,    36,   104,   108,
+     111,   117,   146,   147,   148,   149,   160,   162,   190,   205,
+     231,   304,   305,   306,   308,   309,   310,     1,     3,     4,
+       5,    16,   144,   145,   146,   159,   160,   161,   162,   166,
+     168,   200,   281,    45,    47,    45,   122,   143,   198,   307,
+     310,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+     297,   298,    36,   119,   191,    34,   119,    34,    34,    45,
+      46,    47,    48,    49,    50,    51,    52,   122,   207,   208,
+     210,   211,   212,   213,   250,   290,   291,   296,   297,   305,
+     307,   170,   143,    45,    45,    45,   169,   297,    37,    38,
+      40,   286,   142,   143,   170,   121,    45,   163,   164,   165,
+     114,   111,   112,   113,   125,   192,   193,   194,   195,   143,
+     150,   151,   152,   297,    49,   214,   289,   290,   294,   295,
+     296,   297,    34,   121,   213,    35,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+     171,   297,   297,   297,   145,   143,    49,   250,   297,   123,
+     124,   191,   196,   120,   121,   120,   121,   123,   124,   210,
+     119,   278,   279,   119,   278,   119,   172,   279,   279,   279,
+     127,   127,   127,   176,   177,   143,   165,    34,   111,   112,
+     113,   126,   197,   194,    34,   152,   289,    45,   169,    45,
+     173,   174,   175,   213,   297,    47,    48,    45,    46,   185,
+       7,   178,   191,   106,   107,   153,   154,   155,   156,   157,
+     158,   120,   120,   120,   121,     6,    11,    15,    16,    17,
+      18,    21,    23,    25,    27,    32,    33,    35,    36,    41,
+      42,    43,    44,    45,    49,   119,   160,   167,   186,   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,   282,   283,
+     285,   294,   297,   298,    37,    38,    39,    40,   179,   293,
+     293,   109,   105,   155,    34,   175,   293,   286,    45,   284,
+     286,   287,   119,   261,   261,   143,   143,   143,   251,   245,
+      45,   187,   294,   297,   213,    45,   252,   253,   254,   294,
+     143,   143,   206,   207,   209,   213,   143,   143,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    47,    48,
+     222,   290,   294,   296,   143,   261,   128,   127,   143,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,   127,   301,   213,   180,   297,   110,   228,
+     229,   297,   297,    45,   262,   263,   264,   265,   266,   267,
+     289,   143,   143,    19,   270,   271,   272,    20,   273,   274,
+     275,    29,   235,   236,   237,   143,   143,   121,   143,   143,
+     127,    53,   120,   121,   255,   127,    44,   121,   225,   225,
+     225,   225,   225,   225,   225,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    49,   121,    44,   121,    54,    55,
+      56,    57,    58,    59,   292,   292,   292,    44,   225,   292,
+     225,    45,    49,    51,   249,   297,   245,    47,    48,   294,
+      47,    48,   294,    36,    45,    47,    48,    49,   129,   130,
+     131,   205,   217,   219,   245,   291,   294,   296,   298,   299,
+     289,   127,    96,    97,    98,   100,   101,   102,   103,   143,
+     181,   182,   183,   184,   256,   121,   143,    96,   230,   127,
+      53,   120,   121,   276,   266,    22,   272,   266,    24,   275,
+     266,    13,    28,    31,   238,   237,   290,   289,   294,   254,
+     256,   289,   297,   297,   297,   297,   297,   297,   297,    44,
+      44,    44,    44,    44,    44,    44,    44,    44,   297,   225,
+     297,   297,   297,    45,    47,    48,   223,   294,    45,    47,
+      48,   294,    45,    47,    48,   294,   297,   297,   289,   297,
+     261,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,   129,   131,   132,   133,   134,
+     135,   136,   137,   138,   300,   300,   300,   213,   211,   213,
+     300,   213,   289,   289,   278,   119,   279,   229,   288,   290,
+     297,   267,   264,    97,    99,   277,   143,   143,   143,   143,
+     143,   250,   248,   250,   250,   143,   143,   297,   297,   297,
+     297,   297,   297,   297,   297,   297,   297,    45,   294,    47,
+      48,   294,    47,    48,   294,   121,   121,   289,   175,   278,
+      34,   121,   239,    30,   227,   240,   241,   242,   208,   208,
+     120,    14,   250,   254,    26,   242,   249,   143,   143
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -2649,206 +2641,201 @@
   switch (yyn)
     {
         case 4:
-#line 572 "pir.y"
+#line 571 "pir.y"
     { fixup_global_labels(lexer); ;}
     break;
 
   case 7:
-#line 580 "pir.y"
+#line 579 "pir.y"
     { lexer->linenr += (yyvsp[(1) - (1)].ival); ;}
     break;
 
-  case 21:
-#line 607 "pir.y"
+  case 20:
+#line 605 "pir.y"
     { new_macro_const(lexer->macros, (yyvsp[(2) - (3)].sval), (yyvsp[(3) - (3)].sval), yypirget_lineno(yyscanner)); ;}
     break;
 
-  case 22:
-#line 613 "pir.y"
+  case 21:
+#line 611 "pir.y"
     { /* fprintf(stderr, "macro body: [%s]\n", CURRENT_MACRO(lexer)->body);*/ ;}
     break;
 
-  case 23:
-#line 617 "pir.y"
+  case 22:
+#line 615 "pir.y"
     {
                           new_macro(lexer->macros, (yyvsp[(2) - (2)].sval), yypirget_lineno(yyscanner), TRUE,
                                     lexer->macro_size);
                         ;}
     break;
 
-  case 28:
-#line 632 "pir.y"
+  case 27:
+#line 630 "pir.y"
     { add_macro_param(CURRENT_MACRO(lexer), (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 36:
-#line 651 "pir.y"
+  case 35:
+#line 649 "pir.y"
     { store_macro_string(CURRENT_MACRO(lexer), "%s\n", (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 37:
-#line 655 "pir.y"
+  case 36:
+#line 653 "pir.y"
     {
                           store_macro_string(CURRENT_MACRO(lexer), ".local %s %s\n",
                                              pir_type_names[(yyvsp[(2) - (3)].ival)], (yyvsp[(3) - (3)].sval));
                         ;}
     break;
 
-  case 38:
-#line 666 "pir.y"
+  case 37:
+#line 664 "pir.y"
     { load_library(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
+  case 38:
+#line 668 "pir.y"
+    { yypirset_lineno ((yyvsp[(2) - (2)].ival), yyscanner); ;}
+    break;
+
   case 39:
 #line 670 "pir.y"
-    { yypirset_lineno ((yyvsp[(2) - (2)].ival), yyscanner); ;}
+    { lexer->filename = (yyvsp[(2) - (2)].sval); ;}
     break;
 
   case 40:
-#line 672 "pir.y"
-    { lexer->filename = (yyvsp[(2) - (2)].sval); ;}
+#line 676 "pir.y"
+    { set_hll(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 41:
-#line 678 "pir.y"
-    { set_hll(lexer, (yyvsp[(2) - (2)].sval)); ;}
+#line 680 "pir.y"
+    { set_namespace(lexer, (yyvsp[(3) - (4)].key)); ;}
     break;
 
   case 42:
-#line 682 "pir.y"
-    { set_hll_map(lexer, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
+#line 684 "pir.y"
+    { (yyval.key) = NULL; ;}
     break;
 
   case 43:
 #line 686 "pir.y"
-    { set_namespace(lexer, (yyvsp[(3) - (4)].key)); ;}
+    { (yyval.key) = (yyvsp[(1) - (1)].key); ;}
     break;
 
   case 44:
 #line 690 "pir.y"
-    { (yyval.key) = NULL; ;}
+    { (yyval.key) = new_key(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
   case 45:
 #line 692 "pir.y"
-    { (yyval.key) = (yyvsp[(1) - (1)].key); ;}
+    { (yyval.key) = add_key(lexer, (yyvsp[(1) - (3)].key), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
   case 46:
 #line 696 "pir.y"
-    { (yyval.key) = new_key(lexer, (yyvsp[(1) - (1)].expr)); ;}
-    break;
-
-  case 47:
-#line 698 "pir.y"
-    { (yyval.key) = add_key(lexer, (yyvsp[(1) - (3)].key), (yyvsp[(3) - (3)].expr)); ;}
-    break;
-
-  case 48:
-#line 702 "pir.y"
     { (yyval.expr) = expr_from_string(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 50:
-#line 712 "pir.y"
+  case 48:
+#line 706 "pir.y"
     { close_sub(lexer); ;}
     break;
 
-  case 51:
-#line 716 "pir.y"
+  case 49:
+#line 710 "pir.y"
     { new_subr(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 56:
-#line 728 "pir.y"
+  case 54:
+#line 722 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_ANON);;}
     break;
 
-  case 57:
-#line 730 "pir.y"
+  case 55:
+#line 724 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_INIT); ;}
     break;
 
-  case 58:
-#line 732 "pir.y"
+  case 56:
+#line 726 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_LOAD); ;}
     break;
 
-  case 59:
-#line 734 "pir.y"
+  case 57:
+#line 728 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_MAIN); ;}
     break;
 
-  case 60:
-#line 736 "pir.y"
+  case 58:
+#line 730 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_LEX); ;}
     break;
 
-  case 61:
-#line 738 "pir.y"
+  case 59:
+#line 732 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_POSTCOMP); ;}
     break;
 
-  case 62:
-#line 740 "pir.y"
+  case 60:
+#line 734 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_IMMEDIATE); ;}
     break;
 
-  case 63:
-#line 742 "pir.y"
+  case 61:
+#line 736 "pir.y"
     { set_sub_flag(lexer, PIRC_SUB_FLAG_MULTI); ;}
     break;
 
-  case 64:
-#line 744 "pir.y"
+  case 62:
+#line 738 "pir.y"
     { set_sub_outer(lexer, (yyvsp[(3) - (4)].sval)); ;}
     break;
 
-  case 65:
-#line 746 "pir.y"
+  case 63:
+#line 740 "pir.y"
     { set_sub_methodname(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 66:
-#line 748 "pir.y"
+  case 64:
+#line 742 "pir.y"
     { set_sub_vtable(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 67:
-#line 750 "pir.y"
+  case 65:
+#line 744 "pir.y"
     { set_sub_subid(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 68:
-#line 752 "pir.y"
+  case 66:
+#line 746 "pir.y"
     { set_sub_instanceof(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 69:
-#line 754 "pir.y"
+  case 67:
+#line 748 "pir.y"
     { set_sub_nsentry(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 70:
-#line 758 "pir.y"
+  case 68:
+#line 752 "pir.y"
     { set_sub_multi_types(lexer, (yyvsp[(2) - (3)].expr)); ;}
     break;
 
-  case 71:
-#line 762 "pir.y"
+  case 69:
+#line 756 "pir.y"
     {
                           CURRENT_SUB(lexer)->info.num_multi_types = 1;
                           /* n=1 means :multi() -- without any types. */
                         ;}
     break;
 
-  case 72:
-#line 767 "pir.y"
+  case 70:
+#line 761 "pir.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;}
     break;
 
-  case 73:
-#line 771 "pir.y"
+  case 71:
+#line 765 "pir.y"
     {
                           CURRENT_SUB(lexer)->info.num_multi_types = 2;
                           /* start counting multi types; always 1 higher than actual number
@@ -2859,8 +2846,8 @@
                         ;}
     break;
 
-  case 74:
-#line 780 "pir.y"
+  case 72:
+#line 774 "pir.y"
     {
                           ++CURRENT_SUB(lexer)->info.num_multi_types;
                           /* link the multi types in reverse other. That's fine,
@@ -2871,33 +2858,33 @@
                         ;}
     break;
 
-  case 75:
-#line 791 "pir.y"
+  case 73:
+#line 785 "pir.y"
     { (yyval.expr) = expr_from_ident(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 76:
-#line 793 "pir.y"
+  case 74:
+#line 787 "pir.y"
     { (yyval.expr) = expr_from_string(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 77:
-#line 795 "pir.y"
+  case 75:
+#line 789 "pir.y"
     { (yyval.expr) = expr_from_key(lexer, (yyvsp[(1) - (1)].key)); ;}
     break;
 
-  case 78:
-#line 799 "pir.y"
+  case 76:
+#line 793 "pir.y"
     { generate_parameters_instr(lexer, (yyvsp[(1) - (1)].uval)); ;}
     break;
 
-  case 79:
-#line 803 "pir.y"
+  case 77:
+#line 797 "pir.y"
     { (yyval.uval) = 0; ;}
     break;
 
-  case 80:
-#line 805 "pir.y"
+  case 78:
+#line 799 "pir.y"
     {
                           /* if the :named flag was set, there's an extra
                            * constant string argument for the name. count that too.
@@ -2910,49 +2897,49 @@
                         ;}
     break;
 
-  case 81:
-#line 818 "pir.y"
+  case 79:
+#line 812 "pir.y"
     { (yyval.targ) = set_param_flag(lexer, (yyvsp[(2) - (4)].targ), (yyvsp[(3) - (4)].ival)); ;}
     break;
 
-  case 82:
-#line 822 "pir.y"
+  case 80:
+#line 816 "pir.y"
     { (yyval.targ) = add_param(lexer, (yyvsp[(1) - (2)].ival), (yyvsp[(2) - (2)].sval)); ;}
     break;
 
-  case 83:
-#line 826 "pir.y"
+  case 81:
+#line 820 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
-  case 84:
-#line 828 "pir.y"
+  case 82:
+#line 822 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
-  case 89:
-#line 838 "pir.y"
+  case 87:
+#line 832 "pir.y"
     {
                            (yyval.ival) = TARGET_FLAG_LOOKAHEAD;
                            set_param_alias(lexer, (yyvsp[(2) - (2)].sval));
                          ;}
     break;
 
-  case 90:
-#line 845 "pir.y"
+  case 88:
+#line 839 "pir.y"
     { (yyval.ival) = TARGET_FLAG_INVOCANT;
                            /* XXX handle multi_type */
 
                          ;}
     break;
 
-  case 91:
-#line 852 "pir.y"
+  case 89:
+#line 846 "pir.y"
     { (yyval.ival) = TARGET_FLAG_UNIQUE_REG; ;}
     break;
 
-  case 93:
-#line 859 "pir.y"
+  case 91:
+#line 853 "pir.y"
     {
                          ++lexer->stmt_counter;
                          /* increment the logical statement counter; a statement can be
@@ -2962,43 +2949,43 @@
                         ;}
     break;
 
-  case 94:
-#line 869 "pir.y"
+  case 92:
+#line 863 "pir.y"
     { set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
     break;
 
-  case 112:
-#line 892 "pir.y"
+  case 110:
+#line 886 "pir.y"
     { annotate(lexer, (yyvsp[(2) - (5)].sval), (yyvsp[(4) - (5)].cval)); ;}
     break;
 
-  case 114:
-#line 902 "pir.y"
+  case 112:
+#line 896 "pir.y"
     { (yyval.sval) = expand_macro(yyscanner, (yyvsp[(1) - (3)].mval), (yyvsp[(2) - (3)].pval)); ;}
     break;
 
-  case 115:
-#line 906 "pir.y"
+  case 113:
+#line 900 "pir.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 116:
-#line 908 "pir.y"
+  case 114:
+#line 902 "pir.y"
     { (yyval.pval) = (yyvsp[(2) - (3)].pval); ;}
     break;
 
-  case 117:
-#line 912 "pir.y"
+  case 115:
+#line 906 "pir.y"
     { (yyval.pval) = NULL; ;}
     break;
 
-  case 119:
-#line 917 "pir.y"
+  case 117:
+#line 911 "pir.y"
     { (yyval.pval) = new_macro_param((yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 120:
-#line 919 "pir.y"
+  case 118:
+#line 913 "pir.y"
     {
                           macro_param *param = new_macro_param((yyvsp[(3) - (3)].sval));
                           param->next = (yyvsp[(1) - (3)].pval);
@@ -3006,8 +2993,8 @@
                         ;}
     break;
 
-  case 121:
-#line 927 "pir.y"
+  case 119:
+#line 921 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                           if (sym == NULL) {
@@ -3017,23 +3004,23 @@
                         ;}
     break;
 
-  case 123:
-#line 936 "pir.y"
+  case 121:
+#line 930 "pir.y"
     { (yyval.sval) = expand_macro(yyscanner, (yyvsp[(1) - (2)].mval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
-  case 125:
-#line 941 "pir.y"
+  case 123:
+#line 935 "pir.y"
     { (yyval.sval) = (yyvsp[(2) - (3)].sval); ;}
     break;
 
-  case 126:
-#line 946 "pir.y"
+  case 124:
+#line 940 "pir.y"
     { (yyval.sval) = ""; ;}
     break;
 
-  case 127:
-#line 948 "pir.y"
+  case 125:
+#line 942 "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));
@@ -3042,23 +3029,23 @@
                         ;}
     break;
 
-  case 128:
-#line 957 "pir.y"
+  case 126:
+#line 951 "pir.y"
     { (yyval.sval) = "\n"; ;}
     break;
 
-  case 131:
-#line 961 "pir.y"
+  case 129:
+#line 955 "pir.y"
     { (yyval.sval) = expand_macro(yyscanner, (yyvsp[(1) - (2)].mval), (yyvsp[(2) - (2)].pval)); ;}
     break;
 
-  case 132:
-#line 969 "pir.y"
+  case 130:
+#line 963 "pir.y"
     { set_instr(lexer, NULL); ;}
     break;
 
-  case 134:
-#line 977 "pir.y"
+  case 132:
+#line 971 "pir.y"
     {
                            if (lexer->parse_errors > MAX_NUM_ERRORS)
                                panic(lexer, "Too many errors. Compilation aborted.\n");
@@ -3067,23 +3054,23 @@
                          ;}
     break;
 
-  case 135:
-#line 986 "pir.y"
+  case 133:
+#line 980 "pir.y"
     {
                            set_instrf(lexer, "null", "%T", (yyvsp[(2) - (3)].targ));
                            get_opinfo(lexer);
                          ;}
     break;
 
-  case 136:
-#line 993 "pir.y"
+  case 134:
+#line 987 "pir.y"
     {
                            generate_getresults_instr(lexer, (yyvsp[(2) - (3)].targ));
                          ;}
     break;
 
-  case 140:
-#line 1006 "pir.y"
+  case 138:
+#line 1000 "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.
                             */
@@ -3092,8 +3079,8 @@
                          ;}
     break;
 
-  case 141:
-#line 1015 "pir.y"
+  case 139:
+#line 1009 "pir.y"
     { /* when this rule is activated, the initial identifier must
                            * be a parrot op.
                            */
@@ -3102,8 +3089,8 @@
                         ;}
     break;
 
-  case 147:
-#line 1033 "pir.y"
+  case 145:
+#line 1027 "pir.y"
     {
                          /* the "instruction" that was set now appears to be
                           * an identifier; get the name, and check its type.
@@ -3139,41 +3126,41 @@
                        ;}
     break;
 
-  case 148:
-#line 1069 "pir.y"
+  case 146:
+#line 1063 "pir.y"
     { push_operand(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
-  case 149:
-#line 1071 "pir.y"
+  case 147:
+#line 1065 "pir.y"
     { push_operand(lexer, expr_from_key(lexer, (yyvsp[(1) - (1)].key))); ;}
     break;
 
-  case 150:
-#line 1075 "pir.y"
+  case 148:
+#line 1069 "pir.y"
     { (yyval.expr) = expr_from_const(lexer, (yyvsp[(1) - (1)].cval)); ;}
     break;
 
-  case 151:
-#line 1077 "pir.y"
+  case 149:
+#line 1071 "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));
                          ;}
     break;
 
-  case 152:
-#line 1082 "pir.y"
+  case 150:
+#line 1076 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
     break;
 
-  case 153:
-#line 1084 "pir.y"
+  case 151:
+#line 1078 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
     break;
 
-  case 154:
-#line 1088 "pir.y"
+  case 152:
+#line 1082 "pir.y"
     {
                            /* if $1 is a register, just return that */
                            if (TEST_FLAG((yyvsp[(1) - (2)].targ)->flags, TARGET_FLAG_IS_REG))
@@ -3196,23 +3183,23 @@
                          ;}
     break;
 
-  case 155:
-#line 1111 "pir.y"
+  case 153:
+#line 1105 "pir.y"
     { (yyval.key) = (yyvsp[(2) - (3)].key); ;}
     break;
 
-  case 156:
-#line 1115 "pir.y"
+  case 154:
+#line 1109 "pir.y"
     { (yyval.key) = new_key(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
-  case 157:
-#line 1117 "pir.y"
+  case 155:
+#line 1111 "pir.y"
     { (yyval.key) = add_key(lexer, (yyvsp[(1) - (3)].key), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 158:
-#line 1126 "pir.y"
+  case 156:
+#line 1120 "pir.y"
     {
                           /* the instruction is already set in parrot_op rule */
                           unshift_operand(lexer, (yyvsp[(4) - (6)].expr));
@@ -3225,8 +3212,8 @@
                         ;}
     break;
 
-  case 159:
-#line 1137 "pir.y"
+  case 157:
+#line 1131 "pir.y"
     {
                           /* the instruction is already set in parrot_op rule */
                           unshift_operand(lexer, (yyvsp[(4) - (4)].expr));
@@ -3240,8 +3227,8 @@
                         ;}
     break;
 
-  case 160:
-#line 1149 "pir.y"
+  case 158:
+#line 1143 "pir.y"
     {
                           unshift_operand(lexer, expr_from_key(lexer, (yyvsp[(4) - (6)].key)));
                           unshift_operand(lexer, expr_from_target(lexer, (yyvsp[(1) - (6)].targ)));
@@ -3251,8 +3238,8 @@
                         ;}
     break;
 
-  case 164:
-#line 1166 "pir.y"
+  case 162:
+#line 1160 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].ival) == 0)
                               set_instrf(lexer, "null", "%T", (yyvsp[(1) - (3)].targ));
@@ -3263,8 +3250,8 @@
                         ;}
     break;
 
-  case 165:
-#line 1175 "pir.y"
+  case 163:
+#line 1169 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].dval) == 0.0)
                               set_instrf(lexer, "null", "%T", (yyvsp[(1) - (3)].targ));
@@ -3275,24 +3262,24 @@
                         ;}
     break;
 
-  case 166:
-#line 1184 "pir.y"
+  case 164:
+#line 1178 "pir.y"
     {
                           set_instrf(lexer, "set", "%T%C", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].cval));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 167:
-#line 1189 "pir.y"
+  case 165:
+#line 1183 "pir.y"
     {
                           set_instrf(lexer, "set", "%T%T", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 168:
-#line 1194 "pir.y"
+  case 166:
+#line 1188 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(3) - (3)].sval));
                           if (sym) {
@@ -3315,16 +3302,16 @@
                         ;}
     break;
 
-  case 169:
-#line 1215 "pir.y"
+  case 167:
+#line 1209 "pir.y"
     {
                           unshift_operand(lexer, expr_from_target(lexer, (yyvsp[(1) - (3)].targ)));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 170:
-#line 1220 "pir.y"
+  case 168:
+#line 1214 "pir.y"
     {
                           /*   $P0 = foo ["bar"]    # PIR style
                            *
@@ -3367,8 +3354,8 @@
                         ;}
     break;
 
-  case 171:
-#line 1261 "pir.y"
+  case 169:
+#line 1255 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(3) - (4)].sval));
                           target *t;
@@ -3388,8 +3375,8 @@
                         ;}
     break;
 
-  case 172:
-#line 1279 "pir.y"
+  case 170:
+#line 1273 "pir.y"
     {
                           target *preg = new_reg(lexer, PMC_TYPE, (yyvsp[(3) - (4)].ival));
                           set_target_key(preg, (yyvsp[(4) - (4)].key));
@@ -3398,16 +3385,16 @@
                         ;}
     break;
 
-  case 173:
-#line 1286 "pir.y"
+  case 171:
+#line 1280 "pir.y"
     {
                           set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%T%E", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].expr));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 174:
-#line 1291 "pir.y"
+  case 172:
+#line 1285 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].ival) == 1)
                               set_instrf(lexer, "inc", "%T", (yyvsp[(1) - (3)].targ));
@@ -3420,8 +3407,8 @@
                         ;}
     break;
 
-  case 175:
-#line 1302 "pir.y"
+  case 173:
+#line 1296 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].dval) == 1.0)
                               set_instrf(lexer, "inc", "%T", (yyvsp[(1) - (3)].targ));
@@ -3434,8 +3421,8 @@
                         ;}
     break;
 
-  case 176:
-#line 1313 "pir.y"
+  case 174:
+#line 1307 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].ival) == 1)
                               set_instrf(lexer, "dec", "%T", (yyvsp[(1) - (3)].targ));
@@ -3448,8 +3435,8 @@
                         ;}
     break;
 
-  case 177:
-#line 1324 "pir.y"
+  case 175:
+#line 1318 "pir.y"
     {
                           if ((yyvsp[(3) - (3)].dval) == 1.0)
                               set_instrf(lexer, "dec", "%T", (yyvsp[(1) - (3)].targ));
@@ -3462,32 +3449,32 @@
                         ;}
     break;
 
-  case 178:
-#line 1335 "pir.y"
+  case 176:
+#line 1329 "pir.y"
     {
                           set_instrf(lexer, "add", "%T%T", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 179:
-#line 1340 "pir.y"
+  case 177:
+#line 1334 "pir.y"
     {
                           set_instrf(lexer, "sub", "%T%T", (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 180:
-#line 1345 "pir.y"
+  case 178:
+#line 1339 "pir.y"
     {
                           set_instrf(lexer, (yyvsp[(3) - (4)].sval), "%T%E", (yyvsp[(1) - (4)].targ), (yyvsp[(4) - (4)].expr));
                           get_opinfo(lexer);
                         ;}
     break;
 
-  case 181:
-#line 1350 "pir.y"
+  case 179:
+#line 1344 "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));
@@ -3499,8 +3486,8 @@
                         ;}
     break;
 
-  case 182:
-#line 1360 "pir.y"
+  case 180:
+#line 1354 "pir.y"
     {
                           symbol *sym = find_symbol(lexer, (yyvsp[(1) - (4)].sval));
                           target *t;
@@ -3521,8 +3508,8 @@
                       ;}
     break;
 
-  case 183:
-#line 1379 "pir.y"
+  case 181:
+#line 1373 "pir.y"
     {
                           target *preg = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (4)].ival));
                           set_target_key(preg, (yyvsp[(2) - (4)].key));
@@ -3531,98 +3518,98 @@
                         ;}
     break;
 
-  case 184:
-#line 1413 "pir.y"
+  case 182:
+#line 1407 "pir.y"
     { set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%i%T", (yyvsp[(1) - (3)].ival), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
-  case 185:
-#line 1415 "pir.y"
+  case 183:
+#line 1409 "pir.y"
     { set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%n%T", (yyvsp[(1) - (3)].dval), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
-  case 186:
-#line 1417 "pir.y"
+  case 184:
+#line 1411 "pir.y"
     { set_instrf(lexer, opnames[(yyvsp[(2) - (3)].ival)], "%s%T", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
-  case 187:
-#line 1419 "pir.y"
+  case 185:
+#line 1413 "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 188:
-#line 1421 "pir.y"
+  case 186:
+#line 1415 "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 189:
-#line 1423 "pir.y"
+  case 187:
+#line 1417 "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 190:
-#line 1425 "pir.y"
+  case 188:
+#line 1419 "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 191:
-#line 1427 "pir.y"
+  case 189:
+#line 1421 "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 192:
-#line 1432 "pir.y"
+  case 190:
+#line 1426 "pir.y"
     { get_opinfo(lexer); ;}
     break;
 
-  case 193:
-#line 1441 "pir.y"
+  case 191:
+#line 1435 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, (yyvsp[(3) - (5)].sval), (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 194:
-#line 1443 "pir.y"
+  case 192:
+#line 1437 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "int", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 195:
-#line 1445 "pir.y"
+  case 193:
+#line 1439 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "num", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 196:
-#line 1447 "pir.y"
+  case 194:
+#line 1441 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "pmc", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 197:
-#line 1449 "pir.y"
+  case 195:
+#line 1443 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "string", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 198:
-#line 1451 "pir.y"
+  case 196:
+#line 1445 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "if", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 199:
-#line 1453 "pir.y"
+  case 197:
+#line 1447 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "unless", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 200:
-#line 1455 "pir.y"
+  case 198:
+#line 1449 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "goto", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 201:
-#line 1457 "pir.y"
+  case 199:
+#line 1451 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (5)].ival), 1, "null", (yyvsp[(5) - (5)].sval)); ;}
     break;
 
-  case 202:
-#line 1459 "pir.y"
+  case 200:
+#line 1453 "pir.y"
     {
                           int istrue = evaluate_c(lexer, (yyvsp[(2) - (4)].cval));
                           /* if "unless", invert the true-ness */
@@ -3636,8 +3623,8 @@
                         ;}
     break;
 
-  case 203:
-#line 1471 "pir.y"
+  case 201:
+#line 1465 "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));
@@ -3646,13 +3633,13 @@
                         ;}
     break;
 
-  case 204:
-#line 1478 "pir.y"
+  case 202:
+#line 1472 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 205:
-#line 1480 "pir.y"
+  case 203:
+#line 1474 "pir.y"
     {
                           set_instrf(lexer, (yyvsp[(1) - (4)].ival) ? "unless" : "if", "%T%I", (yyvsp[(2) - (4)].targ), (yyvsp[(4) - (4)].sval));
                           /* set a flag indicating that the 2nd operand is a label */
@@ -3660,58 +3647,58 @@
                         ;}
     break;
 
-  case 206:
-#line 1486 "pir.y"
+  case 204:
+#line 1480 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "int", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 207:
-#line 1488 "pir.y"
+  case 205:
+#line 1482 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "num", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 208:
-#line 1490 "pir.y"
+  case 206:
+#line 1484 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "pmc", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 209:
-#line 1492 "pir.y"
+  case 207:
+#line 1486 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "string", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 210:
-#line 1494 "pir.y"
+  case 208:
+#line 1488 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "if", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 211:
-#line 1496 "pir.y"
+  case 209:
+#line 1490 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "unless", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 212:
-#line 1498 "pir.y"
+  case 210:
+#line 1492 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "goto", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 213:
-#line 1500 "pir.y"
+  case 211:
+#line 1494 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "goto", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 214:
-#line 1502 "pir.y"
+  case 212:
+#line 1496 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "null", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 215:
-#line 1504 "pir.y"
+  case 213:
+#line 1498 "pir.y"
     { create_if_instr(lexer, (yyvsp[(1) - (4)].ival), 0, "null", (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 216:
-#line 1506 "pir.y"
+  case 214:
+#line 1500 "pir.y"
     {
                           if ((yyvsp[(2) - (4)].ival) == COMPUTE_DURING_RUNTIME) {
                              if ((yyvsp[(1) - (4)].ival) == NEED_INVERT_OPNAME) /* "unless" */
@@ -3738,8 +3725,8 @@
                         ;}
     break;
 
-  case 217:
-#line 1537 "pir.y"
+  case 215:
+#line 1531 "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
@@ -3767,8 +3754,8 @@
                         ;}
     break;
 
-  case 218:
-#line 1563 "pir.y"
+  case 216:
+#line 1557 "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));
@@ -3778,8 +3765,8 @@
                         ;}
     break;
 
-  case 219:
-#line 1571 "pir.y"
+  case 217:
+#line 1565 "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));
@@ -3790,8 +3777,8 @@
                         ;}
     break;
 
-  case 220:
-#line 1580 "pir.y"
+  case 218:
+#line 1574 "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));
@@ -3802,71 +3789,71 @@
                         ;}
     break;
 
-  case 221:
-#line 1589 "pir.y"
+  case 219:
+#line 1583 "pir.y"
     { (yyval.ival) = evaluate_i_i((yyvsp[(1) - (3)].ival), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival)); ;}
     break;
 
-  case 222:
-#line 1591 "pir.y"
+  case 220:
+#line 1585 "pir.y"
     { (yyval.ival) = evaluate_i_n((yyvsp[(1) - (3)].ival), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].dval)); ;}
     break;
 
-  case 223:
-#line 1593 "pir.y"
+  case 221:
+#line 1587 "pir.y"
     { (yyval.ival) = evaluate_n_i((yyvsp[(1) - (3)].dval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival)); ;}
     break;
 
-  case 224:
-#line 1595 "pir.y"
+  case 222:
+#line 1589 "pir.y"
     { (yyval.ival) = evaluate_n_n((yyvsp[(1) - (3)].dval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].dval)); ;}
     break;
 
-  case 225:
-#line 1597 "pir.y"
+  case 223:
+#line 1591 "pir.y"
     { (yyval.ival) = evaluate_s_s((yyvsp[(1) - (3)].sval), (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].sval)); ;}
     break;
 
-  case 226:
-#line 1601 "pir.y"
+  case 224:
+#line 1595 "pir.y"
     {
                           yypirerror(yyscanner, lexer, "cannot compare string to %s",
                                      (yyvsp[(3) - (3)].ival) == INT_TYPE ? "integer" : "number");
                         ;}
     break;
 
-  case 227:
-#line 1606 "pir.y"
+  case 225:
+#line 1600 "pir.y"
     { yypirerror(yyscanner, lexer, "cannot compare integer to string"); ;}
     break;
 
-  case 228:
-#line 1608 "pir.y"
+  case 226:
+#line 1602 "pir.y"
     { yypirerror(yyscanner, lexer, "cannot compare number to string"); ;}
     break;
 
-  case 229:
-#line 1612 "pir.y"
+  case 227:
+#line 1606 "pir.y"
     { (yyval.ival) = INT_TYPE; ;}
     break;
 
-  case 230:
-#line 1613 "pir.y"
+  case 228:
+#line 1607 "pir.y"
     { (yyval.ival) = NUM_TYPE; ;}
     break;
 
-  case 231:
-#line 1616 "pir.y"
+  case 229:
+#line 1610 "pir.y"
     { (yyval.ival) = DONT_INVERT_OPNAME; /* no need to invert */ ;}
     break;
 
-  case 232:
-#line 1617 "pir.y"
+  case 230:
+#line 1611 "pir.y"
     { (yyval.ival) = NEED_INVERT_OPNAME; /* yes, invert opname */ ;}
     break;
 
-  case 235:
-#line 1625 "pir.y"
+  case 233:
+#line 1619 "pir.y"
     {
                           set_instrf(lexer, "branch", "%I", (yyvsp[(2) - (3)].sval));
                           set_op_labelflag(lexer, BIT(0)); /* bit 0 means: "1 << 0" */
@@ -3874,38 +3861,38 @@
                         ;}
     break;
 
-  case 236:
-#line 1633 "pir.y"
+  case 234:
+#line 1627 "pir.y"
     { declare_local(lexer, (yyvsp[(2) - (4)].ival), (yyvsp[(3) - (4)].symb)); ;}
     break;
 
-  case 237:
-#line 1637 "pir.y"
+  case 235:
+#line 1631 "pir.y"
     { (yyval.symb) = (yyvsp[(1) - (1)].symb); ;}
     break;
 
-  case 238:
-#line 1639 "pir.y"
+  case 236:
+#line 1633 "pir.y"
     { (yyval.symb) = add_local((yyvsp[(1) - (3)].symb), (yyvsp[(3) - (3)].symb)); ;}
     break;
 
-  case 239:
-#line 1643 "pir.y"
+  case 237:
+#line 1637 "pir.y"
     { (yyval.symb) = new_local(lexer, (yyvsp[(1) - (2)].sval), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
-  case 240:
-#line 1646 "pir.y"
+  case 238:
+#line 1640 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
-  case 241:
-#line 1647 "pir.y"
+  case 239:
+#line 1641 "pir.y"
     { (yyval.ival) = 1; ;}
     break;
 
-  case 242:
-#line 1651 "pir.y"
+  case 240:
+#line 1645 "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)) {
 
@@ -3917,57 +3904,67 @@
                         ;}
     break;
 
-  case 243:
-#line 1666 "pir.y"
+  case 241:
+#line 1660 "pir.y"
     { convert_inv_to_instr(lexer, (yyvsp[(1) - (1)].invo)); ;}
     break;
 
-  case 246:
-#line 1678 "pir.y"
+  case 244:
+#line 1672 "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));
                             ;}
     break;
 
+  case 245:
+#line 1679 "pir.y"
+    { (yyval.argm) = NULL; ;}
+    break;
+
+  case 246:
+#line 1681 "pir.y"
+    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
+    break;
+
   case 247:
 #line 1685 "pir.y"
-    { (yyval.argm) = NULL; ;}
+    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 248:
 #line 1687 "pir.y"
-    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
+    { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
     break;
 
   case 249:
 #line 1691 "pir.y"
-    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
+    { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
   case 250:
-#line 1693 "pir.y"
-    { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
+#line 1695 "pir.y"
+    { (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(2) - (3)].targ), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 251:
 #line 1697 "pir.y"
-    { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
+    { (yyval.invo) = invoke(lexer, CALL_NCI, (yyvsp[(2) - (2)].targ)); ;}
     break;
 
   case 252:
-#line 1701 "pir.y"
-    { (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(2) - (3)].targ), (yyvsp[(3) - (3)].targ)); ;}
+#line 1700 "pir.y"
+    { (yyval.invo) = invoke(lexer, CALL_METHOD, (yyvsp[(2) - (5)].targ), (yyvsp[(5) - (5)].expr)); ;}
     break;
 
   case 253:
-#line 1703 "pir.y"
-    { (yyval.invo) = invoke(lexer, CALL_NCI, (yyvsp[(2) - (2)].targ)); ;}
+#line 1704 "pir.y"
+    { (yyval.targ) = NULL; ;}
     break;
 
   case 254:
 #line 1706 "pir.y"
-    { (yyval.invo) = invoke(lexer, CALL_METHOD, (yyvsp[(2) - (5)].targ), (yyvsp[(5) - (5)].expr)); ;}
+    { (yyval.targ) = (yyvsp[(2) - (2)].targ); ;}
     break;
 
   case 255:
@@ -3977,26 +3974,16 @@
 
   case 256:
 #line 1712 "pir.y"
-    { (yyval.targ) = (yyvsp[(2) - (2)].targ); ;}
+    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 257:
 #line 1716 "pir.y"
-    { (yyval.targ) = NULL; ;}
+    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 258:
 #line 1718 "pir.y"
-    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
-    break;
-
-  case 259:
-#line 1722 "pir.y"
-    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
-    break;
-
-  case 260:
-#line 1724 "pir.y"
     {
                              if ((yyvsp[(2) - (2)].targ))
                                  (yyval.targ) = add_target(lexer, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - (2)].targ));
@@ -4005,33 +3992,33 @@
                            ;}
     break;
 
-  case 261:
-#line 1733 "pir.y"
+  case 259:
+#line 1727 "pir.y"
     { (yyval.targ) = (yyvsp[(2) - (3)].targ); ;}
     break;
 
-  case 262:
-#line 1735 "pir.y"
+  case 260:
+#line 1729 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
-  case 264:
-#line 1743 "pir.y"
+  case 262:
+#line 1737 "pir.y"
     { (yyval.invo) = set_invocation_results(lexer, (yyvsp[(3) - (3)].invo), (yyvsp[(1) - (3)].targ)); ;}
     break;
 
-  case 265:
-#line 1745 "pir.y"
+  case 263:
+#line 1739 "pir.y"
     { (yyval.invo) = set_invocation_results(lexer, (yyvsp[(3) - (3)].invo), (yyvsp[(1) - (3)].targ)); ;}
     break;
 
-  case 266:
-#line 1747 "pir.y"
+  case 264:
+#line 1741 "pir.y"
     {  (yyval.invo) = set_invocation_results(lexer, (yyvsp[(1) - (1)].invo), NULL); ;}
     break;
 
-  case 269:
-#line 1755 "pir.y"
+  case 267:
+#line 1749 "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)) {
@@ -4051,21 +4038,21 @@
                            ;}
     break;
 
-  case 270:
-#line 1775 "pir.y"
+  case 268:
+#line 1769 "pir.y"
     {
                              (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(1) - (2)].targ), NULL);
                              set_invocation_args(lexer, (yyval.invo), (yyvsp[(2) - (2)].argm));
                            ;}
     break;
 
-  case 271:
-#line 1782 "pir.y"
+  case 269:
+#line 1776 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 272:
-#line 1784 "pir.y"
+  case 270:
+#line 1778 "pir.y"
     {
                              symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                              if (sym == NULL)
@@ -4075,8 +4062,8 @@
                            ;}
     break;
 
-  case 273:
-#line 1794 "pir.y"
+  case 271:
+#line 1788 "pir.y"
     { /* check that this identifier was declared */
                              symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
 
@@ -4095,23 +4082,23 @@
                            ;}
     break;
 
-  case 274:
-#line 1811 "pir.y"
+  case 272:
+#line 1805 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival))); ;}
     break;
 
-  case 275:
-#line 1813 "pir.y"
+  case 273:
+#line 1807 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, new_reg(lexer, STRING_TYPE, (yyvsp[(1) - (1)].ival))); ;}
     break;
 
-  case 276:
-#line 1815 "pir.y"
+  case 274:
+#line 1809 "pir.y"
     { (yyval.expr) = expr_from_const(lexer, new_const(lexer, STRING_VAL, (yyvsp[(1) - (1)].sval))); ;}
     break;
 
-  case 277:
-#line 1819 "pir.y"
+  case 275:
+#line 1813 "pir.y"
     {
                              symbol *sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
                              if (sym == NULL)
@@ -4122,96 +4109,96 @@
                            ;}
     break;
 
-  case 278:
-#line 1828 "pir.y"
+  case 276:
+#line 1822 "pir.y"
     { (yyval.targ) = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
-  case 279:
-#line 1833 "pir.y"
+  case 277:
+#line 1827 "pir.y"
     {
                              (yyval.targ) = (yyvsp[(2) - (3)].targ);
                            ;}
     break;
 
+  case 278:
+#line 1833 "pir.y"
+    { (yyval.targ) = NULL; ;}
+    break;
+
+  case 279:
+#line 1835 "pir.y"
+    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
+    break;
+
   case 280:
 #line 1839 "pir.y"
-    { (yyval.targ) = NULL; ;}
+    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
   case 281:
 #line 1841 "pir.y"
-    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
+    { (yyval.targ) = add_target(lexer, (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ)); ;}
     break;
 
   case 282:
 #line 1845 "pir.y"
-    { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
+    { (yyval.targ) = set_param_flag(lexer, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 283:
 #line 1847 "pir.y"
-    { (yyval.targ) = add_target(lexer, (yyvsp[(1) - (3)].targ), (yyvsp[(3) - (3)].targ)); ;}
+    { (yyval.targ) = set_param_alias(lexer, (yyvsp[(1) - (3)].sval)); ;}
     break;
 
   case 284:
 #line 1851 "pir.y"
-    { (yyval.targ) = set_param_flag(lexer, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - (2)].ival)); ;}
+    { (yyval.ival) = 0; ;}
     break;
 
   case 285:
 #line 1853 "pir.y"
-    { (yyval.targ) = set_param_alias(lexer, (yyvsp[(1) - (3)].sval)); ;}
+    { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 286:
 #line 1857 "pir.y"
-    { (yyval.ival) = 0; ;}
+    { (yyval.ival) = TARGET_FLAG_OPTIONAL; ;}
     break;
 
   case 287:
 #line 1859 "pir.y"
-    { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
-    break;
-
-  case 288:
-#line 1863 "pir.y"
-    { (yyval.ival) = TARGET_FLAG_OPTIONAL; ;}
-    break;
-
-  case 289:
-#line 1865 "pir.y"
     { (yyval.ival) = TARGET_FLAG_OPT_FLAG; ;}
     break;
 
-  case 290:
-#line 1867 "pir.y"
+  case 288:
+#line 1861 "pir.y"
     { (yyval.ival) = TARGET_FLAG_SLURPY; ;}
     break;
 
-  case 291:
-#line 1869 "pir.y"
+  case 289:
+#line 1863 "pir.y"
     {
                              (yyval.ival) = TARGET_FLAG_NAMED;
                              set_param_alias(lexer, (yyvsp[(2) - (2)].sval));
                            ;}
     break;
 
-  case 292:
-#line 1879 "pir.y"
+  case 290:
+#line 1873 "pir.y"
     { convert_inv_to_instr(lexer, (yyvsp[(1) - (1)].invo)); ;}
     break;
 
-  case 297:
-#line 1889 "pir.y"
+  case 295:
+#line 1883 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_RETURN);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(2) - (3)].argm));
                             ;}
     break;
 
-  case 298:
-#line 1894 "pir.y"
+  case 296:
+#line 1888 "pir.y"
     { /* was the invocation a method call? then it becomes a method tail
                                * call, otherwise it's just a normal (sub) tail call.
                                */
@@ -4222,200 +4209,200 @@
                             ;}
     break;
 
-  case 299:
-#line 1905 "pir.y"
+  case 297:
+#line 1899 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_YIELD);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(2) - (3)].argm));
                             ;}
     break;
 
-  case 300:
-#line 1912 "pir.y"
+  case 298:
+#line 1906 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
-  case 301:
-#line 1916 "pir.y"
+  case 299:
+#line 1910 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
-  case 302:
-#line 1918 "pir.y"
+  case 300:
+#line 1912 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 303:
-#line 1922 "pir.y"
+  case 301:
+#line 1916 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 304:
-#line 1924 "pir.y"
+  case 302:
+#line 1918 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (3)].argm), (yyvsp[(3) - (3)].argm)); ;}
     break;
 
-  case 307:
-#line 1932 "pir.y"
+  case 305:
+#line 1926 "pir.y"
     { (yyval.argm) = set_arg_alias(lexer, (yyvsp[(1) - (3)].sval)); ;}
     break;
 
-  case 308:
-#line 1936 "pir.y"
+  case 306:
+#line 1930 "pir.y"
     { (yyval.argm) = set_arg_flag((yyval.argm), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
-  case 309:
-#line 1940 "pir.y"
+  case 307:
+#line 1934 "pir.y"
     { (yyval.argm) = set_curarg(lexer, new_argument(lexer, (yyvsp[(1) - (1)].expr)));  ;}
     break;
 
-  case 310:
-#line 1946 "pir.y"
+  case 308:
+#line 1940 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_RETURN);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(3) - (5)].argm));
                             ;}
     break;
 
-  case 311:
-#line 1955 "pir.y"
+  case 309:
+#line 1949 "pir.y"
     {
                               (yyval.invo) = invoke(lexer, CALL_YIELD);
                               set_invocation_args(lexer, (yyval.invo), (yyvsp[(3) - (5)].argm));
                             ;}
     break;
 
-  case 312:
-#line 1962 "pir.y"
+  case 310:
+#line 1956 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
-  case 313:
-#line 1964 "pir.y"
+  case 311:
+#line 1958 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 314:
-#line 1969 "pir.y"
+  case 312:
+#line 1963 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 315:
-#line 1971 "pir.y"
+  case 313:
+#line 1965 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
     break;
 
+  case 314:
+#line 1970 "pir.y"
+    { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
+    break;
+
+  case 315:
+#line 1974 "pir.y"
+    { (yyval.argm) = NULL; ;}
+    break;
+
   case 316:
 #line 1976 "pir.y"
-    { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
+    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 317:
 #line 1980 "pir.y"
-    { (yyval.argm) = NULL; ;}
+    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
   case 318:
 #line 1982 "pir.y"
-    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
+    { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
     break;
 
   case 319:
 #line 1986 "pir.y"
-    { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
+    { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
   case 320:
-#line 1988 "pir.y"
-    { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - (2)].argm)); ;}
+#line 1991 "pir.y"
+    { (yyval.ival) = 0; ;}
     break;
 
   case 321:
-#line 1992 "pir.y"
-    { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
+#line 1993 "pir.y"
+    { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
   case 322:
 #line 1997 "pir.y"
-    { (yyval.ival) = 0; ;}
+    { (yyval.ival) = ARG_FLAG_FLAT; ;}
     break;
 
   case 323:
 #line 1999 "pir.y"
-    { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
-    break;
-
-  case 324:
-#line 2003 "pir.y"
-    { (yyval.ival) = ARG_FLAG_FLAT; ;}
-    break;
-
-  case 325:
-#line 2005 "pir.y"
     {
                                (yyval.ival) = ARG_FLAG_NAMED;
                                set_arg_alias(lexer, (yyvsp[(2) - (2)].sval));
                              ;}
     break;
 
-  case 326:
-#line 2012 "pir.y"
+  case 324:
+#line 2006 "pir.y"
     { (yyval.sval) = NULL; ;}
     break;
 
-  case 327:
-#line 2014 "pir.y"
+  case 325:
+#line 2008 "pir.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].sval); ;}
     break;
 
-  case 328:
-#line 2018 "pir.y"
+  case 326:
+#line 2012 "pir.y"
     { (yyval.sval) = (yyvsp[(2) - (3)].sval); ;}
     break;
 
-  case 330:
-#line 2025 "pir.y"
+  case 328:
+#line 2019 "pir.y"
     { store_global_constant(lexer, (yyvsp[(2) - (2)].cdec)); ;}
     break;
 
-  case 333:
-#line 2033 "pir.y"
+  case 331:
+#line 2027 "pir.y"
     { (yyval.cdec) = (yyvsp[(2) - (2)].cdec); ;}
     break;
 
-  case 336:
-#line 2041 "pir.y"
+  case 334:
+#line 2035 "pir.y"
     { store_global_constant(lexer, (yyvsp[(2) - (2)].cdec)); ;}
     break;
 
-  case 337:
-#line 2045 "pir.y"
+  case 335:
+#line 2039 "pir.y"
     { (yyval.cdec) = new_named_const(lexer, INT_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].ival)); ;}
     break;
 
-  case 338:
-#line 2047 "pir.y"
+  case 336:
+#line 2041 "pir.y"
     { (yyval.cdec) = new_named_const(lexer, NUM_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].dval)); ;}
     break;
 
-  case 339:
-#line 2049 "pir.y"
+  case 337:
+#line 2043 "pir.y"
     { (yyval.cdec) = new_named_const(lexer, STRING_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 340:
-#line 2051 "pir.y"
+  case 338:
+#line 2045 "pir.y"
     { (yyval.cdec) = new_named_const(lexer, USTRING_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].ustr)); ;}
     break;
 
-  case 341:
-#line 2055 "pir.y"
+  case 339:
+#line 2049 "pir.y"
     { (yyval.cdec) = new_pmc_const(lexer, (yyvsp[(1) - (4)].sval), (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].cval)); ;}
     break;
 
-  case 343:
-#line 2060 "pir.y"
+  case 341:
+#line 2054 "pir.y"
     { /* this alternative is necessary, otherwise the parser
                                * just stops when assigning an identifier to a pmc
                                * const, without an error message. That may be
@@ -4425,98 +4412,98 @@
                             ;}
     break;
 
-  case 344:
-#line 2072 "pir.y"
+  case 342:
+#line 2066 "pir.y"
     { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
     break;
 
-  case 345:
-#line 2073 "pir.y"
+  case 343:
+#line 2067 "pir.y"
     { (yyval.expr) = expr_from_const(lexer, (yyvsp[(1) - (1)].cval)); ;}
     break;
 
-  case 346:
-#line 2077 "pir.y"
+  case 344:
+#line 2071 "pir.y"
     { (yyval.cval) = new_const(lexer, INT_VAL, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
-  case 347:
-#line 2078 "pir.y"
+  case 345:
+#line 2072 "pir.y"
     { (yyval.cval) = new_const(lexer, NUM_VAL, (yyvsp[(1) - (1)].dval)); ;}
     break;
 
-  case 348:
-#line 2079 "pir.y"
+  case 346:
+#line 2073 "pir.y"
     { (yyval.cval) = (yyvsp[(1) - (1)].cval); ;}
     break;
 
-  case 349:
-#line 2082 "pir.y"
+  case 347:
+#line 2076 "pir.y"
     { (yyval.cval) = new_const(lexer, STRING_VAL, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 350:
-#line 2083 "pir.y"
+  case 348:
+#line 2077 "pir.y"
     { (yyval.cval) = new_const(lexer, USTRING_VAL, (yyvsp[(1) - (1)].ustr)); ;}
     break;
 
-  case 351:
-#line 2086 "pir.y"
+  case 349:
+#line 2080 "pir.y"
     { (yyval.ival) = OP_NE; ;}
     break;
 
-  case 352:
-#line 2087 "pir.y"
+  case 350:
+#line 2081 "pir.y"
     { (yyval.ival) = OP_EQ; ;}
     break;
 
-  case 353:
-#line 2088 "pir.y"
+  case 351:
+#line 2082 "pir.y"
     { (yyval.ival) = OP_LT; ;}
     break;
 
-  case 354:
-#line 2089 "pir.y"
+  case 352:
+#line 2083 "pir.y"
     { (yyval.ival) = OP_LE; ;}
     break;
 
-  case 355:
-#line 2090 "pir.y"
+  case 353:
+#line 2084 "pir.y"
     { (yyval.ival) = OP_GE; ;}
     break;
 
-  case 356:
-#line 2091 "pir.y"
+  case 354:
+#line 2085 "pir.y"
     { (yyval.ival) = OP_GT; ;}
     break;
 
-  case 357:
-#line 2094 "pir.y"
+  case 355:
+#line 2088 "pir.y"
     { (yyval.ival) = INT_TYPE; ;}
     break;
 
-  case 358:
-#line 2095 "pir.y"
+  case 356:
+#line 2089 "pir.y"
     { (yyval.ival) = NUM_TYPE; ;}
     break;
 
-  case 359:
-#line 2096 "pir.y"
+  case 357:
+#line 2090 "pir.y"
     { (yyval.ival) = PMC_TYPE; ;}
     break;
 
-  case 360:
-#line 2097 "pir.y"
+  case 358:
+#line 2091 "pir.y"
     { (yyval.ival) = STRING_TYPE; ;}
     break;
 
-  case 361:
-#line 2105 "pir.y"
+  case 359:
+#line 2099 "pir.y"
     { set_curtarget(lexer, (yyvsp[(1) - (1)].targ));  ;}
     break;
 
-  case 363:
-#line 2109 "pir.y"
+  case 361:
+#line 2103 "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) {
@@ -4530,278 +4517,278 @@
                          ;}
     break;
 
-  case 364:
-#line 2122 "pir.y"
+  case 362:
+#line 2116 "pir.y"
     { (yyval.targ) = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival));    ;}
     break;
 
-  case 365:
-#line 2123 "pir.y"
+  case 363:
+#line 2117 "pir.y"
     { (yyval.targ) = new_reg(lexer, NUM_TYPE, (yyvsp[(1) - (1)].ival));    ;}
     break;
 
-  case 366:
-#line 2124 "pir.y"
+  case 364:
+#line 2118 "pir.y"
     { (yyval.targ) = new_reg(lexer, INT_TYPE, (yyvsp[(1) - (1)].ival));    ;}
     break;
 
-  case 367:
-#line 2125 "pir.y"
+  case 365:
+#line 2119 "pir.y"
     { (yyval.targ) = new_reg(lexer, STRING_TYPE, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
-  case 370:
-#line 2133 "pir.y"
+  case 368:
+#line 2127 "pir.y"
     { (yyval.sval) = "if"; ;}
     break;
 
-  case 371:
-#line 2134 "pir.y"
+  case 369:
+#line 2128 "pir.y"
     { (yyval.sval) = "unless"; ;}
     break;
 
-  case 372:
-#line 2135 "pir.y"
+  case 370:
+#line 2129 "pir.y"
     { (yyval.sval) = "goto"; ;}
     break;
 
-  case 373:
-#line 2136 "pir.y"
+  case 371:
+#line 2130 "pir.y"
     { (yyval.sval) = "int"; ;}
     break;
 
-  case 374:
-#line 2137 "pir.y"
+  case 372:
+#line 2131 "pir.y"
     { (yyval.sval) = "num"; ;}
     break;
 
-  case 375:
-#line 2138 "pir.y"
+  case 373:
+#line 2132 "pir.y"
     { (yyval.sval) = "string"; ;}
     break;
 
-  case 376:
-#line 2139 "pir.y"
+  case 374:
+#line 2133 "pir.y"
     { (yyval.sval) = "pmc"; ;}
     break;
 
-  case 377:
-#line 2140 "pir.y"
+  case 375:
+#line 2134 "pir.y"
     { (yyval.sval) = "null"; ;}
     break;
 
-  case 378:
-#line 2143 "pir.y"
+  case 376:
+#line 2137 "pir.y"
     { (yyval.sval) = "neg"; ;}
     break;
 
-  case 379:
-#line 2144 "pir.y"
+  case 377:
+#line 2138 "pir.y"
     { (yyval.sval) = "not"; ;}
     break;
 
-  case 380:
-#line 2145 "pir.y"
+  case 378:
+#line 2139 "pir.y"
     { (yyval.sval) = "bnot"; ;}
     break;
 
-  case 381:
-#line 2148 "pir.y"
+  case 379:
+#line 2142 "pir.y"
     { (yyval.ival) = OP_ADD; ;}
     break;
 
-  case 382:
-#line 2149 "pir.y"
+  case 380:
+#line 2143 "pir.y"
     { (yyval.ival) = OP_SUB; ;}
     break;
 
-  case 383:
-#line 2150 "pir.y"
+  case 381:
+#line 2144 "pir.y"
     { (yyval.ival) = OP_DIV; ;}
     break;
 
-  case 384:
-#line 2151 "pir.y"
+  case 382:
+#line 2145 "pir.y"
     { (yyval.ival) = OP_MUL; ;}
     break;
 
-  case 385:
-#line 2152 "pir.y"
+  case 383:
+#line 2146 "pir.y"
     { (yyval.ival) = OP_MOD; ;}
     break;
 
-  case 386:
-#line 2153 "pir.y"
+  case 384:
+#line 2147 "pir.y"
     { (yyval.ival) = OP_BOR; ;}
     break;
 
-  case 387:
-#line 2154 "pir.y"
+  case 385:
+#line 2148 "pir.y"
     { (yyval.ival) = OP_BAND; ;}
     break;
 
-  case 388:
-#line 2155 "pir.y"
+  case 386:
+#line 2149 "pir.y"
     { (yyval.ival) = OP_BXOR; ;}
     break;
 
-  case 389:
-#line 2156 "pir.y"
+  case 387:
+#line 2150 "pir.y"
     { (yyval.ival) = OP_POW; ;}
     break;
 
-  case 390:
-#line 2157 "pir.y"
+  case 388:
+#line 2151 "pir.y"
     { (yyval.ival) = OP_CONCAT; ;}
     break;
 
-  case 391:
-#line 2158 "pir.y"
+  case 389:
+#line 2152 "pir.y"
     { (yyval.ival) = OP_LSR; ;}
     break;
 
-  case 392:
-#line 2159 "pir.y"
+  case 390:
+#line 2153 "pir.y"
     { (yyval.ival) = OP_SHR; ;}
     break;
 
-  case 393:
-#line 2160 "pir.y"
+  case 391:
+#line 2154 "pir.y"
     { (yyval.ival) = OP_SHL; ;}
     break;
 
-  case 394:
-#line 2161 "pir.y"
+  case 392:
+#line 2155 "pir.y"
     { (yyval.ival) = OP_OR; ;}
     break;
 
-  case 395:
-#line 2162 "pir.y"
+  case 393:
+#line 2156 "pir.y"
     { (yyval.ival) = OP_AND; ;}
     break;
 
-  case 396:
-#line 2163 "pir.y"
+  case 394:
+#line 2157 "pir.y"
     { (yyval.ival) = OP_FDIV; ;}
     break;
 
-  case 397:
-#line 2164 "pir.y"
+  case 395:
+#line 2158 "pir.y"
     { (yyval.ival) = OP_XOR; ;}
     break;
 
-  case 398:
-#line 2165 "pir.y"
+  case 396:
+#line 2159 "pir.y"
     { (yyval.ival) = OP_ISEQ; ;}
     break;
 
-  case 399:
-#line 2166 "pir.y"
+  case 397:
+#line 2160 "pir.y"
     { (yyval.ival) = OP_ISLE; ;}
     break;
 
-  case 400:
-#line 2167 "pir.y"
+  case 398:
+#line 2161 "pir.y"
     { (yyval.ival) = OP_ISLT; ;}
     break;
 
-  case 401:
-#line 2168 "pir.y"
+  case 399:
+#line 2162 "pir.y"
     { (yyval.ival) = OP_ISGE; ;}
     break;
 
-  case 402:
-#line 2169 "pir.y"
+  case 400:
+#line 2163 "pir.y"
     { (yyval.ival) = OP_ISGT; ;}
     break;
 
-  case 403:
-#line 2170 "pir.y"
+  case 401:
+#line 2164 "pir.y"
     { (yyval.ival) = OP_ISNE; ;}
     break;
 
-  case 404:
-#line 2176 "pir.y"
+  case 402:
+#line 2170 "pir.y"
     { (yyval.ival) = OP_MUL; ;}
     break;
 
-  case 405:
-#line 2177 "pir.y"
+  case 403:
+#line 2171 "pir.y"
     { (yyval.ival) = OP_MOD; ;}
     break;
 
-  case 406:
-#line 2178 "pir.y"
+  case 404:
+#line 2172 "pir.y"
     { (yyval.ival) = OP_POW; ;}
     break;
 
-  case 407:
-#line 2179 "pir.y"
+  case 405:
+#line 2173 "pir.y"
     { (yyval.ival) = OP_DIV; ;}
     break;
 
-  case 408:
-#line 2180 "pir.y"
+  case 406:
+#line 2174 "pir.y"
     { (yyval.ival) = OP_FDIV; ;}
     break;
 
-  case 409:
-#line 2181 "pir.y"
+  case 407:
+#line 2175 "pir.y"
     { (yyval.ival) = OP_BOR; ;}
     break;
 
-  case 410:
-#line 2182 "pir.y"
+  case 408:
+#line 2176 "pir.y"
     { (yyval.ival) = OP_BAND; ;}
     break;
 
-  case 411:
-#line 2183 "pir.y"
+  case 409:
+#line 2177 "pir.y"
     { (yyval.ival) = OP_BXOR; ;}
     break;
 
-  case 412:
-#line 2184 "pir.y"
+  case 410:
+#line 2178 "pir.y"
     { (yyval.ival) = OP_CONCAT; ;}
     break;
 
-  case 413:
-#line 2185 "pir.y"
+  case 411:
+#line 2179 "pir.y"
     { (yyval.ival) = OP_SHR; ;}
     break;
 
-  case 414:
-#line 2186 "pir.y"
+  case 412:
+#line 2180 "pir.y"
     { (yyval.ival) = OP_SHL; ;}
     break;
 
-  case 415:
-#line 2187 "pir.y"
+  case 413:
+#line 2181 "pir.y"
     { (yyval.ival) = OP_LSR; ;}
     break;
 
-  case 417:
-#line 2208 "pir.y"
+  case 415:
+#line 2202 "pir.y"
     { new_subr(lexer, "@start"); ;}
     break;
 
-  case 426:
-#line 2224 "pir.y"
+  case 424:
+#line 2218 "pir.y"
     { set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
     break;
 
-  case 431:
-#line 2234 "pir.y"
+  case 429:
+#line 2228 "pir.y"
     { set_sub_name(lexer, (yyvsp[(3) - (3)].sval)); ;}
     break;
 
-  case 432:
-#line 2238 "pir.y"
+  case 430:
+#line 2232 "pir.y"
     { new_subr(lexer, NULL); ;}
     break;
 
-  case 433:
-#line 2243 "pir.y"
+  case 431:
+#line 2237 "pir.y"
     {
 
                                   if (is_parrot_op(lexer, (yyvsp[(1) - (3)].sval))) {
@@ -4816,7 +4803,7 @@
 
 
 /* Line 1267 of yacc.c.  */
-#line 4820 "pirparser.c"
+#line 4807 "pirparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5030,7 +5017,7 @@
 }
 
 
-#line 2257 "pir.y"
+#line 2251 "pir.y"
 
 
 

Modified: trunk/compilers/pirc/src/pirparser.h
==============================================================================
--- trunk/compilers/pirc/src/pirparser.h	Thu Feb 12 11:35:38 2009	(r36626)
+++ trunk/compilers/pirc/src/pirparser.h	Thu Feb 12 11:39:41 2009	(r36627)
@@ -40,242 +40,240 @@
       know about them.  */
    enum yytokentype {
      TK_HLL = 258,
-     TK_HLL_MAP = 259,
-     TK_LOADLIB = 260,
-     TK_SUB = 261,
-     TK_END = 262,
-     TK_PARAM = 263,
-     TK_LEX = 264,
-     TK_LINE = 265,
-     TK_FILE = 266,
-     TK_LOCAL = 267,
-     TK_NAMESPACE = 268,
-     TK_INVOCANT = 269,
-     TK_METH_CALL = 270,
-     TK_GLOBALCONST = 271,
-     TK_CONST = 272,
-     TK_RETURN = 273,
-     TK_YIELD = 274,
-     TK_SET_YIELD = 275,
-     TK_SET_RETURN = 276,
-     TK_BEGIN_YIELD = 277,
-     TK_END_YIELD = 278,
-     TK_BEGIN_RETURN = 279,
-     TK_END_RETURN = 280,
-     TK_BEGIN_CALL = 281,
-     TK_END_CALL = 282,
-     TK_GET_RESULTS = 283,
-     TK_CALL = 284,
-     TK_SET_ARG = 285,
-     TK_GET_RESULT = 286,
-     TK_NCI_CALL = 287,
-     TK_TAILCALL = 288,
-     TK_ANNOTATE = 289,
-     TK_NL = 290,
-     TK_LABEL = 291,
-     TK_IDENT = 292,
-     TK_INT = 293,
-     TK_NUM = 294,
-     TK_PMC = 295,
-     TK_STRING = 296,
-     TK_IF = 297,
-     TK_UNLESS = 298,
-     TK_NULL = 299,
-     TK_GOTO = 300,
-     TK_STRINGC = 301,
-     TK_USTRINGC = 302,
-     TK_INTC = 303,
-     TK_NUMC = 304,
-     TK_PREG = 305,
-     TK_NREG = 306,
-     TK_SREG = 307,
-     TK_IREG = 308,
-     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_FLAG_LOOKAHEAD = 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_LOADLIB = 259,
+     TK_SUB = 260,
+     TK_END = 261,
+     TK_PARAM = 262,
+     TK_LEX = 263,
+     TK_LINE = 264,
+     TK_FILE = 265,
+     TK_LOCAL = 266,
+     TK_NAMESPACE = 267,
+     TK_INVOCANT = 268,
+     TK_METH_CALL = 269,
+     TK_GLOBALCONST = 270,
+     TK_CONST = 271,
+     TK_RETURN = 272,
+     TK_YIELD = 273,
+     TK_SET_YIELD = 274,
+     TK_SET_RETURN = 275,
+     TK_BEGIN_YIELD = 276,
+     TK_END_YIELD = 277,
+     TK_BEGIN_RETURN = 278,
+     TK_END_RETURN = 279,
+     TK_BEGIN_CALL = 280,
+     TK_END_CALL = 281,
+     TK_GET_RESULTS = 282,
+     TK_CALL = 283,
+     TK_SET_ARG = 284,
+     TK_GET_RESULT = 285,
+     TK_NCI_CALL = 286,
+     TK_TAILCALL = 287,
+     TK_ANNOTATE = 288,
+     TK_NL = 289,
+     TK_LABEL = 290,
+     TK_IDENT = 291,
+     TK_INT = 292,
+     TK_NUM = 293,
+     TK_PMC = 294,
+     TK_STRING = 295,
+     TK_IF = 296,
+     TK_UNLESS = 297,
+     TK_NULL = 298,
+     TK_GOTO = 299,
+     TK_STRINGC = 300,
+     TK_USTRINGC = 301,
+     TK_INTC = 302,
+     TK_NUMC = 303,
+     TK_PREG = 304,
+     TK_NREG = 305,
+     TK_SREG = 306,
+     TK_IREG = 307,
+     TK_ARROW = 308,
+     TK_NE = 309,
+     TK_EQ = 310,
+     TK_LT = 311,
+     TK_LE = 312,
+     TK_GT = 313,
+     TK_GE = 314,
+     TK_USHIFT = 315,
+     TK_RSHIFT = 316,
+     TK_LSHIFT = 317,
+     TK_FDIV = 318,
+     TK_OR = 319,
+     TK_AND = 320,
+     TK_XOR = 321,
+     TK_CONC = 322,
+     TK_ASSIGN_USHIFT = 323,
+     TK_ASSIGN_RSHIFT = 324,
+     TK_ASSIGN_LSHIFT = 325,
+     TK_ASSIGN_INC = 326,
+     TK_ASSIGN_DEC = 327,
+     TK_ASSIGN_MUL = 328,
+     TK_ASSIGN_MOD = 329,
+     TK_ASSIGN_POW = 330,
+     TK_ASSIGN_DIV = 331,
+     TK_ASSIGN_BOR = 332,
+     TK_ASSIGN_BAND = 333,
+     TK_ASSIGN_FDIV = 334,
+     TK_ASSIGN_BNOT = 335,
+     TK_ASSIGN_CONC = 336,
+     TK_FLAG_INIT = 337,
+     TK_FLAG_LOAD = 338,
+     TK_FLAG_MAIN = 339,
+     TK_FLAG_ANON = 340,
+     TK_FLAG_METHOD = 341,
+     TK_FLAG_OUTER = 342,
+     TK_FLAG_VTABLE = 343,
+     TK_FLAG_LEX = 344,
+     TK_FLAG_MULTI = 345,
+     TK_FLAG_POSTCOMP = 346,
+     TK_FLAG_IMMEDIATE = 347,
+     TK_FLAG_SUBID = 348,
+     TK_FLAG_INSTANCEOF = 349,
+     TK_FLAG_NSENTRY = 350,
+     TK_FLAG_UNIQUE_REG = 351,
+     TK_FLAG_NAMED = 352,
+     TK_FLAG_SLURPY = 353,
+     TK_FLAG_FLAT = 354,
+     TK_FLAG_OPTIONAL = 355,
+     TK_FLAG_OPT_FLAG = 356,
+     TK_FLAG_INVOCANT = 357,
+     TK_FLAG_LOOKAHEAD = 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.  */
 #define TK_HLL 258
-#define TK_HLL_MAP 259
-#define TK_LOADLIB 260
-#define TK_SUB 261
-#define TK_END 262
-#define TK_PARAM 263
-#define TK_LEX 264
-#define TK_LINE 265
-#define TK_FILE 266
-#define TK_LOCAL 267
-#define TK_NAMESPACE 268
-#define TK_INVOCANT 269
-#define TK_METH_CALL 270
-#define TK_GLOBALCONST 271
-#define TK_CONST 272
-#define TK_RETURN 273
-#define TK_YIELD 274
-#define TK_SET_YIELD 275
-#define TK_SET_RETURN 276
-#define TK_BEGIN_YIELD 277
-#define TK_END_YIELD 278
-#define TK_BEGIN_RETURN 279
-#define TK_END_RETURN 280
-#define TK_BEGIN_CALL 281
-#define TK_END_CALL 282
-#define TK_GET_RESULTS 283
-#define TK_CALL 284
-#define TK_SET_ARG 285
-#define TK_GET_RESULT 286
-#define TK_NCI_CALL 287
-#define TK_TAILCALL 288
-#define TK_ANNOTATE 289
-#define TK_NL 290
-#define TK_LABEL 291
-#define TK_IDENT 292
-#define TK_INT 293
-#define TK_NUM 294
-#define TK_PMC 295
-#define TK_STRING 296
-#define TK_IF 297
-#define TK_UNLESS 298
-#define TK_NULL 299
-#define TK_GOTO 300
-#define TK_STRINGC 301
-#define TK_USTRINGC 302
-#define TK_INTC 303
-#define TK_NUMC 304
-#define TK_PREG 305
-#define TK_NREG 306
-#define TK_SREG 307
-#define TK_IREG 308
-#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_FLAG_LOOKAHEAD 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_LOADLIB 259
+#define TK_SUB 260
+#define TK_END 261
+#define TK_PARAM 262
+#define TK_LEX 263
+#define TK_LINE 264
+#define TK_FILE 265
+#define TK_LOCAL 266
+#define TK_NAMESPACE 267
+#define TK_INVOCANT 268
+#define TK_METH_CALL 269
+#define TK_GLOBALCONST 270
+#define TK_CONST 271
+#define TK_RETURN 272
+#define TK_YIELD 273
+#define TK_SET_YIELD 274
+#define TK_SET_RETURN 275
+#define TK_BEGIN_YIELD 276
+#define TK_END_YIELD 277
+#define TK_BEGIN_RETURN 278
+#define TK_END_RETURN 279
+#define TK_BEGIN_CALL 280
+#define TK_END_CALL 281
+#define TK_GET_RESULTS 282
+#define TK_CALL 283
+#define TK_SET_ARG 284
+#define TK_GET_RESULT 285
+#define TK_NCI_CALL 286
+#define TK_TAILCALL 287
+#define TK_ANNOTATE 288
+#define TK_NL 289
+#define TK_LABEL 290
+#define TK_IDENT 291
+#define TK_INT 292
+#define TK_NUM 293
+#define TK_PMC 294
+#define TK_STRING 295
+#define TK_IF 296
+#define TK_UNLESS 297
+#define TK_NULL 298
+#define TK_GOTO 299
+#define TK_STRINGC 300
+#define TK_USTRINGC 301
+#define TK_INTC 302
+#define TK_NUMC 303
+#define TK_PREG 304
+#define TK_NREG 305
+#define TK_SREG 306
+#define TK_IREG 307
+#define TK_ARROW 308
+#define TK_NE 309
+#define TK_EQ 310
+#define TK_LT 311
+#define TK_LE 312
+#define TK_GT 313
+#define TK_GE 314
+#define TK_USHIFT 315
+#define TK_RSHIFT 316
+#define TK_LSHIFT 317
+#define TK_FDIV 318
+#define TK_OR 319
+#define TK_AND 320
+#define TK_XOR 321
+#define TK_CONC 322
+#define TK_ASSIGN_USHIFT 323
+#define TK_ASSIGN_RSHIFT 324
+#define TK_ASSIGN_LSHIFT 325
+#define TK_ASSIGN_INC 326
+#define TK_ASSIGN_DEC 327
+#define TK_ASSIGN_MUL 328
+#define TK_ASSIGN_MOD 329
+#define TK_ASSIGN_POW 330
+#define TK_ASSIGN_DIV 331
+#define TK_ASSIGN_BOR 332
+#define TK_ASSIGN_BAND 333
+#define TK_ASSIGN_FDIV 334
+#define TK_ASSIGN_BNOT 335
+#define TK_ASSIGN_CONC 336
+#define TK_FLAG_INIT 337
+#define TK_FLAG_LOAD 338
+#define TK_FLAG_MAIN 339
+#define TK_FLAG_ANON 340
+#define TK_FLAG_METHOD 341
+#define TK_FLAG_OUTER 342
+#define TK_FLAG_VTABLE 343
+#define TK_FLAG_LEX 344
+#define TK_FLAG_MULTI 345
+#define TK_FLAG_POSTCOMP 346
+#define TK_FLAG_IMMEDIATE 347
+#define TK_FLAG_SUBID 348
+#define TK_FLAG_INSTANCEOF 349
+#define TK_FLAG_NSENTRY 350
+#define TK_FLAG_UNIQUE_REG 351
+#define TK_FLAG_NAMED 352
+#define TK_FLAG_SLURPY 353
+#define TK_FLAG_FLAT 354
+#define TK_FLAG_OPTIONAL 355
+#define TK_FLAG_OPT_FLAG 356
+#define TK_FLAG_INVOCANT 357
+#define TK_FLAG_LOOKAHEAD 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
 
 
 
@@ -302,7 +300,7 @@
     struct macro_param *pval;
 }
 /* Line 1489 of yacc.c.  */
-#line 306 "pirparser.h"
+#line 304 "pirparser.h"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1


More information about the parrot-commits mailing list