perl.cvs.parrot
[Top] [All Lists]

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

Subject: [svn:parrot] r29872 - trunk/compilers/pirc/new
From: kjs@xxxxxxxxxxxx
Date: Wed, 30 Jul 2008 03:22:22 -0700 (PDT)
Newsgroups: perl.cvs.parrot

Author: kjs
Date: Wed Jul 30 03:22:20 2008
New Revision: 29872

Modified:
   trunk/compilers/pirc/new/pir.y
   trunk/compilers/pirc/new/pirparser.c

Log:
[pirc/new] update parser a bit based on revision of pdd19.

Modified: trunk/compilers/pirc/new/pir.y
==============================================================================
--- trunk/compilers/pirc/new/pir.y      (original)
+++ trunk/compilers/pirc/new/pir.y      Wed Jul 30 03:22:20 2008
@@ -231,7 +231,6 @@
              opt_target_list
              opt_list
              target_list
-             param_def
              local_id
              local_id_list
 
@@ -366,24 +365,24 @@
 
 /* HLL stuff     */
 
-hll_specifier    : ".HLL" TK_STRINGC ',' TK_STRINGC
-                           { set_hll($2, $4); }
+hll_specifier    : ".HLL" TK_STRINGC
+                           { /*set_hll($2, $4);*/ }
                  ;
 
-hll_mapping      : ".HLL_map" TK_STRINGC ',' TK_STRINGC
+hll_mapping      : ".HLL_map" TK_STRINGC '=' TK_STRINGC
                            { set_hll_map($2, $4); }
                  ;
 
 
 /* Namespaces */
 
-namespace_decl   : ".namespace" opt_namespace_id
+namespace_decl   : ".namespace" '[' opt_namespace_id ']'
                  ;
 
 opt_namespace_id : /* empty */
                            { $$ = NULL; }
-                 | '[' namespace_id ']'
-                           { $$ = $2; }
+                 | namespace_id
+                           { $$ = $1; }
                  ;
 
 namespace_id     : TK_STRINGC
@@ -449,17 +448,13 @@
                  | parameters parameter
                  ;
 
