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

[svn:parrot] r35027 - branches/bcanno/compilers/imcc

From:
jonathan
Date:
January 6, 2009 05:17
Subject:
[svn:parrot] r35027 - branches/bcanno/compilers/imcc
Message ID:
20090106131715.DAD88CB9F9@x12.develooper.com
Author: jonathan
Date: Tue Jan  6 05:17:14 2009
New Revision: 35027

Modified:
   branches/bcanno/compilers/imcc/imcc.y
   branches/bcanno/compilers/imcc/imcparser.c
   branches/bcanno/compilers/imcc/imcparser.h

Log:
[imcc] .annotate now has a comma in it.

Modified: branches/bcanno/compilers/imcc/imcc.y
==============================================================================
--- branches/bcanno/compilers/imcc/imcc.y	(original)
+++ branches/bcanno/compilers/imcc/imcc.y	Tue Jan  6 05:17:14 2009
@@ -929,12 +929,12 @@
    ;
 
 annotate_directive:
-    ANNOTATE STRINGC const
+    ANNOTATE STRINGC COMMA const
         {
           /* We'll want to store an entry while emitting instructions, so just
            * store annotation like it's an instruction. */
           SymReg * const key = mk_const(interp, $2, 'S');
-          $$ = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate",  2, key, $3);
+          $$ = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, $4);
           mem_sys_free($2);
         }
     ;

Modified: branches/bcanno/compilers/imcc/imcparser.c
==============================================================================
--- branches/bcanno/compilers/imcc/imcparser.c	(original)
+++ branches/bcanno/compilers/imcc/imcparser.c	Tue Jan  6 05:17:14 2009
@@ -1128,7 +1128,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 784 "compilers/imcc/imcc.y"
+#line 785 "compilers/imcc/imcc.y"
 {
     IdList * idlist;
     int t;
@@ -1137,7 +1137,7 @@
     Instruction *i;
 }
 /* Line 187 of yacc.c.  */
-#line 1129 "compilers/imcc/imcparser.c"
+#line 1130 "compilers/imcc/imcparser.c"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -1150,7 +1150,7 @@
 
 
 /* Line 216 of yacc.c.  */
-#line 1142 "compilers/imcc/imcparser.c"
+#line 1143 "compilers/imcc/imcparser.c"
 
 #ifdef short
 # undef short