-parameter        : ".param" param_def param_flags "\n"
-                        { set_param_flag($2, $3);
+parameter        : ".param" type identifier param_flags "\n"
+                        { /* set_param_flag($2, $3);
                           IF_NAMED_PARAM_SET_ALIAS($2, $3);
+                          */
                         }
                  ;
 
-param_def        : type identifier
-                        { $$ = add_param(lexer, $1, $2); }
-                 | type TK_STRINGC "=>" identifier
-                        { $$ = add_param_named(lexer, $1, $4, $2); }
-                 ;
 
 /* Instructions */
 

Modified: trunk/compilers/pirc/new/pirparser.c
==============================================================================
--- trunk/compilers/pirc/new/pirparser.c        (original)
+++ trunk/compilers/pirc/new/pirparser.c        Wed Jul 30 03:22:20 2008
@@ -619,16 +619,16 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   541
+#define YYLAST   472
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  120
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  117
+#define YYNNTS  116
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  281
+#define YYNRULES  279
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  422
+#define YYNSTATES  416
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -644,9 +644,9 @@
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,   111,     2,     2,     2,   116,   118,     2,
-     106,   107,   115,   113,   102,   110,   109,   114,     2,     2,
+     106,   107,   115,   113,   108,   110,   109,   114,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,   105,
-       2,   108,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   102,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,   103,     2,   104,     2,     2,     2,     2,     2,     2,
@@ -684,146 +684,143 @@
 static const yytype_uint16 yyprhs[] =
 {
        0,     0,     3,     7,     8,    10,    12,    16,    18,    20,
-      22,    24,    26,    28,    30,    34,    37,    42,    47,    50,
-      51,    55,    57,    61,    62,    63,    73,    75,    77,    78,
-      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
-     104,   107,   110,   112,   114,   116,   118,   119,   122,   127,
-     130,   135,   136,   137,   141,   144,   147,   149,   151,   153,
-     155,   157,   159,   161,   163,   165,   167,   169,   171,   173,
-     175,   178,   182,   187,   191,   194,   198,   201,   205,   208,
-     211,   213,   217,   220,   222,   223,   227,   228,   230,   233,
-     235,   236,   240,   242,   244,   248,   250,   254,   260,   266,
-     268,   270,   273,   276,   278,   280,   282,   286,   290,   295,
-     297,   301,   304,   305,   307,   313,   315,   317,   326,   327,
-     329,   331,   334,   338,   342,   345,   351,   352,   355,   356,
-     358,   360,   363,   367,   369,   374,   379,   382,   384,   386,
-     391,   394,   396,   398,   400,   402,   404,   406,   408,   410,
-     412,   414,   418,   419,   421,   423,   427,   430,   431,   434,
-     436,   438,   440,   442,   445,   446,   449,   451,   453,   458,
-     460,   462,   464,   466,   470,   474,   478,   482,   483,   485,
-     487,   491,   493,   495,   499,   502,   508,   514,   515,   517,
-     519,   522,   526,   527,   529,   531,   534,   538,   539,   542,
-     544,   547,   548,   550,   554,   557,   560,   564,   569,   574,
-     579,   584,   586,   588,   590,   592,   594,   596,   598,   600,
-     602,   604,   606,   608,   610,   612,   614,   616,   618,   620,
-     622,   624,   626,   628,   630,   632,   634,   636,   638,   640,
-     642,   644,   646,   648,   650,   652,   654,   656,   658,   660,
-     662,   664,   666,   668,   670,   672,   674,   676,   678,   680,
-     682,   684,   686,   688,   690,   692,   694,   696,   698,   700,
-     702,   704,   706,   708,   710,   712,   714,   716,   718,   720,
-     722,   724
+      22,    24,    26,    28,    30,    34,    37,    40,    45,    50,
+      51,    53,    55,    59,    60,    61,    71,    73,    75,    76,
+      79,    81,    83,    85,    87,    89,    91,    93,    95,    97,
+     102,   105,   108,   110,   112,   114,   116,   117,   120,   126,
+     127,   128,   132,   135,   138,   140,   142,   144,   146,   148,
+     150,   152,   154,   156,   158,   160,   162,   164,   166,   169,
+     173,   178,   182,   185,   189,   192,   196,   199,   202,   204,
+     208,   211,   213,   214,   218,   219,   221,   224,   226,   227,
+     231,   233,   235,   239,   241,   245,   251,   257,   259,   261,
+     264,   267,   269,   271,   273,   277,   281,   286,   288,   292,
+     295,   296,   298,   304,   306,   308,   317,   318,   320,   322,
+     325,   329,   333,   336,   342,   343,   346,   347,   349,   351,
+     354,   358,   360,   365,   370,   373,   375,   377,   382,   385,
+     387,   389,   391,   393,   395,   397,   399,   401,   403,   405,
+     409,   410,   412,   414,   418,   421,   422,   425,   427,   429,
+     431,   433,   436,   437,   440,   442,   444,   449,   451,   453,
+     455,   457,   461,   465,   469,   473,   474,   476,   478,   482,
+     484,   486,   490,   493,   499,   505,   506,   508,   510,   513,
+     517,   518,   520,   522,   525,   529,   530,   533,   535,   538,
+     539,   541,   545,   548,   551,   555,   560,   565,   570,   575,
+     577,   579,   581,   583,   585,   587,   589,   591,   593,   595,
+     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
+     617,   619,   621,   623,   625,   627,   629,   631,   633,   635,
+     637,   639,   641,   643,   645,   647,   649,   651,   653,   655,
+     657,   659,   661,   663,   665,   667,   669,   671,   673,   675,
+     677,   679,   681,   683,   685,   687,   689,   691,   693,   695,
+     697,   699,   701,   703,   705,   707,   709,   711,   713,   715
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
      121,     0,    -1,   122,   123,   122,    -1,    -1,     4,    -1,
-     124,    -1,   123,     4,   124,    -1,   132,    -1,   222,    -1,
+     124,    -1,   123,     4,   124,    -1,   132,    -1,   221,    -1,
      129,    -1,   127,    -1,   128,    -1,   126,    -1,   125,    -1,
-       8,     7,    35,    -1,     9,    34,    -1,     5,    34,   102,
-      34,    -1,     6,    34,   102,    34,    -1,    15,   130,    -1,
-      -1,   103,   131,   104,    -1,    34,    -1,   131,   105,    34,
-      -1,    -1,    -1,    10,   135,   133,   136,     4,   134,   139,
-     142,    11,    -1,   233,    -1,    34,    -1,    -1,   136,   137,
-      -1,    86,    -1,    83,    -1,    84,    -1,    85,    -1,    87,
-      -1,    90,    -1,    92,    -1,    93,    -1,    91,    -1,    88,
-     106,   135,   107,    -1,    89,   220,    -1,    94,   221,    -1,
-     233,    -1,    34,    -1,   160,    -1,   229,    -1,    -1,   139,
-     140,    -1,    12,   141,   197,     4,    -1,   229,   233,    -1,
-     229,    34,    54,   233,    -1,    -1,    -1,   142,   143,   144,
-      -1,     3,     4,    -1,     3,   145,    -1,   145,    -1,   162,
-      -1,   167,    -1,   168,    -1,   172,    -1,   223,    -1,   200,
-      -1,   201,    -1,   173,    -1,   150,    -1,   149,    -1,   148,
-      -1,   147,    -1,   146,    -1,     1,     4,    -1,    52,   230,
-       4,    -1,   230,   108,    52,     4,    -1,    28,   191,     4,
-      -1,   153,     4,    -1,   230,   151,     4,    -1,   236,   226,
-      -1,   160,   108,   226,    -1,   108,   152,    -1,   234,   226,
-      -1,   225,    -1,   226,   235,   226,    -1,   230,   160,    -1,
-     153,    -1,    -1,    45,   154,   155,    -1,    -1,   156,    -1,
-     157,   158,    -1,   226,    -1,    -1,   158,   102,   159,    -1,
-     226,    -1,   160,    -1,   103,   161,   104,    -1,   226,    -1,
-     161,   105,   226,    -1,   163,   166,   165,   233,     4,    -1,
-     164,   226,   165,   233,     4,    -1,    50,    -1,    51,    -1,
-      50,    52,    -1,    51,    52,    -1,    53,    -1,   102,    -1,
-     226,    -1,   226,   228,   226,    -1,    53,   233,     4,    -1,
-      14,   229,   169,     4,    -1,   170,    -1,   169,   102,   170,
-      -1,   233,   171,    -1,    -1,    95,    -1,    13,    34,   102,
-     230,     4,    -1,   174,    -1,   183,    -1,    26,     4,   175,
-     178,     4,   180,    27,     4,    -1,    -1,   176,    -1,   177,
-      -1,   176,   177,    -1,    30,   209,     4,    -1,    29,   189,
-     179,    -1,    32,   189,    -1,    16,   189,     4,    17,   188,
-      -1,    -1,   102,   189,    -1,    -1,   181,    -1,   182,    -1,
-     181,   182,    -1,    31,   194,     4,    -1,   168,    -1,   191,
-     108,   184,     4,    -1,   230,   108,   184,     4,    -1,   184,
-       4,    -1,   186,    -1,   185,    -1,   189,   109,   188,   204,
-      -1,   187,   204,    -1,   189,    -1,    34,    -1,   189,    -1,
-     190,    -1,   233,    -1,    41,    -1,    37,    -1,    34,    -1,
-      43,    -1,    39,    -1,   106,   192,   107,    -1,    -1,   193,
-      -1,   194,    -1,   193,   102,   194,    -1,   230,   195,    -1,
-      -1,   195,   196,    -1,    99,    -1,   100,    -1,    97,    -1,
-      95,    -1,    96,   220,    -1,    -1,   197,   198,    -1,   196,
-      -1,   199,    -1,   101,   106,   138,   107,    -1,   202,    -1,
-     210,    -1,   203,    -1,   211,    -1,    20,   204,     4,    -1,
-      20,   184,     4,    -1,    21,   204,     4,    -1,   106,   205,
-     107,    -1,    -1,   206,    -1,   207,    -1,   206,   102,   207,
-      -1,   209,    -1,   208,    -1,    34,    54,   226,    -1,   226,
-     218,    -1,    24,     4,   215,    25,     4,    -1,    22,     4,
-     212,    23,     4,    -1,    -1,   213,    -1,   214,    -1,   213,
-     214,    -1,    21,   209,     4,    -1,    -1,   216,    -1,   217,
-      -1,   216,   217,    -1,    20,   209,     4,    -1,    -1,   218,
-     219,    -1,    98,    -1,    96,   220,    -1,    -1,   221,    -1,
-     106,    34,   107,    -1,    19,   224,    -1,   222,     4,    -1,
-      18,   224,     4,    -1,    46,   233,   108,    35,    -1,    47,
-     233,   108,    36,    -1,    48,   233,   108,    34,    -1,    49,
-     233,   108,    34,    -1,   227,    -1,   231,    -1,    33,    -1,
-     230,    -1,   227,    -1,    34,    -1,    35,    -1,    36,    -1,
-      55,    -1,    56,    -1,    57,    -1,    58,    -1,    60,    -1,
-      59,    -1,    46,    -1,    47,    -1,    48,    -1,    49,    -1,
-     231,    -1,   233,    -1,    41,    -1,    42,    -1,    44,    -1,
-      43,    -1,   232,    -1,    37,    -1,    38,    -1,    40,    -1,
-      39,    -1,    33,    -1,    45,    -1,   110,    -1,   111,    -1,
-     112,    -1,   113,    -1,   110,    -1,   114,    -1,   115,    -1,
-     116,    -1,   117,    -1,   118,    -1,   112,    -1,   119,    -1,
-      68,    -1,    61,    -1,    62,    -1,    63,    -1,    65,    -1,
-      66,    -1,    64,    -1,    67,    -1,    56,    -1,    58,    -1,
-      57,    -1,    60,    -1,    59,    -1,    55,    -1,    72,    -1,
-      73,    -1,    74,    -1,    75,    -1,    76,    -1,    77,    -1,
-      80,    -1,    78,    -1,    79,    -1,    81,    -1,    82,    -1,
-      70,    -1,    71,    -1,    69,    -1
+       8,     7,    35,    -1,     9,    34,    -1,     5,    34,    -1,
+       6,    34,   102,    34,    -1,    15,   103,   130,   104,    -1,
+      -1,   131,    -1,    34,    -1,   131,   105,    34,    -1,    -1,
+      -1,    10,   135,   133,   136,     4,   134,   139,   141,    11,
+      -1,   232,    -1,    34,    -1,    -1,   136,   137,    -1,    86,
+      -1,    83,    -1,    84,    -1,    85,    -1,    87,    -1,    90,
+      -1,    92,    -1,    93,    -1,    91,    -1,    88,   106,   135,
+     107,    -1,    89,   219,    -1,    94,   220,    -1,   232,    -1,
+      34,    -1,   159,    -1,   228,    -1,    -1,   139,   140,    -1,
+      12,   228,   232,   196,     4,    -1,    -1,    -1,   141,   142,
+     143,    -1,     3,     4,    -1,     3,   144,    -1,   144,    -1,
+     161,    -1,   166,    -1,   167,    -1,   171,    -1,   222,    -1,
+     199,    -1,   200,    -1,   172,    -1,   149,    -1,   148,    -1,
+     147,    -1,   146,    -1,   145,    -1,     1,     4,    -1,    52,
+     229,     4,    -1,   229,   102,    52,     4,    -1,    28,   190,
+       4,    -1,   152,     4,    -1,   229,   150,     4,    -1,   235,
+     225,    -1,   159,   102,   225,    -1,   102,   151,    -1,   233,
+     225,    -1,   224,    -1,   225,   234,   225,    -1,   229,   159,
+      -1,   152,    -1,    -1,    45,   153,   154,    -1,    -1,   155,
+      -1,   156,   157,    -1,   225,    -1,    -1,   157,   108,   158,
+      -1,   225,    -1,   159,    -1,   103,   160,   104,    -1,   225,
+      -1,   160,   105,   225,    -1,   162,   165,   164,   232,     4,
+      -1,   163,   225,   164,   232,     4,    -1,    50,    -1,    51,
+      -1,    50,    52,    -1,    51,    52,    -1,    53,    -1,   108,
+      -1,   225,    -1,   225,   227,   225,    -1,    53,   232,     4,
+      -1,    14,   228,   168,     4,    -1,   169,    -1,   168,   108,
+     169,    -1,   232,   170,    -1,    -1,    95,    -1,    13,    34,
+     108,   229,     4,    -1,   173,    -1,   182,    -1,    26,     4,
+     174,   177,     4,   179,    27,     4,    -1,    -1,   175,    -1,
+     176,    -1,   175,   176,    -1,    30,   208,     4,    -1,    29,
+     188,   178,    -1,    32,   188,    -1,    16,   188,     4,    17,
+     187,    -1,    -1,   108,   188,    -1,    -1,   180,    -1,   181,
+      -1,   180,   181,    -1,    31,   193,     4,    -1,   167,    -1,
+     190,   102,   183,     4,    -1,   229,   102,   183,     4,    -1,
+     183,     4,    -1,   185,    -1,   184,    -1,   188,   109,   187,
+     203,    -1,   186,   203,    -1,   188,    -1,    34,    -1,   188,
+      -1,   189,    -1,   232,    -1,    41,    -1,    37,    -1,    34,
+      -1,    43,    -1,    39,    -1,   106,   191,   107,    -1,    -1,
+     192,    -1,   193,    -1,   192,   108,   193,    -1,   229,   194,
+      -1,    -1,   194,   195,    -1,    99,    -1,   100,    -1,    97,
+      -1,    95,    -1,    96,   219,    -1,    -1,   196,   197,    -1,
+     195,    -1,   198,    -1,   101,   106,   138,   107,    -1,   201,
+      -1,   209,    -1,   202,    -1,   210,    -1,    20,   203,     4,
+      -1,    20,   183,     4,    -1,    21,   203,     4,    -1,   106,
+     204,   107,    -1,    -1,   205,    -1,   206,    -1,   205,   108,
+     206,    -1,   208,    -1,   207,    -1,    34,    54,   225,    -1,
+     225,   217,    -1,    24,     4,   214,    25,     4,    -1,    22,
+       4,   211,    23,     4,    -1,    -1,   212,    -1,   213,    -1,
+     212,   213,    -1,    21,   208,     4,    -1,    -1,   215,    -1,
+     216,    -1,   215,   216,    -1,    20,   208,     4,    -1,    -1,
+     217,   218,    -1,    98,    -1,    96,   219,    -1,    -1,   220,
+      -1,   106,    34,   107,    -1,    19,   223,    -1,   221,     4,
+      -1,    18,   223,     4,    -1,    46,   232,   102,    35,    -1,
+      47,   232,   102,    36,    -1,    48,   232,   102,    34,    -1,
+      49,   232,   102,    34,    -1,   226,    -1,   230,    -1,    33,
+      -1,   229,    -1,   226,    -1,    34,    -1,    35,    -1,    36,
+      -1,    55,    -1,    56,    -1,    57,    -1,    58,    -1,    60,
+      -1,    59,    -1,    46,    -1,    47,    -1,    48,    -1,    49,
+      -1,   230,    -1,   232,    -1,    41,    -1,    42,    -1,    44,
+      -1,    43,    -1,   231,    -1,    37,    -1,    38,    -1,    40,
+      -1,    39,    -1,    33,    -1,    45,    -1,   110,    -1,   111,
+      -1,   112,    -1,   113,    -1,   110,    -1,   114,    -1,   115,
+      -1,   116,    -1,   117,    -1,   118,    -1,   112,    -1,   119,
+      -1,    68,    -1,    61,    -1,    62,    -1,    63,    -1,    65,
+      -1,    66,    -1,    64,    -1,    67,    -1,    56,    -1,    58,
+      -1,    57,    -1,    60,    -1,    59,    -1,    55,    -1,    72,
+      -1,    73,    -1,    74,    -1,    75,    -1,    76,    -1,    77,
+      -1,    80,    -1,    78,    -1,    79,    -1,    81,    -1,    82,
+      -1,    70,    -1,    71,    -1,    69,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   337,   337,   342,   343,   346,   347,   350,   351,   352,
-     353,   354,   355,   356,   359,   363,   369,   373,   380,   384,
-     385,   389,   391,   398,   399,   398,   405,   406,   410,   411,
-     415,   417,   419,   421,   423,   425,   427,   429,   431,   433,
-     435,   437,   442,   443,   444,   445,   448,   449,   452,   458,
-     460,   467,   468,   468,   473,   475,   477,   480,   481,   482,
-     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
-     495,   504,   508,   514,   520,   523,   548,   550,   552,   556,
-     558,   560,   562,   564,   569,   569,   573,   574,   577,   581,
-     587,   588,   592,   593,   596,   600,   602,   606,   613,   620,
-     621,   625,   627,   631,   632,   636,   640,   648,   654,   658,
-     660,   664,   668,   669,   674,   681,   682,   685,   698,   699,
-     703,   705,   709,   713,   715,   717,   723,   724,   731,   732,
-     736,   738,   742,   744,   748,   750,   752,   757,   758,   761,
-     768,   774,   776,   780,   781,   784,   786,   788,   792,   794,
-     796,   801,   806,   807,   811,   813,   817,   826,   827,   831,
-     833,   835,   837,   839,   846,   847,   851,   852,   855,   862,
-     863,   866,   867,   870,   874,   878,   884,   889,   890,   894,
-     896,   900,   901,   904,   910,   918,   926,   935,   936,   941,
-     943,   948,   953,   954,   958,   960,   964,   970,   971,   975,
-     977,   984,   985,   989,   993,   997,   998,  1002,  1004,  1006,
-    1008,  1018,  1019,  1020,  1023,  1024,  1027,  1028,  1029,  1032,
-    1033,  1034,  1035,  1036,  1037,  1040,  1041,  1042,  1043,  1046,
-    1047,  1050,  1051,  1052,  1053,  1054,  1057,  1058,  1059,  1060,
-    1063,  1064,  1067,  1068,  1069,  1072,  1073,  1074,  1075,  1076,
-    1077,  1078,  1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,
-    1087,  1088,  1089,  1090,  1091,  1092,  1093,  1094,  1098,  1099,
-    1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1108,  1109,
-    1110,  1111
+       0,   336,   336,   341,   342,   345,   346,   349,   350,   351,
+     352,   353,   354,   355,   358,   362,   368,   372,   379,   383,
+     384,   388,   390,   397,   398,   397,   404,   405,   409,   410,
+     414,   416,   418,   420,   422,   424,   426,   428,   430,   432,
+     434,   436,   441,   442,   443,   444,   447,   448,   451,   462,
+     463,   463,   468,   470,   472,   475,   476,   477,   478,   479,
+     480,   481,   482,   483,   484,   485,   486,   487,   490,   499,
+     503,   509,   515,   518,   543,   545,   547,   551,   553,   555,
+     557,   559,   564,   564,   568,   569,   572,   576,   582,   583,
+     587,   588,   591,   595,   597,   601,   608,   615,   616,   620,
+     622,   626,   627,   631,   635,   643,   649,   653,   655,   659,
+     663,   664,   669,   676,   677,   680,   693,   694,   698,   700,
+     704,   708,   710,   712,   718,   719,   726,   727,   731,   733,
+     737,   739,   743,   745,   747,   752,   753,   756,   763,   769,
+     771,   775,   776,   779,   781,   783,   787,   789,   791,   796,
+     801,   802,   806,   808,   812,   821,   822,   826,   828,   830,
+     832,   834,   841,   842,   846,   847,   850,   857,   858,   861,
+     862,   865,   869,   873,   879,   884,   885,   889,   891,   895,
+     896,   899,   905,   913,   921,   930,   931,   936,   938,   943,
+     948,   949,   953,   955,   959,   965,   966,   970,   972,   979,
+     980,   984,   988,   992,   993,   997,   999,  1001,  1003,  1013,
+    1014,  1015,  1018,  1019,  1022,  1023,  1024,  1027,  1028,  1029,
+    1030,  1031,  1032,  1035,  1036,  1037,  1038,  1041,  1042,  1045,
+    1046,  1047,  1048,  1049,  1052,  1053,  1054,  1055,  1058,  1059,
+    1062,  1063,  1064,  1067,  1068,  1069,  1070,  1071,  1072,  1073,
+    1074,  1075,  1076,  1077,  1078,  1079,  1080,  1081,  1082,  1083,
+    1084,  1085,  1086,  1087,  1088,  1089,  1093,  1094,  1095,  1096,
+    1097,  1098,  1099,  1100,  1101,  1102,  1103,  1104,  1105,  1106
 };
 #endif
 
@@ -854,14 +851,14 @@
   "\":method\"", "\":outer\"", "\":vtable\"", "\":lex\"", "\":multi\"",
   "\":postcomp\"", "\":immediate\"", "\":lexid\"", "\":unique_reg\"",
   "\":named\"", "\":slurpy\"", "\":flat\"", "\":optional\"",
-  "\":opt_flag\"", "\":invocant\"", "','", "'['", "']'", "';'", "'('",
-  "')'", "'='", "'.'", "'-'", "'!'", "'~'", "'+'", "'/'", "'*'", "'%'",
+  "\":opt_flag\"", "\":invocant\"", "'='", "'['", "']'", "';'", "'('",
+  "')'", "','", "'.'", "'-'", "'!'", "'~'", "'+'", "'/'", "'*'", "'%'",
   "'|'", "'&'", "\"**\"", "$accept", "TOP", "opt_nl", "pir_chunks",
   "pir_chunk", "pir_pragma", "loadlib", "hll_specifier", "hll_mapping",
   "namespace_decl", "opt_namespace_id", "namespace_id", "sub_def", "@1",
   "@2", "sub_id", "sub_flags", "sub_flag", "multi_type", "parameters",
-  "parameter", "param_def", "instructions", "@3", "instruction",
-  "statement", "error_stat", "null_stat", "getresults_stat", "parrot_stat",
+  "parameter", "instructions", "@3", "instruction", "statement",
+  "error_stat", "null_stat", "getresults_stat", "parrot_stat",
   "assignment_stat", "assign_tail", "assign_expr", "parrot_instruction",
   "@4", "opt_parrot_op_args", "parrot_op_args", "first_op_arg",
   "other_op_args", "other_op_arg", "keylist", "keys", "conditional_stat",
@@ -901,7 +898,7 @@
      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,    44,    91,    93,    59,    40,    41,    61,    46,
+     355,   356,    61,    91,    93,    59,    40,    41,    44,    46,
       45,    33,   126,    43,    47,    42,    37,   124,    38,   357
 };
 # endif
@@ -914,64 +911,62 @@
      130,   131,   131,   133,   134,   132,   135,   135,   136,   136,
      137,   137,   137,   137,   137,   137,   137,   137,   137,   137,
      137,   137,   138,   138,   138,   138,   139,   139,   140,   141,