@@ -1365,7 +1365,7 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  33
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   708
+#define YYLAST   703
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  138
@@ -1374,7 +1374,7 @@
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  343
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  555
+#define YYNSTATES  556
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -1432,40 +1432,40 @@
 static const yytype_uint16 yyprhs[] =
 {
        0,     0,     3,     5,     7,    10,    12,    14,    16,    18,
-      21,    23,    25,    27,    30,    34,    40,    44,    48,    51,
-      56,    57,    64,    65,    72,    73,    80,    82,    84,    86,
-      89,    93,    96,    98,   100,   102,   104,   106,   107,   111,
-     112,   117,   120,   125,   126,   128,   129,   134,   135,   137,
-     141,   145,   148,   149,   150,   151,   162,   163,   165,   169,
-     170,   174,   178,   183,   188,   193,   195,   200,   202,   207,
-     209,   214,   219,   221,   226,   227,   231,   233,   235,   237,
-     239,   241,   243,   245,   249,   250,   252,   253,   263,   264,
-     267,   268,   272,   273,   275,   277,   280,   282,   284,   286,
-     288,   290,   292,   294,   296,   298,   300,   302,   304,   306,
-     308,   314,   318,   322,   326,   330,   336,   342,   343,   347,
-     350,   351,   355,   359,   360,   365,   366,   369,   371,   373,
-     375,   377,   382,   384,   385,   391,   393,   394,   400,   401,
-     404,   408,   409,   412,   416,   420,   424,   425,   431,   433,
-     435,   436,   438,   442,   446,   452,   454,   457,   458,   461,
-     464,   466,   468,   470,   472,   473,   475,   478,   480,   482,
-     486,   489,   491,   495,   498,   499,   501,   503,   505,   506,
-     511,   516,   517,   524,   526,   527,   534,   537,   540,   543,
-     546,   548,   550,   552,   554,   555,   557,   559,   561,   563,
-     565,   569,   574,   580,   587,   594,   601,   609,   614,   619,
-     624,   631,   638,   646,   651,   658,   666,   670,   671,   681,
-     683,   685,   687,   691,   693,   695,   697,   699,   701,   703,
-     705,   707,   709,   711,   713,   715,   717,   719,   721,   723,
-     725,   727,   729,   731,   733,   735,   737,   739,   741,   743,
-     744,   750,   754,   756,   758,   760,   762,   764,   766,   768,
-     770,   772,   774,   776,   778,   780,   785,   787,   789,   791,
-     793,   797,   801,   805,   806,   812,   813,   817,   819,   825,
-     829,   832,   833,   836,   838,   840,   845,   848,   852,   858,
-     860,   864,   865,   867,   869,   876,   882,   887,   892,   899,
-     905,   907,   909,   911,   913,   915,   917,   919,   921,   923,
-     925,   926,   928,   932,   934,   936,   941,   945,   947,   949,
-     951,   953,   955,   957,   959,   961,   963,   965,   967,   968,
-     971,   972,   975,   977,   981,   983,   985,   987,   989,   991,
-     993,   995,   997,   999
+      21,    23,    25,    27,    30,    34,    40,    44,    49,    52,
+      57,    58,    65,    66,    73,    74,    81,    83,    85,    87,
+      90,    94,    97,    99,   101,   103,   105,   107,   108,   112,
+     113,   118,   121,   126,   127,   129,   130,   135,   136,   138,
+     142,   146,   149,   150,   151,   152,   163,   164,   166,   170,
+     171,   175,   179,   184,   189,   194,   196,   201,   203,   208,
+     210,   215,   220,   222,   227,   228,   232,   234,   236,   238,
+     240,   242,   244,   246,   250,   251,   253,   254,   264,   265,
+     268,   269,   273,   274,   276,   278,   281,   283,   285,   287,
+     289,   291,   293,   295,   297,   299,   301,   303,   305,   307,
+     309,   315,   319,   323,   327,   331,   337,   343,   344,   348,
+     351,   352,   356,   360,   361,   366,   367,   370,   372,   374,
+     376,   378,   383,   385,   386,   392,   394,   395,   401,   402,
+     405,   409,   410,   413,   417,   421,   425,   426,   432,   434,
+     436,   437,   439,   443,   447,   453,   455,   458,   459,   462,
+     465,   467,   469,   471,   473,   474,   476,   479,   481,   483,
+     487,   490,   492,   496,   499,   500,   502,   504,   506,   507,
+     512,   517,   518,   525,   527,   528,   535,   538,   541,   544,
+     547,   549,   551,   553,   555,   556,   558,   560,   562,   564,
+     566,   570,   575,   581,   588,   595,   602,   610,   615,   620,
+     625,   632,   639,   647,   652,   659,   667,   671,   672,   682,
+     684,   686,   688,   692,   694,   696,   698,   700,   702,   704,
+     706,   708,   710,   712,   714,   716,   718,   720,   722,   724,
+     726,   728,   730,   732,   734,   736,   738,   740,   742,   744,
+     745,   751,   755,   757,   759,   761,   763,   765,   767,   769,
+     771,   773,   775,   777,   779,   781,   786,   788,   790,   792,
+     794,   798,   802,   806,   807,   813,   814,   818,   820,   826,
+     830,   833,   834,   837,   839,   841,   846,   849,   853,   859,
+     861,   865,   866,   868,   870,   877,   883,   888,   893,   900,
+     906,   908,   910,   912,   914,   916,   918,   920,   922,   924,
+     926,   927,   929,   933,   935,   937,   942,   946,   948,   950,
+     952,   954,   956,   958,   960,   962,   964,   966,   968,   969,
+     972,   973,   976,   978,   982,   984,   986,   988,   990,   992,
+     994,   996,   998,  1000
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -1475,143 +1475,143 @@
      161,    -1,   146,    -1,   163,    -1,   158,    -1,   111,     4,
       -1,   142,    -1,   143,    -1,     4,    -1,   145,     4,    -1,
       97,   113,     4,    -1,     8,   114,    72,   113,     4,    -1,
-       9,   113,     4,    -1,    32,   113,   263,    -1,     6,   113,
-      -1,     7,   113,   123,   113,    -1,    -1,    31,   147,   222,
-     109,   123,   263,    -1,    -1,    31,   149,   114,   254,   123,
-     151,    -1,    -1,    31,   150,   113,   254,   123,   151,    -1,
-     113,    -1,   116,    -1,   153,    -1,   152,   153,    -1,   211,
-     154,     4,    -1,   111,     4,    -1,   120,    -1,   119,    -1,
-     161,    -1,   148,    -1,   142,    -1,    -1,   155,   117,   157,
-      -1,    -1,    78,   156,   185,   102,    -1,    14,   255,    -1,
-      30,   113,    72,   110,    -1,    -1,   248,    -1,    -1,   103,
-     159,   160,   104,    -1,    -1,   152,    -1,    25,   162,     4,
-      -1,   124,   256,   125,    -1,   124,   125,    -1,    -1,    -1,
-      -1,    27,   164,   251,   165,   185,     4,   166,   167,   180,
-      73,    -1,    -1,     4,    -1,   167,   168,     4,    -1,    -1,
-       5,   169,   170,    -1,   222,   109,   194,    -1,    95,   126,
-     178,   127,    -1,    93,   126,   113,   127,    -1,    93,   126,
-     109,   127,    -1,    96,    -1,    96,   126,   113,   127,    -1,
-      91,    -1,    91,   126,   151,   127,    -1,   100,    -1,   100,
-     126,   151,   127,    -1,    98,   126,   113,   127,    -1,    99,
-      -1,    99,   126,   151,   127,    -1,    -1,   178,    72,   179,
-      -1,   179,    -1,    52,    -1,    53,    -1,    55,    -1,    54,
-      -1,   109,    -1,   113,    -1,   124,   256,   125,    -1,    -1,
-     208,    -1,    -1,    75,     4,   182,   189,   184,   188,   183,
-     191,    76,    -1,    -1,   213,     4,    -1,    -1,    85,   255,
-       4,    -1,    -1,   186,    -1,   187,    -1,   186,   187,    -1,
-      87,    -1,    88,    -1,    86,    -1,    89,    -1,    90,    -1,
-      92,    -1,    94,    -1,   171,    -1,   172,    -1,   173,    -1,
-     174,    -1,   175,    -1,   176,    -1,   177,    -1,    77,   255,
-      72,   255,     4,    -1,    77,   255,     4,    -1,    83,   255,
-       4,    -1,    84,   247,     4,    -1,    84,   113,     4,    -1,
-      84,   247,    72,   255,     4,    -1,    84,   113,    72,   255,
-       4,    -1,    -1,   189,   190,     4,    -1,    11,   237,    -1,
-      -1,   191,   192,     4,    -1,    63,   247,   194,    -1,    -1,
-      29,   193,   222,   216,    -1,    -1,   194,   195,    -1,    18,
-      -1,    19,    -1,    20,    -1,    21,    -1,    21,   126,   113,
-     127,    -1,   101,    -1,    -1,    79,     4,   197,   200,    80,
-      -1,   204,    -1,    -1,    81,     4,   199,   201,    82,    -1,
-      -1,   200,     4,    -1,   200,   202,     4,    -1,    -1,   201,
-       4,    -1,   201,   203,     4,    -1,    15,   255,   238,    -1,
-      16,   255,   238,    -1,    -1,   206,   126,   205,   207,   127,
-      -1,    64,    -1,    66,    -1,    -1,   237,    -1,   113,    22,
-     255,    -1,   207,    72,   237,    -1,   207,    72,   113,    22,
-     255,    -1,   210,    -1,   208,   210,    -1,    -1,   209,   214,
-      -1,   111,     4,    -1,   120,    -1,   119,    -1,   143,    -1,
-     144,    -1,    -1,   212,    -1,   212,   213,    -1,   213,    -1,
-     102,    -1,   211,   218,     4,    -1,     1,     4,    -1,   216,
-      -1,   215,    72,   216,    -1,   109,   217,    -1,    -1,   101,
-      -1,   224,    -1,   242,    -1,    -1,    29,   219,   222,   215,
-      -1,    30,   113,    72,   247,    -1,    -1,    31,   220,   222,
-     109,   123,   263,    -1,   148,    -1,    -1,    35,   221,   222,
-     109,   123,   263,    -1,    65,   234,    -1,    10,   253,    -1,
-     117,   248,    -1,    14,   255,    -1,   234,    -1,   181,    -1,
-     196,    -1,   198,    -1,    -1,    52,    -1,    53,    -1,    54,
-      -1,    55,    -1,   109,    -1,   247,   123,   255,    -1,   247,
-     123,   226,   255,    -1,   247,   123,   255,   227,   255,    -1,
-     247,   123,   255,   124,   256,   125,    -1,   247,   124,   256,
-     125,   123,   255,    -1,   247,   123,    23,   223,    72,   255,
-      -1,   247,   123,    23,   223,   124,   256,   125,    -1,   247,
-     123,    23,   223,    -1,   247,   123,    23,   255,    -1,   247,
-     123,    23,   162,    -1,   247,   123,    23,   162,    72,   255,
-      -1,   247,   123,    23,   255,    72,   255,    -1,   247,   123,
-      23,   255,   124,   256,   125,    -1,    23,   247,    72,   255,
-      -1,    23,   247,    72,   255,    72,   255,    -1,    23,   247,
-      72,   255,   124,   256,   125,    -1,   247,   123,   234,    -1,
-      -1,   126,   225,   241,   127,   123,   233,   126,   236,   127,
-      -1,   228,    -1,   230,    -1,   232,    -1,   247,   123,    14,
-      -1,   128,    -1,   129,    -1,   130,    -1,   130,    -1,   131,
-      -1,   132,    -1,   133,    -1,   134,    -1,    44,    -1,    68,
-      -1,   122,    -1,    57,    -1,    58,    -1,    59,    -1,    60,
-      -1,    61,    -1,    62,    -1,    50,    -1,    51,    -1,    69,
-      -1,    70,    -1,    71,    -1,    56,    -1,   135,    -1,   136,
-      -1,   129,    -1,    -1,    67,   229,   126,   241,   127,    -1,
-     247,   231,   255,    -1,    36,    -1,    37,    -1,    38,    -1,
-      39,    -1,    46,    -1,    45,    -1,    40,    -1,    41,    -1,
-      42,    -1,    43,    -1,    47,    -1,    48,    -1,    49,    -1,
-     247,   123,   117,   157,    -1,   109,    -1,   113,    -1,   116,
-      -1,   247,    -1,   247,   121,   252,    -1,   247,   121,   113,
-      -1,   247,   121,   247,    -1,    -1,   233,   235,   126,   236,
-     127,    -1,    -1,   236,    72,   237,    -1,   237,    -1,   236,
-      72,   113,    22,   255,    -1,   113,    22,   255,    -1,   255,
-     238,    -1,    -1,   238,   239,    -1,    17,    -1,    21,    -1,
-      21,   126,   113,   127,    -1,   247,   194,    -1,   241,    72,
-     240,    -1,   241,    72,   113,    22,   247,    -1,   240,    -1,
-     113,    22,   247,    -1,    -1,   244,    -1,   243,    -1,    13,
-     255,   246,   255,    10,   253,    -1,    13,    14,   255,    10,
-     253,    -1,    13,   255,   245,   253,    -1,    12,   255,   245,
-     253,    -1,    12,   255,   246,   255,    10,   253,    -1,    12,
-      14,   255,    10,   253,    -1,    72,    -1,    10,    -1,    57,
-      -1,    58,    -1,    59,    -1,    60,    -1,    61,    -1,    62,
-      -1,   118,    -1,   262,    -1,    -1,   249,    -1,   249,    72,
-     250,    -1,   250,    -1,   254,    -1,   247,   124,   256,   125,
-      -1,   124,   258,   125,    -1,   252,    -1,   113,    -1,   116,
-      -1,   109,    -1,   117,    -1,   109,    -1,   117,    -1,   253,
-      -1,   255,    -1,   247,    -1,   263,    -1,    -1,   257,   260,
-      -1,    -1,   259,   260,    -1,   261,    -1,   260,   137,   261,
-      -1,   255,    -1,   105,    -1,   106,    -1,   107,    -1,   108,
-      -1,   110,    -1,   114,    -1,   115,    -1,   113,    -1,   116,
-      -1
+       9,   113,     4,    -1,    32,   113,    72,   263,    -1,     6,
+     113,    -1,     7,   113,   123,   113,    -1,    -1,    31,   147,
+     222,   109,   123,   263,    -1,    -1,    31,   149,   114,   254,
+     123,   151,    -1,    -1,    31,   150,   113,   254,   123,   151,
+      -1,   113,    -1,   116,    -1,   153,    -1,   152,   153,    -1,
+     211,   154,     4,    -1,   111,     4,    -1,   120,    -1,   119,
+      -1,   161,    -1,   148,    -1,   142,    -1,    -1,   155,   117,
+     157,    -1,    -1,    78,   156,   185,   102,    -1,    14,   255,
+      -1,    30,   113,    72,   110,    -1,    -1,   248,    -1,    -1,
+     103,   159,   160,   104,    -1,    -1,   152,    -1,    25,   162,
+       4,    -1,   124,   256,   125,    -1,   124,   125,    -1,    -1,
+      -1,    -1,    27,   164,   251,   165,   185,     4,   166,   167,
+     180,    73,    -1,    -1,     4,    -1,   167,   168,     4,    -1,
+      -1,     5,   169,   170,    -1,   222,   109,   194,    -1,    95,
+     126,   178,   127,    -1,    93,   126,   113,   127,    -1,    93,
+     126,   109,   127,    -1,    96,    -1,    96,   126,   113,   127,
+      -1,    91,    -1,    91,   126,   151,   127,    -1,   100,    -1,
+     100,   126,   151,   127,    -1,    98,   126,   113,   127,    -1,
+      99,    -1,    99,   126,   151,   127,    -1,    -1,   178,    72,
+     179,    -1,   179,    -1,    52,    -1,    53,    -1,    55,    -1,
+      54,    -1,   109,    -1,   113,    -1,   124,   256,   125,    -1,
+      -1,   208,    -1,    -1,    75,     4,   182,   189,   184,   188,
+     183,   191,    76,    -1,    -1,   213,     4,    -1,    -1,    85,
+     255,     4,    -1,    -1,   186,    -1,   187,    -1,   186,   187,
+      -1,    87,    -1,    88,    -1,    86,    -1,    89,    -1,    90,
+      -1,    92,    -1,    94,    -1,   171,    -1,   172,    -1,   173,
+      -1,   174,    -1,   175,    -1,   176,    -1,   177,    -1,    77,
+     255,    72,   255,     4,    -1,    77,   255,     4,    -1,    83,
+     255,     4,    -1,    84,   247,     4,    -1,    84,   113,     4,
+      -1,    84,   247,    72,   255,     4,    -1,    84,   113,    72,
+     255,     4,    -1,    -1,   189,   190,     4,    -1,    11,   237,
+      -1,    -1,   191,   192,     4,    -1,    63,   247,   194,    -1,
+      -1,    29,   193,   222,   216,    -1,    -1,   194,   195,    -1,
+      18,    -1,    19,    -1,    20,    -1,    21,    -1,    21,   126,
+     113,   127,    -1,   101,    -1,    -1,    79,     4,   197,   200,
+      80,    -1,   204,    -1,    -1,    81,     4,   199,   201,    82,
+      -1,    -1,   200,     4,    -1,   200,   202,     4,    -1,    -1,
+     201,     4,    -1,   201,   203,     4,    -1,    15,   255,   238,
+      -1,    16,   255,   238,    -1,    -1,   206,   126,   205,   207,
+     127,    -1,    64,    -1,    66,    -1,    -1,   237,    -1,   113,
+      22,   255,    -1,   207,    72,   237,    -1,   207,    72,   113,
+      22,   255,    -1,   210,    -1,   208,   210,    -1,    -1,   209,
+     214,    -1,   111,     4,    -1,   120,    -1,   119,    -1,   143,
+      -1,   144,    -1,    -1,   212,    -1,   212,   213,    -1,   213,
+      -1,   102,    -1,   211,   218,     4,    -1,     1,     4,    -1,
+     216,    -1,   215,    72,   216,    -1,   109,   217,    -1,    -1,
+     101,    -1,   224,    -1,   242,    -1,    -1,    29,   219,   222,
+     215,    -1,    30,   113,    72,   247,    -1,    -1,    31,   220,
+     222,   109,   123,   263,    -1,   148,    -1,    -1,    35,   221,
+     222,   109,   123,   263,    -1,    65,   234,    -1,    10,   253,
+      -1,   117,   248,    -1,    14,   255,    -1,   234,    -1,   181,
+      -1,   196,    -1,   198,    -1,    -1,    52,    -1,    53,    -1,
+      54,    -1,    55,    -1,   109,    -1,   247,   123,   255,    -1,
+     247,   123,   226,   255,    -1,   247,   123,   255,   227,   255,
+      -1,   247,   123,   255,   124,   256,   125,    -1,   247,   124,
+     256,   125,   123,   255,    -1,   247,   123,    23,   223,    72,
+     255,    -1,   247,   123,    23,   223,   124,   256,   125,    -1,
+     247,   123,    23,   223,    -1,   247,   123,    23,   255,    -1,
+     247,   123,    23,   162,    -1,   247,   123,    23,   162,    72,
+     255,    -1,   247,   123,    23,   255,    72,   255,    -1,   247,
+     123,    23,   255,   124,   256,   125,    -1,    23,   247,    72,
+     255,    -1,    23,   247,    72,   255,    72,   255,    -1,    23,
+     247,    72,   255,   124,   256,   125,    -1,   247,   123,   234,
+      -1,    -1,   126,   225,   241,   127,   123,   233,   126,   236,
+     127,    -1,   228,    -1,   230,    -1,   232,    -1,   247,   123,
+      14,    -1,   128,    -1,   129,    -1,   130,    -1,   130,    -1,
+     131,    -1,   132,    -1,   133,    -1,   134,    -1,    44,    -1,
+      68,    -1,   122,    -1,    57,    -1,    58,    -1,    59,    -1,
+      60,    -1,    61,    -1,    62,    -1,    50,    -1,    51,    -1,
+      69,    -1,    70,    -1,    71,    -1,    56,    -1,   135,    -1,
+     136,    -1,   129,    -1,    -1,    67,   229,   126,   241,   127,
+      -1,   247,   231,   255,    -1,    36,    -1,    37,    -1,    38,
+      -1,    39,    -1,    46,    -1,    45,    -1,    40,    -1,    41,
+      -1,    42,    -1,    43,    -1,    47,    -1,    48,    -1,    49,
+      -1,   247,   123,   117,   157,    -1,   109,    -1,   113,    -1,
+     116,    -1,   247,    -1,   247,   121,   252,    -1,   247,   121,
+     113,    -1,   247,   121,   247,    -1,    -1,   233,   235,   126,
+     236,   127,    -1,    -1,   236,    72,   237,    -1,   237,    -1,
+     236,    72,   113,    22,   255,    -1,   113,    22,   255,    -1,
+     255,   238,    -1,    -1,   238,   239,    -1,    17,    -1,    21,
+      -1,    21,   126,   113,   127,    -1,   247,   194,    -1,   241,
+      72,   240,    -1,   241,    72,   113,    22,   247,    -1,   240,
+      -1,   113,    22,   247,    -1,    -1,   244,    -1,   243,    -1,
+      13,   255,   246,   255,    10,   253,    -1,    13,    14,   255,
+      10,   253,    -1,    13,   255,   245,   253,    -1,    12,   255,
+     245,   253,    -1,    12,   255,   246,   255,    10,   253,    -1,
+      12,    14,   255,    10,   253,    -1,    72,    -1,    10,    -1,
+      57,    -1,    58,    -1,    59,    -1,    60,    -1,    61,    -1,
+      62,    -1,   118,    -1,   262,    -1,    -1,   249,    -1,   249,
+      72,   250,    -1,   250,    -1,   254,    -1,   247,   124,   256,
+     125,    -1,   124,   258,   125,    -1,   252,    -1,   113,    -1,
+     116,    -1,   109,    -1,   117,    -1,   109,    -1,   117,    -1,
+     253,    -1,   255,    -1,   247,    -1,   263,    -1,    -1,   257,
+     260,    -1,    -1,   259,   260,    -1,   261,    -1,   260,   137,
+     261,    -1,   255,    -1,   105,    -1,   106,    -1,   107,    -1,
+     108,    -1,   110,    -1,   114,    -1,   115,    -1,   113,    -1,
+     116,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   879,   879,   883,   884,   888,   889,   890,   896,   902,
-     903,   904,   905,   909,   910,   919,   924,   931,   942,   951,
-     969,   969,   978,   978,   984,   984,   991,   992,   996,   997,
-    1001,  1002,  1003,  1004,  1005,  1006,  1007,  1010,  1010,  1019,
-    1018,  1030,  1034,  1042,  1046,  1050,  1050,  1062,  1064,  1068,
-    1083,  1091,  1096,  1100,  1104,  1095,  1116,  1117,  1118,  1131,
-    1131,  1135,  1149,  1153,  1159,  1168,  1174,  1183,  1189,  1198,
-    1204,  1213,  1221,  1226,  1237,  1240,  1245,  1253,  1254,  1255,
-    1256,  1257,  1268,  1279,  1282,  1284,  1289,  1288,  1321,  1322,
-    1326,  1327,  1331,  1332,  1336,  1337,  1341,  1342,  1343,  1344,
-    1345,  1346,  1347,  1348,  1349,  1350,  1351,  1352,  1353,  1354,
-    1358,  1363,  1367,  1372,  1376,  1380,  1385,  1394,  1395,  1399,
-    1404,  1405,  1413,  1414,  1414,  1429,  1430,  1434,  1435,  1436,
-    1437,  1438,  1439,  1444,  1444,  1447,  1455,  1455,  1461,  1462,
-    1467,  1475,  1476,  1481,  1489,  1493,  1498,  1497,  1510,  1511,
-    1515,  1516,  1526,  1530,  1540,  1548,  1549,  1561,  1565,  1567,
-    1568,  1569,  1570,  1571,  1575,  1576,  1580,  1581,  1585,  1594,
-    1595,  1606,  1613,  1622,  1632,  1633,  1638,  1639,  1640,  1640,
-    1656,  1660,  1660,  1667,  1668,  1668,  1674,  1680,  1681,  1693,
-    1694,  1695,  1696,  1697,  1698,  1702,  1703,  1704,  1705,  1709,
-    1722,  1724,  1726,  1728,  1730,  1732,  1734,  1736,  1738,  1740,
-    1742,  1744,  1746,  1750,  1752,  1754,  1757,  1764,  1763,  1772,
-    1773,  1774,  1775,  1783,  1784,  1785,  1789,  1790,  1791,  1792,
-    1793,  1794,  1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,
-    1803,  1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,  1817,
-    1816,  1828,  1835,  1836,  1837,  1838,  1839,  1840,  1841,  1842,
-    1843,  1844,  1845,  1846,  1847,  1852,  1863,  1864,  1865,  1866,
-    1872,  1886,  1892,  1898,  1897,  1906,  1907,  1917,  1927,  1933,
-    1942,  1946,  1947,  1951,  1952,  1955,  1959,  1963,  1973,  1978,
-    1988,  1993,  1997,  1998,  2002,  2006,  2010,  2017,  2021,  2025,
-    2032,  2033,  2037,  2038,  2039,  2040,  2041,  2042,  2046,  2047,
-    2051,  2052,  2056,  2057,  2061,  2062,  2069,  2076,  2077,  2078,
-    2082,  2083,  2087,  2088,  2092,  2093,  2097,  2098,  2102,  2102,
-    2115,  2115,  2128,  2129,  2137,  2146,  2147,  2148,  2149,  2150,
-    2154,  2155,  2156,  2157
+       0,   880,   880,   884,   885,   889,   890,   891,   897,   903,
+     904,   905,   906,   910,   911,   920,   925,   932,   944,   953,
+     971,   971,   980,   980,   986,   986,   993,   994,   998,   999,
+    1003,  1004,  1005,  1006,  1007,  1008,  1009,  1012,  1012,  1021,
+    1020,  1032,  1036,  1044,  1048,  1052,  1052,  1064,  1066,  1070,
+    1085,  1093,  1098,  1102,  1106,  1097,  1118,  1119,  1120,  1133,
+    1133,  1137,  1151,  1155,  1161,  1170,  1176,  1185,  1191,  1200,
+    1206,  1215,  1223,  1228,  1239,  1242,  1247,  1255,  1256,  1257,
+    1258,  1259,  1270,  1281,  1284,  1286,  1291,  1290,  1323,  1324,
+    1328,  1329,  1333,  1334,  1338,  1339,  1343,  1344,  1345,  1346,
+    1347,  1348,  1349,  1350,  1351,  1352,  1353,  1354,  1355,  1356,
+    1360,  1365,  1369,  1374,  1378,  1382,  1387,  1396,  1397,  1401,
+    1406,  1407,  1415,  1416,  1416,  1431,  1432,  1436,  1437,  1438,
+    1439,  1440,  1441,  1446,  1446,  1449,  1457,  1457,  1463,  1464,
+    1469,  1477,  1478,  1483,  1491,  1495,  1500,  1499,  1512,  1513,
+    1517,  1518,  1528,  1532,  1542,  1550,  1551,  1563,  1567,  1569,
+    1570,  1571,  1572,  1573,  1577,  1578,  1582,  1583,  1587,  1596,
+    1597,  1608,  1615,  1624,  1634,  1635,  1640,  1641,  1642,  1642,
+    1658,  1662,  1662,  1669,  1670,  1670,  1676,  1682,  1683,  1695,
+    1696,  1697,  1698,  1699,  1700,  1704,  1705,  1706,  1707,  1711,
+    1724,  1726,  1728,  1730,  1732,  1734,  1736,  1738,  1740,  1742,
+    1744,  1746,  1748,  1752,  1754,  1756,  1759,  1766,  1765,  1774,
+    1775,  1776,  1777,  1785,  1786,  1787,  1791,  1792,  1793,  1794,
+    1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,  1803,  1804,
+    1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,  1813,  1819,
+    1818,  1830,  1837,  1838,  1839,  1840,  1841,  1842,  1843,  1844,
+    1845,  1846,  1847,  1848,  1849,  1854,  1865,  1866,  1867,  1868,
+    1874,  1888,  1894,  1900,  1899,  1908,  1909,  1919,  1929,  1935,
+    1944,  1948,  1949,  1953,  1954,  1957,  1961,  1965,  1975,  1980,
+    1990,  1995,  1999,  2000,  2004,  2008,  2012,  2019,  2023,  2027,
+    2034,  2035,  2039,  2040,  2041,  2042,  2043,  2044,  2048,  2049,
+    2053,  2054,  2058,  2059,  2063,  2064,  2071,  2078,  2079,  2080,
+    2084,  2085,  2089,  2090,  2094,  2095,  2099,  2100,  2104,  2104,
+    2117,  2117,  2130,  2131,  2139,  2148,  2149,  2150,  2151,  2152,
+    2156,  2157,  2158,  2159
 };
 #endif
 
@@ -1734,7 +1734,7 @@
 static const yytype_uint8 yyr2[] =
 {
        0,     2,     1,     1,     2,     1,     1,     1,     1,     2,
-       1,     1,     1,     2,     3,     5,     3,     3,     2,     4,
+       1,     1,     1,     2,     3,     5,     3,     4,     2,     4,
        0,     6,     0,     6,     0,     6,     1,     1,     1,     2,
        3,     2,     1,     1,     1,     1,     1,     0,     3,     0,
        4,     2,     4,     0,     1,     0,     4,     0,     1,     3,
@@ -1798,39 +1798,39 @@
       23,    25,   316,   331,     0,   312,    83,    75,    59,     0,
        0,   161,   160,   162,   163,     0,     0,   157,     0,   155,
      315,     0,     0,   159,    58,    55,   156,     0,   194,   158,
-      60,     0,    17,   170,     0,     0,     0,     0,     0,   178,
+      60,     0,     0,   170,     0,     0,     0,     0,     0,   178,
        0,   181,   184,   148,     0,   149,   249,     0,     0,     0,
      266,   267,   268,   310,   217,   183,   191,   192,   193,   135,
        0,     0,   176,   219,   220,   221,   273,   190,   177,   293,
-     292,   269,   125,   187,     0,     0,     0,     0,   189,     0,
-       0,     0,     0,     0,   186,   269,     0,    86,   133,   136,
-     188,   291,   146,   169,     0,   252,   253,   254,   255,   258,
-     259,   260,   261,   257,   256,   262,   263,   264,     0,     0,
-     328,     0,    61,     0,   301,   302,   303,   304,   305,   306,
-     307,   300,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   291,   117,   138,   141,     0,   289,     0,   125,
-     150,   275,   271,   272,   270,   222,     0,   342,   343,   310,
-     223,   224,   225,     0,   216,   326,   200,     0,   251,   127,
-     128,   129,   130,   132,   126,     0,   297,     0,     0,   296,
-       0,   213,   174,   179,   171,   180,     0,     0,     0,    90,
-       0,     0,     0,     0,     0,   286,   342,     0,   151,   281,
-     342,     0,   277,   199,   209,   207,   208,   265,   201,   231,
-     240,   241,   245,   234,   235,   236,   237,   238,   239,   232,
-     242,   243,   244,   233,   328,   248,   226,   227,   228,   229,
-     230,   246,   247,     0,     0,     0,   299,     0,   295,     0,
-       0,   328,   175,   173,     0,     0,     0,   250,     0,     0,
-       0,     0,   139,     0,   134,     0,   142,     0,   137,     0,
-     290,     0,   287,     0,     0,     0,   147,   280,     0,     0,
-     274,     0,     0,   328,     0,   328,     0,   202,     0,     0,
-     298,   294,   214,     0,   172,   182,   185,   119,     0,     0,
-       0,     0,    88,   118,   281,   140,   281,   143,     0,     0,
-     152,   342,   153,   283,   284,   282,   279,   342,   276,   210,
-     205,     0,   211,     0,   203,   204,   131,   215,    91,     0,
-       0,     0,     0,   120,     0,   144,   145,   288,   275,     0,
-       0,     0,   206,   212,   111,     0,   112,   114,     0,   113,
-       0,     0,    89,     0,   154,     0,   278,     0,     0,     0,
-     123,     0,    87,     0,   218,   285,   110,   116,   115,     0,
-     125,   121,     0,   122,   124
+     292,   269,   125,    17,   187,     0,     0,     0,     0,   189,
+       0,     0,     0,     0,     0,   186,   269,     0,    86,   133,
+     136,   188,   291,   146,   169,     0,   252,   253,   254,   255,
+     258,   259,   260,   261,   257,   256,   262,   263,   264,     0,
+       0,   328,     0,    61,     0,   301,   302,   303,   304,   305,
+     306,   307,   300,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   291,   117,   138,   141,     0,   289,     0,
+     125,   150,   275,   271,   272,   270,   222,     0,   342,   343,
+     310,   223,   224,   225,     0,   216,   326,   200,     0,   251,
+     127,   128,   129,   130,   132,   126,     0,   297,     0,     0,
+     296,     0,   213,   174,   179,   171,   180,     0,     0,     0,
+      90,     0,     0,     0,     0,     0,   286,   342,     0,   151,
+     281,   342,     0,   277,   199,   209,   207,   208,   265,   201,
+     231,   240,   241,   245,   234,   235,   236,   237,   238,   239,
+     232,   242,   243,   244,   233,   328,   248,   226,   227,   228,
+     229,   230,   246,   247,     0,     0,     0,   299,     0,   295,
+       0,     0,   328,   175,   173,     0,     0,     0,   250,     0,
+       0,     0,     0,   139,     0,   134,     0,   142,     0,   137,
+       0,   290,     0,   287,     0,     0,     0,   147,   280,     0,
+       0,   274,     0,     0,   328,     0,   328,     0,   202,     0,
+       0,   298,   294,   214,     0,   172,   182,   185,   119,     0,
+       0,     0,     0,    88,   118,   281,   140,   281,   143,     0,
+       0,   152,   342,   153,   283,   284,   282,   279,   342,   276,
+     210,   205,     0,   211,     0,   203,   204,   131,   215,    91,
+       0,     0,     0,     0,   120,     0,   144,   145,   288,   275,
+       0,     0,     0,   206,   212,   111,     0,   112,   114,     0,
+     113,     0,     0,    89,     0,   154,     0,   278,     0,     0,
+       0,   123,     0,    87,     0,   218,   285,   110,   116,   115,
+       0,   125,   121,     0,   122,   124
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
@@ -1840,13 +1840,13 @@
       61,    90,    91,   163,    62,    63,    98,    99,   132,   155,
       19,    31,    64,    20,    27,    21,    28,    88,   179,   199,
      215,   221,   230,   117,   118,   119,   120,   121,   122,   123,
-     173,   174,   216,   256,   333,   513,   440,   124,   125,   126,
-     482,   379,   441,   531,   543,   549,   312,   364,   257,   334,
-     258,   335,   380,   381,   445,   449,   259,   340,   260,   387,
-     217,   218,   219,    66,    67,    68,   229,   373,   374,   433,
-     261,   280,   282,   283,    53,   395,   262,   291,   353,   423,
-     263,   286,   264,   311,   265,   266,   267,   294,   391,   392,
-     457,   495,   337,   338,   268,   269,   270,   322,   323,    82,
+     173,   174,   216,   256,   334,   514,   441,   124,   125,   126,
+     483,   380,   442,   532,   544,   550,   313,   365,   257,   335,
+     258,   336,   381,   382,   446,   450,   259,   341,   260,   388,
+     217,   218,   219,    66,    67,    68,   229,   374,   375,   434,
+     261,   281,   283,   284,    53,   396,   262,   292,   354,   424,
+     263,   287,   264,   312,   265,   266,   267,   295,   392,   393,
+     458,   496,   338,   339,   268,   269,   270,   323,   324,    82,
      157,   158,   159,    47,    48,   148,   160,   150,    40,    41,
      184,   185,    84,    85,    86,    87
 };