-     141,   142,   143,   142,   144,   144,   144,   145,   145,   145,
-     145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
-     146,   147,   147,   148,   149,   150,   151,   151,   151,   152,
-     152,   152,   152,   152,   154,   153,   155,   155,   156,   157,
-     158,   158,   159,   159,   160,   161,   161,   162,   162,   163,
-     163,   164,   164,   165,   165,   166,   166,   167,   168,   169,
-     169,   170,   171,   171,   172,   173,   173,   174,   175,   175,
-     176,   176,   177,   178,   178,   178,   179,   179,   180,   180,
-     181,   181,   182,   182,   183,   183,   183,   184,   184,   185,
-     186,   187,   187,   188,   188,   189,   189,   189,   190,   190,
-     190,   191,   192,   192,   193,   193,   194,   195,   195,   196,
-     196,   196,   196,   196,   197,   197,   198,   198,   199,   200,
-     200,   201,   201,   202,   202,   203,   204,   205,   205,   206,
-     206,   207,   207,   208,   209,   210,   211,   212,   212,   213,
-     213,   214,   215,   215,   216,   216,   217,   218,   218,   219,
-     219,   220,   220,   221,   222,   223,   223,   224,   224,   224,
-     224,   225,   225,   225,   226,   226,   227,   227,   227,   228,
-     228,   228,   228,   228,   228,   229,   229,   229,   229,   230,
-     230,   231,   231,   231,   231,   231,   232,   232,   232,   232,
-     233,   233,   234,   234,   234,   235,   235,   235,   235,   235,
-     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
-     235,   235,   235,   235,   235,   235,   235,   235,   236,   236,
-     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
-     236,   236
+     142,   141,   143,   143,   143,   144,   144,   144,   144,   144,
+     144,   144,   144,   144,   144,   144,   144,   144,   145,   146,
+     146,   147,   148,   149,   150,   150,   150,   151,   151,   151,
+     151,   151,   153,   152,   154,   154,   155,   156,   157,   157,
+     158,   158,   159,   160,   160,   161,   161,   162,   162,   163,
+     163,   164,   164,   165,   165,   166,   167,   168,   168,   169,
+     170,   170,   171,   172,   172,   173,   174,   174,   175,   175,
+     176,   177,   177,   177,   178,   178,   179,   179,   180,   180,
+     181,   181,   182,   182,   182,   183,   183,   184,   185,   186,
+     186,   187,   187,   188,   188,   188,   189,   189,   189,   190,
+     191,   191,   192,   192,   193,   194,   194,   195,   195,   195,
+     195,   195,   196,   196,   197,   197,   198,   199,   199,   200,
+     200,   201,   201,   202,   203,   204,   204,   205,   205,   206,
+     206,   207,   208,   209,   210,   211,   211,   212,   212,   213,
+     214,   214,   215,   215,   216,   217,   217,   218,   218,   219,
+     219,   220,   221,   222,   222,   223,   223,   223,   223,   224,
+     224,   224,   225,   225,   226,   226,   226,   227,   227,   227,
+     227,   227,   227,   228,   228,   228,   228,   229,   229,   230,
+     230,   230,   230,   230,   231,   231,   231,   231,   232,   232,
+     233,   233,   233,   234,   234,   234,   234,   234,   234,   234,
+     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
+     234,   234,   234,   234,   234,   234,   235,   235,   235,   235,
+     235,   235,   235,   235,   235,   235,   235,   235,   235,   235
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const yytype_uint8 yyr2[] =
 {
        0,     2,     3,     0,     1,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     3,     2,     4,     4,     2,     0,
-       3,     1,     3,     0,     0,     9,     1,     1,     0,     2,
+       1,     1,     1,     1,     3,     2,     2,     4,     4,     0,
+       1,     1,     3,     0,     0,     9,     1,     1,     0,     2,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
-       2,     2,     1,     1,     1,     1,     0,     2,     4,     2,
-       4,     0,     0,     3,     2,     2,     1,     1,     1,     1,
+       2,     2,     1,     1,     1,     1,     0,     2,     5,     0,
+       0,     3,     2,     2,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     3,
+       4,     3,     2,     3,     2,     3,     2,     2,     1,     3,
+       2,     1,     0,     3,     0,     1,     2,     1,     0,     3,
+       1,     1,     3,     1,     3,     5,     5,     1,     1,     2,
+       2,     1,     1,     1,     3,     3,     4,     1,     3,     2,
+       0,     1,     5,     1,     1,     8,     0,     1,     1,     2,
+       3,     3,     2,     5,     0,     2,     0,     1,     1,     2,
+       3,     1,     4,     4,     2,     1,     1,     4,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
+       0,     1,     1,     3,     2,     0,     2,     1,     1,     1,
+       1,     2,     0,     2,     1,     1,     4,     1,     1,     1,
+       1,     3,     3,     3,     3,     0,     1,     1,     3,     1,
+       1,     3,     2,     5,     5,     0,     1,     1,     2,     3,
+       0,     1,     1,     2,     3,     0,     2,     1,     2,     0,
+       1,     3,     2,     2,     3,     4,     4,     4,     4,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       2,     3,     4,     3,     2,     3,     2,     3,     2,     2,
-       1,     3,     2,     1,     0,     3,     0,     1,     2,     1,
-       0,     3,     1,     1,     3,     1,     3,     5,     5,     1,
-       1,     2,     2,     1,     1,     1,     3,     3,     4,     1,
-       3,     2,     0,     1,     5,     1,     1,     8,     0,     1,
-       1,     2,     3,     3,     2,     5,     0,     2,     0,     1,
-       1,     2,     3,     1,     4,     4,     2,     1,     1,     4,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     3,     0,     1,     1,     3,     2,     0,     2,     1,
-       1,     1,     1,     2,     0,     2,     1,     1,     4,     1,
-       1,     1,     1,     3,     3,     3,     3,     0,     1,     1,
-       3,     1,     1,     3,     2,     5,     5,     0,     1,     1,
-       2,     3,     0,     1,     1,     2,     3,     0,     2,     1,
-       2,     0,     1,     3,     2,     2,     3,     4,     4,     4,
-       4,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -980,255 +975,239 @@
 static const yytype_uint16 yydefact[] =
 {
        3,     4,     0,     0,     1,     0,     0,     0,     0,     0,
-      19,     0,     3,     5,    13,    12,    10,    11,     9,     7,
-       8,     0,     0,     0,    15,   240,    27,   241,    23,    26,
-       0,    18,     0,     0,     0,     0,   204,     4,     2,     0,
-       0,    14,    28,    21,     0,     0,     0,     0,     0,     6,
-      16,    17,     0,    20,     0,     0,     0,     0,     0,    24,
-      31,    32,    33,    30,    34,     0,   201,    35,    38,    36,
-      37,     0,    29,    22,   207,   208,   209,   210,    46,     0,
-       0,    40,   202,    41,    51,     0,     0,     0,    47,    52,
-      39,   203,   225,   226,   227,   228,   164,     0,    25,     0,
-       0,     0,    49,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   142,   236,   237,   239,   238,   231,
-     232,   234,   233,   241,    99,   100,     0,     0,   152,    53,
-      56,    69,    68,    67,    66,    65,     0,    57,     0,     0,
-      58,    59,    60,    64,   115,   116,     0,   138,   137,     0,
-     141,     0,    62,    63,   169,   171,   170,   172,     0,    61,
-       0,   229,   235,   230,    48,   162,   201,   161,   159,   160,
-       0,   166,   165,   167,     0,    70,    54,    55,     0,     0,
-       0,   147,   146,   177,     0,     0,   145,     0,   187,   192,
-     118,     0,    86,   101,   102,   236,   231,     0,   230,     0,
-       0,   153,   154,   157,    74,   216,   217,   218,     0,   105,
-     215,   214,     0,   136,   140,     0,     0,   205,   281,   279,
-     280,   268,   269,   270,   271,   272,   273,   275,   276,   274,
-     277,   278,     0,     0,     0,     0,     0,   163,     0,    50,
-       0,     0,   109,   112,   206,   216,     0,   178,   179,   182,
-     181,   197,   174,   173,   175,     0,     0,   188,   189,     0,
-       0,   193,   194,     0,     0,   119,   120,    73,    85,    87,
-      90,    89,    71,   107,   151,     0,   156,   103,   104,     0,
-     219,   220,   221,   222,   224,   223,     0,     0,   148,   150,
-     149,     0,   143,   144,     0,     0,    95,   240,   216,     0,
-     242,   243,   244,    78,    83,     0,    80,     0,   215,   214,
-     229,     0,    75,     0,    76,    43,     0,    44,    45,    42,
-       0,   108,     0,   113,   111,     0,   176,     0,   184,     0,
-       0,   190,     0,     0,   195,     0,     0,     0,     0,     0,
-     121,    88,   155,   158,     0,   106,     0,   139,   134,    94,
-       0,    72,   135,   267,   262,   264,   263,   266,   265,   255,
-     256,   257,   260,   258,   259,   261,   254,   246,   252,   245,
-     247,   248,   249,   250,   251,   253,     0,    82,    79,    77,
-     168,   114,   110,   183,   180,   201,   199,   198,   191,   186,
-     196,   185,   122,     0,   126,   124,   128,     0,    97,    98,
-      96,    81,   200,     0,     0,   123,     0,   133,     0,   129,
-     130,    91,    93,    92,     0,   127,     0,     0,   131,   125,
-     132,   117
+       0,     0,     3,     5,    13,    12,    10,    11,     9,     7,
+       8,    16,     0,     0,    15,   238,    27,   239,    23,    26,
+      19,     0,     0,     0,     0,   202,     4,     2,     0,    14,
+      28,    21,     0,    20,     0,     0,     0,     0,     6,    17,
+       0,    18,     0,     0,     0,     0,     0,    24,    31,    32,
+      33,    30,    34,     0,   199,    35,    38,    36,    37,     0,
+      29,    22,   205,   206,   207,   208,    46,     0,     0,    40,
+     200,    41,    49,     0,     0,     0,    47,    50,    39,   201,
+     223,   224,   225,   226,     0,    25,     0,   162,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   140,
+     234,   235,   237,   236,   229,   230,   232,   231,   239,    97,
+      98,     0,     0,   150,    51,    54,    67,    66,    65,    64,
+      63,     0,    55,     0,     0,    56,    57,    58,    62,   113,
+     114,     0,   136,   135,     0,   139,     0,    60,    61,   167,
+     169,   168,   170,     0,    59,     0,   227,   233,   228,     0,
+      68,    52,    53,     0,     0,     0,   145,   144,   175,     0,
+       0,   143,     0,   185,   190,   116,     0,    84,    99,   100,
+     234,   229,     0,   228,     0,     0,   151,   152,   155,    72,
+     214,   215,   216,     0,   103,   213,   212,     0,   134,   138,
+       0,     0,   203,   279,   277,   278,   266,   267,   268,   269,
+     270,   271,   273,   274,   272,   275,   276,     0,     0,     0,
+       0,     0,    48,   160,   199,   159,   157,   158,     0,   164,
+     163,   165,     0,     0,   107,   110,   204,   214,     0,   176,
+     177,   180,   179,   195,   172,   171,   173,     0,     0,   186,
+     187,     0,     0,   191,   192,     0,     0,   117,   118,    71,
+      83,    85,    88,    87,    69,   105,   149,     0,   154,   101,
+     102,     0,   217,   218,   219,   220,   222,   221,     0,     0,
+     146,   148,   147,     0,   141,   142,     0,   238,   214,     0,
+     240,   241,   242,    76,    81,     0,    78,     0,   213,   212,
+     227,     0,     0,    93,    73,     0,    74,   161,     0,     0,
+     106,     0,   111,   109,     0,   174,     0,   182,     0,     0,
+     188,     0,     0,   193,     0,     0,     0,     0,     0,   119,
+      86,   153,   156,     0,   104,     0,   137,   132,    70,   133,
+     265,   260,   262,   261,   264,   263,   253,   254,   255,   258,
+     256,   257,   259,   252,   244,   250,   243,   245,   246,   247,
+     248,   249,   251,     0,    80,    77,    92,     0,    75,    43,
+       0,    44,    45,    42,   112,   108,   181,   178,   199,   197,
+     196,   189,   184,   194,   183,   120,     0,   124,   122,   126,
+       0,    95,    96,    79,    94,   166,   198,     0,     0,   121,
+       0,   131,     0,   127,   128,    89,    91,    90,     0,   125,
+       0,     0,   129,   123,   130,   115
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     2,     3,    12,    13,    14,    15,    16,    17,    18,
-      31,    44,    19,    42,    78,    28,    52,    72,   316,    84,
-      88,    96,    89,    99,   129,   130,   131,   132,   133,   134,
-     135,   234,   303,   136,   192,   268,   269,   270,   341,   411,
-     235,   295,   137,   138,   139,   279,   208,   140,   141,   241,
-     242,   324,   142,   143,   144,   264,   265,   266,   339,   405,
-     408,   409,   410,   145,   146,   147,   148,   149,   291,   150,
-     293,   151,   200,   201,   202,   276,   171,   100,   172,   173,
-     152,   153,   154,   155,   185,   246,   247,   248,   249,   250,
-     156,   157,   256,   257,   258,   260,   261,   262,   328,   387,
-      81,    82,    20,   159,    36,   306,   251,   210,   286,    97,
-     211,   161,   162,   198,   311,   376,   236
+      42,    43,    19,    40,    76,    28,    50,    70,   370,    82,
+      86,    87,    96,   124,   125,   126,   127,   128,   129,   130,
+     219,   293,   131,   177,   260,   261,   262,   330,   405,   220,
+     302,   132,   133,   134,   271,   193,   135,   136,   233,   234,
+     313,   137,   138,   139,   256,   257,   258,   328,   399,   402,
+     403,   404,   140,   141,   142,   143,   144,   283,   145,   285,
+     146,   185,   186,   187,   268,   229,   159,   230,   231,   147,
+     148,   149,   150,   170,   238,   239,   240,   241,   242,   151,
+     152,   248,   249,   250,   252,   253,   254,   317,   380,    79,
+      80,    20,   154,    35,   296,   243,   195,   278,    94,   196,
+     156,   157,   183,   301,   363,   221
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -370
+#define YYPACT_NINF -377
 static const yytype_int16 yypact[] =
 {
-      34,  -370,    66,    36,  -370,    43,    50,    80,    60,   -16,
-      -7,   125,    96,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,     0,    13,    82,  -370,  -370,  -370,  -370,  -370,  -370,
-      88,  -370,     3,     3,     3,     3,  -370,    36,  -370,    89,
-      91,  -370,  -370,  -370,   -46,    28,    29,    31,    32,  -370,
-    -370,  -370,    69,  -370,   113,   115,   128,   132,   134,  -370,
-    -370,  -370,  -370,  -370,  -370,    63,    85,  -370,  -370,  -370,
-    -370,    85,  -370,  -370,  -370,  -370,  -370,  -370,  -370,   -16,
-     154,  -370,  -370,  -370,   180,    86,    92,   149,  -370,   189,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,    58,  -370,   247,
-      10,   147,  -370,   198,   317,   169,   149,   125,    -2,    99,
-     204,   205,   206,   105,  -370,   -87,  -370,  -370,  -370,   -53,
-    -370,  -370,  -370,   418,   160,   161,   142,     3,   142,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,   210,  -370,   470,   470,
-    -370,  -370,  -370,  -370,  -370,  -370,   212,  -370,  -370,    99,
-     108,   110,  -370,  -370,  -370,  -370,  -370,  -370,   215,  -370,
-     420,  -370,  -370,   -23,  -370,  -370,    85,  -370,  -370,  -370,
-     114,  -370,  -370,  -370,     3,  -370,  -370,  -370,   120,     3,
-     219,  -370,  -370,   496,   221,   222,  -370,   223,   207,   211,
-     200,   228,   470,  -370,  -370,  -370,  -370,   229,  -370,   230,
-     129,   133,  -370,  -370,  -370,  -370,  -370,  -370,   -42,    74,
-    -370,  -370,   -42,  -370,  -370,    35,    48,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,   470,   338,   233,   130,   470,  -370,    16,  -370,
-     142,     6,  -370,   144,  -370,   186,   135,   141,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,   470,   224,   207,  -370,   470,
-     220,   211,  -370,   470,     5,   200,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,   142,    49,  -370,  -370,     3,
-    -370,  -370,  -370,  -370,  -370,  -370,   470,     3,  -370,  -370,
-    -370,    99,  -370,  -370,   240,     9,  -370,   242,   143,   248,
-    -370,  -370,  -370,  -370,  -370,   249,  -370,   369,   250,   148,
-     251,   470,  -370,   470,  -370,  -370,   150,  -370,  -370,  -370,
-     252,  -370,     3,  -370,  -370,   470,  -370,   496,   -44,   254,
-     255,  -370,   259,   260,  -370,   268,    79,    79,    79,   270,
-    -370,   174,  -370,  -370,   273,  -370,   275,  -370,  -370,  -370,
-     470,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,  -370,   470,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,    85,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,   278,   181,  -370,     2,   373,  -370,  -370,
-    -370,  -370,  -370,   276,    79,  -370,   142,  -370,   267,     2,
-    -370,  -370,  -370,  -370,    35,  -370,   291,   292,  -370,  -370,
-    -370,  -370
+      13,  -377,    31,   130,  -377,     4,     6,    45,    33,    41,
+     -34,   219,    67,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
+    -377,  -377,   -29,    48,  -377,  -377,  -377,  -377,  -377,  -377,
+      64,   -13,   -13,   -13,   -13,  -377,   130,  -377,    66,  -377,
+    -377,  -377,    14,    16,    17,    21,    23,    24,  -377,  -377,
+     159,  -377,    99,   106,    98,   109,   110,  -377,  -377,  -377,
+    -377,  -377,  -377,    47,    55,  -377,  -377,  -377,  -377,    55,
+    -377,  -377,  -377,  -377,  -377,  -377,  -377,    41,   120,  -377,
+    -377,  -377,   144,    58,    60,   265,  -377,   146,  -377,  -377,
+    -377,  -377,  -377,  -377,   -13,  -377,   183,  -377,   165,   306,
+     137,   265,   219,    -4,    68,   169,   172,   173,    72,  -377,
+     -67,  -377,  -377,  -377,   -28,  -377,  -377,  -377,   392,   128,
+     129,   253,   -13,   253,  -377,  -377,  -377,  -377,  -377,  -377,
+    -377,   179,  -377,   341,   341,  -377,  -377,  -377,  -377,  -377,
+    -377,   181,  -377,  -377,    68,    78,    87,  -377,  -377,  -377,
+    -377,  -377,  -377,   186,  -377,   369,  -377,  -377,   -10,    10,
+    -377,  -377,  -377,    85,   -13,   190,  -377,  -377,   419,   191,
+     194,  -377,   195,   185,   193,   184,   211,   341,  -377,  -377,
+    -377,  -377,   214,  -377,   215,   122,   123,  -377,  -377,  -377,
+    -377,  -377,  -377,   -38,   199,  -377,  -377,   -38,  -377,  -377,
+     125,    43,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,  -377,  -377,  -377,  -377,    20,   341,   226,
+     136,   341,  -377,  -377,    55,  -377,  -377,  -377,   126,  -377,
+    -377,  -377,   253,     7,  -377,   145,  -377,   206,   132,   153,
+    -377,  -377,  -377,  -377,  -377,  -377,  -377,   341,   240,   185,
+    -377,   341,   244,   193,  -377,   341,    50,   184,  -377,  -377,
+    -377,  -377,  -377,  -377,  -377,  -377,  -377,   253,    51,  -377,
+    -377,   -13,  -377,  -377,  -377,  -377,  -377,  -377,   341,   -13,
+    -377,  -377,  -377,    68,  -377,  -377,   280,   281,   182,   283,
+    -377,  -377,  -377,  -377,  -377,   296,  -377,   305,   297,   200,
+     300,   341,   -60,  -377,  -377,   341,  -377,  -377,     1,   302,
+    -377,   -13,  -377,  -377,   341,  -377,   419,   -80,   304,   311,
+    -377,   317,   318,  -377,   319,    56,    56,    56,   325,  -377,
+     201,  -377,  -377,   327,  -377,   329,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,   341,  -377,  -377,  -377,   341,  -377,  -377,
+     228,  -377,  -377,  -377,  -377,  -377,  -377,  -377,    55,  -377,
+    -377,  -377,  -377,  -377,  -377,  -377,   332,   229,  -377,     5,
+     238,  -377,  -377,  -377,  -377,  -377,  -377,   321,    56,  -377,
+     253,  -377,   315,     5,  -377,  -377,  -377,  -377,   125,  -377,
+     348,   349,  -377,  -377,  -377,  -377
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -370,  -370,   289,  -370,   265,  -370,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,   225,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -370,   199,  -370,  -370,  -370,  -370,
-    -370,  -370,  -370,    72,  -370,  -370,  -370,  -370,  -370,  -370,
-    -230,  -370,  -370,  -370,  -370,    94,  -370,  -370,  -369,  -370,
-     -15,  -370,  -370,  -370,  -370,  -370,  -370,    44,  -370,  -370,
-    -370,  -370,   -99,  -370,   -95,  -370,  -370,  -370,  -103,  -210,
-    -370,   201,  -370,  -370,  -263,  -370,    39,  -370,  -370,  -370,
-    -370,  -370,  -370,  -370,  -102,  -370,  -370,   -11,  -370,  -188,
-    -370,  -370,  -370,  -370,    55,  -370,  -370,    56,  -370,  -370,
-    -164,   253,   -84,  -370,   213,  -370,  -135,    90,  -370,   -97,
-     -98,    93,  -370,    -9,  -370,  -370,  -370
+    -377,  -377,   342,  -377,   351,  -377,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,  -377,  -377,   278,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,  -377,   289,  -377,  -377,  -377,  -377,  -377,
+    -377,  -377,   174,  -377,  -377,  -377,  -377,  -377,  -377,  -287,
+    -377,  -377,  -377,  -377,   196,  -377,  -377,  -376,  -377,    79,
+    -377,  -377,  -377,  -377,  -377,  -377,   135,  -377,  -377,  -377,
+    -377,    -8,  -377,   -93,  -377,  -377,  -377,   -14,  -198,  -377,
+     290,  -377,  -377,  -258,  -377,   133,  -377,  -377,  -377,  -377,
+    -377,  -377,  -377,  -101,  -377,  -377,    81,  -377,  -135,  -377,
+    -377,  -377,  -377,   151,  -377,  -377,   149,  -377,  -377,  -218,
+     334,    18,  -377,   303,  -377,  -126,   187,  -377,   -96,   -95,
+     189,  -377,    -9,  -377,  -377,  -377
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -214
+#define YYTABLE_NINF -212
 static const yytype_int16 yytable[] =
 {
-      29,   160,   237,   209,   212,   292,   160,   187,   317,   179,
-     321,   277,   342,   184,   164,   158,   106,    25,    26,  -147,
-     158,   336,  -147,    45,    46,    47,    48,   407,   197,    27,
-     203,    25,   114,   406,   337,   181,    25,   338,     1,   182,
-     407,     5,     6,    27,     7,     8,     9,   214,    27,    25,
-     315,    10,   385,  -146,   386,    11,  -146,   271,    53,    54,
-     278,    27,    92,    93,    94,    95,     4,   329,    25,   288,
-      29,   332,   181,    59,   289,   335,   182,    21,   290,   377,
-      27,    25,   114,  -145,    22,   181,  -145,    23,   102,   182,
-     163,    25,   101,    27,    24,   163,    30,   296,   307,   186,
-      37,   314,    39,    27,   183,   165,   166,   167,   322,   168,
-     169,   170,    25,   349,   350,    40,   181,    41,   199,   232,
-     182,   294,    43,    50,    27,    51,   393,   394,   395,   280,
-     281,   282,   283,   284,   285,   309,    55,    56,   305,    57,
-      58,   318,   320,   416,   165,   166,   167,    73,   168,   169,
-      74,   345,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    75,   239,    76,   412,    77,    79,
-     243,    32,    33,    34,    35,    25,   378,   203,   379,   195,
-     116,   117,   118,   196,   120,   121,   122,    27,    86,   347,
-     383,    80,    87,    90,   415,    92,    93,    94,    95,    91,
-      98,   174,   175,   178,   292,   183,   186,   186,   188,   189,
-     190,   128,   193,   194,   204,   400,   213,   215,   216,   217,
-     238,   402,   240,   244,   163,   252,   253,   254,   255,   319,
-     263,   259,   267,   272,   273,   275,   274,   312,   313,   323,
-     325,   401,   326,   327,   348,   333,  -213,   330,   103,  -142,
-     104,   232,   351,   352,  -211,  -212,   381,   380,   388,   389,
-     105,   106,   413,   390,   391,   107,    11,   108,   109,   110,
-     344,   111,   392,   112,   396,   113,   397,   398,   346,   399,
-      25,   114,   403,   404,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   414,   417,   420,   421,   124,   125,   126,
-     127,    38,    49,   177,    85,   304,   287,   382,   203,   340,
-     418,   419,   331,   243,   191,   343,   384,   334,   103,     0,
-     180,   176,     0,   308,    83,     0,   310,   186,   186,   186,
-     105,   106,     0,     0,     0,   107,    11,   108,   109,   110,
-       0,   111,     0,   112,     0,   113,     0,     0,     0,     0,
-      25,   114,     0,   128,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,     0,     0,     0,     0,   124,   125,   126,
-     127,   297,   298,   206,   207,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,     0,     0,     0,     0,     0,     0,
-     299,     0,     0,     0,     0,   186,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   186,    25,   205,   206,   207,
-     195,   116,   117,   118,   196,   120,   121,   122,    27,     0,
-       0,     0,   -84,   128,   353,   354,   355,   356,   357,   358,
-     359,   360,   361,   362,   363,   364,   365,   366,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   300,   301,
-     302,   -84,   -84,   -84,   -84,   -84,   -84,   -84,   -84,   -84,
-     -84,   -84,   -84,   -84,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   232,     0,     0,   367,
-       0,   368,   369,   370,   371,   372,   373,   374,   375,   218,
-     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-     229,   230,   231,    25,   205,   206,   207,   195,   116,   117,
-     118,   196,   120,   121,   122,    27,     0,     0,     0,     0,
-       0,     0,     0,   232,     0,     0,     0,     0,   233,    25,
-     245,   206,   207,   195,   116,   117,   118,   196,   120,   121,
-     122,    27
+      29,   155,   284,   172,   155,   164,   307,   194,   197,   331,
+     169,   310,   364,   401,   222,   269,   378,     1,   379,   101,
+      25,   371,    44,    45,    46,    47,   182,   401,   188,    25,
+     109,     4,    27,   166,    25,   369,   400,   167,    21,  -145,
+      22,    27,  -145,   199,   366,   367,    27,    90,    91,    92,
+      93,   263,    23,   287,   288,   191,   192,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   325,    24,    29,    30,
+     270,    36,   289,    38,    25,    26,    25,   109,  -144,   326,
+     166,  -144,   327,    39,   167,    97,    27,   158,    27,    25,
+     158,   297,   303,   166,   171,   306,  -143,   167,    41,  -143,
+      49,    27,   168,   406,   218,   223,   224,   225,   286,   226,
+     227,   228,   318,   184,   153,   311,   321,   153,    51,    53,
+     324,    52,   299,    54,   295,    55,    56,   386,   387,   388,
+     290,   291,   292,    71,    73,     5,     6,   309,     7,     8,
+       9,    72,   410,    74,    75,    10,   223,   224,   225,    11,
+     226,   227,   334,    77,    84,   235,    85,    95,    25,   280,
+     396,    78,   166,    57,   281,    88,   167,    89,   282,   160,
+      27,   163,   188,   173,   168,   365,   174,   175,   123,   368,
+     178,   179,   336,   189,    98,   198,    99,   200,   376,   201,
+     202,   171,   171,   232,   236,   244,   100,   101,   245,   246,
+     409,   102,    11,   103,   104,   105,   247,   106,   158,   107,
+     284,   108,   372,   251,   255,   259,    25,   109,   264,   265,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   266,
+     304,   267,   308,   119,   120,   121,   122,   393,   305,   315,
+     312,   394,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,   272,   273,   274,   275,   276,   277,
+     314,   316,   333,   319,   407,    31,    32,    33,    34,   322,
+     335,    25,   190,   191,   192,   180,   111,   112,   113,   181,
+     115,   116,   117,    27,   337,  -211,    25,   338,  -140,   123,
+     180,   111,   112,   113,   181,   115,   116,   117,    27,   373,
+     339,  -209,   235,   218,  -210,   188,   374,    98,   381,   390,
+     161,    90,    91,    92,    93,   382,   171,   171,   171,   100,
+     101,   383,   384,   385,   102,    11,   103,   104,   105,   389,
+     106,   391,   107,   392,   108,   395,   397,   398,   408,    25,
+     109,   218,   411,   110,   111,   112,   113,   114,   115,   116,
+     117,   118,   414,   415,    37,    83,   119,   120,   121,   122,
+     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
+     350,   351,   352,   353,    25,   190,   191,   192,   180,   111,
+     112,   113,   181,   115,   116,   117,    27,    48,   162,   171,
+     375,   294,   329,   279,   413,   412,   -82,   377,   176,   171,
+     320,   332,   323,    81,   298,   165,   300,     0,     0,     0,
+       0,     0,   123,     0,     0,   354,     0,   355,   356,   357,
+     358,   359,   360,   361,   362,   -82,   -82,   -82,   -82,   -82,
+     -82,   -82,   -82,   -82,   -82,   -82,   -82,   -82,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,    25,   237,   191,   192,   180,   111,   112,   113,
+     181,   115,   116,   117,    27,     0,     0,     0,     0,     0,
+       0,   217,   218
 };
 
 static const yytype_int16 yycheck[] =
 {
-       9,    99,   166,   138,   139,   215,   104,   109,   238,   106,
-       4,    53,   275,   108,     4,    99,    14,    33,    34,   106,
-     104,    16,   109,    32,    33,    34,    35,   396,   126,    45,
-     128,    33,    34,    31,    29,    37,    33,    32,     4,    41,
-     409,     5,     6,    45,     8,     9,    10,   149,    45,    33,
-      34,    15,    96,   106,    98,    19,   109,   192,   104,   105,
-     102,    45,    46,    47,    48,    49,     0,   255,    33,    34,
-      79,   259,    37,     4,    39,   263,    41,    34,    43,   309,
-      45,    33,    34,   106,    34,    37,   109,     7,    97,    41,
-      99,    33,    34,    45,    34,   104,   103,   232,   233,   108,
-       4,   236,   102,    45,   106,    95,    96,    97,   102,    99,
-     100,   101,    33,   104,   105,   102,    37,    35,   127,   103,
-      41,   216,    34,    34,    45,    34,   336,   337,   338,    55,
-      56,    57,    58,    59,    60,   233,   108,   108,   233,   108,
-     108,   238,   240,   406,    95,    96,    97,    34,    99,   100,
-      35,   286,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    36,   174,    34,   397,    34,   106,
-     179,    46,    47,    48,    49,    33,   311,   275,   313,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    34,   291,
-     325,   106,    12,   107,   404,    46,    47,    48,    49,   107,
-      11,    54,     4,    34,   414,   106,   215,   216,     4,     4,
-       4,   106,    52,    52,     4,   350,     4,   109,   108,     4,
-     106,   385,   102,     4,   233,     4,     4,     4,    21,   238,
-      30,    20,     4,     4,     4,   102,   107,     4,   108,    95,
-      54,   376,   107,   102,     4,    25,     4,    23,     1,   106,
-       3,   103,     4,     4,     4,     4,     4,   107,     4,     4,
-      13,    14,   397,     4,     4,    18,    19,    20,    21,    22,
-     279,    24,     4,    26,     4,    28,   102,     4,   287,     4,
-      33,    34,     4,   102,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    17,    27,     4,     4,    50,    51,    52,
-      53,    12,    37,   104,    79,   233,   212,   322,   406,   265,
-     409,   414,   257,   322,   113,   276,   327,   261,     1,    -1,
-     107,     4,    -1,   233,    71,    -1,   233,   336,   337,   338,
-      13,    14,    -1,    -1,    -1,    18,    19,    20,    21,    22,
-      -1,    24,    -1,    26,    -1,    28,    -1,    -1,    -1,    -1,
-      33,    34,    -1,   106,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    -1,    -1,    -1,    -1,    50,    51,    52,
-      53,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
-      52,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   414,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
-      -1,    -1,     4,   106,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
-     112,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,   110,
-      -1,   112,   113,   114,   115,   116,   117,   118,   119,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,   108,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45
+       9,    96,   200,   104,    99,   101,   224,   133,   134,   267,
+     103,     4,   299,   389,     4,    53,    96,     4,    98,    14,
+      33,   308,    31,    32,    33,    34,   121,   403,   123,    33,
+      34,     0,    45,    37,    33,    34,    31,    41,    34,   106,
+      34,    45,   109,   144,   104,   105,    45,    46,    47,    48,
+      49,   177,     7,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    16,    34,    77,   103,
+     108,     4,    52,   102,    33,    34,    33,    34,   106,    29,
+      37,   109,    32,    35,    41,    94,    45,    96,    45,    33,
+      99,   217,   218,    37,   103,   221,   106,    41,    34,   109,
+      34,    45,   106,   390,   103,    95,    96,    97,   201,    99,
+     100,   101,   247,   122,    96,   108,   251,    99,   104,   102,
+     255,   105,   217,   102,   217,   102,   102,   325,   326,   327,
+     110,   111,   112,    34,    36,     5,     6,   232,     8,     9,
+      10,    35,   400,    34,    34,    15,    95,    96,    97,    19,
+      99,   100,   278,   106,    34,   164,    12,    11,    33,    34,
+     378,   106,    37,     4,    39,   107,    41,   107,    43,     4,
+      45,    34,   267,     4,   106,   301,     4,     4,   106,   305,
+      52,    52,   283,     4,     1,     4,     3,   109,   314,   102,
+       4,   200,   201,   108,     4,     4,    13,    14,     4,     4,
+     398,    18,    19,    20,    21,    22,    21,    24,   217,    26,
+     408,    28,   308,    20,    30,     4,    33,    34,     4,     4,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,   107,
+       4,   108,   106,    50,    51,    52,    53,   363,   102,   107,
+      95,   367,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    55,    56,    57,    58,    59,    60,
+      54,   108,   271,    23,   390,    46,    47,    48,    49,    25,
+     279,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,     4,     4,    33,     4,   106,   106,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,   308,
+       4,     4,   311,   103,     4,   400,     4,     1,     4,   108,
+       4,    46,    47,    48,    49,     4,   325,   326,   327,    13,
+      14,     4,     4,     4,    18,    19,    20,    21,    22,     4,
+      24,     4,    26,     4,    28,   107,     4,   108,    17,    33,
+      34,   103,    27,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,     4,     4,    12,    77,    50,    51,    52,    53,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    36,    99,   398,
+     311,   217,   257,   197,   408,   403,     4,   316,   108,   408,
+     249,   268,   253,    69,   217,   102,   217,    -1,    -1,    -1,
+      -1,    -1,   106,    -1,    -1,   110,    -1,   112,   113,   114,
+     115,   116,   117,   118,   119,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    -1,    -1,    -1,    -1,    -1,
+      -1,   102,   103
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1237,47 +1216,46 @@
 {
        0,     4,   121,   122,     0,     5,     6,     8,     9,    10,
       15,    19,   123,   124,   125,   126,   127,   128,   129,   132,
-     222,    34,    34,     7,    34,    33,    34,    45,   135,   233,
-     103,   130,    46,    47,    48,    49,   224,     4,   122,   102,
-     102,    35,   133,    34,   131,   233,   233,   233,   233,   124,
-      34,    34,   136,   104,   105,   108,   108,   108,   108,     4,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,   137,    34,    35,    36,    34,    34,   134,   106,
-     106,   220,   221,   221,   139,   135,    34,    12,   140,   142,
-     107,   107,    46,    47,    48,    49,   141,   229,    11,   143,
-     197,    34,   233,     1,     3,    13,    14,    18,    20,    21,
-      22,    24,    26,    28,    34,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    50,    51,    52,    53,   106,   144,
-     145,   146,   147,   148,   149,   150,   153,   162,   163,   164,
-     167,   168,   172,   173,   174,   183,   184,   185,   186,   187,
-     189,   191,   200,   201,   202,   203,   210,   211,   222,   223,
-     230,   231,   232,   233,     4,    95,    96,    97,    99,   100,
-     101,   196,   198,   199,    54,     4,     4,   145,    34,   229,
-     224,    37,    41,   106,   184,   204,   233,   204,     4,     4,
-       4,   191,   154,    52,    52,    37,    41,   230,   233,   233,
-     192,   193,   194,   230,     4,    34,    35,    36,   166,   226,
-     227,   230,   226,     4,   204,   109,   108,     4,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,   103,   108,   151,   160,   236,   220,   106,   233,
-     102,   169,   170,   233,     4,    34,   205,   206,   207,   208,
-     209,   226,     4,     4,     4,    21,   212,   213,   214,    20,
-     215,   216,   217,    30,   175,   176,   177,     4,   155,   156,
-     157,   226,     4,     4,   107,   102,   195,    53,   102,   165,
-      55,    56,    57,    58,    59,    60,   228,   165,    34,    39,
-      43,   188,   189,   190,   184,   161,   226,    33,    34,    52,
-     110,   111,   112,   152,   153,   184,   225,   226,   227,   230,
-     231,   234,     4,   108,   226,    34,   138,   160,   229,   233,
-     230,     4,   102,    95,   171,    54,   107,   102,   218,   209,
-      23,   214,   209,    25,   217,   209,    16,    29,    32,   178,
-     177,   158,   194,   196,   233,   226,   233,   204,     4,   104,
-     105,     4,     4,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,   110,   112,   113,
-     114,   115,   116,   117,   118,   119,   235,   160,   226,   226,
-     107,     4,   170,   226,   207,    96,    98,   219,     4,     4,
-       4,     4,     4,   189,   189,   189,     4,   102,     4,     4,
-     226,   226,   220,     4,   102,   179,    31,   168,   180,   181,
-     182,   159,   160,   226,    17,   189,   194,    27,   182,   188,
-       4,     4
+     221,    34,    34,     7,    34,    33,    34,    45,   135,   232,
+     103,    46,    47,    48,    49,   223,     4,   122,   102,    35,
+     133,    34,   130,   131,   232,   232,   232,   232,   124,    34,
+     136,   104,   105,   102,   102,   102,   102,     4,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+     137,    34,    35,    36,    34,    34,   134,   106,   106,   219,
+     220,   220,   139,   135,    34,    12,   140,   141,   107,   107,
+      46,    47,    48,    49,   228,    11,   142,   232,     1,     3,
+      13,    14,    18,    20,    21,    22,    24,    26,    28,    34,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    50,
+      51,    52,    53,   106,   143,   144,   145,   146,   147,   148,
+     149,   152,   161,   162,   163,   166,   167,   171,   172,   173,
+     182,   183,   184,   185,   186,   188,   190,   199,   200,   201,
+     202,   209,   210,   221,   222,   229,   230,   231,   232,   196,
+       4,     4,   144,    34,   228,   223,    37,    41,   106,   183,
+     203,   232,   203,     4,     4,     4,   190,   153,    52,    52,
+      37,    41,   229,   232,   232,   191,   192,   193,   229,     4,
+      34,    35,    36,   165,   225,   226,   229,   225,     4,   203,
+     109,   102,     4,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,   102,   103,   150,
+     159,   235,     4,    95,    96,    97,    99,   100,   101,   195,
+     197,   198,   108,   168,   169,   232,     4,    34,   204,   205,
+     206,   207,   208,   225,     4,     4,     4,    21,   211,   212,
+     213,    20,   214,   215,   216,    30,   174,   175,   176,     4,
+     154,   155,   156,   225,     4,     4,   107,   108,   194,    53,
+     108,   164,    55,    56,    57,    58,    59,    60,   227,   164,
+      34,    39,    43,   187,   188,   189,   183,    33,    34,    52,
+     110,   111,   112,   151,   152,   183,   224,   225,   226,   229,
+     230,   233,   160,   225,     4,   102,   225,   219,   106,   229,
+       4,   108,    95,   170,    54,   107,   108,   217,   208,    23,
+     213,   208,    25,   216,   208,    16,    29,    32,   177,   176,
+     157,   193,   195,   232,   225,   232,   203,     4,     4,     4,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,   110,   112,   113,   114,   115,   116,
+     117,   118,   119,   234,   159,   225,   104,   105,   225,    34,
+     138,   159,   228,   232,     4,   169,   225,   206,    96,    98,
+     218,     4,     4,     4,     4,     4,   188,   188,   188,     4,
+     108,     4,     4,   225,   225,   107,   219,     4,   108,   178,
+      31,   167,   179,   180,   181,   158,   159,   225,    17,   188,
+     193,    27,   181,   187,     4,     4
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2105,159 +2083,150 @@
   switch (yyn)
     {
         case 14:
-#line 360 "pir.y"
+#line 359 "pir.y"
     { set_pragma(PRAGMA_N_OPERATORS, (yyvsp[(3) - (3)].ival)); ;}
     break;
 
   case 15:
-#line 364 "pir.y"
+#line 363 "pir.y"
     { load_library(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 16:
-#line 370 "pir.y"
-    { set_hll((yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
+#line 369 "pir.y"
+    { /*set_hll($2, $4);*/ ;}
     break;
 
   case 17:
-#line 374 "pir.y"
+#line 373 "pir.y"
     { set_hll_map((yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
     break;
 
   case 19:
-#line 384 "pir.y"
+#line 383 "pir.y"
     { (yyval.fixme) = NULL; ;}
     break;
 
   case 20:
-#line 386 "pir.y"
-    { (yyval.fixme) = (yyvsp[(2) - (3)].fixme); ;}
+#line 385 "pir.y"
+    { (yyval.fixme) = (yyvsp[(1) - (1)].fixme); ;}
     break;
 
   case 21:
-#line 390 "pir.y"
+#line 389 "pir.y"
     { (yyval.fixme) = (yyvsp[(1) - (1)].sval); ;}
     break;
 
   case 22:
-#line 392 "pir.y"
+#line 391 "pir.y"
     { ;}
     break;
 
   case 23:
-#line 398 "pir.y"
+#line 397 "pir.y"
     { new_subr(lexer, (yyvsp[(2) - (2)].sval)); ;}
     break;
 
   case 24:
-#line 399 "pir.y"
+#line 398 "pir.y"
     { set_sub_flag(lexer, (yyvsp[(4) - (5)].ival)); ;}
     break;
 
   case 28:
-#line 410 "pir.y"
+#line 409 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
   case 29:
-#line 412 "pir.y"
+#line 411 "pir.y"
     { (yyval.ival) |= (yyvsp[(2) - (2)].ival); ;}
     break;
 
   case 30:
-#line 416 "pir.y"
+#line 415 "pir.y"
     { (yyval.ival) = SUB_FLAG_ANON;;}
     break;
 
   case 31:
-#line 418 "pir.y"
+#line 417 "pir.y"
     { (yyval.ival) = SUB_FLAG_INIT; ;}
     break;
 
   case 32:
-#line 420 "pir.y"
+#line 419 "pir.y"
     { (yyval.ival) = SUB_FLAG_LOAD; ;}
     break;
 
   case 33:
-#line 422 "pir.y"
+#line 421 "pir.y"
     { (yyval.ival) = SUB_FLAG_MAIN; ;}
     break;
 
   case 34:
-#line 424 "pir.y"
+#line 423 "pir.y"
     { (yyval.ival) = SUB_FLAG_METHOD; ;}
     break;
 
   case 35:
-#line 426 "pir.y"
+#line 425 "pir.y"
     { (yyval.ival) = SUB_FLAG_LEX; ;}
     break;
 
   case 36:
-#line 428 "pir.y"
+#line 427 "pir.y"
     { (yyval.ival) = SUB_FLAG_POSTCOMP; ;}
     break;
 
   case 37:
-#line 430 "pir.y"
+#line 429 "pir.y"
     { (yyval.ival) = SUB_FLAG_IMMEDIATE; ;}
     break;
 
   case 38:
-#line 432 "pir.y"
+#line 431 "pir.y"
     { (yyval.ival) = SUB_FLAG_MULTI; ;}
     break;
 
   case 39:
-#line 434 "pir.y"
+#line 433 "pir.y"
     { (yyval.ival) = SUB_FLAG_OUTER;  set_sub_outer(lexer, (yyvsp[(3) - 
(4)].sval)); ;}
     break;
 
   case 40:
-#line 436 "pir.y"
+#line 435 "pir.y"
     { (yyval.ival) = SUB_FLAG_VTABLE; set_sub_vtable(lexer, (yyvsp[(2) - 
(2)].sval)); ;}
     break;
 
   case 41:
-#line 438 "pir.y"
+#line 437 "pir.y"
     { (yyval.ival) = SUB_FLAG_LEXID; /* do something with this */ ;}
     break;
 
   case 48:
-#line 453 "pir.y"
-    { set_param_flag((yyvsp[(2) - (4)].targ), (yyvsp[(3) - (4)].ival));
-                          IF_NAMED_PARAM_SET_ALIAS((yyvsp[(2) - (4)].targ), 
(yyvsp[(3) - (4)].ival));
+#line 452 "pir.y"
+    { /* set_param_flag($2, $3);
+                          IF_NAMED_PARAM_SET_ALIAS($2, $3);
+                          */
                         ;}
     break;
 
-  case 49:
-#line 459 "pir.y"
-    { (yyval.targ) = add_param(lexer, (yyvsp[(1) - (2)].ival), (yyvsp[(2) - 
(2)].sval)); ;}
-    break;
-
   case 50:
-#line 461 "pir.y"
-    { (yyval.targ) = add_param_named(lexer, (yyvsp[(1) - (4)].ival), 
(yyvsp[(4) - (4)].sval), (yyvsp[(2) - (4)].sval)); ;}
-    break;
-
-  case 52:
-#line 468 "pir.y"
+#line 463 "pir.y"
     { new_instr(lexer); ;}
     break;
 
-  case 54:
-#line 474 "pir.y"
+  case 52:
+#line 469 "pir.y"
     { set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
     break;
 
-  case 55:
-#line 476 "pir.y"
+  case 53:
+#line 471 "pir.y"
     { set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
     break;
 
-  case 70:
-#line 496 "pir.y"
+  case 68:
+#line 491 "pir.y"
     { if (lexer->parse_errors > MAX_NUM_ERRORS) {
                               fprintf(stderr, "Too many errors. Compilation 
aborted.\n");
                               exit(EXIT_FAILURE); /* fix: bail out and free() 
all memory */
@@ -2266,109 +2235,109 @@
                         ;}
     break;
 
-  case 71:
-#line 505 "pir.y"
+  case 69:
+#line 500 "pir.y"
     { set_instr(lexer, "null");
                           add_operand(lexer, expr_from_target((yyvsp[(2) - 
(3)].targ)));
                         ;}
     break;
 
-  case 72:
-#line 509 "pir.y"
+  case 70:
+#line 504 "pir.y"
     { set_instr(lexer, "null");
                           add_operand(lexer, expr_from_target((yyvsp[(1) - 
(4)].targ)));
                         ;}
     break;
 
-  case 73:
-#line 515 "pir.y"
+  case 71:
+#line 510 "pir.y"
     { set_instr(lexer, "get_results");
                           add_operand(lexer, expr_from_target((yyvsp[(2) - 
(3)].targ)));
                         ;}
     break;
 
-  case 75:
-#line 524 "pir.y"
+  case 73:
+#line 519 "pir.y"
     { add_first_operand(lexer, expr_from_target((yyvsp[(1) - (3)].targ))); ;}
     break;
 
-  case 76:
-#line 549 "pir.y"
+  case 74:
+#line 544 "pir.y"
     { assign(lexer, RHS_AUGMENT, (yyvsp[(1) - (2)].sval), (yyvsp[(2) - 
(2)].expr)); ;}
     break;
 
-  case 77:
-#line 551 "pir.y"
+  case 75:
+#line 546 "pir.y"
     { assign(lexer, RHS_SETKEYED, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - 
(3)].expr)); ;}
     break;
 
-  case 78:
-#line 553 "pir.y"
+  case 76:
+#line 548 "pir.y"
     { /* nothing to do */ ;}
     break;
 
-  case 79:
-#line 557 "pir.y"
+  case 77:
+#line 552 "pir.y"
     { assign(lexer, RHS_UNOP, (yyvsp[(1) - (2)].sval), (yyvsp[(2) - 
(2)].expr)); ;}
     break;
 
-  case 80:
-#line 559 "pir.y"
+  case 78:
+#line 554 "pir.y"
     { assign(lexer, RHS_SIMPLE, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
-  case 81:
-#line 561 "pir.y"
+  case 79:
+#line 556 "pir.y"
     { assign(lexer, RHS_BINOP, (yyvsp[(2) - (3)].sval), (yyvsp[(1) - 
(3)].expr), (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 82:
-#line 563 "pir.y"
+  case 80:
+#line 558 "pir.y"
     { assign(lexer, RHS_GETKEYED, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - 
(2)].expr)); ;}
     break;
 
-  case 83:
-#line 565 "pir.y"
+  case 81:
+#line 560 "pir.y"
     { /* nothing to do */ ;}
     break;
 
-  case 84:
-#line 569 "pir.y"
+  case 82:
+#line 564 "pir.y"
     { set_instr(lexer, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 89:
-#line 582 "pir.y"
+  case 87:
+#line 577 "pir.y"
     { add_operand(lexer, (yyvsp[(1) - (1)].expr)); ;}
     break;
 
-  case 90:
-#line 587 "pir.y"
+  case 88:
+#line 582 "pir.y"
     { /* nothing to do */;}
     break;
 
-  case 91:
-#line 589 "pir.y"
+  case 89:
+#line 584 "pir.y"
     { add_operand(lexer, (yyvsp[(3) - (3)].expr)); ;}
     break;
 
-  case 94:
-#line 597 "pir.y"
+  case 92:
+#line 592 "pir.y"
     { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
     break;
 
-  case 95:
-#line 601 "pir.y"
+  case 93:
+#line 596 "pir.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;}
     break;
 
-  case 96:
-#line 603 "pir.y"
+  case 94:
+#line 598 "pir.y"
     { (yyval.expr) = add_key((yyvsp[(1) - (3)].expr), (yyvsp[(3) - 
(3)].expr)); ;}
     break;
 
-  case 97:
-#line 607 "pir.y"
+  case 95:
+#line 602 "pir.y"
     { /* it was "unless", so "invert" the opcode */
                            if ((yyvsp[(1) - (5)].ival) > 0) {
                               invert_instr(lexer);
@@ -2377,93 +2346,93 @@
                          ;}
     break;
 
-  case 98:
-#line 614 "pir.y"
+  case 96:
+#line 609 "pir.y"
     { set_instr(lexer, (yyvsp[(1) - (5)].sval));
                            add_operand(lexer, (yyvsp[(2) - (5)].expr));
                            add_operand(lexer, expr_from_ident((yyvsp[(4) - 
(5)].sval)));
                          ;}
     break;
 
-  case 99:
-#line 620 "pir.y"
+  case 97:
+#line 615 "pir.y"
     { (yyval.ival) = 0; /* no need to invert */ ;}
     break;
 
-  case 100:
-#line 621 "pir.y"
+  case 98:
+#line 616 "pir.y"
     { (yyval.ival) = 1; /* yes, invert opname */ ;}
     break;
 
-  case 101:
-#line 626 "pir.y"
+  case 99:
+#line 621 "pir.y"
     { (yyval.sval) = "if_null"; ;}
     break;
 
-  case 102:
-#line 628 "pir.y"
+  case 100:
+#line 623 "pir.y"
     { (yyval.sval) = "unless_null"; ;}
     break;
 
-  case 105:
-#line 637 "pir.y"
+  case 103:
+#line 632 "pir.y"
     { set_instr(lexer, "if");
                            add_operand(lexer, (yyvsp[(1) - (1)].expr));
                          ;}
     break;
 
-  case 106:
-#line 641 "pir.y"
+  case 104:
+#line 636 "pir.y"
     { set_instr(lexer, (yyvsp[(2) - (3)].sval));
                            add_operand(lexer, (yyvsp[(1) - (3)].expr));
                            add_operand(lexer, (yyvsp[(3) - (3)].expr));
                          ;}
     break;
 
-  case 107:
-#line 649 "pir.y"
+  case 105:
+#line 644 "pir.y"
     { set_instr(lexer, "branch");
                            add_operand(lexer, expr_from_ident((yyvsp[(2) - 
(3)].sval)));
                          ;}
     break;
 
-  case 108:
-#line 655 "pir.y"
+  case 106:
+#line 650 "pir.y"
     { declare_local(lexer, (yyvsp[(2) - (4)].ival), (yyvsp[(3) - (4)].targ)); 
;}
     break;
 
-  case 109:
-#line 659 "pir.y"
+  case 107:
+#line 654 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 110:
-#line 661 "pir.y"
+  case 108:
+#line 656 "pir.y"
     { (yyval.targ) = add_local((yyvsp[(1) - (3)].targ), (yyvsp[(3) - 
(3)].targ)); ;}
     break;
 
-  case 111:
-#line 665 "pir.y"
+  case 109:
+#line 660 "pir.y"
     { (yyval.targ) = new_local((yyvsp[(1) - (2)].sval), (yyvsp[(2) - 
(2)].ival)); ;}
     break;
 
-  case 112:
-#line 668 "pir.y"
+  case 110:
+#line 663 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
-  case 113:
-#line 669 "pir.y"
+  case 111:
+#line 664 "pir.y"
     { (yyval.ival) = 1; ;}
     break;
 
-  case 114:
-#line 675 "pir.y"
+  case 112:
+#line 670 "pir.y"
     { set_lex_flag((yyvsp[(4) - (5)].targ), (yyvsp[(2) - (5)].sval)); ;}
     break;
 
-  case 117:
-#line 690 "pir.y"
+  case 115:
+#line 685 "pir.y"
     { /* $4 contains an invocation object */
                              set_invocation_args((yyvsp[(4) - (8)].invo), 
(yyvsp[(3) - (8)].argm));
                              set_invocation_results((yyvsp[(4) - (8)].invo), 
(yyvsp[(6) - (8)].targ));
@@ -2471,182 +2440,182 @@
                            ;}
     break;
 
-  case 118:
-#line 698 "pir.y"
+  case 116:
+#line 693 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
-  case 119:
-#line 700 "pir.y"
+  case 117:
+#line 695 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 120:
-#line 704 "pir.y"
+  case 118:
+#line 699 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 121:
-#line 706 "pir.y"
+  case 119:
+#line 701 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - 
(2)].argm)); ;}
     break;
 
-  case 122:
-#line 710 "pir.y"
+  case 120:
+#line 705 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
-  case 123:
-#line 714 "pir.y"
+  case 121:
+#line 709 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(2) - (3)].targ), 
(yyvsp[(3) - (3)].targ)); ;}
     break;
 
-  case 124:
-#line 716 "pir.y"
+  case 122:
+#line 711 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_NCI, (yyvsp[(2) - (2)].targ)); ;}
     break;
 
-  case 125:
-#line 719 "pir.y"
+  case 123:
+#line 714 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_METH, (yyvsp[(2) - (5)].targ), 
(yyvsp[(5) - (5)].targ)); ;}
     break;
 
-  case 126:
-#line 723 "pir.y"
+  case 124:
+#line 718 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
-  case 127:
-#line 725 "pir.y"
+  case 125:
+#line 720 "pir.y"
     { (yyval.targ) = (yyvsp[(2) - (2)].targ); ;}
     break;
 
-  case 128:
-#line 731 "pir.y"
+  case 126:
+#line 726 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
-  case 129:
-#line 733 "pir.y"
+  case 127:
+#line 728 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 130:
-#line 737 "pir.y"
+  case 128:
+#line 732 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 131:
-#line 739 "pir.y"
+  case 129:
+#line 734 "pir.y"
     { (yyval.targ) = add_target(lexer, (yyvsp[(1) - (2)].targ), (yyvsp[(2) - 
(2)].targ)); ;}
     break;
 
-  case 132:
-#line 743 "pir.y"
+  case 130:
+#line 738 "pir.y"
     { (yyval.targ) = (yyvsp[(2) - (3)].targ); ;}
     break;
 
-  case 133:
-#line 745 "pir.y"
+  case 131:
+#line 740 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
-  case 134:
-#line 749 "pir.y"
+  case 132:
+#line 744 "pir.y"
     { set_invocation_results((yyvsp[(3) - (4)].invo), (yyvsp[(1) - 
(4)].targ)); ;}
     break;
 
-  case 135:
-#line 751 "pir.y"
+  case 133:
+#line 746 "pir.y"
     { set_invocation_results((yyvsp[(3) - (4)].invo), (yyvsp[(1) - 
(4)].targ)); ;}
     break;
 
-  case 136:
-#line 753 "pir.y"
+  case 134:
+#line 748 "pir.y"
     { set_invocation_results((yyvsp[(1) - (2)].invo), NULL); ;}
     break;
 
-  case 139:
-#line 762 "pir.y"
+  case 137:
+#line 757 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_METH, (yyvsp[(1) - (4)].targ), 
(yyvsp[(3) - (4)].targ));
                               set_invocation_args((yyval.invo), (yyvsp[(4) - 
(4)].argm));
                             ;}
     break;
 
-  case 140:
-#line 769 "pir.y"
+  case 138:
+#line 764 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_PCC, (yyvsp[(1) - (2)].targ), NULL);
                               set_invocation_args((yyval.invo), (yyvsp[(2) - 
(2)].argm));
                             ;}
     break;
 
-  case 141:
-#line 775 "pir.y"
+  case 139:
+#line 770 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 142:
-#line 777 "pir.y"
+  case 140:
+#line 772 "pir.y"
     { (yyval.targ) = target_from_string((yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 145:
-#line 785 "pir.y"
+  case 143:
+#line 780 "pir.y"
     { (yyval.targ) = target_from_ident((yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 146:
-#line 787 "pir.y"
+  case 144:
+#line 782 "pir.y"
     { (yyval.targ) = reg(PMC_TYPE, (yyvsp[(1) - (1)].ival), !IS_PASM_REG); ;}
     break;
 
-  case 147:
-#line 789 "pir.y"
+  case 145:
+#line 784 "pir.y"
     { (yyval.targ) = reg(PMC_TYPE, (yyvsp[(1) - (1)].ival), IS_PASM_REG); ;}
     break;
 
-  case 148:
-#line 793 "pir.y"
+  case 146:
+#line 788 "pir.y"
     { (yyval.targ) = target_from_string((yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 149:
-#line 795 "pir.y"
+  case 147:
+#line 790 "pir.y"
     { (yyval.targ) = reg(STRING_TYPE, (yyvsp[(1) - (1)].ival), !IS_PASM_REG); 
;}
     break;
 
-  case 150:
-#line 797 "pir.y"
+  case 148:
+#line 792 "pir.y"
     { (yyval.targ) = reg(STRING_TYPE, (yyvsp[(1) - (1)].ival), IS_PASM_REG); ;}
     break;
 
-  case 151:
-#line 802 "pir.y"
+  case 149:
+#line 797 "pir.y"
     { (yyval.targ) = (yyvsp[(2) - (3)].targ); ;}
     break;
 
-  case 152:
-#line 806 "pir.y"
+  case 150:
+#line 801 "pir.y"
     { (yyval.targ) = NULL; ;}
     break;
 
-  case 153:
-#line 808 "pir.y"
+  case 151:
+#line 803 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 154:
-#line 812 "pir.y"
+  case 152:
+#line 807 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 155:
-#line 814 "pir.y"
+  case 153:
+#line 809 "pir.y"
     { (yyval.targ) = add_target(lexer, (yyvsp[(1) - (3)].targ), (yyvsp[(3) - 
(3)].targ)); ;}
     break;
 
-  case 156:
-#line 818 "pir.y"
+  case 154:
+#line 813 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (2)].targ);
                               set_param_flag((yyvsp[(1) - (2)].targ), 
(yyvsp[(2) - (2)].ival));
                               /* get the :named argument if necessary */
@@ -2654,591 +2623,591 @@
                             ;}
     break;
 
-  case 157:
-#line 826 "pir.y"
+  case 155:
+#line 821 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
-  case 158:
-#line 828 "pir.y"
+  case 156:
+#line 823 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
-  case 159:
-#line 832 "pir.y"
+  case 157:
+#line 827 "pir.y"
     { (yyval.ival) = TARGET_FLAG_OPTIONAL; ;}
     break;
 
-  case 160:
-#line 834 "pir.y"
+  case 158:
+#line 829 "pir.y"
     { (yyval.ival) = TARGET_FLAG_OPT_FLAG; ;}
     break;
 
-  case 161:
-#line 836 "pir.y"
+  case 159:
+#line 831 "pir.y"
     { (yyval.ival) = TARGET_FLAG_SLURPY; ;}
     break;
 
-  case 162:
-#line 838 "pir.y"
+  case 160:
+#line 833 "pir.y"
     { (yyval.ival) = TARGET_FLAG_UNIQUE_REG; ;}
     break;
 
-  case 163:
-#line 840 "pir.y"
+  case 161:
+#line 835 "pir.y"
     { (yyval.ival) = TARGET_FLAG_NAMED;
                                    STORE_NAMED_ALIAS((yyvsp[(2) - (2)].sval));
                             ;}
     break;
 
-  case 164:
-#line 846 "pir.y"
+  case 162:
+#line 841 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
-  case 165:
-#line 848 "pir.y"
+  case 163:
+#line 843 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
-  case 168:
-#line 856 "pir.y"
+  case 166:
+#line 851 "pir.y"
     { (yyval.ival) = TARGET_FLAG_INVOCANT; ;}
     break;
 
-  case 173:
-#line 871 "pir.y"
+  case 171:
+#line 866 "pir.y"
     { (yyval.fixme) = invoke(lexer, CALL_RET);
                                set_invocation_args((yyval.fixme), (yyvsp[(2) - 
(3)].argm));
                              ;}
     break;
 
-  case 174:
-#line 875 "pir.y"
+  case 172:
+#line 870 "pir.y"
     { set_invocation_type((yyvsp[(2) - (3)].invo), CALL_TAIL); ;}
     break;
 
-  case 175:
-#line 879 "pir.y"
+  case 173:
+#line 874 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_YIELD);
                                 set_invocation_args((yyval.invo), (yyvsp[(2) - 
(3)].argm));
                               ;}
     break;
 
-  case 176:
-#line 885 "pir.y"
+  case 174:
+#line 880 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
-  case 177:
-#line 889 "pir.y"
+  case 175:
+#line 884 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
-  case 178:
-#line 891 "pir.y"
+  case 176:
+#line 886 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 179:
-#line 895 "pir.y"
+  case 177:
+#line 890 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 180:
-#line 897 "pir.y"
+  case 178:
+#line 892 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (3)].argm), (yyvsp[(3) - 
(3)].argm)); ;}
     break;
 
-  case 183:
-#line 905 "pir.y"
+  case 181:
+#line 900 "pir.y"
     { (yyval.argm) = new_argument((yyvsp[(3) - (3)].expr));
                                  set_arg_named((yyval.argm), (yyvsp[(1) - 
(3)].sval));
                                ;}
     break;
 
-  case 184:
-#line 911 "pir.y"
+  case 182:
+#line 906 "pir.y"
     { (yyval.argm) = new_argument((yyvsp[(1) - (2)].expr));
                               set_arg_flag((yyval.argm), (yyvsp[(2) - 
(2)].ival));
                               IF_NAMED_ARG_SET_ALIAS((yyval.argm), (yyvsp[(2) 
- (2)].ival));
                             ;}
     break;
 
-  case 185:
-#line 921 "pir.y"
+  case 183:
+#line 916 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_RET);
                               set_invocation_args((yyval.invo), (yyvsp[(3) - 
(5)].argm));
                             ;}
     break;
 
-  case 186:
-#line 929 "pir.y"
+  case 184:
+#line 924 "pir.y"
     { (yyval.invo) = invoke(lexer, CALL_YIELD);
                               set_invocation_args((yyval.invo), (yyvsp[(3) - 
(5)].argm));
                             ;}
     break;
 
-  case 187:
-#line 935 "pir.y"
+  case 185:
+#line 930 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
-  case 188:
-#line 937 "pir.y"
+  case 186:
+#line 932 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 189:
-#line 942 "pir.y"
+  case 187:
+#line 937 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 190:
-#line 944 "pir.y"
+  case 188:
+#line 939 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - 
(2)].argm)); ;}
     break;
 
-  case 191:
-#line 949 "pir.y"
+  case 189:
+#line 944 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
-  case 192:
-#line 953 "pir.y"
+  case 190:
+#line 948 "pir.y"
     { (yyval.argm) = NULL; ;}
     break;
 
-  case 193:
-#line 955 "pir.y"
+  case 191:
+#line 950 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 194:
-#line 959 "pir.y"
+  case 192:
+#line 954 "pir.y"
     { (yyval.argm) = (yyvsp[(1) - (1)].argm); ;}
     break;
 
-  case 195:
-#line 961 "pir.y"
+  case 193:
+#line 956 "pir.y"
     { (yyval.argm) = add_arg((yyvsp[(1) - (2)].argm), (yyvsp[(2) - 
(2)].argm)); ;}
     break;
 
-  case 196:
-#line 965 "pir.y"
+  case 194:
+#line 960 "pir.y"
     { (yyval.argm) = (yyvsp[(2) - (3)].argm); ;}
     break;
 
-  case 197:
-#line 970 "pir.y"
+  case 195:
+#line 965 "pir.y"
     { (yyval.ival) = 0; ;}
     break;
 
-  case 198:
-#line 972 "pir.y"
+  case 196:
+#line 967 "pir.y"
     { SET_FLAG((yyval.ival), (yyvsp[(2) - (2)].ival)); ;}
     break;
 
-  case 199:
-#line 976 "pir.y"
+  case 197:
+#line 971 "pir.y"
     { (yyval.ival) = ARG_FLAG_FLAT; ;}
     break;
 
-  case 200:
-#line 978 "pir.y"
+  case 198:
+#line 973 "pir.y"
     { (yyval.ival) = ARG_FLAG_NAMED;
                           STORE_NAMED_ALIAS((yyvsp[(2) - (2)].sval));
                         ;}
     break;
 
-  case 201:
-#line 984 "pir.y"
+  case 199:
+#line 979 "pir.y"
     { (yyval.sval) = NULL; ;}
     break;
 
-  case 202:
-#line 986 "pir.y"
+  case 200:
+#line 981 "pir.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].sval); ;}
     break;
 
-  case 203:
-#line 990 "pir.y"
+  case 201:
+#line 985 "pir.y"
     { (yyval.sval) = (yyvsp[(2) - (3)].sval); ;}
     break;
 
-  case 204:
-#line 994 "pir.y"
+  case 202:
+#line 989 "pir.y"
     { define_const(lexer, (yyvsp[(2) - (2)].constval), !GLOBALCONST); ;}
     break;
 
-  case 206:
-#line 999 "pir.y"
+  case 204:
+#line 994 "pir.y"
     { define_const(lexer, (yyvsp[(2) - (3)].constval), GLOBALCONST); ;}
     break;
 
-  case 207:
-#line 1003 "pir.y"
+  case 205:
+#line 998 "pir.y"
     { (yyval.constval) = new_const(INT_TYPE, (yyvsp[(2) - (4)].sval), 
(yyvsp[(4) - (4)].ival)); ;}
     break;
 
-  case 208:
-#line 1005 "pir.y"
+  case 206:
+#line 1000 "pir.y"
     { (yyval.constval) = new_const(NUM_TYPE, (yyvsp[(2) - (4)].sval), 
(yyvsp[(4) - (4)].dval)); ;}
     break;
 
-  case 209:
-#line 1007 "pir.y"
+  case 207:
+#line 1002 "pir.y"
     { (yyval.constval) = new_const(PMC_TYPE, (yyvsp[(2) - (4)].sval), 
(yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 210:
-#line 1009 "pir.y"
+  case 208:
+#line 1004 "pir.y"
     { (yyval.constval) = new_const(STRING_TYPE, (yyvsp[(2) - (4)].sval), 
(yyvsp[(4) - (4)].sval)); ;}
     break;
 
-  case 211:
-#line 1018 "pir.y"
+  case 209:
+#line 1013 "pir.y"
     { (yyval.expr) = expr_from_const((yyvsp[(1) - (1)].constval)); ;}
     break;
 
-  case 212:
-#line 1019 "pir.y"
+  case 210:
+#line 1014 "pir.y"
     { (yyval.expr) = expr_from_target((yyvsp[(1) - (1)].targ)); ;}
     break;
 
-  case 213:
-#line 1020 "pir.y"
+  case 211:
+#line 1015 "pir.y"
     { (yyval.expr) = expr_from_ident((yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 214:
-#line 1023 "pir.y"
+  case 212:
+#line 1018 "pir.y"
     { (yyval.expr) = expr_from_target((yyvsp[(1) - (1)].targ)); ;}
     break;
 
-  case 215:
-#line 1024 "pir.y"
+  case 213:
+#line 1019 "pir.y"
     { (yyval.expr) = expr_from_const((yyvsp[(1) - (1)].constval)); ;}
     break;
 
-  case 216:
-#line 1027 "pir.y"
+  case 214:
+#line 1022 "pir.y"
     { (yyval.constval) = new_const(STRING_TYPE, NULL, (yyvsp[(1) - 
(1)].sval)); ;}
     break;
 
-  case 217:
-#line 1028 "pir.y"
+  case 215:
+#line 1023 "pir.y"
     { (yyval.constval) = new_const(INT_TYPE, NULL, (yyvsp[(1) - (1)].ival)); ;}
     break;
 
-  case 218:
-#line 1029 "pir.y"
+  case 216:
+#line 1024 "pir.y"
     { (yyval.constval) = new_const(NUM_TYPE, NULL, (yyvsp[(1) - (1)].dval)); ;}
     break;
 
-  case 219:
-#line 1032 "pir.y"
+  case 217:
+#line 1027 "pir.y"
     { (yyval.sval) = "ne"; ;}
     break;
 
-  case 220:
-#line 1033 "pir.y"
+  case 218:
+#line 1028 "pir.y"
     { (yyval.sval) = "eq"; ;}
     break;
 
-  case 221:
-#line 1034 "pir.y"
+  case 219:
+#line 1029 "pir.y"
     { (yyval.sval) = "lt"; ;}
     break;
 
-  case 222:
-#line 1035 "pir.y"
+  case 220:
+#line 1030 "pir.y"
     { (yyval.sval) = "le"; ;}
     break;
 
-  case 223:
-#line 1036 "pir.y"
+  case 221:
+#line 1031 "pir.y"
     { (yyval.sval) = "ge"; ;}
     break;
 
-  case 224:
-#line 1037 "pir.y"
+  case 222:
+#line 1032 "pir.y"
     { (yyval.sval) = "gt"; ;}
     break;
 
-  case 225:
-#line 1040 "pir.y"
+  case 223:
+#line 1035 "pir.y"
     { (yyval.ival) = INT_TYPE; ;}
     break;
 
-  case 226:
-#line 1041 "pir.y"
+  case 224:
+#line 1036 "pir.y"
     { (yyval.ival) = NUM_TYPE; ;}
     break;
 
-  case 227:
-#line 1042 "pir.y"
+  case 225:
+#line 1037 "pir.y"
     { (yyval.ival) = PMC_TYPE; ;}
     break;
 
-  case 228:
-#line 1043 "pir.y"
+  case 226:
+#line 1038 "pir.y"
     { (yyval.ival) = STRING_TYPE; ;}
     break;
 
-  case 229:
-#line 1046 "pir.y"
+  case 227:
+#line 1041 "pir.y"
     { (yyval.targ) = (yyvsp[(1) - (1)].targ); ;}
     break;
 
-  case 230:
-#line 1047 "pir.y"
+  case 228:
+#line 1042 "pir.y"
     { (yyval.targ) = new_target(UNKNOWN_TYPE, (yyvsp[(1) - (1)].sval)); ;}
     break;
 
-  case 231:
-#line 1050 "pir.y"
+  case 229:
+#line 1045 "pir.y"
     { (yyval.targ) = reg(PMC_TYPE, (yyvsp[(1) - (1)].ival), !IS_PASM_REG); ;}
     break;
 
-  case 232:
-#line 1051 "pir.y"
+  case 230:
+#line 1046 "pir.y"
     { (yyval.targ) = reg(NUM_TYPE, (yyvsp[(1) - (1)].ival), !IS_PASM_REG); ;}
     break;
 
-  case 233:
-#line 1052 "pir.y"
+  case 231:
+#line 1047 "pir.y"
     { (yyval.targ) = reg(INT_TYPE, (yyvsp[(1) - (1)].ival), !IS_PASM_REG); ;}
     break;
 
-  case 234:
-#line 1053 "pir.y"
+  case 232:
+#line 1048 "pir.y"
     { (yyval.targ) = reg(STRING_TYPE, (yyvsp[(1) - (1)].ival), !IS_PASM_REG); 
;}
     break;
 
-  case 236:
-#line 1057 "pir.y"
+  case 234:
+#line 1052 "pir.y"
     { (yyval.targ) = reg(PMC_TYPE, (yyvsp[(1) - (1)].ival), IS_PASM_REG); ;}
     break;
 
-  case 237:
-#line 1058 "pir.y"
+  case 235:
+#line 1053 "pir.y"
     { (yyval.targ) = reg(NUM_TYPE, (yyvsp[(1) - (1)].ival), IS_PASM_REG); ;}
     break;
 
-  case 238:
-#line 1059 "pir.y"
+  case 236:
+#line 1054 "pir.y"
     { (yyval.targ) = reg(INT_TYPE, (yyvsp[(1) - (1)].ival), IS_PASM_REG); ;}
     break;
 
-  case 239:
-#line 1060 "pir.y"
+  case 237:
+#line 1055 "pir.y"
     { (yyval.targ) = reg(STRING_TYPE, (yyvsp[(1) - (1)].ival), IS_PASM_REG); ;}
     break;
 
-  case 242:
-#line 1067 "pir.y"
+  case 240:
+#line 1062 "pir.y"
     { (yyval.sval) = "neg"; ;}
     break;
 
-  case 243:
-#line 1068 "pir.y"
+  case 241:
+#line 1063 "pir.y"
     { (yyval.sval) = "not"; ;}
     break;
 
-  case 244:
-#line 1069 "pir.y"
+  case 242:
+#line 1064 "pir.y"
     { (yyval.sval) = "bnot"; ;}
     break;
 
-  case 245:
-#line 1072 "pir.y"
+  case 243:
+#line 1067 "pir.y"
     { (yyval.sval) = "add"; ;}
     break;
 
-  case 246:
-#line 1073 "pir.y"
+  case 244:
+#line 1068 "pir.y"
     { (yyval.sval) = "sub"; ;}
     break;
 
-  case 247:
-#line 1074 "pir.y"
+  case 245:
+#line 1069 "pir.y"
     { (yyval.sval) = "div"; ;}
     break;
 
-  case 248:
-#line 1075 "pir.y"
+  case 246:
+#line 1070 "pir.y"
     { (yyval.sval) = "mul"; ;}
     break;
 
-  case 249:
-#line 1076 "pir.y"
+  case 247:
+#line 1071 "pir.y"
     { (yyval.sval) = "mod"; ;}
     break;
 
-  case 250:
-#line 1077 "pir.y"
+  case 248:
+#line 1072 "pir.y"
     { (yyval.sval) = "bor"; ;}
     break;
 
-  case 251:
-#line 1078 "pir.y"
+  case 249:
+#line 1073 "pir.y"
     { (yyval.sval) = "band"; ;}
     break;
 
-  case 252:
-#line 1079 "pir.y"
+  case 250:
+#line 1074 "pir.y"
     { (yyval.sval) = "bxor"; ;}
     break;
 
-  case 253:
-#line 1080 "pir.y"
+  case 251:
+#line 1075 "pir.y"
     { (yyval.sval) = "pow"; ;}
     break;
 
-  case 254:
-#line 1081 "pir.y"
+  case 252:
+#line 1076 "pir.y"
     { (yyval.sval) = "concat"; ;}
     break;
 
-  case 255:
-#line 1082 "pir.y"
+  case 253:
+#line 1077 "pir.y"
     { (yyval.sval) = "lsr"; ;}
     break;
 
-  case 256:
-#line 1083 "pir.y"
+  case 254:
+#line 1078 "pir.y"
     { (yyval.sval) = "shr"; ;}
     break;
 
-  case 257:
-#line 1084 "pir.y"
+  case 255:
+#line 1079 "pir.y"
     { (yyval.sval) = "shl"; ;}
     break;
 
-  case 258:
-#line 1085 "pir.y"
+  case 256:
+#line 1080 "pir.y"
     { (yyval.sval) = "or";  ;}
     break;
 
-  case 259:
-#line 1086 "pir.y"
+  case 257:
+#line 1081 "pir.y"
     { (yyval.sval) = "and"; ;}
     break;
 
-  case 260:
-#line 1087 "pir.y"
+  case 258:
+#line 1082 "pir.y"
     { (yyval.sval) = "fdiv"; ;}
     break;
 
-  case 261:
-#line 1088 "pir.y"
+  case 259:
+#line 1083 "pir.y"
     { (yyval.sval) = "xor"; ;}
     break;
 
-  case 262:
-#line 1089 "pir.y"
+  case 260:
+#line 1084 "pir.y"
     { (yyval.sval) = "iseq"; ;}
     break;
 
-  case 263:
-#line 1090 "pir.y"
+  case 261:
+#line 1085 "pir.y"
     { (yyval.sval) = "isle"; ;}
     break;
 
-  case 264:
-#line 1091 "pir.y"
+  case 262:
+#line 1086 "pir.y"
     { (yyval.sval) = "islt"; ;}
     break;
 
-  case 265:
-#line 1092 "pir.y"
+  case 263:
+#line 1087 "pir.y"
     { (yyval.sval) = "isge"; ;}
     break;
 
-  case 266:
-#line 1093 "pir.y"
+  case 264:
+#line 1088 "pir.y"
     { (yyval.sval) = "isgt"; ;}
     break;
 
-  case 267:
-#line 1094 "pir.y"
+  case 265:
+#line 1089 "pir.y"
     { (yyval.sval) = "isne"; ;}
     break;
 
-  case 268:
-#line 1098 "pir.y"
+  case 266:
+#line 1093 "pir.y"
     { (yyval.sval) = "add"; ;}
     break;
 
-  case 269:
-#line 1099 "pir.y"
+  case 267:
+#line 1094 "pir.y"
     { (yyval.sval) = "sub"; ;}
     break;
 
-  case 270:
-#line 1100 "pir.y"
+  case 268:
+#line 1095 "pir.y"
     { (yyval.sval) = "mul"; ;}
     break;
 
-  case 271:
-#line 1101 "pir.y"
+  case 269:
+#line 1096 "pir.y"
     { (yyval.sval) = "mod"; ;}
     break;
 
-  case 272:
-#line 1102 "pir.y"
+  case 270:
+#line 1097 "pir.y"
     { (yyval.sval) = "pow"; ;}
     break;
 
-  case 273:
-#line 1103 "pir.y"
+  case 271:
+#line 1098 "pir.y"
     { (yyval.sval) = "div"; ;}
     break;
 
-  case 274:
-#line 1104 "pir.y"
+  case 272:
+#line 1099 "pir.y"
     { (yyval.sval) = "fdiv"; ;}
     break;
 
-  case 275:
-#line 1105 "pir.y"
+  case 273:
+#line 1100 "pir.y"
     { (yyval.sval) = "bor"; ;}
     break;
 
-  case 276:
-#line 1106 "pir.y"
+  case 274:
+#line 1101 "pir.y"
     { (yyval.sval) = "band" ;}
     break;
 
-  case 277:
-#line 1107 "pir.y"
+  case 275:
+#line 1102 "pir.y"
     { (yyval.sval) = "bxor"; ;}
     break;
 
-  case 278:
-#line 1108 "pir.y"
+  case 276:
+#line 1103 "pir.y"
     { (yyval.sval) = "concat"; ;}
     break;
 
-  case 279:
-#line 1109 "pir.y"
+  case 277:
+#line 1104 "pir.y"
     { (yyval.sval) = "shr"; ;}
     break;
 
-  case 280:
-#line 1110 "pir.y"
+  case 278:
+#line 1105 "pir.y"
     { (yyval.sval) = "shl"; ;}
     break;
 
-  case 281:
-#line 1111 "pir.y"
+  case 279:
+#line 1106 "pir.y"
     { (yyval.sval) = "lsr"; ;}
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 3242 "pirparser.c"
+#line 3211 "pirparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3452,7 +3421,7 @@
 }
 
 
-#line 1113 "pir.y"
+#line 1108 "pir.y"
 
 
 

<Prev in Thread] Current Thread [Next in Thread>
  • [svn:parrot] r29872 - trunk/compilers/pirc/new, kjs <=