@@ -1856,80 +1856,80 @@
 #define YYPACT_NINF -429
 static const yytype_int16 yypact[] =
 {
-     207,  -429,   -80,   -34,   -42,     0,   -31,  -429,  -429,    21,
-    -429,   116,   123,   207,  -429,  -429,  -429,   132,  -429,  -429,
-    -429,  -429,  -429,    20,    81,   176,    56,   182,   -50,   187,
-     183,   125,  -429,  -429,  -429,  -429,    85,    89,  -429,  -429,
-      94,   278,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,  -429,   114,  -429,    97,  -429,   222,  -429,  -429,
-    -429,  -429,   218,  -429,   126,  -429,    27,   129,  -429,  -429,
-     233,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,  -429,  -429,   115,  -429,  -429,  -429,   471,   134,
-     146,   149,  -429,  -429,  -429,   278,   151,  -429,   263,   155,
-    -429,  -429,   278,  -429,  -429,  -429,  -429,  -429,   143,  -429,
-     157,  -429,   162,   163,   167,   168,   172,  -429,  -429,  -429,
-    -429,  -429,  -429,  -429,   277,   471,  -429,   164,   474,   474,
-    -429,   215,   471,  -429,   399,  -429,    39,    66,   152,   188,
-     189,    39,    39,  -429,  -429,  -429,  -429,  -429,  -429,   180,
-    -429,   184,   196,   206,  -429,  -429,   185,  -429,   239,  -429,
-    -429,  -429,  -429,   190,   192,   197,  -429,  -429,  -429,  -429,
-    -429,  -429,  -429,   -56,  -429,   203,   205,   208,   212,   312,
-      39,    39,  -429,  -429,   198,   278,  -429,   399,  -429,  -429,
-    -429,   209,   152,  -429,  -429,  -429,  -429,  -429,  -429,    19,
-    -429,  -429,  -429,   115,   219,  -429,  -429,  -429,  -429,   220,
-     339,  -429,  -429,  -429,  -429,   341,   273,   101,     9,  -429,
-    -429,   187,   164,  -429,  -429,  -429,  -429,   343,   261,  -429,
-    -429,   248,  -429,  -429,   -64,   245,   327,   278,   148,  -429,
-     235,    53,  -429,  -429,   544,  -429,  -429,   350,   358,   360,
-    -429,  -429,  -429,   399,  -429,  -429,  -429,  -429,  -429,  -429,
-     246,   361,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,   454,  -429,  -429,   278,   131,   278,   131,  -429,   301,
-     187,   303,   187,   187,  -429,   255,   254,  -429,  -429,  -429,
-    -429,   572,  -429,  -429,   264,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,   558,    55,
-    -429,   278,   127,   371,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,   -64,   278,   385,   -64,   278,   278,   290,   148,
-     291,   292,   572,  -429,  -429,  -429,   381,  -429,   -38,  -429,
-     488,   502,  -429,  -429,  -429,  -429,   432,   279,   281,   399,
-    -429,  -429,  -429,   278,  -429,    28,   400,   283,  -429,  -429,
-    -429,  -429,   284,  -429,  -429,   -64,  -429,   394,   -64,  -429,
-     401,   -43,   311,   347,  -429,  -429,   299,   302,   -29,    14,
-      11,     4,   148,   581,   305,   127,   393,   -26,  -429,  -429,
-     402,   -25,  -429,  -429,   354,   -37,   -20,  -429,  -429,  -429,
+      86,  -429,   -57,    21,   -67,    36,    -1,  -429,  -429,    40,
+    -429,   153,   158,    86,  -429,  -429,  -429,   155,  -429,  -429,
+    -429,  -429,  -429,    45,   107,   177,    57,   183,   133,   203,
+     186,   214,  -429,  -429,  -429,  -429,    78,    79,  -429,  -429,
+      77,   279,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
+    -429,  -429,  -429,    94,  -429,    92,  -429,   204,  -429,  -429,
+    -429,  -429,   234,  -429,   103,  -429,     7,   111,  -429,  -429,
+     210,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
+    -429,  -429,  -429,  -429,    82,  -429,  -429,  -429,   487,    99,
+     101,   124,  -429,  -429,  -429,   279,   131,  -429,   225,   136,
+    -429,  -429,   279,  -429,  -429,  -429,  -429,  -429,   122,  -429,
+     134,  -429,   135,   141,   142,   147,   156,  -429,  -429,  -429,
+    -429,  -429,  -429,  -429,   280,   487,  -429,   164,   483,   483,
+    -429,   216,   487,  -429,   403,  -429,    34,    13,   157,   176,
+     181,    34,    34,  -429,  -429,  -429,  -429,  -429,  -429,   167,
+    -429,   172,   189,   200,  -429,  -429,   179,  -429,   232,  -429,
+    -429,  -429,  -429,   178,   180,   182,  -429,  -429,  -429,  -429,
+    -429,  -429,  -429,   -56,  -429,   185,   190,   192,   193,   304,
+      34,    34,  -429,  -429,   196,   279,  -429,   403,  -429,  -429,
+    -429,   198,   157,  -429,  -429,  -429,  -429,  -429,  -429,    35,
+    -429,  -429,  -429,    82,   199,  -429,  -429,  -429,  -429,   197,
+     326,  -429,  -429,  -429,  -429,   331,   266,   143,    22,  -429,
+    -429,   203,   268,  -429,  -429,  -429,  -429,   340,   262,  -429,
+    -429,   237,   164,  -429,   -89,   328,   342,   279,   125,  -429,
+     235,   -45,  -429,  -429,   446,  -429,  -429,   343,   345,   347,
+    -429,  -429,  -429,   403,  -429,  -429,  -429,  -429,  -429,  -429,
+     226,   351,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
+    -429,   425,  -429,  -429,  -429,   279,   166,   279,   166,  -429,
+     286,   203,   287,   203,   203,  -429,   239,   236,  -429,  -429,
+    -429,  -429,   567,  -429,  -429,   238,  -429,  -429,  -429,  -429,
+    -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,   553,
+      56,  -429,   279,    55,   353,  -429,  -429,  -429,  -429,  -429,
+    -429,  -429,  -429,   -89,   279,   355,   -89,   279,   279,   252,
+     125,   257,   264,   567,  -429,  -429,  -429,   352,  -429,   -55,
+    -429,   497,   511,  -429,  -429,  -429,  -429,   423,   250,   251,
+     403,  -429,  -429,  -429,   279,  -429,   -80,   436,   256,  -429,
+    -429,  -429,  -429,   265,  -429,  -429,   -89,  -429,   372,   -89,
+    -429,   386,   -24,   299,   329,  -429,  -429,   281,   282,   -23,
+      -2,     4,     9,   125,   576,   283,    55,   380,   -22,  -429,
+    -429,   387,   -13,  -429,  -429,   336,    -8,    64,  -429,  -429,
     -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
     -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,  -429,   278,   306,   317,  -429,   -64,  -429,   -64,
-     278,  -429,  -429,  -429,   290,   164,   164,  -429,   278,   278,
-      74,   427,  -429,   278,  -429,   442,  -429,   278,  -429,   443,
-    -429,   414,  -429,   544,   278,   516,  -429,   161,   278,   530,
-    -429,   278,   278,  -429,   278,  -429,   323,  -429,   278,   322,
-    -429,  -429,  -429,   328,  -429,  -429,  -429,  -429,   448,   278,
-     278,   590,   129,  -429,  -429,  -429,  -429,  -429,   148,   329,
-    -429,   441,  -429,  -429,   338,  -429,  -429,   444,  -429,  -429,
-    -429,   340,  -429,   342,  -429,  -429,  -429,  -429,  -429,     8,
-     450,    10,    13,  -429,   468,   161,   161,  -429,   502,   278,
-     362,   278,  -429,  -429,  -429,   278,  -429,  -429,   278,  -429,
-     278,     7,  -429,   -24,  -429,   346,  -429,   470,   472,   475,
-    -429,   148,  -429,   477,  -429,  -429,  -429,  -429,  -429,   187,
-    -429,  -429,   290,   127,  -429
+    -429,  -429,  -429,  -429,   279,   288,   300,  -429,   -89,  -429,
+     -89,   279,  -429,  -429,  -429,   252,   164,   164,  -429,   279,
+     279,   116,   408,  -429,   279,  -429,   412,  -429,   279,  -429,
+     416,  -429,   401,  -429,   446,   279,   525,  -429,    12,   279,
+     539,  -429,   279,   279,  -429,   279,  -429,   301,  -429,   279,
+     298,  -429,  -429,  -429,   302,  -429,  -429,  -429,  -429,   426,
+     279,   279,   585,   111,  -429,  -429,  -429,  -429,  -429,   125,
+     303,  -429,   409,  -429,  -429,   306,  -429,  -429,   415,  -429,
+    -429,  -429,   320,  -429,   334,  -429,  -429,  -429,  -429,  -429,
+       8,   447,    10,    26,  -429,   449,    12,    12,  -429,   511,
+     279,   341,   279,  -429,  -429,  -429,   279,  -429,  -429,   279,
+    -429,   279,   104,  -429,   -12,  -429,   348,  -429,   465,   472,
+     473,  -429,   125,  -429,   478,  -429,  -429,  -429,  -429,  -429,
+     203,  -429,  -429,   252,    55,  -429
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -429,  -429,  -429,   469,     6,  -157,  -429,  -429,  -429,  -429,
-     257,  -429,  -429,    67,  -429,   421,  -429,  -429,  -429,   137,
-    -429,  -429,  -429,    46,   142,  -429,  -429,  -429,  -429,  -429,
+    -429,  -429,  -429,   470,    -4,  -175,  -429,  -429,  -429,  -429,
+     261,  -429,  -429,  -103,  -429,   422,  -429,  -429,  -429,   149,
+    -429,  -429,  -429,     0,   144,  -429,  -429,  -429,  -429,  -429,
     -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,   318,  -429,  -429,  -429,  -429,  -429,   366,  -429,   386,
-    -429,  -429,  -429,  -429,  -429,  -429,  -332,  -429,  -429,  -429,
+    -429,   308,  -429,  -429,  -429,  -429,  -429,   369,  -429,   377,
+    -429,  -429,  -429,  -429,  -429,  -429,  -334,  -429,  -429,  -429,
     -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,   304,   300,  -429,   -66,  -429,  -429,  -423,  -429,
+    -429,  -429,   297,   285,  -429,   -66,  -429,  -429,  -428,  -429,
     -429,  -429,  -429,  -429,  -218,  -429,  -429,  -429,  -429,  -429,
-    -429,  -429,  -429,  -429,  -429,    72,  -214,  -429,     1,  -331,
-    -428,  -429,   144,   194,  -429,  -429,  -429,   243,   251,  -132,
-     296,  -429,   356,  -429,   236,  -228,   -79,   -41,  -168,  -429,
-    -429,  -429,   367,   449,  -429,  -122
+    -429,  -429,  -429,  -429,  -429,    61,  -229,  -429,     3,  -319,
+    -378,  -429,   139,   191,  -429,  -429,  -429,   247,   248,  -132,
+     289,  -429,   356,  -429,   231,  -224,   -10,   -41,  -168,  -429,
+    -429,  -429,   349,   433,  -429,  -122
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -1939,152 +1939,152 @@
 #define YYTABLE_NINF -270
 static const yytype_int16 yytable[] =
 {
-      83,   100,   156,   231,   191,   145,   273,   385,   446,   388,
-     227,   474,   524,  -164,   527,   442,   192,   529,   204,  -164,
-     447,  -164,  -164,  -164,   208,   438,   443,     4,     5,   430,
-     284,   -43,  -164,    22,   383,   462,   540,    60,  -164,  -164,
-    -164,    95,   213,   383,  -164,   146,   455,   459,   459,   149,
-     151,   209,   464,   147,   130,   156,   515,    96,   516,    43,
-     213,    83,   328,    44,   330,   331,    45,    46,    60,   345,
-     541,   193,    24,  -164,  -164,  -164,  -164,    65,   346,    23,
-     525,   431,   528,   542,  -164,   530,   448,   463,  -164,   384,
-    -164,   444,   -84,    26,   366,   354,   271,   369,   437,   439,
-     232,   456,   460,   544,   465,    97,   279,   477,    65,     4,
-       5,    56,   285,    25,  -164,  -164,  -164,  -164,  -164,  -164,
-      32,   156,  -164,    33,   492,  -164,  -164,  -164,   498,   554,
-     210,     2,     3,   209,    30,  -164,    35,   426,   211,   212,
-     428,   314,   357,    36,    83,   359,   360,   361,   362,   308,
-       6,   479,   161,    37,  -269,   162,    55,   480,   481,   339,
-      72,    73,    74,    75,   250,    76,   -24,   -22,   347,    78,
-      79,   348,   349,    81,   -85,   164,   343,   355,   493,   165,
-      38,    39,   494,   350,   351,   352,    42,    54,   315,   316,
-     317,   318,   319,   320,   275,   277,   278,   375,    69,   470,
-     339,   471,    70,   321,   166,   167,   168,   169,   177,   178,
-     -24,     1,   210,     2,     3,     4,     5,   156,   553,    71,
-     211,   212,     9,    89,     2,     3,    92,    56,   363,   -47,
-      94,    56,     6,   313,     7,   324,    57,   101,     8,    49,
-      50,    51,    52,     6,    58,    59,   466,   200,   201,    55,
-     450,   339,   102,    72,    73,    74,    75,   127,    76,   274,
-     128,   170,   129,   473,   131,   171,    81,   133,   356,   136,
-     358,   234,   134,   235,   236,   237,   172,    77,    78,    79,
-      80,   143,   367,   137,   238,   370,   371,   152,   138,   139,
-     239,   240,   241,   140,   141,   501,   242,   503,   142,   389,
-     389,   175,   176,   180,     9,   396,   182,   181,   183,   186,
-      10,   187,   398,   475,   476,     9,   198,   188,    11,   189,
-      56,   285,   -48,   202,   190,   243,   244,   245,   246,    57,
-     194,   552,   195,   222,   206,   196,   247,    58,    59,   197,
-     248,   276,   249,   223,   220,   224,   225,   233,   281,   512,
-      72,    73,    74,    75,   287,    76,   517,   272,    77,    78,
-      79,    80,   288,    81,   289,   293,    72,    73,    74,    75,
-     250,    76,   292,   327,   251,   329,   308,   252,   253,    81,
-     332,   365,   467,    72,    73,    74,    75,   254,    76,   472,
-     341,    77,    78,    79,    80,   368,    81,   389,   478,   372,
-     376,   377,   484,   382,   427,  -267,   486,  -268,   424,   550,
-     425,   429,   432,   490,   389,   454,   514,   496,   389,   434,
-     499,   500,   435,   502,   458,   436,   461,   505,   453,   468,
-     469,   483,    72,    73,    74,    75,   488,    76,   509,   510,
-      77,    78,    79,    80,   399,    81,   485,   487,   504,   506,
-     400,   401,   508,   507,   526,   518,   402,   403,   404,   405,
-     406,   407,   408,   519,   520,   522,   521,   523,   409,   410,
-     411,   412,   532,   545,   546,   535,   547,   389,   534,   548,
-     536,   551,    34,    93,   537,   255,   397,   538,   394,   539,
-     295,   296,   297,   298,   299,   300,   301,   302,   153,   303,
-     304,   305,   306,   307,    72,    73,    74,    75,   146,    76,
-     207,   144,    77,    78,    79,    80,   147,    81,   228,   533,
-     325,   226,   413,   154,   414,   489,   378,   452,   326,   415,
-     416,   417,   418,   419,   420,   421,   422,    72,    73,    74,
-      75,   393,    76,   205,   344,    77,    78,    79,    80,   290,
-      81,   135,   203,     0,     0,     0,    26,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,     0,   114,
-     115,   116,     0,     0,     0,   308,     0,   309,   310,    72,
-      73,    74,    75,   146,    76,     0,     0,    77,    78,    79,
-      80,   147,    81,    72,    73,    74,    75,     0,    76,     0,
-       0,   386,    78,    79,    80,     0,    81,    72,    73,    74,
-      75,     0,    76,     0,     0,   390,    78,    79,    80,     0,
-      81,    72,    73,    74,    75,     0,    76,     0,     0,   491,
-      78,    79,    80,     0,    81,    72,    73,    74,    75,     0,
-      76,     0,     0,   497,    78,    79,    80,     0,    81,    72,
-      73,    74,    75,   250,    76,     0,     0,   251,     0,     0,
-     252,     0,    81,    72,    73,    74,    75,    43,    76,     0,
-       0,   342,     0,     0,     0,    46,    81,    72,    73,    74,
-      75,     0,    76,     0,     0,   336,    72,    73,    74,    75,
-      81,    76,     0,     0,   451,    72,    73,    74,    75,    81,
-      76,     0,     0,   511,     0,     0,     0,     0,    81
+      83,   100,   156,   231,   191,   145,   386,   475,   443,   439,
+     274,   -43,   525,   447,   528,   285,   192,   384,   204,   444,
+     146,    95,   389,   227,   213,   448,  -164,    60,   147,   494,
+     530,    65,  -164,   495,  -164,  -164,  -164,    96,   177,   178,
+     208,   309,   213,     4,     5,  -164,  -269,    24,   431,   384,
+     456,  -164,  -164,  -164,   130,   156,    22,  -164,    60,   460,
+     460,    83,    65,   329,   463,   331,   332,   209,   -24,   -22,
+     346,   193,   385,   360,   361,   362,   363,   200,   201,   347,
+     526,   355,   529,   440,   445,    97,  -164,  -164,  -164,  -164,
+       1,   449,     2,     3,     4,     5,   271,  -164,   531,   367,
+     432,  -164,   370,  -164,   438,   457,   280,   516,   -84,   517,
+     273,     6,   286,     7,   461,   545,   464,     8,   149,   151,
+     478,   156,   164,    26,    56,   555,   165,  -164,  -164,  -164,
+    -164,  -164,  -164,   541,    23,  -164,   465,   493,  -164,  -164,
+    -164,   499,   427,   358,    83,   429,   210,   161,  -164,    25,
+     162,     4,     5,    30,   211,   212,   364,    32,    33,    35,
+     340,    72,    73,    74,    75,   250,    76,   542,    36,   348,
+      78,    79,   349,   350,    81,   209,   315,   344,   356,    37,
+     543,    38,    39,     9,   351,   352,   353,    42,   466,    10,
+      54,    69,    70,   480,   276,   278,   279,    11,   376,   481,
+     482,   340,    71,    89,   471,   -24,   472,    94,    92,   166,
+     167,   168,   169,    56,   101,   128,   -85,   554,   156,   102,
+       2,     3,   127,   316,   317,   318,   319,   320,   321,   133,
+      72,    73,    74,    75,   314,    76,   325,   129,   322,     6,
+       2,     3,    43,    81,   131,    55,    44,   467,   136,    45,
+      46,   451,   340,   134,   210,    49,    50,    51,    52,     6,
+     137,   138,   211,   212,   474,    55,   170,   139,   140,   357,
+     171,   359,   234,   141,   235,   236,   237,    77,    78,    79,
+      80,   172,   142,   368,   143,   238,   371,   372,   152,   175,
+     180,   239,   240,   241,   176,   181,   502,   242,   504,   182,
+     390,   390,   183,   186,   187,   188,   397,   189,   198,   190,
+     222,     9,   194,   399,   476,   477,    56,   195,   -47,   196,
+     197,   202,   286,   206,   220,    57,   243,   244,   245,   246,
+     223,     9,   553,    58,    59,   224,    56,   247,   -48,   225,
+     232,   248,   275,   249,   233,    57,   272,   288,   282,   289,
+     513,   290,   293,    58,    59,   294,   277,   518,   328,   330,
+     309,   373,   333,   366,   342,   369,   377,    72,    73,    74,
+      75,   250,    76,   378,   383,   251,  -267,  -268,   252,   253,
+      81,   425,   428,   468,    72,    73,    74,    75,   254,    76,
+     473,   426,    77,    78,    79,    80,   430,    81,   390,   479,
+     433,   435,   455,   485,   436,   437,   454,   487,   462,   459,
+     551,   469,   484,   470,   491,   390,   486,   515,   497,   390,
+     488,   500,   501,   489,   503,   507,   505,   508,   506,   519,
+     509,   520,   521,    72,    73,    74,    75,   522,    76,   510,
+     511,    77,    78,    79,    80,   523,    81,    72,    73,    74,
+      75,   527,    76,   533,   536,    77,    78,    79,    80,   524,
+      81,   296,   297,   298,   299,   300,   301,   302,   303,   547,
+     304,   305,   306,   307,   308,   546,   548,   549,   390,   535,
+     400,   537,   552,    34,    93,   538,   401,   402,   539,   255,
+     540,   395,   403,   404,   405,   406,   407,   408,   409,   398,
+     207,   153,   144,   228,   410,   411,   412,   413,    72,    73,
+      74,    75,   146,    76,   226,   490,    77,    78,    79,    80,
+     147,    81,   534,   453,   379,   326,   327,   154,    72,    73,
+      74,    75,   394,    76,   203,   135,    77,    78,    79,    80,
+     345,    81,   291,   205,     0,     0,   309,    26,   310,   311,
+       0,    72,    73,    74,    75,   250,    76,     0,   414,   251,
+     415,     0,   252,     0,    81,   416,   417,   418,   419,   420,
+     421,   422,   423,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,     0,   114,   115,   116,    72,    73,
+      74,    75,   146,    76,     0,     0,    77,    78,    79,    80,
+     147,    81,    72,    73,    74,    75,     0,    76,     0,     0,
+     387,    78,    79,    80,     0,    81,    72,    73,    74,    75,
+       0,    76,     0,     0,   391,    78,    79,    80,     0,    81,
+      72,    73,    74,    75,     0,    76,     0,     0,   492,    78,
+      79,    80,     0,    81,    72,    73,    74,    75,     0,    76,
+       0,     0,   498,    78,    79,    80,     0,    81,    72,    73,
+      74,    75,    43,    76,     0,     0,   343,     0,     0,     0,
+      46,    81,    72,    73,    74,    75,     0,    76,     0,     0,
+     337,    72,    73,    74,    75,    81,    76,     0,     0,   452,
+      72,    73,    74,    75,    81,    76,     0,     0,   512,     0,
+       0,     0,     0,    81
 };
 
 static const yytype_int16 yycheck[] =
 {
-      41,    67,   134,   221,   172,   127,   234,   339,     4,   340,
-       1,   434,     4,     4,     4,     4,    72,     4,   186,    10,
-      16,    12,    13,    14,     5,    11,    15,     8,     9,    72,
-     244,     4,    23,   113,    72,    72,    29,    31,    29,    30,
-      31,    14,   199,    72,    35,   109,    72,    72,    72,   128,
-     129,    32,    72,   117,    95,   187,   484,    30,   486,   109,
-     217,   102,   280,   113,   282,   283,   116,   117,    62,    14,
-      63,   127,   114,    64,    65,    66,    67,    31,    23,   113,
-      72,   124,    72,    76,    75,    72,    82,   124,    79,   127,
-      81,    80,    73,   124,   322,   309,   228,   325,   127,    85,
-     222,   127,   127,   127,   124,    78,   238,   438,    62,     8,
-       9,   102,   244,   113,   105,   106,   107,   108,   109,   110,
-       4,   253,   113,     0,   455,   116,   117,   118,   459,   552,
-     111,     6,     7,    32,   113,   126,     4,   365,   119,   120,
-     368,    10,   310,   123,   185,    18,    19,    20,    21,   121,
-      25,    77,   113,    72,   126,   116,    31,    83,    84,   291,
-     105,   106,   107,   108,   109,   110,   113,   114,   113,   114,
-     115,   116,   117,   118,    73,   109,   308,   309,    17,   113,
-       4,   125,    21,   128,   129,   130,     4,     4,    57,    58,
-      59,    60,    61,    62,   235,   236,   237,   329,   113,   427,
-     332,   429,   113,    72,    52,    53,    54,    55,   141,   142,
-     113,     4,   111,     6,     7,     8,     9,   349,   550,   125,
-     119,   120,    97,   109,     6,     7,     4,   102,   101,   104,
-     104,   102,    25,   274,    27,   276,   111,     4,    31,    52,
-      53,    54,    55,    25,   119,   120,   414,   180,   181,    31,
-     382,   383,   137,   105,   106,   107,   108,   123,   110,    14,
-     114,   109,   113,   431,   113,   113,   118,     4,   309,   126,
-     311,    10,   117,    12,    13,    14,   124,   113,   114,   115,
-     116,     4,   323,   126,    23,   326,   327,    72,   126,   126,
-      29,    30,    31,   126,   126,   463,    35,   465,   126,   340,
-     341,   113,   113,   123,    97,   346,   110,   123,   102,   124,
-     103,    72,   353,   435,   436,    97,     4,   127,   111,   127,
-     102,   453,   104,   125,   127,    64,    65,    66,    67,   111,
-     127,   549,   127,   113,   125,   127,    75,   119,   120,   127,
-      79,    14,    81,     4,   125,     4,    73,     4,   113,   481,
-     105,   106,   107,   108,     4,   110,   488,   109,   113,   114,
-     115,   116,     4,   118,     4,     4,   105,   106,   107,   108,
-     109,   110,   126,    72,   113,    72,   121,   116,   117,   118,
-     126,    10,   423,   105,   106,   107,   108,   126,   110,   430,
-     126,   113,   114,   115,   116,    10,   118,   438,   439,   109,
-     109,   109,   443,    22,    10,   126,   447,   126,   125,   541,
-     126,    10,   101,   454,   455,    22,   482,   458,   459,    72,
-     461,   462,   123,   464,    22,   123,    72,   468,   123,   123,
-     113,     4,   105,   106,   107,   108,    22,   110,   479,   480,
-     113,   114,   115,   116,    44,   118,     4,     4,   125,   127,
-      50,    51,     4,   125,     4,   126,    56,    57,    58,    59,
-      60,    61,    62,    22,   126,   125,    22,   125,    68,    69,
-      70,    71,     4,   127,     4,   113,     4,   518,   519,     4,
-     521,     4,    13,    62,   525,   228,   349,   528,   346,   530,
-      36,    37,    38,    39,    40,    41,    42,    43,   132,    45,
-      46,    47,    48,    49,   105,   106,   107,   108,   109,   110,
-     192,   125,   113,   114,   115,   116,   117,   118,   218,   518,
-     277,   217,   122,   124,   124,   453,   332,   383,   277,   129,
-     130,   131,   132,   133,   134,   135,   136,   105,   106,   107,
-     108,   109,   110,   187,   308,   113,   114,   115,   116,   253,
-     118,   102,   185,    -1,    -1,    -1,   124,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    -1,    98,
-      99,   100,    -1,    -1,    -1,   121,    -1,   123,   124,   105,
-     106,   107,   108,   109,   110,    -1,    -1,   113,   114,   115,
-     116,   117,   118,   105,   106,   107,   108,    -1,   110,    -1,
-      -1,   113,   114,   115,   116,    -1,   118,   105,   106,   107,
-     108,    -1,   110,    -1,    -1,   113,   114,   115,   116,    -1,
-     118,   105,   106,   107,   108,    -1,   110,    -1,    -1,   113,
-     114,   115,   116,    -1,   118,   105,   106,   107,   108,    -1,
-     110,    -1,    -1,   113,   114,   115,   116,    -1,   118,   105,
-     106,   107,   108,   109,   110,    -1,    -1,   113,    -1,    -1,
-     116,    -1,   118,   105,   106,   107,   108,   109,   110,    -1,
-      -1,   113,    -1,    -1,    -1,   117,   118,   105,   106,   107,
-     108,    -1,   110,    -1,    -1,   113,   105,   106,   107,   108,
-     118,   110,    -1,    -1,   113,   105,   106,   107,   108,   118,
-     110,    -1,    -1,   113,    -1,    -1,    -1,    -1,   118
+      41,    67,   134,   221,   172,   127,   340,   435,     4,    11,
+     234,     4,     4,     4,     4,   244,    72,    72,   186,    15,
+     109,    14,   341,     1,   199,    16,     4,    31,   117,    17,
+       4,    31,    10,    21,    12,    13,    14,    30,   141,   142,
+       5,   121,   217,     8,     9,    23,   126,   114,    72,    72,
+      72,    29,    30,    31,    95,   187,   113,    35,    62,    72,
+      72,   102,    62,   281,    72,   283,   284,    32,   113,   114,
+      14,   127,   127,    18,    19,    20,    21,   180,   181,    23,
+      72,   310,    72,    85,    80,    78,    64,    65,    66,    67,
+       4,    82,     6,     7,     8,     9,   228,    75,    72,   323,
+     124,    79,   326,    81,   127,   127,   238,   485,    73,   487,
+     232,    25,   244,    27,   127,   127,   124,    31,   128,   129,
+     439,   253,   109,   124,   102,   553,   113,   105,   106,   107,
+     108,   109,   110,    29,   113,   113,    72,   456,   116,   117,
+     118,   460,   366,   311,   185,   369,   111,   113,   126,   113,
+     116,     8,     9,   113,   119,   120,   101,     4,     0,     4,
+     292,   105,   106,   107,   108,   109,   110,    63,   123,   113,
+     114,   115,   116,   117,   118,    32,    10,   309,   310,    72,
+      76,     4,   125,    97,   128,   129,   130,     4,   124,   103,
+       4,   113,   113,    77,   235,   236,   237,   111,   330,    83,
+      84,   333,   125,   109,   428,   113,   430,   104,     4,    52,
+      53,    54,    55,   102,     4,   114,    73,   551,   350,   137,
+       6,     7,   123,    57,    58,    59,    60,    61,    62,     4,
+     105,   106,   107,   108,   275,   110,   277,   113,    72,    25,
+       6,     7,   109,   118,   113,    31,   113,   415,   126,   116,
+     117,   383,   384,   117,   111,    52,    53,    54,    55,    25,
+     126,   126,   119,   120,   432,    31,   109,   126,   126,   310,
+     113,   312,    10,   126,    12,    13,    14,   113,   114,   115,
+     116,   124,   126,   324,     4,    23,   327,   328,    72,   113,
+     123,    29,    30,    31,   113,   123,   464,    35,   466,   110,
+     341,   342,   102,   124,    72,   127,   347,   127,     4,   127,
+     113,    97,   127,   354,   436,   437,   102,   127,   104,   127,
+     127,   125,   454,   125,   125,   111,    64,    65,    66,    67,
+       4,    97,   550,   119,   120,     4,   102,    75,   104,    73,
+      72,    79,    14,    81,     4,   111,   109,     4,   113,     4,
+     482,     4,   126,   119,   120,     4,    14,   489,    72,    72,
+     121,   109,   126,    10,   126,    10,   109,   105,   106,   107,
+     108,   109,   110,   109,    22,   113,   126,   126,   116,   117,
+     118,   125,    10,   424,   105,   106,   107,   108,   126,   110,
+     431,   126,   113,   114,   115,   116,    10,   118,   439,   440,
+     101,    72,    22,   444,   123,   123,   123,   448,    72,    22,
+     542,   123,     4,   113,   455,   456,     4,   483,   459,   460,
+       4,   462,   463,    22,   465,   127,   125,   125,   469,   126,
+       4,    22,   126,   105,   106,   107,   108,    22,   110,   480,
+     481,   113,   114,   115,   116,   125,   118,   105,   106,   107,
+     108,     4,   110,     4,   113,   113,   114,   115,   116,   125,
+     118,    36,    37,    38,    39,    40,    41,    42,    43,     4,
+      45,    46,    47,    48,    49,   127,     4,     4,   519,   520,
+      44,   522,     4,    13,    62,   526,    50,    51,   529,   228,
+     531,   347,    56,    57,    58,    59,    60,    61,    62,   350,
+     192,   132,   125,   218,    68,    69,    70,    71,   105,   106,
+     107,   108,   109,   110,   217,   454,   113,   114,   115,   116,
+     117,   118,   519,   384,   333,   278,   278,   124,   105,   106,
+     107,   108,   109,   110,   185,   102,   113,   114,   115,   116,
+     309,   118,   253,   187,    -1,    -1,   121,   124,   123,   124,
+      -1,   105,   106,   107,   108,   109,   110,    -1,   122,   113,
+     124,    -1,   116,    -1,   118,   129,   130,   131,   132,   133,
+     134,   135,   136,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    -1,    98,    99,   100,   105,   106,
+     107,   108,   109,   110,    -1,    -1,   113,   114,   115,   116,
+     117,   118,   105,   106,   107,   108,    -1,   110,    -1,    -1,
+     113,   114,   115,   116,    -1,   118,   105,   106,   107,   108,
+      -1,   110,    -1,    -1,   113,   114,   115,   116,    -1,   118,
+     105,   106,   107,   108,    -1,   110,    -1,    -1,   113,   114,
+     115,   116,    -1,   118,   105,   106,   107,   108,    -1,   110,
+      -1,    -1,   113,   114,   115,   116,    -1,   118,   105,   106,
+     107,   108,   109,   110,    -1,    -1,   113,    -1,    -1,    -1,
+     117,   118,   105,   106,   107,   108,    -1,   110,    -1,    -1,
+     113,   105,   106,   107,   108,   118,   110,    -1,    -1,   113,
+     105,   106,   107,   108,   118,   110,    -1,    -1,   113,    -1,
+      -1,    -1,    -1,   118
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2114,39 +2114,39 @@
      151,   151,   125,   260,   256,   250,   125,   179,     5,    32,
      111,   119,   120,   143,   144,   168,   180,   208,   209,   210,
      125,   169,   113,     4,     4,    73,   210,     1,   211,   214,
-     170,   222,   263,     4,    10,    12,    13,    14,    23,    29,
+     170,   222,    72,     4,    10,    12,    13,    14,    23,    29,
       30,    31,    35,    64,    65,    66,    67,    75,    79,    81,
      109,   113,   116,   117,   126,   148,   181,   196,   198,   204,
      206,   218,   224,   228,   230,   232,   233,   234,   242,   243,
-     244,   247,   109,   253,    14,   255,    14,   255,   255,   247,
-     219,   113,   220,   221,   234,   247,   229,     4,     4,     4,
-     248,   225,   126,     4,   235,    36,    37,    38,    39,    40,
-      41,    42,    43,    45,    46,    47,    48,    49,   121,   123,
-     124,   231,   194,   255,    10,    57,    58,    59,    60,    61,
-      62,    72,   245,   246,   255,   245,   246,    72,   222,    72,
-     222,   222,   126,   182,   197,   199,   113,   240,   241,   247,
-     205,   126,   113,   247,   252,    14,    23,   113,   116,   117,
-     128,   129,   130,   226,   234,   247,   255,   256,   255,    18,
-      19,    20,    21,   101,   195,    10,   253,   255,    10,   253,
-     255,   255,   109,   215,   216,   247,   109,   109,   241,   189,
-     200,   201,    22,    72,   127,   194,   113,   207,   237,   255,
-     113,   236,   237,   109,   162,   223,   255,   157,   255,    44,
-      50,    51,    56,    57,    58,    59,    60,    61,    62,    68,
-      69,    70,    71,   122,   124,   129,   130,   131,   132,   133,
-     134,   135,   136,   227,   125,   126,   253,    10,   253,    10,
-      72,   124,   101,   217,    72,   123,   123,   127,    11,    85,
-     184,   190,     4,    15,    80,   202,     4,    16,    82,   203,
-     247,   113,   240,   123,    22,    72,   127,   238,    22,    72,
-     127,    72,    72,   124,    72,   124,   256,   255,   123,   113,
-     253,   253,   255,   256,   216,   263,   263,   237,   255,    77,
-      83,    84,   188,     4,   255,     4,   255,     4,    22,   233,
-     255,   113,   237,    17,    21,   239,   255,   113,   237,   255,
-     255,   256,   255,   256,   125,   255,   127,   125,     4,   255,
-     255,   113,   247,   183,   213,   238,   238,   247,   126,    22,
-     126,    22,   125,   125,     4,    72,     4,     4,    72,     4,
-      72,   191,     4,   236,   255,   113,   255,   255,   255,   255,
-      29,    63,    76,   192,   127,   127,     4,     4,     4,   193,
-     247,     4,   222,   194,   216
+     244,   247,   109,   263,   253,    14,   255,    14,   255,   255,
+     247,   219,   113,   220,   221,   234,   247,   229,     4,     4,
+       4,   248,   225,   126,     4,   235,    36,    37,    38,    39,
+      40,    41,    42,    43,    45,    46,    47,    48,    49,   121,
+     123,   124,   231,   194,   255,    10,    57,    58,    59,    60,
+      61,    62,    72,   245,   246,   255,   245,   246,    72,   222,
+      72,   222,   222,   126,   182,   197,   199,   113,   240,   241,
+     247,   205,   126,   113,   247,   252,    14,    23,   113,   116,
+     117,   128,   129,   130,   226,   234,   247,   255,   256,   255,
+      18,    19,    20,    21,   101,   195,    10,   253,   255,    10,
+     253,   255,   255,   109,   215,   216,   247,   109,   109,   241,
+     189,   200,   201,    22,    72,   127,   194,   113,   207,   237,
+     255,   113,   236,   237,   109,   162,   223,   255,   157,   255,
+      44,    50,    51,    56,    57,    58,    59,    60,    61,    62,
+      68,    69,    70,    71,   122,   124,   129,   130,   131,   132,
+     133,   134,   135,   136,   227,   125,   126,   253,    10,   253,
+      10,    72,   124,   101,   217,    72,   123,   123,   127,    11,
+      85,   184,   190,     4,    15,    80,   202,     4,    16,    82,
+     203,   247,   113,   240,   123,    22,    72,   127,   238,    22,
+      72,   127,    72,    72,   124,    72,   124,   256,   255,   123,
+     113,   253,   253,   255,   256,   216,   263,   263,   237,   255,
+      77,    83,    84,   188,     4,   255,     4,   255,     4,    22,
+     233,   255,   113,   237,    17,    21,   239,   255,   113,   237,
+     255,   255,   256,   255,   256,   125,   255,   127,   125,     4,
+     255,   255,   113,   247,   183,   213,   238,   238,   247,   126,
+      22,   126,    22,   125,   125,     4,    72,     4,     4,    72,
+       4,    72,   191,     4,   236,   255,   113,   255,   255,   255,
+     255,    29,    63,    76,   192,   127,   127,     4,     4,     4,
+     193,   247,     4,   222,   194,   216
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -2974,22 +2974,22 @@
   switch (yyn)
     {
         case 2:
-#line 879 "compilers/imcc/imcc.y"
+#line 880 "compilers/imcc/imcc.y"
     { if (yynerrs) YYABORT; (yyval.i) = 0; }
     break;
 
   case 5:
-#line 888 "compilers/imcc/imcc.y"
+#line 889 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 6:
-#line 889 "compilers/imcc/imcc.y"
+#line 890 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 7:
-#line 891 "compilers/imcc/imcc.y"
+#line 892 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -2998,7 +2998,7 @@
     break;
 
   case 8:
-#line 897 "compilers/imcc/imcc.y"
+#line 898 "compilers/imcc/imcc.y"
     {
            (yyval.i) = (yyvsp[(1) - (1)].i);
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3007,32 +3007,32 @@
     break;
 
   case 9:
-#line 902 "compilers/imcc/imcc.y"
+#line 903 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 10:
-#line 903 "compilers/imcc/imcc.y"
+#line 904 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 11:
-#line 904 "compilers/imcc/imcc.y"
+#line 905 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 12:
-#line 905 "compilers/imcc/imcc.y"
+#line 906 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 13:
-#line 909 "compilers/imcc/imcc.y"
+#line 910 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 14:
-#line 911 "compilers/imcc/imcc.y"
+#line 912 "compilers/imcc/imcc.y"
     {
            (yyval.i) = 0;
            do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3041,7 +3041,7 @@
     break;
 
   case 15:
-#line 920 "compilers/imcc/imcc.y"
+#line 921 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
            set_filename(interp, (yyvsp[(4) - (5)].s));
@@ -3049,25 +3049,25 @@
     break;
 
   case 16:
-#line 925 "compilers/imcc/imcc.y"
+#line 926 "compilers/imcc/imcc.y"
     {
            set_filename(interp, (yyvsp[(2) - (3)].s));
          }
     break;
 
   case 17:
-#line 932 "compilers/imcc/imcc.y"
+#line 933 "compilers/imcc/imcc.y"
     {
           /* We'll want to store an entry while emitting instructions, so just
            * store annotation like it's an instruction. */
-          SymReg * const key = mk_const(interp, (yyvsp[(2) - (3)].s), 'S');
-          (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate",  2, key, (yyvsp[(3) - (3)].sr));
-          mem_sys_free((yyvsp[(2) - (3)].s));
+          SymReg * const key = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
+          (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, ".annotate", 2, key, (yyvsp[(4) - (4)].sr));
+          mem_sys_free((yyvsp[(2) - (4)].s));
         }
     break;
 
   case 18:
-#line 943 "compilers/imcc/imcc.y"
+#line 945 "compilers/imcc/imcc.y"
     {
             STRING * const hll_name = string_unescape_cstring(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
             CONTEXT(interp)->current_HLL =
@@ -3079,7 +3079,7 @@
     break;
 
   case 19:
-#line 952 "compilers/imcc/imcc.y"
+#line 954 "compilers/imcc/imcc.y"
     {
             Parrot_Context *ctx           = CONTEXT(interp);
             STRING * const  built_in_name =
@@ -3097,12 +3097,12 @@
     break;
 
   case 20:
-#line 969 "compilers/imcc/imcc.y"
+#line 971 "compilers/imcc/imcc.y"
     { is_def = 1; }
     break;
 
   case 21:
-#line 970 "compilers/imcc/imcc.y"
+#line 972 "compilers/imcc/imcc.y"
     {
              mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
              mem_sys_free((yyvsp[(4) - (6)].s));
@@ -3111,12 +3111,12 @@
     break;
 
   case 22:
-#line 978 "compilers/imcc/imcc.y"
+#line 980 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 23:
-#line 979 "compilers/imcc/imcc.y"
+#line 981 "compilers/imcc/imcc.y"
     {
            (yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
            is_def = 0;
@@ -3124,12 +3124,12 @@
     break;
 
   case 24:
-#line 984 "compilers/imcc/imcc.y"
+#line 986 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 25:
-#line 985 "compilers/imcc/imcc.y"
+#line 987 "compilers/imcc/imcc.y"
     {
            (yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
            is_def = 0;
@@ -3137,37 +3137,37 @@
     break;
 
   case 30:
-#line 1001 "compilers/imcc/imcc.y"
+#line 1003 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 31:
-#line 1002 "compilers/imcc/imcc.y"
+#line 1004 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 32:
-#line 1003 "compilers/imcc/imcc.y"
+#line 1005 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 33:
-#line 1004 "compilers/imcc/imcc.y"
+#line 1006 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;  }
     break;
 
   case 34:
-#line 1005 "compilers/imcc/imcc.y"
+#line 1007 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 37:
-#line 1010 "compilers/imcc/imcc.y"
+#line 1012 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 38:
-#line 1012 "compilers/imcc/imcc.y"
+#line 1014 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
                     (yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3177,7 +3177,7 @@
     break;
 
   case 39:
-#line 1019 "compilers/imcc/imcc.y"
+#line 1021 "compilers/imcc/imcc.y"
     {
            imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3185,7 +3185,7 @@
     break;
 
   case 40:
-#line 1024 "compilers/imcc/imcc.y"
+#line 1026 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iSUBROUTINE(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -3195,14 +3195,14 @@
     break;
 
   case 41:
-#line 1031 "compilers/imcc/imcc.y"
+#line 1033 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
          }
     break;
 
   case 42:
-#line 1035 "compilers/imcc/imcc.y"
+#line 1037 "compilers/imcc/imcc.y"
     {
            SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
            set_lexical(interp, r, (yyvsp[(2) - (4)].s));
@@ -3213,17 +3213,17 @@
     break;
 
   case 43:
-#line 1042 "compilers/imcc/imcc.y"
+#line 1044 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 45:
-#line 1050 "compilers/imcc/imcc.y"
+#line 1052 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
     break;
 
   case 46:
-#line 1053 "compilers/imcc/imcc.y"
+#line 1055 "compilers/imcc/imcc.y"
     {
            /* if (optimizer_level & OPT_PASM)
                          imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3234,7 +3234,7 @@
     break;
 
   case 49:
-#line 1069 "compilers/imcc/imcc.y"
+#line 1071 "compilers/imcc/imcc.y"
     {
            int re_open = 0;
            (yyval.i) = 0;
@@ -3249,7 +3249,7 @@
     break;
 
   case 50:
-#line 1084 "compilers/imcc/imcc.y"
+#line 1086 "compilers/imcc/imcc.y"
     {
             if (IMCC_INFO(interp)->in_slice)
                 IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3260,26 +3260,26 @@
     break;
 
   case 51:
-#line 1091 "compilers/imcc/imcc.y"
+#line 1093 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 52:
-#line 1096 "compilers/imcc/imcc.y"
+#line 1098 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
          }
     break;
 
   case 53:
-#line 1100 "compilers/imcc/imcc.y"
+#line 1102 "compilers/imcc/imcc.y"
     {
            iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
          }
     break;
 
   case 54:
-#line 1104 "compilers/imcc/imcc.y"
+#line 1106 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
           if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid) {
@@ -3290,22 +3290,22 @@
     break;
 
   case 55:
-#line 1112 "compilers/imcc/imcc.y"
+#line 1114 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 56:
-#line 1116 "compilers/imcc/imcc.y"
+#line 1118 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 57:
-#line 1117 "compilers/imcc/imcc.y"
+#line 1119 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 58:
-#line 1119 "compilers/imcc/imcc.y"
+#line 1121 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                  add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3318,17 +3318,17 @@
     break;
 
   case 59:
-#line 1131 "compilers/imcc/imcc.y"
+#line 1133 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 60:
-#line 1131 "compilers/imcc/imcc.y"
+#line 1133 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(3) - (3)].sr); is_def=0; }
     break;
 
   case 61:
-#line 1136 "compilers/imcc/imcc.y"
+#line 1138 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(3) - (3)].t) & VT_UNIQUE_REG)
                (yyval.sr) = mk_ident_ur(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
@@ -3340,12 +3340,12 @@
     break;
 
   case 62:
-#line 1149 "compilers/imcc/imcc.y"
+#line 1151 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 63:
-#line 1154 "compilers/imcc/imcc.y"
+#line 1156 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3354,7 +3354,7 @@
     break;
 
   case 64:
-#line 1160 "compilers/imcc/imcc.y"
+#line 1162 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3363,7 +3363,7 @@
     break;
 
   case 65:
-#line 1169 "compilers/imcc/imcc.y"
+#line 1171 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
@@ -3372,7 +3372,7 @@
     break;
 
   case 66:
-#line 1175 "compilers/imcc/imcc.y"
+#line 1177 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
@@ -3381,7 +3381,7 @@
     break;
 
   case 67:
-#line 1184 "compilers/imcc/imcc.y"
+#line 1186 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3390,7 +3390,7 @@
     break;
 
   case 68:
-#line 1190 "compilers/imcc/imcc.y"
+#line 1192 "compilers/imcc/imcc.y"
     {
            (yyval.t) = P_METHOD;
            IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3399,7 +3399,7 @@
     break;
 
   case 69:
-#line 1199 "compilers/imcc/imcc.y"
+#line 1201 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
@@ -3408,7 +3408,7 @@
     break;
 
   case 70:
-#line 1205 "compilers/imcc/imcc.y"
+#line 1207 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3417,7 +3417,7 @@
     break;
 
   case 71:
-#line 1214 "compilers/imcc/imcc.y"
+#line 1216 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3425,7 +3425,7 @@
     break;
 
   case 72:
-#line 1222 "compilers/imcc/imcc.y"
+#line 1224 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3433,7 +3433,7 @@
     break;
 
   case 73:
-#line 1227 "compilers/imcc/imcc.y"
+#line 1229 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3443,14 +3443,14 @@
     break;
 
   case 74:
-#line 1237 "compilers/imcc/imcc.y"
+#line 1239 "compilers/imcc/imcc.y"
     {
            add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
          }
     break;
 
   case 75:
-#line 1241 "compilers/imcc/imcc.y"
+#line 1243 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3458,7 +3458,7 @@
     break;
 
   case 76:
-#line 1246 "compilers/imcc/imcc.y"
+#line 1248 "compilers/imcc/imcc.y"
     {
            (yyval.t) = 0;
            add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3466,27 +3466,27 @@
     break;
 
   case 77:
-#line 1253 "compilers/imcc/imcc.y"
+#line 1255 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "INTVAL",   'S'); }
     break;
 
   case 78:
-#line 1254 "compilers/imcc/imcc.y"
+#line 1256 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
     break;
 
   case 79:
-#line 1255 "compilers/imcc/imcc.y"
+#line 1257 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "PMC",      'S'); }
     break;
 
   case 80:
-#line 1256 "compilers/imcc/imcc.y"
+#line 1258 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, "STRING",   'S'); }
     break;
 
   case 81:
-#line 1258 "compilers/imcc/imcc.y"
+#line 1260 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3500,7 +3500,7 @@
     break;
 
   case 82:
-#line 1269 "compilers/imcc/imcc.y"
+#line 1271 "compilers/imcc/imcc.y"
     {
            SymReg *r;
            if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3514,12 +3514,12 @@
     break;
 
   case 83:
-#line 1279 "compilers/imcc/imcc.y"
+#line 1281 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 86:
-#line 1289 "compilers/imcc/imcc.y"
+#line 1291 "compilers/imcc/imcc.y"
     {
            char name[128];
            SymReg *r, *r1;
@@ -3546,82 +3546,82 @@
     break;
 
   case 87:
-#line 1317 "compilers/imcc/imcc.y"
+#line 1319 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 88:
-#line 1321 "compilers/imcc/imcc.y"
+#line 1323 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
     break;
 
   case 89:
-#line 1322 "compilers/imcc/imcc.y"
+#line 1324 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
     break;
 
   case 90:
-#line 1326 "compilers/imcc/imcc.y"
+#line 1328 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 91:
-#line 1327 "compilers/imcc/imcc.y"
+#line 1329 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL;  IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
     break;
 
   case 92:
-#line 1331 "compilers/imcc/imcc.y"
+#line 1333 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 94:
-#line 1336 "compilers/imcc/imcc.y"
+#line 1338 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (1)].t); }
     break;
 
   case 95:
-#line 1337 "compilers/imcc/imcc.y"
+#line 1339 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 96:
-#line 1341 "compilers/imcc/imcc.y"
+#line 1343 "compilers/imcc/imcc.y"
     { (yyval.t) = P_LOAD; }
     break;
 
   case 97:
-#line 1342 "compilers/imcc/imcc.y"
+#line 1344 "compilers/imcc/imcc.y"
     { (yyval.t) = P_INIT; }
     break;
 
   case 98:
-#line 1343 "compilers/imcc/imcc.y"
+#line 1345 "compilers/imcc/imcc.y"
     { (yyval.t) = P_MAIN; }
     break;
 
   case 99:
-#line 1344 "compilers/imcc/imcc.y"
+#line 1346 "compilers/imcc/imcc.y"
     { (yyval.t) = P_IMMEDIATE; }
     break;
 
   case 100:
-#line 1345 "compilers/imcc/imcc.y"
+#line 1347 "compilers/imcc/imcc.y"
     { (yyval.t) = P_POSTCOMP; }
     break;
 
   case 101:
-#line 1346 "compilers/imcc/imcc.y"
+#line 1348 "compilers/imcc/imcc.y"
     { (yyval.t) = P_ANON; }
     break;
 
   case 102:
-#line 1347 "compilers/imcc/imcc.y"
+#line 1349 "compilers/imcc/imcc.y"
     { (yyval.t) = P_NEED_LEX; }
     break;
 
   case 110:
-#line 1359 "compilers/imcc/imcc.y"
+#line 1361 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3629,14 +3629,14 @@
     break;
 
   case 111:
-#line 1364 "compilers/imcc/imcc.y"
+#line 1366 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
     break;
 
   case 112:
-#line 1368 "compilers/imcc/imcc.y"
+#line 1370 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
@@ -3644,21 +3644,21 @@
     break;
 
   case 113:
-#line 1373 "compilers/imcc/imcc.y"
+#line 1375 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
          }
     break;
 
   case 114:
-#line 1377 "compilers/imcc/imcc.y"
+#line 1379 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
          }
     break;
 
   case 115:
-#line 1381 "compilers/imcc/imcc.y"
+#line 1383 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3666,7 +3666,7 @@
     break;
 
   case 116:
-#line 1386 "compilers/imcc/imcc.y"
+#line 1388 "compilers/imcc/imcc.y"
     {
            add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
            add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3674,27 +3674,27 @@
     break;
 
   case 117:
-#line 1394 "compilers/imcc/imcc.y"
+#line 1396 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 118:
-#line 1395 "compilers/imcc/imcc.y"
+#line 1397 "compilers/imcc/imcc.y"
     { add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
     break;
 
   case 119:
-#line 1399 "compilers/imcc/imcc.y"
+#line 1401 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (2)].sr); }
     break;
 
   case 120:
-#line 1404 "compilers/imcc/imcc.y"
+#line 1406 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 121:
-#line 1406 "compilers/imcc/imcc.y"
+#line 1408 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -3702,17 +3702,17 @@
     break;
 
   case 122:
-#line 1413 "compilers/imcc/imcc.y"
+#line 1415 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 123:
-#line 1414 "compilers/imcc/imcc.y"
+#line 1416 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 124:
-#line 1415 "compilers/imcc/imcc.y"
+#line 1417 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
            SymReg *ignored;
@@ -3727,57 +3727,57 @@
     break;
 
   case 125:
-#line 1429 "compilers/imcc/imcc.y"
+#line 1431 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 126:
-#line 1430 "compilers/imcc/imcc.y"
+#line 1432 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 127:
-#line 1434 "compilers/imcc/imcc.y"
+#line 1436 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT;   }
     break;
 
   case 128:
-#line 1435 "compilers/imcc/imcc.y"
+#line 1437 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPTIONAL; }
     break;
 
   case 129:
-#line 1436 "compilers/imcc/imcc.y"
+#line 1438 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_OPT_FLAG; }
     break;
 
   case 130:
-#line 1437 "compilers/imcc/imcc.y"
+#line 1439 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED; }
     break;
 
   case 131:
-#line 1438 "compilers/imcc/imcc.y"
+#line 1440 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 132:
-#line 1439 "compilers/imcc/imcc.y"
+#line 1441 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_UNIQUE_REG; }
     break;
 
   case 133:
-#line 1444 "compilers/imcc/imcc.y"
+#line 1446 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 0); }
     break;
 
   case 134:
-#line 1446 "compilers/imcc/imcc.y"
+#line 1448 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 135:
-#line 1448 "compilers/imcc/imcc.y"
+#line 1450 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->asm_state = AsmDefault;
            (yyval.i) = 0;
@@ -3785,22 +3785,22 @@
     break;
 
   case 136:
-#line 1455 "compilers/imcc/imcc.y"
+#line 1457 "compilers/imcc/imcc.y"
     { begin_return_or_yield(interp, 1); }
     break;
 
   case 137:
-#line 1457 "compilers/imcc/imcc.y"
+#line 1459 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
     break;
 
   case 138:
-#line 1461 "compilers/imcc/imcc.y"
+#line 1463 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 139:
-#line 1463 "compilers/imcc/imcc.y"
+#line 1465 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3808,7 +3808,7 @@
     break;
 
   case 140:
-#line 1468 "compilers/imcc/imcc.y"
+#line 1470 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3816,12 +3816,12 @@
     break;
 
   case 141:
-#line 1475 "compilers/imcc/imcc.y"
+#line 1477 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 142:
-#line 1477 "compilers/imcc/imcc.y"
+#line 1479 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(1) - (2)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3829,7 +3829,7 @@
     break;
 
   case 143:
-#line 1482 "compilers/imcc/imcc.y"
+#line 1484 "compilers/imcc/imcc.y"
     {
            if ((yyvsp[(2) - (3)].sr))
                add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3837,17 +3837,17 @@
     break;
 
   case 144:
-#line 1489 "compilers/imcc/imcc.y"
+#line 1491 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 145:
-#line 1493 "compilers/imcc/imcc.y"
+#line 1495 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
     break;
 
   case 146:
-#line 1498 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
     {
           if (IMCC_INFO(interp)->asm_state == AsmDefault)
               begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -3855,7 +3855,7 @@
     break;
 
   case 147:
-#line 1503 "compilers/imcc/imcc.y"
+#line 1505 "compilers/imcc/imcc.y"
     {
           IMCC_INFO(interp)->asm_state = AsmDefault;
           (yyval.t) = 0;
@@ -3863,22 +3863,22 @@
     break;
 
   case 148:
-#line 1510 "compilers/imcc/imcc.y"
+#line 1512 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 149:
-#line 1511 "compilers/imcc/imcc.y"
+#line 1513 "compilers/imcc/imcc.y"
     { (yyval.t) = 1; }
     break;
 
   case 150:
-#line 1515 "compilers/imcc/imcc.y"
+#line 1517 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 151:
-#line 1517 "compilers/imcc/imcc.y"
+#line 1519 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3891,14 +3891,14 @@
     break;
 
   case 152:
-#line 1527 "compilers/imcc/imcc.y"
+#line 1529 "compilers/imcc/imcc.y"
     {
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
          }
     break;
 
   case 153:
-#line 1531 "compilers/imcc/imcc.y"
+#line 1533 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->adv_named_id) {
                add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3911,66 +3911,66 @@
     break;
 
   case 154:
-#line 1541 "compilers/imcc/imcc.y"
+#line 1543 "compilers/imcc/imcc.y"
     {
            add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
          }
     break;
 
   case 157:
-#line 1561 "compilers/imcc/imcc.y"
+#line 1563 "compilers/imcc/imcc.y"
     { clear_state(interp); }
     break;
 
   case 158:
-#line 1566 "compilers/imcc/imcc.y"
+#line 1568 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (2)].i); }
     break;
 
   case 159:
-#line 1567 "compilers/imcc/imcc.y"
+#line 1569 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 160:
-#line 1568 "compilers/imcc/imcc.y"
+#line 1570 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 161:
-#line 1569 "compilers/imcc/imcc.y"
+#line 1571 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 162:
-#line 1570 "compilers/imcc/imcc.y"
+#line 1572 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 163:
-#line 1571 "compilers/imcc/imcc.y"
+#line 1573 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 164:
-#line 1575 "compilers/imcc/imcc.y"
+#line 1577 "compilers/imcc/imcc.y"
     { (yyval.i) = NULL; }
     break;
 
   case 168:
-#line 1586 "compilers/imcc/imcc.y"
+#line 1588 "compilers/imcc/imcc.y"
     {
            (yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
          }
     break;
 
   case 169:
-#line 1594 "compilers/imcc/imcc.y"
+#line 1596 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (3)].i); }
     break;
 
   case 170:
-#line 1596 "compilers/imcc/imcc.y"
+#line 1598 "compilers/imcc/imcc.y"
     {
            if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
                IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -3981,7 +3981,7 @@
     break;
 
   case 171:
-#line 1607 "compilers/imcc/imcc.y"
+#line 1609 "compilers/imcc/imcc.y"
     {
            IdList* l = (yyvsp[(1) - (1)].idlist);
            l->next = NULL;
@@ -3990,7 +3990,7 @@
     break;
 
   case 172:
-#line 1614 "compilers/imcc/imcc.y"
+#line 1616 "compilers/imcc/imcc.y"
     {
            IdList* l = (yyvsp[(3) - (3)].idlist);
            l->next = (yyvsp[(1) - (3)].idlist);
@@ -3999,7 +3999,7 @@
     break;
 
   case 173:
-#line 1623 "compilers/imcc/imcc.y"
+#line 1625 "compilers/imcc/imcc.y"
     {
            IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
            l->id           = (yyvsp[(1) - (2)].s);
@@ -4009,22 +4009,22 @@
     break;
 
   case 174:
-#line 1632 "compilers/imcc/imcc.y"
+#line 1634 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 175:
-#line 1633 "compilers/imcc/imcc.y"
+#line 1635 "compilers/imcc/imcc.y"
     { (yyval.t) = 1; }
     break;
 
   case 178:
-#line 1640 "compilers/imcc/imcc.y"
+#line 1642 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 179:
-#line 1641 "compilers/imcc/imcc.y"
+#line 1643 "compilers/imcc/imcc.y"
     {
            IdList *l = (yyvsp[(4) - (4)].idlist);
            while (l) {
@@ -4043,19 +4043,19 @@
     break;
 
   case 180:
-#line 1657 "compilers/imcc/imcc.y"
+#line 1659 "compilers/imcc/imcc.y"
     {
            set_lexical(interp, (yyvsp[(4) - (4)].sr), (yyvsp[(2) - (4)].s)); (yyval.i) = 0;
          }
     break;
 
   case 181:
-#line 1660 "compilers/imcc/imcc.y"
+#line 1662 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 182:
-#line 1661 "compilers/imcc/imcc.y"
+#line 1663 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
            is_def=0;
@@ -4064,12 +4064,12 @@
     break;
 
   case 184:
-#line 1668 "compilers/imcc/imcc.y"
+#line 1670 "compilers/imcc/imcc.y"
     { is_def=1; }
     break;
 
   case 185:
-#line 1669 "compilers/imcc/imcc.y"
+#line 1671 "compilers/imcc/imcc.y"
     {
            mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
            is_def=0;
@@ -4078,7 +4078,7 @@
     break;
 
   case 186:
-#line 1675 "compilers/imcc/imcc.y"
+#line 1677 "compilers/imcc/imcc.y"
     {
            (yyval.i) = NULL;
            IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -4087,12 +4087,12 @@
     break;
 
   case 187:
-#line 1680 "compilers/imcc/imcc.y"
+#line 1682 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); }
     break;
 
   case 188:
-#line 1682 "compilers/imcc/imcc.y"
+#line 1684 "compilers/imcc/imcc.y"
     {
            (yyval.i) = INS(interp,
                     IMCC_INFO(interp)->cur_unit,
@@ -4107,47 +4107,47 @@
     break;
 
   case 189:
-#line 1693 "compilers/imcc/imcc.y"
+#line 1695 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
     break;
 
   case 190:
-#line 1694 "compilers/imcc/imcc.y"
+#line 1696 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
     break;
 
   case 191:
-#line 1695 "compilers/imcc/imcc.y"
+#line 1697 "compilers/imcc/imcc.y"
     { (yyval.i) = 0; }
     break;
 
   case 194:
-#line 1698 "compilers/imcc/imcc.y"
+#line 1700 "compilers/imcc/imcc.y"
     { (yyval.i) = 0;}
     break;
 
   case 195:
-#line 1702 "compilers/imcc/imcc.y"
+#line 1704 "compilers/imcc/imcc.y"
     { (yyval.t) = 'I'; }
     break;
 
   case 196:
-#line 1703 "compilers/imcc/imcc.y"
+#line 1705 "compilers/imcc/imcc.y"
     { (yyval.t) = 'N'; }
     break;
 
   case 197:
-#line 1704 "compilers/imcc/imcc.y"
+#line 1706 "compilers/imcc/imcc.y"
     { (yyval.t) = 'S'; }
     break;
 
   case 198:
-#line 1705 "compilers/imcc/imcc.y"
+#line 1707 "compilers/imcc/imcc.y"
     { (yyval.t) = 'P'; }
     break;
 
   case 199:
-#line 1710 "compilers/imcc/imcc.y"
+#line 1712 "compilers/imcc/imcc.y"
     {
            /* there'd normally be a str_dup() here, but the lexer already
             * copied the string, so it's safe to use directly */
@@ -4160,87 +4160,87 @@
     break;
 
   case 200:
-#line 1723 "compilers/imcc/imcc.y"
+#line 1725 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));  }
     break;
 
   case 201:
-#line 1725 "compilers/imcc/imcc.y"
+#line 1727 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));  }
     break;
 
   case 202:
-#line 1727 "compilers/imcc/imcc.y"
+#line 1729 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));  }
     break;
 
   case 203:
-#line 1729 "compilers/imcc/imcc.y"
+#line 1731 "compilers/imcc/imcc.y"
     { (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
     break;
 
   case 204:
-#line 1731 "compilers/imcc/imcc.y"
+#line 1733 "compilers/imcc/imcc.y"
     { (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 205:
-#line 1733 "compilers/imcc/imcc.y"
+#line 1735 "compilers/imcc/imcc.y"
     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].s), (yyvsp[(6) - (6)].sr), 1); }
     break;
 
   case 206:
-#line 1735 "compilers/imcc/imcc.y"
+#line 1737 "compilers/imcc/imcc.y"
     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
     break;
 
   case 207:
-#line 1737 "compilers/imcc/imcc.y"
+#line 1739 "compilers/imcc/imcc.y"
     { (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].s), NULL, 1); }
     break;
 
   case 208:
-#line 1739 "compilers/imcc/imcc.y"
+#line 1741 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
     break;
 
   case 209:
-#line 1741 "compilers/imcc/imcc.y"
+#line 1743 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
     break;
 
   case 210:
-#line 1743 "compilers/imcc/imcc.y"
+#line 1745 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 211:
-#line 1745 "compilers/imcc/imcc.y"
+#line 1747 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 212:
-#line 1747 "compilers/imcc/imcc.y"
+#line 1749 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
     break;
 
   case 213:
-#line 1751 "compilers/imcc/imcc.y"
+#line 1753 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
     break;
 
   case 214:
-#line 1753 "compilers/imcc/imcc.y"
+#line 1755 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
     break;
 
   case 215:
-#line 1755 "compilers/imcc/imcc.y"
+#line 1757 "compilers/imcc/imcc.y"
     { (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
     break;
 
   case 216:
-#line 1758 "compilers/imcc/imcc.y"
+#line 1760 "compilers/imcc/imcc.y"
     {
            add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
@@ -4249,14 +4249,14 @@
     break;
 
   case 217:
-#line 1764 "compilers/imcc/imcc.y"
+#line 1766 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
          }
     break;
 
   case 218:
-#line 1768 "compilers/imcc/imcc.y"
+#line 1770 "compilers/imcc/imcc.y"
     {
            IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
            IMCC_INFO(interp)->cur_call = NULL;
@@ -4264,144 +4264,144 @@
     break;
 
   case 222:
-#line 1776 "compilers/imcc/imcc.y"
+#line 1778 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
          }
     break;
 
   case 223:
-#line 1783 "compilers/imcc/imcc.y"
+#line 1785 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"not"; }
     break;
 
   case 224:
-#line 1784 "compilers/imcc/imcc.y"
+#line 1786 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bnot"; }
     break;
 
   case 225:
-#line 1785 "compilers/imcc/imcc.y"
+#line 1787 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"neg"; }
     break;
 
   case 226:
-#line 1789 "compilers/imcc/imcc.y"
+#line 1791 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 227:
-#line 1790 "compilers/imcc/imcc.y"
+#line 1792 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 228:
-#line 1791 "compilers/imcc/imcc.y"
+#line 1793 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 229:
-#line 1792 "compilers/imcc/imcc.y"
+#line 1794 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 230:
-#line 1793 "compilers/imcc/imcc.y"
+#line 1795 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 231:
-#line 1794 "compilers/imcc/imcc.y"
+#line 1796 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 232:
-#line 1795 "compilers/imcc/imcc.y"
+#line 1797 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"pow"; }
     break;
 
   case 233:
-#line 1796 "compilers/imcc/imcc.y"
+#line 1798 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 234:
-#line 1797 "compilers/imcc/imcc.y"
+#line 1799 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"iseq"; }
     break;
 
   case 235:
-#line 1798 "compilers/imcc/imcc.y"
+#line 1800 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isne"; }
     break;
 
   case 236:
-#line 1799 "compilers/imcc/imcc.y"
+#line 1801 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isgt"; }
     break;
 
   case 237:
-#line 1800 "compilers/imcc/imcc.y"
+#line 1802 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isge"; }
     break;
 
   case 238:
-#line 1801 "compilers/imcc/imcc.y"
+#line 1803 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"islt"; }
     break;
 
   case 239:
-#line 1802 "compilers/imcc/imcc.y"
+#line 1804 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"isle"; }
     break;
 
   case 240:
-#line 1803 "compilers/imcc/imcc.y"
+#line 1805 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 241:
-#line 1804 "compilers/imcc/imcc.y"
+#line 1806 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 242:
-#line 1805 "compilers/imcc/imcc.y"
+#line 1807 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 243:
-#line 1806 "compilers/imcc/imcc.y"
+#line 1808 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"and"; }
     break;
 
   case 244:
-#line 1807 "compilers/imcc/imcc.y"
+#line 1809 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"or"; }
     break;
 
   case 245:
-#line 1808 "compilers/imcc/imcc.y"
+#line 1810 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"xor"; }
     break;
 
   case 246:
-#line 1809 "compilers/imcc/imcc.y"
+#line 1811 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 247:
-#line 1810 "compilers/imcc/imcc.y"
+#line 1812 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 248:
-#line 1811 "compilers/imcc/imcc.y"
+#line 1813 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 249:
-#line 1817 "compilers/imcc/imcc.y"
+#line 1819 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            (yyval.i)->type &= ~ITCALL;
@@ -4410,84 +4410,84 @@
     break;
 
   case 250:
-#line 1822 "compilers/imcc/imcc.y"
+#line 1824 "compilers/imcc/imcc.y"
     {  (yyval.i) = 0; }
     break;
 
   case 251:
-#line 1829 "compilers/imcc/imcc.y"
+#line 1831 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
          }
     break;
 
   case 252:
-#line 1835 "compilers/imcc/imcc.y"
+#line 1837 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"add"; }
     break;
 
   case 253:
-#line 1836 "compilers/imcc/imcc.y"
+#line 1838 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"sub"; }
     break;
 
   case 254:
-#line 1837 "compilers/imcc/imcc.y"
+#line 1839 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mul"; }
     break;
 
   case 255:
-#line 1838 "compilers/imcc/imcc.y"
+#line 1840 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"div"; }
     break;
 
   case 256:
-#line 1839 "compilers/imcc/imcc.y"
+#line 1841 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"mod"; }
     break;
 
   case 257:
-#line 1840 "compilers/imcc/imcc.y"
+#line 1842 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"fdiv"; }
     break;
 
   case 258:
-#line 1841 "compilers/imcc/imcc.y"
+#line 1843 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"concat"; }
     break;
 
   case 259:
-#line 1842 "compilers/imcc/imcc.y"
+#line 1844 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"band"; }
     break;
 
   case 260:
-#line 1843 "compilers/imcc/imcc.y"
+#line 1845 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bor"; }
     break;
 
   case 261:
-#line 1844 "compilers/imcc/imcc.y"
+#line 1846 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"bxor"; }
     break;
 
   case 262:
-#line 1845 "compilers/imcc/imcc.y"
+#line 1847 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shr"; }
     break;
 
   case 263:
-#line 1846 "compilers/imcc/imcc.y"
+#line 1848 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"shl"; }
     break;
 
   case 264:
-#line 1847 "compilers/imcc/imcc.y"
+#line 1849 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lsr"; }
     break;
 
   case 265:
-#line 1853 "compilers/imcc/imcc.y"
+#line 1855 "compilers/imcc/imcc.y"
     {
         (yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
                       IMCC_INFO(interp) -> regs,
@@ -4498,22 +4498,22 @@
     break;
 
   case 266:
-#line 1863 "compilers/imcc/imcc.y"
+#line 1865 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 267:
-#line 1864 "compilers/imcc/imcc.y"
+#line 1866 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 268:
-#line 1865 "compilers/imcc/imcc.y"
+#line 1867 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 269:
-#line 1867 "compilers/imcc/imcc.y"
+#line 1869 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = (yyvsp[(1) - (1)].sr);
            if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -4522,7 +4522,7 @@
     break;
 
   case 270:
-#line 1873 "compilers/imcc/imcc.y"
+#line 1875 "compilers/imcc/imcc.y"
     {
             /* disallow bareword method names; SREG name constants are fine */
             char *name = (yyvsp[(3) - (3)].sr)->name;
@@ -4539,7 +4539,7 @@
     break;
 
   case 271:
-#line 1887 "compilers/imcc/imcc.y"
+#line 1889 "compilers/imcc/imcc.y"
     {
             IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
             (yyval.sr)                         = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -4548,12 +4548,12 @@
     break;
 
   case 272:
-#line 1892 "compilers/imcc/imcc.y"
+#line 1894 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
     break;
 
   case 273:
-#line 1898 "compilers/imcc/imcc.y"
+#line 1900 "compilers/imcc/imcc.y"
     {
            (yyval.i) = IMCC_create_itcall_label(interp);
            IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -4561,17 +4561,17 @@
     break;
 
   case 274:
-#line 1902 "compilers/imcc/imcc.y"
+#line 1904 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(2) - (5)].i); }
     break;
 
   case 275:
-#line 1906 "compilers/imcc/imcc.y"
+#line 1908 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 276:
-#line 1908 "compilers/imcc/imcc.y"
+#line 1910 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4584,7 +4584,7 @@
     break;
 
   case 277:
-#line 1918 "compilers/imcc/imcc.y"
+#line 1920 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4597,7 +4597,7 @@
     break;
 
   case 278:
-#line 1928 "compilers/imcc/imcc.y"
+#line 1930 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
@@ -4606,7 +4606,7 @@
     break;
 
   case 279:
-#line 1934 "compilers/imcc/imcc.y"
+#line 1936 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
@@ -4615,42 +4615,42 @@
     break;
 
   case 280:
-#line 1942 "compilers/imcc/imcc.y"
+#line 1944 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 281:
-#line 1946 "compilers/imcc/imcc.y"
+#line 1948 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 282:
-#line 1947 "compilers/imcc/imcc.y"
+#line 1949 "compilers/imcc/imcc.y"
     { (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
     break;
 
   case 283:
-#line 1951 "compilers/imcc/imcc.y"
+#line 1953 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_FLAT; }
     break;
 
   case 284:
-#line 1952 "compilers/imcc/imcc.y"
+#line 1954 "compilers/imcc/imcc.y"
     { (yyval.t) = VT_NAMED; }
     break;
 
   case 285:
-#line 1955 "compilers/imcc/imcc.y"
+#line 1957 "compilers/imcc/imcc.y"
     { adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
     break;
 
   case 286:
-#line 1959 "compilers/imcc/imcc.y"
+#line 1961 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
     break;
 
   case 287:
-#line 1964 "compilers/imcc/imcc.y"
+#line 1966 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4663,7 +4663,7 @@
     break;
 
   case 288:
-#line 1974 "compilers/imcc/imcc.y"
+#line 1976 "compilers/imcc/imcc.y"
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
            mem_sys_free((yyvsp[(3) - (5)].s));
@@ -4671,7 +4671,7 @@
     break;
 
   case 289:
-#line 1979 "compilers/imcc/imcc.y"
+#line 1981 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = 0;
            if (IMCC_INFO(interp)->adv_named_id) {
@@ -4684,7 +4684,7 @@
     break;
 
   case 290:
-#line 1989 "compilers/imcc/imcc.y"
+#line 1991 "compilers/imcc/imcc.y"
     {
            add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
            mem_sys_free((yyvsp[(1) - (3)].s));
@@ -4692,124 +4692,124 @@
     break;
 
   case 291:
-#line 1993 "compilers/imcc/imcc.y"
+#line 1995 "compilers/imcc/imcc.y"
     { (yyval.sr) = 0; }
     break;
 
   case 292:
-#line 1997 "compilers/imcc/imcc.y"
+#line 1999 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 293:
-#line 1998 "compilers/imcc/imcc.y"
+#line 2000 "compilers/imcc/imcc.y"
     { (yyval.i) = (yyvsp[(1) - (1)].i); }
     break;
 
   case 294:
-#line 2003 "compilers/imcc/imcc.y"
+#line 2005 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
          }
     break;
 
   case 295:
-#line 2007 "compilers/imcc/imcc.y"
+#line 2009 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
          }
     break;
 
   case 296:
-#line 2011 "compilers/imcc/imcc.y"
+#line 2013 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
          }
     break;
 
   case 297:
-#line 2018 "compilers/imcc/imcc.y"
+#line 2020 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
          }
     break;
 
   case 298:
-#line 2022 "compilers/imcc/imcc.y"
+#line 2024 "compilers/imcc/imcc.y"
     {
            (yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
          }
     break;
 
   case 299:
-#line 2026 "compilers/imcc/imcc.y"
+#line 2028 "compilers/imcc/imcc.y"
     {
            (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
          }
     break;
 
   case 300:
-#line 2032 "compilers/imcc/imcc.y"
+#line 2034 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 301:
-#line 2033 "compilers/imcc/imcc.y"
+#line 2035 "compilers/imcc/imcc.y"
     { (yyval.t) = 0; }
     break;
 
   case 302:
-#line 2037 "compilers/imcc/imcc.y"
+#line 2039 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"eq"; }
     break;
 
   case 303:
-#line 2038 "compilers/imcc/imcc.y"
+#line 2040 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ne"; }
     break;
 
   case 304:
-#line 2039 "compilers/imcc/imcc.y"
+#line 2041 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"gt"; }
     break;
 
   case 305:
-#line 2040 "compilers/imcc/imcc.y"
+#line 2042 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"ge"; }
     break;
 
   case 306:
-#line 2041 "compilers/imcc/imcc.y"
+#line 2043 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"lt"; }
     break;
 
   case 307:
-#line 2042 "compilers/imcc/imcc.y"
+#line 2044 "compilers/imcc/imcc.y"
     { (yyval.s) = (char *)"le"; }
     break;
 
   case 310:
-#line 2051 "compilers/imcc/imcc.y"
+#line 2053 "compilers/imcc/imcc.y"
     { (yyval.sr) = NULL; }
     break;
 
   case 311:
-#line 2052 "compilers/imcc/imcc.y"
+#line 2054 "compilers/imcc/imcc.y"
     { (yyval.sr) = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 312:
-#line 2056 "compilers/imcc/imcc.y"
+#line 2058 "compilers/imcc/imcc.y"
     { (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
     break;
 
   case 314:
-#line 2061 "compilers/imcc/imcc.y"
+#line 2063 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 315:
-#line 2063 "compilers/imcc/imcc.y"
+#line 2065 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
            IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
@@ -4819,7 +4819,7 @@
     break;
 
   case 316:
-#line 2070 "compilers/imcc/imcc.y"
+#line 2072 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
            (yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -4827,37 +4827,37 @@
     break;
 
   case 318:
-#line 2077 "compilers/imcc/imcc.y"
+#line 2079 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 319:
-#line 2078 "compilers/imcc/imcc.y"
+#line 2080 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s));  mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 320:
-#line 2082 "compilers/imcc/imcc.y"
+#line 2084 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 321:
-#line 2083 "compilers/imcc/imcc.y"
+#line 2085 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 322:
-#line 2087 "compilers/imcc/imcc.y"
+#line 2089 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 323:
-#line 2088 "compilers/imcc/imcc.y"
+#line 2090 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 328:
-#line 2102 "compilers/imcc/imcc.y"
+#line 2104 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys    = 0;
            IMCC_INFO(interp)->in_slice = 0;
@@ -4865,7 +4865,7 @@
     break;
 
   case 329:
-#line 2107 "compilers/imcc/imcc.y"
+#line 2109 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -4874,7 +4874,7 @@
     break;
 
   case 330:
-#line 2115 "compilers/imcc/imcc.y"
+#line 2117 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->nkeys = 0;
            IMCC_INFO(interp)->in_slice = 0;
@@ -4882,7 +4882,7 @@
     break;
 
   case 331:
-#line 2120 "compilers/imcc/imcc.y"
+#line 2122 "compilers/imcc/imcc.y"
     {
            (yyval.sr) = link_keys(interp,
                           IMCC_INFO(interp)->nkeys,
@@ -4891,12 +4891,12 @@
     break;
 
   case 332:
-#line 2128 "compilers/imcc/imcc.y"
+#line 2130 "compilers/imcc/imcc.y"
     { IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
     break;
 
   case 333:
-#line 2130 "compilers/imcc/imcc.y"
+#line 2132 "compilers/imcc/imcc.y"
     {
            IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
            (yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -4904,7 +4904,7 @@
     break;
 
   case 334:
-#line 2138 "compilers/imcc/imcc.y"
+#line 2140 "compilers/imcc/imcc.y"
     {
            if (IMCC_INFO(interp)->in_slice)
                (yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
@@ -4913,53 +4913,53 @@
     break;
 
   case 335:
-#line 2146 "compilers/imcc/imcc.y"
+#line 2148 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
     break;
 
   case 336:
-#line 2147 "compilers/imcc/imcc.y"
+#line 2149 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
     break;
 
   case 337:
-#line 2148 "compilers/imcc/imcc.y"
+#line 2150 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
     break;
 
   case 338:
-#line 2149 "compilers/imcc/imcc.y"
+#line 2151 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
     break;
 
   case 339:
-#line 2150 "compilers/imcc/imcc.y"
+#line 2152 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 340:
-#line 2154 "compilers/imcc/imcc.y"
+#line 2156 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 341:
-#line 2155 "compilers/imcc/imcc.y"
+#line 2157 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 342:
-#line 2156 "compilers/imcc/imcc.y"
+#line 2158 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
   case 343:
-#line 2157 "compilers/imcc/imcc.y"
+#line 2159 "compilers/imcc/imcc.y"
     { (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 4950 "compilers/imcc/imcparser.c"
+#line 4952 "compilers/imcc/imcparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5173,7 +5173,7 @@
 }
 
 
-#line 2163 "compilers/imcc/imcc.y"
+#line 2165 "compilers/imcc/imcc.y"
 
 
 /* I need this prototype somewhere... */

Modified: branches/bcanno/compilers/imcc/imcparser.h
==============================================================================
--- branches/bcanno/compilers/imcc/imcparser.h	(original)
+++ branches/bcanno/compilers/imcc/imcparser.h	Tue Jan  6 05:17:14 2009
@@ -297,7 +297,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 784 "compilers/imcc/imcc.y"
+#line 785 "compilers/imcc/imcc.y"
 {
     IdList * idlist;
     int t;



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