This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
rename "WORD" lexical token to "BAREWORD"
authorDavid Mitchell <davem@iabyn.com>
Mon, 18 Jul 2016 10:57:19 +0000 (11:57 +0100)
committerDavid Mitchell <davem@iabyn.com>
Wed, 20 Jul 2016 08:32:23 +0000 (09:32 +0100)
The enum value "WORD" can apparently clash with a enum value in windows
headers.  It used to be worked around in windows by #defining YYTOKENTYPE,
which caused the

    enum yytokentype {
        ...
        WORD = ...;
    }

in perly.h to be skipped, while still using the

    #define WORD ...

which appears later in the same file.

In bison 3.x, the auto-generated perl.h no longer includes the #defines,
so this workaround no longer works.

Instead, change the name of the token from "WORD" to "BAREWORD".

perl.h
perly.act
perly.h
perly.tab
perly.y
toke.c

diff --git a/perl.h b/perl.h
index f110c2b..0cd2e2a 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -3875,12 +3875,6 @@ typedef        struct crypt_data {     /* straight from /usr/include/crypt.h */
 #  define USE_HASH_SEED
 #endif
 
-/* Win32 defines a type 'WORD' in windef.h, and AmigaOS in exec/types.h.
- * This conflicts with the enumerator 'WORD' defined in perly.h.
- * The yytokentype enum is only a debugging aid, so it's not really needed. */
-#if defined(WIN32) || defined(__amigaos4__)
-#  define YYTOKENTYPE
-#endif
 #include "perly.h"
 
 
index b4dc8f0..63515d8 100644 (file)
--- a/perly.act
+++ b/perly.act
  */
 
 case 2:
-#line 115 "perly.y"
+#line 115 "perly.y" /* yacc.c:1646  */
     {
                          parser->expect = XSTATE;
-                       ;}
+                       }
+
     break;
 
   case 3:
-#line 119 "perly.y"
+#line 119 "perly.y" /* yacc.c:1646  */
     {
-                         newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval)));
+                         newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval)));
                          PL_compiling.cop_seq = 0;
                          (yyval.ival) = 0;
-                       ;}
+                       }
+
     break;
 
   case 4:
-#line 125 "perly.y"
+#line 125 "perly.y" /* yacc.c:1646  */
     {
                          parser->expect = XTERM;
-                       ;}
+                       }
+
     break;
 
   case 5:
-#line 129 "perly.y"
+#line 129 "perly.y" /* yacc.c:1646  */
     {
-                         PL_eval_root = (ps[(3) - (3)].val.opval);
+                         PL_eval_root = (ps[0].val.opval);
                          (yyval.ival) = 0;
-                       ;}
+                       }
+
     break;
 
   case 6:
-#line 134 "perly.y"
+#line 134 "perly.y" /* yacc.c:1646  */
     {
                          parser->expect = XBLOCK;
-                       ;}
+                       }
+
     break;
 
   case 7:
-#line 138 "perly.y"
+#line 138 "perly.y" /* yacc.c:1646  */
     {
                          PL_pad_reset_pending = TRUE;
-                         PL_eval_root = (ps[(3) - (3)].val.opval);
+                         PL_eval_root = (ps[0].val.opval);
                          (yyval.ival) = 0;
                          yyunlex();
                          parser->yychar = YYEOF;
-                       ;}
+                       }
+
     break;
 
   case 8:
-#line 146 "perly.y"
+#line 146 "perly.y" /* yacc.c:1646  */
     {
                          parser->expect = XSTATE;
-                       ;}
+                       }
+
     break;
 
   case 9:
-#line 150 "perly.y"
+#line 150 "perly.y" /* yacc.c:1646  */
     {
                          PL_pad_reset_pending = TRUE;
-                         PL_eval_root = (ps[(3) - (3)].val.opval);
+                         PL_eval_root = (ps[0].val.opval);
                          (yyval.ival) = 0;
                          yyunlex();
                          parser->yychar = YYEOF;
-                       ;}
+                       }
+
     break;
 
   case 10:
-#line 158 "perly.y"
+#line 158 "perly.y" /* yacc.c:1646  */
     {
                          parser->expect = XSTATE;
-                       ;}
+                       }
+
     break;
 
   case 11:
-#line 162 "perly.y"
+#line 162 "perly.y" /* yacc.c:1646  */
     {
                          PL_pad_reset_pending = TRUE;
-                         PL_eval_root = (ps[(3) - (3)].val.opval);
+                         PL_eval_root = (ps[0].val.opval);
                          (yyval.ival) = 0;
                          yyunlex();
                          parser->yychar = YYEOF;
-                       ;}
+                       }
+
     break;
 
   case 12:
-#line 170 "perly.y"
+#line 170 "perly.y" /* yacc.c:1646  */
     {
                          parser->expect = XSTATE;
-                       ;}
+                       }
+
     break;
 
   case 13:
-#line 174 "perly.y"
+#line 174 "perly.y" /* yacc.c:1646  */
     {
-                         PL_eval_root = (ps[(3) - (3)].val.opval);
+                         PL_eval_root = (ps[0].val.opval);
                          (yyval.ival) = 0;
-                       ;}
+                       }
+
     break;
 
   case 14:
-#line 182 "perly.y"
-    { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
-                             parser->copline = (line_t)(ps[(1) - (4)].val.ival);
-                         (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
-                       ;}
+#line 182 "perly.y" /* yacc.c:1646  */
+    { if (parser->copline > (line_t)(ps[-3].val.ival))
+                             parser->copline = (line_t)(ps[-3].val.ival);
+                         (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
+                       }
+
     break;
 
   case 15:
-#line 190 "perly.y"
-    { if (parser->copline > (line_t)(ps[(1) - (7)].val.ival))
-                             parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                         (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval));
-                       ;}
+#line 190 "perly.y" /* yacc.c:1646  */
+    { if (parser->copline > (line_t)(ps[-6].val.ival))
+                             parser->copline = (line_t)(ps[-6].val.ival);
+                         (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval));
+                       }
+
     break;
 
   case 16:
-#line 197 "perly.y"
+#line 197 "perly.y" /* yacc.c:1646  */
     { (yyval.ival) = block_start(TRUE);
-                         parser->parsed_sub = 0; ;}
+                         parser->parsed_sub = 0; }
+
     break;
 
   case 17:
-#line 202 "perly.y"
-    { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival))
-                             parser->copline = (line_t)(ps[(1) - (4)].val.ival);
-                         (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval));
-                       ;}
+#line 202 "perly.y" /* yacc.c:1646  */
+    { if (parser->copline > (line_t)(ps[-3].val.ival))
+                             parser->copline = (line_t)(ps[-3].val.ival);
+                         (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval));
+                       }
+
     break;
 
   case 18:
-#line 209 "perly.y"
+#line 209 "perly.y" /* yacc.c:1646  */
     { (yyval.ival) = block_start(FALSE);
-                         parser->parsed_sub = 0; ;}
+                         parser->parsed_sub = 0; }
+
     break;
 
   case 19:
-#line 215 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 215 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 20:
-#line 217 "perly.y"
-    {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
+#line 217 "perly.y" /* yacc.c:1646  */
+    {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
                            PL_pad_reset_pending = TRUE;
-                           if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
+                           if ((ps[-1].val.opval) && (ps[0].val.opval))
                                PL_hints |= HINT_BLOCK_SCOPE;
-                       ;}
+                       }
+
     break;
 
   case 21:
-#line 226 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 226 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 22:
-#line 228 "perly.y"
-    {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval));
+#line 228 "perly.y" /* yacc.c:1646  */
+    {   (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval));
                            PL_pad_reset_pending = TRUE;
-                           if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval))
+                           if ((ps[-1].val.opval) && (ps[0].val.opval))
                                PL_hints |= HINT_BLOCK_SCOPE;
-                       ;}
+                       }
+
     break;
 
   case 23:
-#line 237 "perly.y"
+#line 237 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL;
-                       ;}
+                         (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL;
+                       }
+
     break;
 
   case 24:
-#line 241 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 241 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 25:
-#line 245 "perly.y"
+#line 245 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
-                       ;}
+                         (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval));
+                       }
+
     break;
 
   case 26:
-#line 249 "perly.y"
+#line 249 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval));
-                       ;}
+                         (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval));
+                       }
+
     break;
 
   case 27:
-#line 256 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 256 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 28:
-#line 258 "perly.y"
+#line 258 "perly.y" /* yacc.c:1646  */
     {
                          CV *fmtcv = PL_compcv;
-                         newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval));
+                         newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval));
                          (yyval.opval) = (OP*)NULL;
                          if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) {
                              pad_add_weakref(fmtcv);
                          }
                          parser->parsed_sub = 1;
-                       ;}
+                       }
+
     break;
 
   case 29:
-#line 268 "perly.y"
+#line 268 "perly.y" /* yacc.c:1646  */
     {
-                         if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
+                         if ((ps[-1].val.opval)->op_type == OP_CONST) {
                            const char *const name =
-                               SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
+                               SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv);
                            if (strEQ(name, "BEGIN") || strEQ(name, "END")
                              || strEQ(name, "INIT") || strEQ(name, "CHECK")
                              || strEQ(name, "UNITCHECK"))
@@ -230,33 +257,35 @@ case 2:
                           || CvCLONE(CvOUTSIDE(PL_compcv))
                           || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
                                                CvOUTSIDE(PL_compcv)
-                                            ))[(ps[(2) - (3)].val.opval)->op_targ]))
+                                            ))[(ps[-1].val.opval)->op_targ]))
                              CvCLONE_on(PL_compcv);
                          parser->in_my = 0;
                          parser->in_my_stash = NULL;
-                       ;}
+                       }
+
     break;
 
   case 30:
-#line 290 "perly.y"
+#line 290 "perly.y" /* yacc.c:1646  */
     {
                          SvREFCNT_inc_simple_void(PL_compcv);
-                         (ps[(2) - (7)].val.opval)->op_type == OP_CONST
-                             ? newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
-                             : newMYSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))
+                         (ps[-5].val.opval)->op_type == OP_CONST
+                             ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
+                             : newMYSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
                          ;
                          (yyval.opval) = (OP*)NULL;
                          intro_my();
                          parser->parsed_sub = 1;
-                       ;}
+                       }
+
     break;
 
   case 31:
-#line 301 "perly.y"
+#line 301 "perly.y" /* yacc.c:1646  */
     {
-                         if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) {
+                         if ((ps[-1].val.opval)->op_type == OP_CONST) {
                            const char *const name =
-                               SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv);
+                               SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv);
                            if (strEQ(name, "BEGIN") || strEQ(name, "END")
                              || strEQ(name, "INIT") || strEQ(name, "CHECK")
                              || strEQ(name, "UNITCHECK"))
@@ -269,130 +298,144 @@ case 2:
                           || CvCLONE(CvOUTSIDE(PL_compcv))
                           || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST(
                                                CvOUTSIDE(PL_compcv)
-                                            ))[(ps[(2) - (3)].val.opval)->op_targ]))
+                                            ))[(ps[-1].val.opval)->op_targ]))
                              CvCLONE_on(PL_compcv);
                          parser->in_my = 0;
                          parser->in_my_stash = NULL;
-                       ;}
+                       }
+
     break;
 
   case 32:
-#line 323 "perly.y"
+#line 323 "perly.y" /* yacc.c:1646  */
     {
                          OP *body;
-                         if (parser->copline > (line_t)(ps[(8) - (10)].val.ival))
-                             parser->copline = (line_t)(ps[(8) - (10)].val.ival);
-                         body = block_end((ps[(5) - (10)].val.ival),
-                               op_append_list(OP_LINESEQ, (ps[(6) - (10)].val.opval), (ps[(9) - (10)].val.opval)));
+                         if (parser->copline > (line_t)(ps[-2].val.ival))
+                             parser->copline = (line_t)(ps[-2].val.ival);
+                         body = block_end((ps[-5].val.ival),
+                               op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
 
                          SvREFCNT_inc_simple_void(PL_compcv);
-                         (ps[(2) - (10)].val.opval)->op_type == OP_CONST
-                             ? newATTRSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body)
-                             : newMYSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body)
+                         (ps[-8].val.opval)->op_type == OP_CONST
+                             ? newATTRSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body)
+                             : newMYSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body)
                          ;
                          (yyval.opval) = (OP*)NULL;
                          intro_my();
                          parser->parsed_sub = 1;
-                       ;}
+                       }
+
     break;
 
   case 33:
-#line 340 "perly.y"
+#line 340 "perly.y" /* yacc.c:1646  */
     {
-                         package((ps[(3) - (4)].val.opval));
-                         if ((ps[(2) - (4)].val.opval))
-                             package_version((ps[(2) - (4)].val.opval));
+                         package((ps[-1].val.opval));
+                         if ((ps[-2].val.opval))
+                             package_version((ps[-2].val.opval));
                          (yyval.opval) = (OP*)NULL;
-                       ;}
+                       }
+
     break;
 
   case 34:
-#line 347 "perly.y"
-    { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
+#line 347 "perly.y" /* yacc.c:1646  */
+    { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
+
     break;
 
   case 35:
-#line 349 "perly.y"
+#line 349 "perly.y" /* yacc.c:1646  */
     {
                          SvREFCNT_inc_simple_void(PL_compcv);
-                         utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval));
+                         utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval));
                          parser->parsed_sub = 1;
                          (yyval.opval) = (OP*)NULL;
-                       ;}
+                       }
+
     break;
 
   case 36:
-#line 356 "perly.y"
+#line 356 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
-                             newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval)));
-                         parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-4].val.ival),
+                             newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval)));
+                         parser->copline = (line_t)(ps[-6].val.ival);
+                       }
+
     break;
 
   case 37:
-#line 362 "perly.y"
+#line 362 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
-                              newCONDOP(0, (ps[(4) - (7)].val.opval), (ps[(7) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval))));
-                         parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-4].val.ival),
+                              newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval))));
+                         parser->copline = (line_t)(ps[-6].val.ival);
+                       }
+
     break;
 
   case 38:
-#line 368 "perly.y"
+#line 368 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)), 0));
-                         parser->copline = (line_t)(ps[(1) - (6)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0));
+                         parser->copline = (line_t)(ps[-5].val.ival);
+                       }
+
     break;
 
   case 39:
-#line 373 "perly.y"
-    { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;}
+#line 373 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); }
+
     break;
 
   case 40:
-#line 375 "perly.y"
-    { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;}
+#line 375 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); }
+
     break;
 
   case 41:
-#line 377 "perly.y"
+#line 377 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
+                         (yyval.opval) = block_end((ps[-5].val.ival),
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
-                                     (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
-                         parser->copline = (line_t)(ps[(1) - (8)].val.ival);
-                       ;}
+                                     (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
+                         parser->copline = (line_t)(ps[-7].val.ival);
+                       }
+
     break;
 
   case 42:
-#line 384 "perly.y"
+#line 384 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (8)].val.ival),
+                         (yyval.opval) = block_end((ps[-5].val.ival),
                                  newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
-                                     (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival)));
-                         parser->copline = (line_t)(ps[(1) - (8)].val.ival);
-                       ;}
+                                     (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival)));
+                         parser->copline = (line_t)(ps[-7].val.ival);
+                       }
+
     break;
 
   case 43:
-#line 391 "perly.y"
-    { parser->expect = XTERM; ;}
+#line 391 "perly.y" /* yacc.c:1646  */
+    { parser->expect = XTERM; }
+
     break;
 
   case 44:
-#line 393 "perly.y"
-    { parser->expect = XTERM; ;}
+#line 393 "perly.y" /* yacc.c:1646  */
+    { parser->expect = XTERM; }
+
     break;
 
   case 45:
-#line 396 "perly.y"
+#line 396 "perly.y" /* yacc.c:1646  */
     {
-                         OP *initop = (ps[(4) - (13)].val.opval);
+                         OP *initop = (ps[-9].val.opval);
                          OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
-                                     scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival));
+                                     scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival));
                          if (initop) {
                              forop = op_prepend_elem(OP_LINESEQ, initop,
                                  op_append_elem(OP_LINESEQ,
@@ -400,310 +443,355 @@ case 2:
                                      forop));
                          }
                          PL_hints |= HINT_BLOCK_SCOPE;
-                         (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop);
-                         parser->copline = (line_t)(ps[(1) - (13)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-10].val.ival), forop);
+                         parser->copline = (line_t)(ps[-12].val.ival);
+                       }
+
     break;
 
   case 46:
-#line 411 "perly.y"
+#line 411 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
-                         parser->copline = (line_t)(ps[(1) - (9)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
+                         parser->copline = (line_t)(ps[-8].val.ival);
+                       }
+
     break;
 
   case 47:
-#line 416 "perly.y"
+#line 416 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0,
-                                     op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval)));
-                         parser->copline = (line_t)(ps[(1) - (8)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0,
+                                     op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
+                         parser->copline = (line_t)(ps[-7].val.ival);
+                       }
+
     break;
 
   case 48:
-#line 422 "perly.y"
-    { parser->in_my = 0; (yyval.opval) = my((ps[(4) - (4)].val.opval)); ;}
+#line 422 "perly.y" /* yacc.c:1646  */
+    { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
+
     break;
 
   case 49:
-#line 424 "perly.y"
+#line 424 "perly.y" /* yacc.c:1646  */
     {
                          (yyval.opval) = block_end(
-                               (ps[(3) - (10)].val.ival),
+                               (ps[-7].val.ival),
                                newFOROP(0,
                                         op_lvalue(
                                            newUNOP(OP_REFGEN, 0,
-                                                   (ps[(5) - (10)].val.opval)),
+                                                   (ps[-5].val.opval)),
                                            OP_ENTERLOOP),
-                                        (ps[(7) - (10)].val.opval), (ps[(9) - (10)].val.opval), (ps[(10) - (10)].val.opval))
+                                        (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))
                          );
-                         parser->copline = (line_t)(ps[(1) - (10)].val.ival);
-                       ;}
+                         parser->copline = (line_t)(ps[-9].val.ival);
+                       }
+
     break;
 
   case 50:
-#line 437 "perly.y"
+#line 437 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP(
+                         (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(
                                0, op_lvalue(newUNOP(OP_REFGEN, 0,
-                                                    (ps[(3) - (9)].val.opval)),
-                                            OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval)));
-                         parser->copline = (line_t)(ps[(1) - (9)].val.ival);
-                       ;}
+                                                    (ps[-6].val.opval)),
+                                            OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
+                         parser->copline = (line_t)(ps[-8].val.ival);
+                       }
+
     break;
 
   case 51:
-#line 445 "perly.y"
+#line 445 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = block_end((ps[(3) - (7)].val.ival),
-                                 newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)));
-                         parser->copline = (line_t)(ps[(1) - (7)].val.ival);
-                       ;}
+                         (yyval.opval) = block_end((ps[-4].val.ival),
+                                 newFOROP(0, (OP*)NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)));
+                         parser->copline = (line_t)(ps[-6].val.ival);
+                       }
+
     break;
 
   case 52:
-#line 451 "perly.y"
+#line 451 "perly.y" /* yacc.c:1646  */
     {
                          /* a block is a loop that happens once */
                          (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
-                                 (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0);
-                       ;}
+                                 (OP*)NULL, (ps[-1].val.opval), (ps[0].val.opval), 0);
+                       }
+
     break;
 
   case 53:
-#line 457 "perly.y"
+#line 457 "perly.y" /* yacc.c:1646  */
     {
-                         package((ps[(3) - (5)].val.opval));
-                         if ((ps[(2) - (5)].val.opval)) {
-                             package_version((ps[(2) - (5)].val.opval));
+                         package((ps[-2].val.opval));
+                         if ((ps[-3].val.opval)) {
+                             package_version((ps[-3].val.opval));
                          }
-                       ;}
+                       }
+
     break;
 
   case 54:
-#line 464 "perly.y"
+#line 464 "perly.y" /* yacc.c:1646  */
     {
                          /* a block is a loop that happens once */
                          (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
-                                 (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0);
-                         if (parser->copline > (line_t)(ps[(4) - (8)].val.ival))
-                             parser->copline = (line_t)(ps[(4) - (8)].val.ival);
-                       ;}
+                                 (OP*)NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), (OP*)NULL, 0);
+                         if (parser->copline > (line_t)(ps[-4].val.ival))
+                             parser->copline = (line_t)(ps[-4].val.ival);
+                       }
+
     break;
 
   case 55:
-#line 472 "perly.y"
+#line 472 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = (ps[(1) - (2)].val.opval);
-                       ;}
+                         (yyval.opval) = (ps[-1].val.opval);
+                       }
+
     break;
 
   case 56:
-#line 476 "perly.y"
+#line 476 "perly.y" /* yacc.c:1646  */
     {
                          (yyval.opval) = (OP*)NULL;
                          parser->copline = NOLINE;
-                       ;}
+                       }
+
     break;
 
   case 57:
-#line 484 "perly.y"
+#line 484 "perly.y" /* yacc.c:1646  */
     { OP *list;
-                         if ((ps[(2) - (2)].val.opval)) {
-                             OP *term = (ps[(2) - (2)].val.opval);
-                             list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term);
+                         if ((ps[0].val.opval)) {
+                             OP *term = (ps[0].val.opval);
+                             list = op_append_elem(OP_LIST, (ps[-1].val.opval), term);
                          }
                          else {
-                             list = (ps[(1) - (2)].val.opval);
+                             list = (ps[-1].val.opval);
                          }
                          if (parser->copline == NOLINE)
                               parser->copline = CopLINE(PL_curcop)-1;
                          else parser->copline--;
                          (yyval.opval) = newSTATEOP(0, NULL,
                                          op_convert_list(OP_FORMLINE, 0, list));
-                       ;}
+                       }
+
     break;
 
   case 58:
-#line 501 "perly.y"
-    { (yyval.opval) = NULL; ;}
+#line 501 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = NULL; }
+
     break;
 
   case 59:
-#line 503 "perly.y"
-    { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;}
+#line 503 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_unscope((ps[-1].val.opval)); }
+
     break;
 
   case 60:
-#line 508 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 508 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 61:
-#line 510 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 510 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 62:
-#line 512 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
+#line 512 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
+
     break;
 
   case 63:
-#line 514 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
+#line 514 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); }
+
     break;
 
   case 64:
-#line 516 "perly.y"
-    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;}
+#line 516 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); }
+
     break;
 
   case 65:
-#line 518 "perly.y"
-    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;}
+#line 518 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); }
+
     break;
 
   case 66:
-#line 520 "perly.y"
-    { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL);
-                         parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;}
+#line 520 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[0].val.opval), (ps[-2].val.opval), (OP*)NULL);
+                         parser->copline = (line_t)(ps[-1].val.ival); }
+
     break;
 
   case 67:
-#line 523 "perly.y"
-    { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;}
+#line 523 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); }
+
     break;
 
   case 68:
-#line 528 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 528 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 69:
-#line 530 "perly.y"
+#line 530 "perly.y" /* yacc.c:1646  */
     {
-                         ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS;
-                         (yyval.opval) = op_scope((ps[(2) - (2)].val.opval));
-                       ;}
+                         ((ps[0].val.opval))->op_flags |= OPf_PARENS;
+                         (yyval.opval) = op_scope((ps[0].val.opval));
+                       }
+
     break;
 
   case 70:
-#line 535 "perly.y"
-    { parser->copline = (line_t)(ps[(1) - (6)].val.ival);
+#line 535 "perly.y" /* yacc.c:1646  */
+    { parser->copline = (line_t)(ps[-5].val.ival);
                            (yyval.opval) = newCONDOP(0,
-                               newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)),
-                               op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval));
+                               newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)),
+                               op_scope((ps[-1].val.opval)), (ps[0].val.opval));
                          PL_hints |= HINT_BLOCK_SCOPE;
-                       ;}
+                       }
+
     break;
 
   case 71:
-#line 545 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 545 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 72:
-#line 547 "perly.y"
-    { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;}
+#line 547 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_scope((ps[0].val.opval)); }
+
     break;
 
   case 73:
-#line 552 "perly.y"
+#line 552 "perly.y" /* yacc.c:1646  */
     { (yyval.ival) = (PL_min_intro_pending &&
                            PL_max_intro_pending >=  PL_min_intro_pending);
-                         intro_my(); ;}
+                         intro_my(); }
+
     break;
 
   case 74:
-#line 558 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 558 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 76:
-#line 564 "perly.y"
+#line 564 "perly.y" /* yacc.c:1646  */
     { YYSTYPE tmplval;
                          (void)scan_num("1", &tmplval);
-                         (yyval.opval) = tmplval.opval; ;}
+                         (yyval.opval) = tmplval.opval; }
+
     break;
 
   case 78:
-#line 572 "perly.y"
-    { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;}
+#line 572 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = invert(scalar((ps[0].val.opval))); }
+
     break;
 
   case 79:
-#line 577 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
+#line 577 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); intro_my(); }
+
     break;
 
   case 80:
-#line 581 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;}
+#line 581 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); intro_my(); }
+
     break;
 
   case 81:
-#line 584 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 584 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 82:
-#line 585 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 585 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 83:
-#line 589 "perly.y"
+#line 589 "perly.y" /* yacc.c:1646  */
     { (yyval.ival) = start_subparse(FALSE, 0);
-                           SAVEFREESV(PL_compcv); ;}
+                           SAVEFREESV(PL_compcv); }
+
     break;
 
   case 84:
-#line 595 "perly.y"
+#line 595 "perly.y" /* yacc.c:1646  */
     { (yyval.ival) = start_subparse(FALSE, CVf_ANON);
-                           SAVEFREESV(PL_compcv); ;}
+                           SAVEFREESV(PL_compcv); }
+
     break;
 
   case 85:
-#line 600 "perly.y"
+#line 600 "perly.y" /* yacc.c:1646  */
     { (yyval.ival) = start_subparse(TRUE, 0);
-                           SAVEFREESV(PL_compcv); ;}
+                           SAVEFREESV(PL_compcv); }
+
     break;
 
   case 88:
-#line 611 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 611 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 90:
-#line 617 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 617 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 91:
-#line 619 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
+#line 619 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 92:
-#line 621 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 621 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 93:
-#line 626 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
+#line 626 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 94:
-#line 628 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 628 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 95:
-#line 633 "perly.y"
+#line 633 "perly.y" /* yacc.c:1646  */
     {
                          /* We shouldn't get here otherwise */
                          assert(FEATURE_SIGNATURES_IS_ENABLED);
@@ -712,319 +800,371 @@ case 2:
                                packWARN(WARN_EXPERIMENTAL__SIGNATURES),
                                "The signatures feature is experimental");
                          (yyval.opval) = parse_subsignature();
-                       ;}
+                       }
+
     break;
 
   case 96:
-#line 643 "perly.y"
+#line 643 "perly.y" /* yacc.c:1646  */
     {
-                         (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval),
+                         (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval),
                                newSTATEOP(0, NULL, sawparens(newNULLLIST())));
                          parser->expect = XATTRBLOCK;
-                       ;}
+                       }
+
     break;
 
   case 98:
-#line 652 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 652 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 99:
-#line 657 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 657 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 100:
-#line 659 "perly.y"
-    { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 659 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 101:
-#line 661 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 661 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 103:
-#line 667 "perly.y"
-    { (yyval.opval) = (ps[(1) - (2)].val.opval); ;}
+#line 667 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[-1].val.opval); }
+
     break;
 
   case 104:
-#line 669 "perly.y"
+#line 669 "perly.y" /* yacc.c:1646  */
     {
-                         OP* term = (ps[(3) - (3)].val.opval);
-                         (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term);
-                       ;}
+                         OP* term = (ps[0].val.opval);
+                         (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term);
+                       }
+
     break;
 
   case 106:
-#line 678 "perly.y"
-    { (yyval.opval) = op_convert_list((ps[(1) - (3)].val.ival), OPf_STACKED,
-                               op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) );
-                       ;}
+#line 678 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED,
+                               op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) );
+                       }
+
     break;
 
   case 107:
-#line 682 "perly.y"
-    { (yyval.opval) = op_convert_list((ps[(1) - (5)].val.ival), OPf_STACKED,
-                               op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) );
-                       ;}
+#line 682 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED,
+                               op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) );
+                       }
+
     break;
 
   case 108:
-#line 686 "perly.y"
+#line 686 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
-                                   op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)),
-                                   newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval))));
-                       ;}
+                                   op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)),
+                                   newMETHOP(OP_METHOD, 0, (ps[-3].val.opval))));
+                       }
+
     break;
 
   case 109:
-#line 692 "perly.y"
+#line 692 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
-                               op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)),
-                                   newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval))));
-                       ;}
+                               op_append_elem(OP_LIST, scalar((ps[-2].val.opval)),
+                                   newMETHOP(OP_METHOD, 0, (ps[0].val.opval))));
+                       }
+
     break;
 
   case 110:
-#line 697 "perly.y"
+#line 697 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
-                                   op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)),
-                                   newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval))));
-                       ;}
+                                   op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)),
+                                   newMETHOP(OP_METHOD, 0, (ps[-2].val.opval))));
+                       }
+
     break;
 
   case 111:
-#line 703 "perly.y"
+#line 703 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED,
                                op_append_elem(OP_LIST,
-                                   op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)),
-                                   newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval))));
-                       ;}
+                                   op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)),
+                                   newMETHOP(OP_METHOD, 0, (ps[-4].val.opval))));
+                       }
+
     break;
 
   case 112:
-#line 709 "perly.y"
-    { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
+#line 709 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+
     break;
 
   case 113:
-#line 711 "perly.y"
-    { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
+#line 711 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
+
     break;
 
   case 114:
-#line 713 "perly.y"
+#line 713 "perly.y" /* yacc.c:1646  */
     { SvREFCNT_inc_simple_void(PL_compcv);
-                         (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;}
+                         (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, (OP*)NULL, (ps[0].val.opval)); }
+
     break;
 
   case 115:
-#line 716 "perly.y"
+#line 716 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
                                 op_append_elem(OP_LIST,
-                                  op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval)));
-                       ;}
+                                  op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval)));
+                       }
+
     break;
 
   case 118:
-#line 731 "perly.y"
-    { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;}
+#line 731 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); }
+
     break;
 
   case 119:
-#line 733 "perly.y"
-    { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval)));
-                       ;}
+#line 733 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval)));
+                       }
+
     break;
 
   case 120:
-#line 736 "perly.y"
+#line 736 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newBINOP(OP_AELEM, 0,
-                                       ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV),
-                                       scalar((ps[(4) - (5)].val.opval)));
-                       ;}
+                                       ref(newAVREF((ps[-4].val.opval)),OP_RV2AV),
+                                       scalar((ps[-1].val.opval)));
+                       }
+
     break;
 
   case 121:
-#line 741 "perly.y"
+#line 741 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newBINOP(OP_AELEM, 0,
-                                       ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV),
-                                       scalar((ps[(3) - (4)].val.opval)));
-                       ;}
+                                       ref(newAVREF((ps[-3].val.opval)),OP_RV2AV),
+                                       scalar((ps[-1].val.opval)));
+                       }
+
     break;
 
   case 122:
-#line 746 "perly.y"
-    { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval)));
-                       ;}
+#line 746 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval)));
+                       }
+
     break;
 
   case 123:
-#line 749 "perly.y"
+#line 749 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newBINOP(OP_HELEM, 0,
-                                       ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV),
-                                       jmaybe((ps[(4) - (6)].val.opval))); ;}
+                                       ref(newHVREF((ps[-5].val.opval)),OP_RV2HV),
+                                       jmaybe((ps[-2].val.opval))); }
+
     break;
 
   case 124:
-#line 753 "perly.y"
+#line 753 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newBINOP(OP_HELEM, 0,
-                                       ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV),
-                                       jmaybe((ps[(3) - (5)].val.opval))); ;}
+                                       ref(newHVREF((ps[-4].val.opval)),OP_RV2HV),
+                                       jmaybe((ps[-2].val.opval))); }
+
     break;
 
   case 125:
-#line 757 "perly.y"
+#line 757 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;}
+                                  newCVREF(0, scalar((ps[-3].val.opval)))); }
+
     break;
 
   case 126:
-#line 760 "perly.y"
+#line 760 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval),
-                                      newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;}
+                                  op_append_elem(OP_LIST, (ps[-1].val.opval),
+                                      newCVREF(0, scalar((ps[-4].val.opval))))); }
+
     break;
 
   case 127:
-#line 765 "perly.y"
+#line 765 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval),
-                                              newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;}
+                                  op_append_elem(OP_LIST, (ps[-1].val.opval),
+                                              newCVREF(0, scalar((ps[-3].val.opval))))); }
+
     break;
 
   case 128:
-#line 769 "perly.y"
+#line 769 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                                  newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;}
+                                  newCVREF(0, scalar((ps[-2].val.opval)))); }
+
     break;
 
   case 129:
-#line 772 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;}
+#line 772 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); }
+
     break;
 
   case 130:
-#line 774 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;}
+#line 774 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); }
+
     break;
 
   case 131:
-#line 776 "perly.y"
-    { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;}
+#line 776 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (OP*)NULL); }
+
     break;
 
   case 132:
-#line 781 "perly.y"
-    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;}
+#line 781 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); }
+
     break;
 
   case 133:
-#line 783 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 783 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 134:
-#line 785 "perly.y"
-    {   if ((ps[(2) - (3)].val.ival) != OP_REPEAT)
-                               scalar((ps[(1) - (3)].val.opval));
-                           (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval)));
-                       ;}
+#line 785 "perly.y" /* yacc.c:1646  */
+    {   if ((ps[-1].val.ival) != OP_REPEAT)
+                               scalar((ps[-2].val.opval));
+                           (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval)));
+                       }
+
     break;
 
   case 135:
-#line 790 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 790 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 136:
-#line 792 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 792 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 137:
-#line 794 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 794 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 138:
-#line 796 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 796 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 139:
-#line 798 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 798 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 140:
-#line 800 "perly.y"
-    { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 800 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 141:
-#line 802 "perly.y"
-    { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;}
+#line 802 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); }
+
     break;
 
   case 142:
-#line 804 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 804 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 143:
-#line 806 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 806 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 144:
-#line 808 "perly.y"
-    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 808 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 145:
-#line 810 "perly.y"
-    { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;}
+#line 810 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 146:
-#line 815 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;}
+#line 815 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); }
+
     break;
 
   case 147:
-#line 817 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
+#line 817 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 148:
-#line 820 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
+#line 820 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+
     break;
 
   case 149:
-#line 822 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); ;}
+#line 822 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); }
+
     break;
 
   case 150:
-#line 824 "perly.y"
+#line 824 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_POSTINC, 0,
-                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;}
+                                       op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); }
+
     break;
 
   case 151:
-#line 827 "perly.y"
+#line 827 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_POSTDEC, 0,
-                                       op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;}
+                                       op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));}
+
     break;
 
   case 152:
-#line 830 "perly.y"
+#line 830 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_convert_list(OP_JOIN, 0,
                                       op_append_elem(
                                        OP_LIST,
@@ -1032,523 +1172,610 @@ case 2:
                                            newSVOP(OP_CONST,0,
                                                    newSVpvs("\""))
                                        )),
-                                       (ps[(1) - (2)].val.opval)
+                                       (ps[-1].val.opval)
                                       ));
-                       ;}
+                       }
+
     break;
 
   case 153:
-#line 841 "perly.y"
+#line 841 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_PREINC, 0,
-                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;}
+                                       op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); }
+
     break;
 
   case 154:
-#line 844 "perly.y"
+#line 844 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_PREDEC, 0,
-                                       op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;}
+                                       op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); }
+
     break;
 
   case 155:
-#line 851 "perly.y"
-    { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;}
+#line 851 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newANONLIST((ps[-1].val.opval)); }
+
     break;
 
   case 156:
-#line 853 "perly.y"
-    { (yyval.opval) = newANONLIST((OP*)NULL);;}
+#line 853 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newANONLIST((OP*)NULL);}
+
     break;
 
   case 157:
-#line 855 "perly.y"
-    { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;}
+#line 855 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newANONHASH((ps[-2].val.opval)); }
+
     break;
 
   case 158:
-#line 857 "perly.y"
-    { (yyval.opval) = newANONHASH((OP*)NULL); ;}
+#line 857 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newANONHASH((OP*)NULL); }
+
     break;
 
   case 159:
-#line 859 "perly.y"
+#line 859 "perly.y" /* yacc.c:1646  */
     { SvREFCNT_inc_simple_void(PL_compcv);
-                         (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
+                         (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 160:
-#line 862 "perly.y"
+#line 862 "perly.y" /* yacc.c:1646  */
     {
                          OP *body;
-                         if (parser->copline > (line_t)(ps[(6) - (8)].val.ival))
-                             parser->copline = (line_t)(ps[(6) - (8)].val.ival);
-                         body = block_end((ps[(3) - (8)].val.ival),
-                               op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval)));
+                         if (parser->copline > (line_t)(ps[-2].val.ival))
+                             parser->copline = (line_t)(ps[-2].val.ival);
+                         body = block_end((ps[-5].val.ival),
+                               op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval)));
                          SvREFCNT_inc_simple_void(PL_compcv);
-                         (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body);
-                       ;}
+                         (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body);
+                       }
+
     break;
 
   case 161:
-#line 876 "perly.y"
-    { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;}
+#line 876 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));}
+
     break;
 
   case 162:
-#line 878 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;}
+#line 878 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));}
+
     break;
 
   case 167:
-#line 886 "perly.y"
-    { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;}
+#line 886 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); }
+
     break;
 
   case 168:
-#line 888 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); ;}
+#line 888 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); }
+
     break;
 
   case 169:
-#line 890 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[(3) - (3)].val.opval),1)); ;}
+#line 890 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); }
+
     break;
 
   case 170:
-#line 892 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 892 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 171:
-#line 894 "perly.y"
-    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),0); ;}
+#line 894 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = localize((ps[0].val.opval),0); }
+
     break;
 
   case 172:
-#line 896 "perly.y"
-    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
+#line 896 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = sawparens((ps[-1].val.opval)); }
+
     break;
 
   case 173:
-#line 898 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 898 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 174:
-#line 900 "perly.y"
-    { (yyval.opval) = sawparens(newNULLLIST()); ;}
+#line 900 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = sawparens(newNULLLIST()); }
+
     break;
 
   case 175:
-#line 902 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 902 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 176:
-#line 904 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 904 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 177:
-#line 906 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 906 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 178:
-#line 908 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 908 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 179:
-#line 910 "perly.y"
-    { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;}
+#line 910 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));}
+
     break;
 
   case 180:
-#line 912 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 912 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 181:
-#line 914 "perly.y"
+#line 914 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_prepend_elem(OP_ASLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_ASLICE, 0,
-                                       list((ps[(3) - (4)].val.opval)),
-                                       ref((ps[(1) - (4)].val.opval), OP_ASLICE)));
-                         if ((yyval.opval) && (ps[(1) - (4)].val.opval))
+                                       list((ps[-1].val.opval)),
+                                       ref((ps[-3].val.opval), OP_ASLICE)));
+                         if ((yyval.opval) && (ps[-3].val.opval))
                              (yyval.opval)->op_private |=
-                                 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
-                       ;}
+                                 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
+                       }
+
     break;
 
   case 182:
-#line 924 "perly.y"
+#line 924 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_prepend_elem(OP_KVASLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_KVASLICE, 0,
-                                       list((ps[(3) - (4)].val.opval)),
-                                       ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE)));
-                         if ((yyval.opval) && (ps[(1) - (4)].val.opval))
+                                       list((ps[-1].val.opval)),
+                                       ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE)));
+                         if ((yyval.opval) && (ps[-3].val.opval))
                              (yyval.opval)->op_private |=
-                                 (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING;
-                       ;}
+                                 (ps[-3].val.opval)->op_private & OPpSLICEWARNING;
+                       }
+
     break;
 
   case 183:
-#line 934 "perly.y"
+#line 934 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_prepend_elem(OP_HSLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_HSLICE, 0,
-                                       list((ps[(3) - (5)].val.opval)),
-                                       ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE)));
-                         if ((yyval.opval) && (ps[(1) - (5)].val.opval))
+                                       list((ps[-2].val.opval)),
+                                       ref(oopsHV((ps[-4].val.opval)), OP_HSLICE)));
+                         if ((yyval.opval) && (ps[-4].val.opval))
                              (yyval.opval)->op_private |=
-                                 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
-                       ;}
+                                 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
+                       }
+
     break;
 
   case 184:
-#line 944 "perly.y"
+#line 944 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = op_prepend_elem(OP_KVHSLICE,
                                newOP(OP_PUSHMARK, 0),
                                    newLISTOP(OP_KVHSLICE, 0,
-                                       list((ps[(3) - (5)].val.opval)),
-                                       ref((ps[(1) - (5)].val.opval), OP_KVHSLICE)));
-                         if ((yyval.opval) && (ps[(1) - (5)].val.opval))
+                                       list((ps[-2].val.opval)),
+                                       ref((ps[-4].val.opval), OP_KVHSLICE)));
+                         if ((yyval.opval) && (ps[-4].val.opval))
                              (yyval.opval)->op_private |=
-                                 (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING;
-                       ;}
+                                 (ps[-4].val.opval)->op_private & OPpSLICEWARNING;
+                       }
+
     break;
 
   case 185:
-#line 954 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 954 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 186:
-#line 956 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;}
+#line 956 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); }
+
     break;
 
   case 187:
-#line 958 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval)));
-                       ;}
+#line 958 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval)));
+                       }
+
     break;
 
   case 188:
-#line 961 "perly.y"
+#line 961 "perly.y" /* yacc.c:1646  */
     {
                          (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                               op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval))));
-                       ;}
+                               op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval))));
+                       }
+
     break;
 
   case 189:
-#line 966 "perly.y"
+#line 966 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                           op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval))));
-                       ;}
+                           op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval))));
+                       }
+
     break;
 
   case 190:
-#line 970 "perly.y"
-    { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;}
+#line 970 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newSVREF((ps[-3].val.opval)); }
+
     break;
 
   case 191:
-#line 972 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
+#line 972 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
+
     break;
 
   case 192:
-#line 974 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;}
+#line 974 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newHVREF((ps[-3].val.opval)); }
+
     break;
 
   case 193:
-#line 976 "perly.y"
+#line 976 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, 0,
-                                      scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;}
+                                      scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); }
+
     break;
 
   case 194:
-#line 979 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;}
+#line 979 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); }
+
     break;
 
   case 195:
-#line 981 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL);
-                           PL_hints |= HINT_BLOCK_SCOPE; ;}
+#line 981 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL);
+                           PL_hints |= HINT_BLOCK_SCOPE; }
+
     break;
 
   case 196:
-#line 984 "perly.y"
-    { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
+#line 984 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); }
+
     break;
 
   case 197:
-#line 986 "perly.y"
-    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;}
+#line 986 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); }
+
     break;
 
   case 198:
-#line 988 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
+#line 988 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newOP((ps[0].val.ival), 0); }
+
     break;
 
   case 199:
-#line 990 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
+#line 990 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+
     break;
 
   case 200:
-#line 992 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;}
+#line 992 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); }
+
     break;
 
   case 201:
-#line 994 "perly.y"
-    { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;}
+#line 994 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); }
+
     break;
 
   case 202:
-#line 996 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;}
+#line 996 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); }
+
     break;
 
   case 203:
-#line 998 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
+#line 998 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
+
     break;
 
   case 204:
-#line 1000 "perly.y"
+#line 1000 "perly.y" /* yacc.c:1646  */
     { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED,
-                           op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;}
+                           op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); }
+
     break;
 
   case 205:
-#line 1003 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;}
+#line 1003 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newOP((ps[0].val.ival), 0); }
+
     break;
 
   case 206:
-#line 1005 "perly.y"
-    { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;}
+#line 1005 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newOP((ps[-2].val.ival), 0);}
+
     break;
 
   case 207:
-#line 1007 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1007 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 208:
-#line 1009 "perly.y"
-    { (yyval.opval) = (ps[(1) - (3)].val.opval); ;}
+#line 1009 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[-2].val.opval); }
+
     break;
 
   case 209:
-#line 1011 "perly.y"
-    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;}
+#line 1011 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); }
+
     break;
 
   case 210:
-#line 1013 "perly.y"
-    { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT)
-                          ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
-                          : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;}
+#line 1013 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT)
+                          ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0)))
+                          : newOP((ps[-2].val.ival), OPf_SPECIAL); }
+
     break;
 
   case 211:
-#line 1017 "perly.y"
-    { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;}
+#line 1017 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); }
+
     break;
 
   case 212:
-#line 1019 "perly.y"
+#line 1019 "perly.y" /* yacc.c:1646  */
     {
-                           if (   (ps[(1) - (1)].val.opval)->op_type != OP_TRANS
-                               && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR
-                               && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV))
+                           if (   (ps[0].val.opval)->op_type != OP_TRANS
+                               && (ps[0].val.opval)->op_type != OP_TRANSR
+                               && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV))
                            {
                                (yyval.ival) = start_subparse(FALSE, CVf_ANON);
                                SAVEFREESV(PL_compcv);
                            } else
                                (yyval.ival) = 0;
-                       ;}
+                       }
+
     break;
 
   case 213:
-#line 1030 "perly.y"
-    { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); ;}
+#line 1030 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); }
+
     break;
 
   case 216:
-#line 1034 "perly.y"
+#line 1034 "perly.y" /* yacc.c:1646  */
     {
                          (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0),
                                newSVOP(OP_CONST, 0, newSVpvs("Unimplemented")));
-                       ;}
+                       }
+
     break;
 
   case 218:
-#line 1043 "perly.y"
-    { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;}
+#line 1043 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); }
+
     break;
 
   case 219:
-#line 1045 "perly.y"
-    { (yyval.opval) = localize((ps[(2) - (2)].val.opval),1); ;}
+#line 1045 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = localize((ps[0].val.opval),1); }
+
     break;
 
   case 220:
-#line 1047 "perly.y"
-    { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[(3) - (4)].val.opval),(ps[(4) - (4)].val.opval))); ;}
+#line 1047 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); }
+
     break;
 
   case 221:
-#line 1052 "perly.y"
-    { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;}
+#line 1052 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = sawparens((ps[-1].val.opval)); }
+
     break;
 
   case 222:
-#line 1054 "perly.y"
-    { (yyval.opval) = sawparens(newNULLLIST()); ;}
+#line 1054 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = sawparens(newNULLLIST()); }
+
     break;
 
   case 223:
-#line 1057 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1057 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 224:
-#line 1059 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1059 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 225:
-#line 1061 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1061 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 226:
-#line 1066 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 1066 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 227:
-#line 1068 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1068 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 228:
-#line 1072 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 1072 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 229:
-#line 1074 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1074 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 230:
-#line 1078 "perly.y"
-    { (yyval.opval) = (OP*)NULL; ;}
+#line 1078 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (OP*)NULL; }
+
     break;
 
   case 231:
-#line 1080 "perly.y"
-    { (yyval.opval) = (ps[(2) - (2)].val.opval); ;}
+#line 1080 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
   case 232:
-#line 1086 "perly.y"
-    { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;}
+#line 1086 "perly.y" /* yacc.c:1646  */
+    { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); }
+
     break;
 
   case 240:
-#line 1103 "perly.y"
-    { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;}
+#line 1103 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); }
+
     break;
 
   case 241:
-#line 1107 "perly.y"
-    { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;}
+#line 1107 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newSVREF((ps[0].val.opval)); }
+
     break;
 
   case 242:
-#line 1111 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval));
-                         if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
-                       ;}
+#line 1111 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newAVREF((ps[0].val.opval));
+                         if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
+                       }
+
     break;
 
   case 243:
-#line 1117 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval));
-                         if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival);
-                       ;}
+#line 1117 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newHVREF((ps[0].val.opval));
+                         if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival);
+                       }
+
     break;
 
   case 244:
-#line 1123 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;}
+#line 1123 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newAVREF((ps[0].val.opval)); }
+
     break;
 
   case 245:
-#line 1125 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;}
+#line 1125 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newAVREF((ps[-3].val.opval)); }
+
     break;
 
   case 246:
-#line 1129 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;}
+#line 1129 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); }
+
     break;
 
   case 248:
-#line 1134 "perly.y"
-    { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;}
+#line 1134 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newAVREF((ps[-2].val.opval)); }
+
     break;
 
   case 250:
-#line 1139 "perly.y"
-    { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;}
+#line 1139 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newHVREF((ps[-2].val.opval)); }
+
     break;
 
   case 252:
-#line 1144 "perly.y"
-    { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;}
+#line 1144 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); }
+
     break;
 
   case 253:
-#line 1149 "perly.y"
-    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
+#line 1149 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = scalar((ps[0].val.opval)); }
+
     break;
 
   case 254:
-#line 1151 "perly.y"
-    { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;}
+#line 1151 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = scalar((ps[0].val.opval)); }
+
     break;
 
   case 255:
-#line 1153 "perly.y"
-    { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;}
+#line 1153 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = op_scope((ps[0].val.opval)); }
+
     break;
 
   case 256:
-#line 1156 "perly.y"
-    { (yyval.opval) = (ps[(1) - (1)].val.opval); ;}
+#line 1156 "perly.y" /* yacc.c:1646  */
+    { (yyval.opval) = (ps[0].val.opval); }
+
     break;
 
 
-/* Line 1267 of yacc.c.  */
 
       default: break;
     
 
 /* Generated from:
- * 0e541d3dbc868833736c1ead2e604316bea18db0d8a011efbabaa89bc12eee70 perly.y
+ * fba24dfc68a3a84c9ae95cb9e14cc156ac487e6f3228cdf84c166d3cd820e59a perly.y
  * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl
  * ex: set ro: */
diff --git a/perly.h b/perly.h
index cd0e1fb..9184774 100644 (file)
--- a/perly.h
+++ b/perly.h
@@ -4,20 +4,19 @@
    Any changes made here will be lost!
  */
 
-#define PERL_BISON_VERSION  20003
+#define PERL_BISON_VERSION  30000
 
 #ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 3.0.2.  */
 
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-   Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,9 +24,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-/* Tokens.  */
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     GRAMPROG = 258,
-     GRAMEXPR = 259,
-     GRAMBLOCK = 260,
-     GRAMBARESTMT = 261,
-     GRAMFULLSTMT = 262,
-     GRAMSTMTSEQ = 263,
-     WORD = 264,
-     METHOD = 265,
-     FUNCMETH = 266,
-     THING = 267,
-     PMFUNC = 268,
-     PRIVATEREF = 269,
-     QWLIST = 270,
-     FUNC0OP = 271,
-     FUNC0SUB = 272,
-     UNIOPSUB = 273,
-     LSTOPSUB = 274,
-     PLUGEXPR = 275,
-     PLUGSTMT = 276,
-     LABEL = 277,
-     FORMAT = 278,
-     SUB = 279,
-     ANONSUB = 280,
-     PACKAGE = 281,
-     USE = 282,
-     WHILE = 283,
-     UNTIL = 284,
-     IF = 285,
-     UNLESS = 286,
-     ELSE = 287,
-     ELSIF = 288,
-     CONTINUE = 289,
-     FOR = 290,
-     GIVEN = 291,
-     WHEN = 292,
-     DEFAULT = 293,
-     LOOPEX = 294,
-     DOTDOT = 295,
-     YADAYADA = 296,
-     FUNC0 = 297,
-     FUNC1 = 298,
-     FUNC = 299,
-     UNIOP = 300,
-     LSTOP = 301,
-     RELOP = 302,
-     EQOP = 303,
-     MULOP = 304,
-     ADDOP = 305,
-     DOLSHARP = 306,
-     DO = 307,
-     HASHBRACK = 308,
-     NOAMP = 309,
-     LOCAL = 310,
-     MY = 311,
-     REQUIRE = 312,
-     COLONATTR = 313,
-     FORMLBRACK = 314,
-     FORMRBRACK = 315,
-     PREC_LOW = 316,
-     DOROP = 317,
-     OROP = 318,
-     ANDOP = 319,
-     NOTOP = 320,
-     ASSIGNOP = 321,
-     DORDOR = 322,
-     OROR = 323,
-     ANDAND = 324,
-     BITOROP = 325,
-     BITANDOP = 326,
-     SHIFTOP = 327,
-     MATCHOP = 328,
-     REFGEN = 329,
-     UMINUS = 330,
-     POWOP = 331,
-     POSTJOIN = 332,
-     POSTDEC = 333,
-     POSTINC = 334,
-     PREDEC = 335,
-     PREINC = 336,
-     ARROW = 337
-   };
+  enum yytokentype
+  {
+    GRAMPROG = 258,
+    GRAMEXPR = 259,
+    GRAMBLOCK = 260,
+    GRAMBARESTMT = 261,
+    GRAMFULLSTMT = 262,
+    GRAMSTMTSEQ = 263,
+    BAREWORD = 264,
+    METHOD = 265,
+    FUNCMETH = 266,
+    THING = 267,
+    PMFUNC = 268,
+    PRIVATEREF = 269,
+    QWLIST = 270,
+    FUNC0OP = 271,
+    FUNC0SUB = 272,
+    UNIOPSUB = 273,
+    LSTOPSUB = 274,
+    PLUGEXPR = 275,
+    PLUGSTMT = 276,
+    LABEL = 277,
+    FORMAT = 278,
+    SUB = 279,
+    ANONSUB = 280,
+    PACKAGE = 281,
+    USE = 282,
+    WHILE = 283,
+    UNTIL = 284,
+    IF = 285,
+    UNLESS = 286,
+    ELSE = 287,
+    ELSIF = 288,
+    CONTINUE = 289,
+    FOR = 290,
+    GIVEN = 291,
+    WHEN = 292,
+    DEFAULT = 293,
+    LOOPEX = 294,
+    DOTDOT = 295,
+    YADAYADA = 296,
+    FUNC0 = 297,
+    FUNC1 = 298,
+    FUNC = 299,
+    UNIOP = 300,
+    LSTOP = 301,
+    RELOP = 302,
+    EQOP = 303,
+    MULOP = 304,
+    ADDOP = 305,
+    DOLSHARP = 306,
+    DO = 307,
+    HASHBRACK = 308,
+    NOAMP = 309,
+    LOCAL = 310,
+    MY = 311,
+    REQUIRE = 312,
+    COLONATTR = 313,
+    FORMLBRACK = 314,
+    FORMRBRACK = 315,
+    PREC_LOW = 316,
+    OROP = 317,
+    DOROP = 318,
+    ANDOP = 319,
+    NOTOP = 320,
+    ASSIGNOP = 321,
+    OROR = 322,
+    DORDOR = 323,
+    ANDAND = 324,
+    BITOROP = 325,
+    BITANDOP = 326,
+    SHIFTOP = 327,
+    MATCHOP = 328,
+    UMINUS = 329,
+    REFGEN = 330,
+    POWOP = 331,
+    PREINC = 332,
+    PREDEC = 333,
+    POSTINC = 334,
+    POSTDEC = 335,
+    POSTJOIN = 336,
+    ARROW = 337
+  };
 #endif
-/* Tokens.  */
-#define GRAMPROG 258
-#define GRAMEXPR 259
-#define GRAMBLOCK 260
-#define GRAMBARESTMT 261
-#define GRAMFULLSTMT 262
-#define GRAMSTMTSEQ 263
-#define WORD 264
-#define METHOD 265
-#define FUNCMETH 266
-#define THING 267
-#define PMFUNC 268
-#define PRIVATEREF 269
-#define QWLIST 270
-#define FUNC0OP 271
-#define FUNC0SUB 272
-#define UNIOPSUB 273
-#define LSTOPSUB 274
-#define PLUGEXPR 275
-#define PLUGSTMT 276
-#define LABEL 277
-#define FORMAT 278
-#define SUB 279
-#define ANONSUB 280
-#define PACKAGE 281
-#define USE 282
-#define WHILE 283
-#define UNTIL 284
-#define IF 285
-#define UNLESS 286
-#define ELSE 287
-#define ELSIF 288
-#define CONTINUE 289
-#define FOR 290
-#define GIVEN 291
-#define WHEN 292
-#define DEFAULT 293
-#define LOOPEX 294
-#define DOTDOT 295
-#define YADAYADA 296
-#define FUNC0 297
-#define FUNC1 298
-#define FUNC 299
-#define UNIOP 300
-#define LSTOP 301
-#define RELOP 302
-#define EQOP 303
-#define MULOP 304
-#define ADDOP 305
-#define DOLSHARP 306
-#define DO 307
-#define HASHBRACK 308
-#define NOAMP 309
-#define LOCAL 310
-#define MY 311
-#define REQUIRE 312
-#define COLONATTR 313
-#define FORMLBRACK 314
-#define FORMRBRACK 315
-#define PREC_LOW 316
-#define DOROP 317
-#define OROP 318
-#define ANDOP 319
-#define NOTOP 320
-#define ASSIGNOP 321
-#define DORDOR 322
-#define OROR 323
-#define ANDAND 324
-#define BITOROP 325
-#define BITANDOP 326
-#define SHIFTOP 327
-#define MATCHOP 328
-#define REFGEN 329
-#define UMINUS 330
-#define POWOP 331
-#define POSTJOIN 332
-#define POSTDEC 333
-#define POSTINC 334
-#define PREDEC 335
-#define PREINC 336
-#define ARROW 337
-
-
-
 
+/* Value type.  */
 #ifdef PERL_IN_TOKE_C
 static bool
 S_is_opval_token(int type) {
     switch (type) {
+    case BAREWORD:
     case FUNC0OP:
     case FUNC0SUB:
     case FUNCMETH:
@@ -231,7 +153,6 @@ S_is_opval_token(int type) {
     case QWLIST:
     case THING:
     case UNIOPSUB:
-    case WORD:
        return 1;
     }
     return 0;
@@ -239,25 +160,27 @@ S_is_opval_token(int type) {
 #endif /* PERL_IN_TOKE_C */
 #endif /* PERL_CORE */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
 {
+
     I32        ival; /* __DEFAULT__ (marker for regen_perly.pl;
                                must always be 1st union member) */
     char *pval;
     OP *opval;
     GV *gvval;
-}
-/* Line 1529 of yacc.c.  */
-       YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
+
+};
 # define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
 #endif
 
 
 
+int yyparse (void);
+
 
 /* Generated from:
- * 0e541d3dbc868833736c1ead2e604316bea18db0d8a011efbabaa89bc12eee70 perly.y
+ * fba24dfc68a3a84c9ae95cb9e14cc156ac487e6f3228cdf84c166d3cd820e59a perly.y
  * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl
  * ex: set ro: */
index 7354ca1..a8fe5b5 100644 (file)
--- a/perly.tab
+++ b/perly.tab
@@ -6,7 +6,7 @@
 
 #define YYFINAL  14
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   3128
+#define YYLAST   3111
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  105
 #define YYNNTS  78
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  256
-/* YYNRULES -- Number of states.  */
+/* YYNSTATES -- Number of states.  */
 #define YYNSTATES  521
 
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   337
 
-#define YYTRANSLATE(YYX)                                               \
+#define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, without out-of-bounds checking.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -64,134 +66,7 @@ static const yytype_uint8 yytranslate[] =
 };
 
 #if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint16 yyprhs[] =
-{
-       0,     0,     3,     4,     9,    10,    14,    15,    19,    20,
-      24,    25,    29,    30,    34,    39,    47,    48,    53,    54,
-      55,    58,    59,    62,    64,    66,    69,    72,    74,    79,
-      80,    88,    89,   100,   105,   106,   114,   122,   130,   137,
-     144,   147,   156,   165,   166,   167,   181,   191,   200,   201,
-     212,   222,   230,   233,   234,   243,   246,   248,   251,   252,
-     256,   258,   260,   264,   268,   272,   276,   280,   284,   285,
-     288,   295,   296,   299,   300,   301,   303,   304,   306,   308,
-     310,   312,   314,   315,   316,   317,   318,   320,   322,   323,
-     325,   326,   329,   331,   334,   336,   337,   341,   343,   345,
-     349,   353,   357,   359,   362,   366,   368,   372,   378,   385,
-     389,   393,   399,   402,   407,   408,   414,   416,   418,   424,
-     429,   435,   440,   446,   453,   459,   464,   470,   475,   479,
-     486,   491,   497,   501,   505,   509,   513,   517,   521,   525,
-     529,   533,   537,   541,   545,   549,   553,   556,   559,   562,
-     565,   568,   571,   574,   577,   580,   584,   587,   592,   596,
-     602,   611,   614,   617,   619,   621,   623,   625,   631,   634,
-     638,   640,   643,   647,   649,   652,   654,   656,   658,   660,
-     662,   664,   669,   674,   680,   686,   688,   690,   694,   699,
-     703,   708,   713,   718,   723,   728,   730,   733,   736,   738,
-     741,   744,   746,   749,   751,   754,   756,   760,   762,   766,
-     768,   772,   777,   778,   785,   787,   789,   791,   793,   797,
-     800,   805,   809,   812,   814,   816,   818,   819,   821,   822,
-     824,   825,   828,   830,   832,   834,   836,   838,   840,   843,
-     846,   849,   852,   855,   858,   861,   866,   869,   871,   875,
-     877,   881,   883,   887,   889,   891,   893
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int16 yyrhs[] =
-{
-     106,     0,    -1,    -1,     3,   107,   115,   118,    -1,    -1,
-       4,   108,   167,    -1,    -1,     5,   109,   113,    -1,    -1,
-       6,   110,   122,    -1,    -1,     7,   111,   120,    -1,    -1,
-       8,   112,   118,    -1,     9,   115,   118,    10,    -1,    18,
-     115,   101,    71,   119,   101,    19,    -1,    -1,     9,   117,
-     118,    10,    -1,    -1,    -1,   118,   120,    -1,    -1,   119,
-     130,    -1,   122,    -1,   121,    -1,    33,   122,    -1,    33,
-     121,    -1,    32,    -1,    34,   144,   141,   114,    -1,    -1,
-      35,   145,   142,   123,   146,   147,   151,    -1,    -1,    35,
-     145,   142,   124,   115,   149,   147,     9,   118,    10,    -1,
-      37,    20,    20,   101,    -1,    -1,    38,   142,   125,    20,
-      20,   166,   101,    -1,    41,   100,   115,   139,    99,   116,
-     133,    -1,    42,   100,   115,   139,    99,   116,   133,    -1,
-      47,   100,   115,   139,    99,   116,    -1,    48,   100,   115,
-     139,    99,   116,    -1,    49,   113,    -1,    39,   100,   115,
-     137,    99,   135,   116,   134,    -1,    40,   100,   115,   138,
-      99,   135,   116,   134,    -1,    -1,    -1,    46,   100,   115,
-     140,   101,   126,   137,   101,   127,   135,   140,    99,   116,
-      -1,    46,    67,   115,   169,   100,   139,    99,   116,   134,
-      -1,    46,   174,   100,   115,   139,    99,   116,   134,    -1,
-      -1,    46,   172,   115,   170,   128,   100,   139,    99,   116,
-     134,    -1,    46,    90,   171,   100,   115,   139,    99,   116,
-     134,    -1,    46,   100,   115,   139,    99,   116,   134,    -1,
-     113,   134,    -1,    -1,    37,    20,    20,     9,   115,   129,
-     118,    10,    -1,   132,   101,    -1,   101,    -1,    23,   131,
-      -1,    -1,    70,   118,    71,    -1,     1,    -1,   152,    -1,
-     152,    41,   152,    -1,   152,    42,   152,    -1,   152,    39,
-     152,    -1,   152,    40,   138,    -1,   152,    46,   152,    -1,
-     152,    48,   152,    -1,    -1,    43,   116,    -1,    44,   100,
-     139,    99,   116,   133,    -1,    -1,    45,   113,    -1,    -1,
-      -1,   132,    -1,    -1,   152,    -1,   152,    -1,   152,    -1,
-     136,    -1,    20,    -1,    -1,    -1,    -1,    -1,    20,    -1,
-      25,    -1,    -1,    23,    -1,    -1,    69,    23,    -1,    69,
-      -1,    69,    23,    -1,    69,    -1,    -1,   100,   150,    99,
-      -1,   113,    -1,   101,    -1,   152,    75,   152,    -1,   152,
-      74,   152,    -1,   152,    73,   152,    -1,   153,    -1,   153,
-      77,    -1,   153,    77,   162,    -1,   162,    -1,    57,   182,
-     153,    -1,    55,   100,   182,   152,    99,    -1,   162,    98,
-     156,   100,   167,    99,    -1,   162,    98,   156,    -1,    21,
-     182,   166,    -1,    22,   182,   100,   167,    99,    -1,    57,
-     166,    -1,    55,   100,   167,    99,    -1,    -1,    30,   143,
-     113,   155,   166,    -1,    21,    -1,   174,    -1,   181,     9,
-     152,   101,    10,    -1,   174,    11,   152,    12,    -1,   162,
-      98,    11,   152,    12,    -1,   157,    11,   152,    12,    -1,
-     174,     9,   152,   101,    10,    -1,   162,    98,     9,   152,
-     101,    10,    -1,   157,     9,   152,   101,    10,    -1,   162,
-      98,   100,    99,    -1,   162,    98,   100,   152,    99,    -1,
-     157,   100,   152,    99,    -1,   157,   100,    99,    -1,   100,
-     152,    99,    11,   152,    12,    -1,    26,    11,   152,    12,
-      -1,   100,    99,    11,   152,    12,    -1,   162,    78,   162,
-      -1,   162,    92,   162,    -1,   162,    60,   162,    -1,   162,
-      61,   162,    -1,   162,    86,   162,    -1,   162,    58,   162,
-      -1,   162,    59,   162,    -1,   162,    85,   162,    -1,   162,
-      84,   162,    -1,   162,    51,   162,    -1,   162,    83,   162,
-      -1,   162,    82,   162,    -1,   162,    81,   162,    -1,   162,
-      87,   162,    -1,    13,   162,    -1,    14,   162,    -1,    88,
-     162,    -1,    89,   162,    -1,   162,    95,    -1,   162,    94,
-      -1,   162,    93,    -1,    97,   162,    -1,    96,   162,    -1,
-      11,   152,    12,    -1,    11,    12,    -1,    64,   152,   101,
-      10,    -1,    64,   101,    10,    -1,    36,   143,   146,   147,
-     113,    -1,    36,   143,   115,   149,   147,     9,   118,    10,
-      -1,    63,   162,    -1,    63,   113,    -1,   158,    -1,   159,
-      -1,   160,    -1,   161,    -1,   162,    79,   162,    80,   162,
-      -1,    90,   162,    -1,    67,    90,   162,    -1,   164,    -1,
-      66,   162,    -1,   100,   152,    99,    -1,    26,    -1,   100,
-      99,    -1,   174,    -1,   178,    -1,   176,    -1,   175,    -1,
-     177,    -1,   157,    -1,   179,    11,   152,    12,    -1,   180,
-      11,   152,    12,    -1,   179,     9,   152,   101,    10,    -1,
-     180,     9,   152,   101,    10,    -1,    23,    -1,   173,    -1,
-     173,   100,    99,    -1,   173,   100,   152,    99,    -1,    65,
-     145,   166,    -1,   162,    98,   102,   103,    -1,   162,    98,
-      15,   103,    -1,   162,    98,    16,   103,    -1,   162,    98,
-      17,   103,    -1,   162,    98,   103,   103,    -1,    50,    -1,
-      50,   162,    -1,    76,   153,    -1,    56,    -1,    56,   113,
-      -1,    56,   162,    -1,    68,    -1,    68,   162,    -1,    29,
-      -1,    29,   162,    -1,    53,    -1,    53,   100,    99,    -1,
-      27,    -1,    27,   100,    99,    -1,    28,    -1,    54,   100,
-      99,    -1,    54,   100,   152,    99,    -1,    -1,    24,   163,
-     100,   153,   168,    99,    -1,    20,    -1,   154,    -1,    52,
-      -1,    31,    -1,    67,   165,   148,    -1,    67,   165,    -1,
-      67,    90,   165,   148,    -1,   100,   152,    99,    -1,   100,
-      99,    -1,   174,    -1,   176,    -1,   175,    -1,    -1,   153,
-      -1,    -1,   152,    -1,    -1,   104,   152,    -1,   174,    -1,
-     174,    -1,   175,    -1,   176,    -1,   170,    -1,   173,    -1,
-      67,    90,    -1,    90,    67,    -1,    17,   182,    -1,   102,
-     182,    -1,    15,   182,    -1,    16,   182,    -1,    62,   182,
-      -1,   162,    98,    62,   103,    -1,   103,   182,    -1,   175,
-      -1,   162,    98,    15,    -1,   176,    -1,   162,    98,    16,
-      -1,   178,    -1,   162,    98,   103,    -1,    20,    -1,   174,
-      -1,   113,    -1,    25,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
        0,   115,   115,   114,   125,   124,   134,   133,   146,   145,
@@ -223,44 +98,44 @@ static const yytype_uint16 yyrline[] =
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 0
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
   "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK",
   "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "'{'", "'}'", "'['",
-  "']'", "'-'", "'+'", "'@'", "'%'", "'&'", "'='", "'.'", "WORD", "METHOD",
-  "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP",
-  "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT", "LABEL",
-  "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL", "IF",
-  "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN", "DEFAULT",
-  "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", "UNIOP",
-  "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO",
+  "']'", "'-'", "'+'", "'@'", "'%'", "'&'", "'='", "'.'", "BAREWORD",
+  "METHOD", "FUNCMETH", "THING", "PMFUNC", "PRIVATEREF", "QWLIST",
+  "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT",
+  "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL",
+  "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN",
+  "DEFAULT", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC",
+  "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO",
   "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR",
-  "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP", "ANDOP",
-  "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND",
-  "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN",
-  "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", "PREINC",
+  "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "OROP", "DOROP", "ANDOP",
+  "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "OROR", "DORDOR", "ANDAND",
+  "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "UMINUS",
+  "REFGEN", "POWOP", "PREINC", "PREDEC", "POSTINC", "POSTDEC", "POSTJOIN",
   "ARROW", "')'", "'('", "';'", "'$'", "'*'", "'/'", "$accept", "grammar",
-  "@1", "@2", "@3", "@4", "@5", "@6", "block", "formblock", "remember",
-  "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt",
-  "labfullstmt", "barestmt", "@7", "@8", "@9", "@10", "@11", "@12", "@13",
-  "formline", "formarg", "sideff", "else", "cont", "mintro", "nexpr",
-  "texpr", "iexpr", "mexpr", "mnexpr", "formname", "startsub",
+  "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "block", "formblock",
+  "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt",
+  "labfullstmt", "barestmt", "$@7", "$@8", "$@9", "$@10", "$@11", "@12",
+  "$@13", "formline", "formarg", "sideff", "else", "cont", "mintro",
+  "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "formname", "startsub",
   "startanonsub", "startformsub", "subname", "proto", "subattrlist",
   "myattrlist", "subsignature", "@14", "optsubbody", "expr", "listexpr",
   "listop", "@15", "method", "subscripted", "termbinop", "termunop",
   "anonymous", "termdo", "term", "@16", "myattrterm", "myterm",
   "optlistexpr", "optexpr", "optrepl", "my_scalar", "my_var",
   "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh", "arylen",
-  "star", "sliceme", "kvslice", "gelem", "indirob", 0
+  "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+   (internal) symbol number NUM (which must be that of a token).  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   123,
@@ -277,71 +152,78 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,   105,   107,   106,   108,   106,   109,   106,   110,   106,
-     111,   106,   112,   106,   113,   114,   115,   116,   117,   118,
-     118,   119,   119,   120,   120,   121,   121,   122,   122,   123,
-     122,   124,   122,   122,   125,   122,   122,   122,   122,   122,
-     122,   122,   122,   126,   127,   122,   122,   122,   128,   122,
-     122,   122,   122,   129,   122,   122,   122,   130,   131,   131,
-     132,   132,   132,   132,   132,   132,   132,   132,   133,   133,
-     133,   134,   134,   135,   136,   136,   137,   137,   138,   139,
-     140,   141,   141,   142,   143,   144,   145,   145,   146,   146,
-     147,   147,   147,   148,   148,   150,   149,   151,   151,   152,
-     152,   152,   152,   153,   153,   153,   154,   154,   154,   154,
-     154,   154,   154,   154,   155,   154,   156,   156,   157,   157,
-     157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
-     157,   157,   158,   158,   158,   158,   158,   158,   158,   158,
-     158,   158,   158,   158,   158,   158,   159,   159,   159,   159,
-     159,   159,   159,   159,   159,   160,   160,   160,   160,   160,
-     160,   161,   161,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   163,   162,   162,   162,   162,   162,   164,   164,
-     164,   165,   165,   165,   165,   165,   166,   166,   167,   167,
-     168,   168,   169,   170,   170,   170,   171,   171,   172,   172,
-     173,   174,   175,   176,   177,   177,   178,   179,   179,   180,
-     180,   181,   181,   182,   182,   182,   182
-};
+#define YYPACT_NINF -412
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-412)))
+
+#define YYTABLE_NINF -252
+
+#define yytable_value_is_error(Yytable_value) \
+  (!!((Yytable_value) == (-252)))
+
+  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+     STATE-NUM.  */
+static const yytype_int16 yypact[] =
 {
-       0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
-       0,     3,     0,     3,     4,     7,     0,     4,     0,     0,
-       2,     0,     2,     1,     1,     2,     2,     1,     4,     0,
-       7,     0,    10,     4,     0,     7,     7,     7,     6,     6,
-       2,     8,     8,     0,     0,    13,     9,     8,     0,    10,
-       9,     7,     2,     0,     8,     2,     1,     2,     0,     3,
-       1,     1,     3,     3,     3,     3,     3,     3,     0,     2,
-       6,     0,     2,     0,     0,     1,     0,     1,     1,     1,
-       1,     1,     0,     0,     0,     0,     1,     1,     0,     1,
-       0,     2,     1,     2,     1,     0,     3,     1,     1,     3,
-       3,     3,     1,     2,     3,     1,     3,     5,     6,     3,
-       3,     5,     2,     4,     0,     5,     1,     1,     5,     4,
-       5,     4,     5,     6,     5,     4,     5,     4,     3,     6,
-       4,     5,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     3,     2,     4,     3,     5,
-       8,     2,     2,     1,     1,     1,     1,     5,     2,     3,
-       1,     2,     3,     1,     2,     1,     1,     1,     1,     1,
-       1,     4,     4,     5,     5,     1,     1,     3,     4,     3,
-       4,     4,     4,     4,     4,     1,     2,     2,     1,     2,
-       2,     1,     2,     1,     2,     1,     3,     1,     3,     1,
-       3,     4,     0,     6,     1,     1,     1,     1,     3,     2,
-       4,     3,     2,     1,     1,     1,     0,     1,     0,     1,
-       0,     2,     1,     1,     1,     1,     1,     1,     2,     2,
-       2,     2,     2,     2,     2,     4,     2,     1,     3,     1,
-       3,     1,     3,     1,     1,     1,     1
+     903,  -412,  -412,  -412,  -412,  -412,  -412,     8,  -412,  2810,
+      16,  1502,  1407,  -412,  -412,  -412,  1973,  2810,  2810,    31,
+      31,    31,  -412,    31,    31,  -412,  -412,    46,   -66,  -412,
+    2810,  -412,  -412,  -412,  2810,  -412,   -54,   -20,   -19,  1880,
+    1785,    31,  1880,  2066,    35,  2810,    62,  2810,  2810,  2810,
+    2810,  2810,  2810,  2810,  2159,    31,    31,   341,   -13,  -412,
+       7,  -412,  -412,  -412,  -412,  2971,  -412,  -412,    -2,    73,
+      79,    82,  -412,    76,   123,   180,    92,  -412,  -412,  -412,
+    -412,  -412,    35,    90,  -412,    18,    28,    36,    47,   167,
+      88,   104,    16,  -412,    78,  -412,   102,  1971,  1407,  -412,
+    -412,  -412,   647,   742,  -412,    77,   731,   731,  -412,  -412,
+    -412,  -412,  -412,  -412,  -412,  2810,   117,   118,  2810,   122,
+     367,    16,    -4,  2971,   126,  2252,  1785,  -412,   367,   545,
+     -13,  -412,   438,  2810,  -412,  -412,   367,   212,   100,  -412,
+    -412,  2810,   367,  2903,  2345,   157,  -412,  -412,  -412,   367,
+     -13,   731,   731,   731,    71,    71,   219,   221,  -412,  -412,
+    2810,  2810,  2810,  2810,  2810,  2810,  2438,  2810,  2810,  2810,
+    2810,  2810,  2810,  2810,  2810,  2810,  2810,  2810,  2810,  2810,
+    2810,  2810,  -412,  -412,  -412,   245,  2531,  2810,  2810,  2810,
+    2810,  2810,  2810,  2810,  -412,   209,  -412,   213,  -412,  -412,
+    -412,  -412,  -412,   144,    55,  -412,  -412,   139,  -412,  -412,
+    -412,    16,  -412,  -412,  2810,  2810,  2810,  2810,  2810,  2810,
+    -412,  -412,  -412,  -412,  -412,  2810,  2810,    97,  -412,  -412,
+    -412,   141,   173,  -412,  -412,   256,   145,  2810,   -13,  -412,
+     242,  -412,  2624,   731,   157,    52,    57,    58,  -412,   312,
+     230,  -412,  2810,   244,   193,   193,  -412,  2971,   201,   103,
+    -412,   346,  1584,   483,  1768,   724,   502,  2971,  2929,   468,
+     468,  1675,   408,  1863,   630,   731,   731,  2810,  2810,   170,
+     177,   184,  -412,   186,  2717,    11,   187,   225,  -412,  -412,
+     473,   218,   119,   259,   125,   279,   132,   309,   837,  -412,
+     252,   235,     2,   288,  2810,  2810,  2810,  2810,  -412,   207,
+    -412,  -412,   236,  -412,  -412,  -412,  -412,  1596,    23,  -412,
+    2810,  2810,  -412,   341,  -412,   341,   341,   341,   341,   341,
+     222,   -30,  -412,  2810,  -412,   173,   323,    16,  -412,  -412,
+     534,  -412,    30,   540,  -412,  -412,  -412,   190,  2810,   340,
+    -412,  -412,  2810,   329,   208,  -412,  -412,  -412,  -412,  -412,
+     632,  -412,  -412,  2810,  -412,   352,  -412,   354,  -412,   380,
+    -412,   387,  -412,  -412,  -412,   328,  -412,  -412,  -412,   336,
+     301,   341,   302,   306,   341,   307,   308,  -412,  -412,  -412,
+    -412,   310,   325,   264,  -412,  2810,   334,   335,  -412,  2810,
+     338,  -412,   343,   426,  -412,  -412,  -412,    42,  -412,   211,
+    -412,  3013,   429,  -412,  -412,   344,  -412,  -412,  -412,  -412,
+     355,   173,   141,  -412,  2810,  -412,  -412,   435,   435,  2810,
+    2810,   435,  -412,   360,   356,   435,   435,   341,  -412,  -412,
+    -412,  -412,  -412,  -412,   390,     5,   173,  -412,   370,   435,
+     435,  -412,    32,    32,   373,   374,    78,  2810,  2810,   435,
+    -412,  -412,   932,  -412,  -412,  -412,  -412,   466,  1027,  -412,
+      78,    78,  -412,   435,   376,  -412,  -412,   435,   435,  -412,
+     382,   388,    78,  -412,    29,  -412,  -412,  -412,  -412,  1122,
+    -412,  2810,    78,    78,  -412,   435,  -412,   411,   471,  -412,
+    1217,  -412,   392,  -412,  -412,  -412,    78,  -412,  -412,  -412,
+    -412,   435,  1690,  -412,  1312,    32,   402,  -412,  -412,   435,
+    -412
 };
 
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
+  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+     Performed when YYTABLE does not specify something else to do.  Zero
+     means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
        0,     2,     4,     6,     8,    10,    12,     0,    16,   228,
@@ -359,19 +241,19 @@ static const yytype_uint16 yydefact[] =
      204,     0,    88,   196,     0,     0,   228,   199,   200,   253,
      227,   112,   254,     0,   244,   162,   161,     0,     0,    86,
       87,   226,   171,     0,     0,   219,   223,   225,   224,   202,
-     197,   148,   149,   168,   154,   153,   174,     0,   241,   246,
+     197,   148,   149,   168,   153,   154,   174,     0,   241,   246,
        0,     0,     0,   103,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   152,   151,   150,     0,     0,     0,     0,     0,
+       0,     0,   150,   151,   152,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    19,    82,    83,     0,    34,    16,
       16,    16,    16,    16,     0,    16,    16,     0,    16,    16,
       40,     0,    52,    55,     0,     0,     0,     0,     0,     0,
       26,    25,    20,   155,   110,   228,     0,     0,   208,   114,
       89,     0,    90,   206,   210,     0,     0,     0,   106,   158,
        0,   189,     0,   169,     0,   175,   178,   177,   222,     0,
-      94,   218,     0,   172,   101,   100,    99,   104,     0,     0,
-     128,     0,   141,   137,   138,   134,   135,   132,     0,   144,
-     143,   142,   140,   139,   136,   145,   133,     0,     0,   248,
+      94,   218,     0,   172,   100,   101,    99,   104,     0,     0,
+     128,     0,   141,   137,   138,   134,   135,   132,     0,   143,
+     144,   142,   140,   139,   136,   145,   133,     0,     0,   248,
      250,     0,   116,     0,     0,     0,   252,   109,   117,   187,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    81,
        0,    29,     0,     0,    76,     0,     0,     0,   238,     0,
@@ -399,7 +281,20 @@ static const yytype_uint16 yydefact[] =
       45
 };
 
-/* YYDEFGOTO[NTERM-NUM].  */
+  /* YYPGOTO[NTERM-NUM].  */
+static const yytype_int16 yypgoto[] =
+{
+    -412,  -412,  -412,  -412,  -412,  -412,  -412,  -412,     3,  -412,
+     -60,   -37,  -412,   -15,  -412,   490,   410,    10,  -412,  -412,
+    -412,  -412,  -412,  -412,  -412,  -412,  -412,  -315,  -399,   -75,
+    -411,  -412,    53,   204,  -234,    19,  -412,   318,   499,  -412,
+     456,   165,  -329,   305,   134,  -412,  -412,    -6,   -36,  -412,
+    -412,  -412,  -412,  -412,  -412,  -412,  -412,   198,  -412,  -412,
+     415,  -106,  -125,  -412,  -412,   241,  -412,  -412,   357,   303,
+     -41,   -39,  -412,  -412,  -412,  -412,  -412,     9
+};
+
+  /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     7,     8,     9,    10,    11,    12,    13,    94,   374,
@@ -412,200 +307,115 @@ static const yytype_int16 yydefgoto[] =
       70,    71,    72,    73,    74,    75,    76,   158
 };
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -446
-static const yytype_int16 yypact[] =
-{
-     902,  -446,  -446,  -446,  -446,  -446,  -446,    25,  -446,  2821,
-      37,  1515,  1418,  -446,  -446,  -446,  1984,  2821,  2821,    31,
-      31,    31,  -446,    31,    31,  -446,  -446,    36,   -46,  -446,
-    2821,  -446,  -446,  -446,  2821,  -446,   -29,   -16,    -2,  1891,
-    1796,    31,  1891,  2077,    44,  2821,    62,  2821,  2821,  2821,
-    2821,  2821,  2821,  2821,  2170,    31,    31,    53,   -14,  -446,
-       7,  -446,  -446,  -446,  -446,  2985,  -446,  -446,     1,    46,
-     180,   224,  -446,   101,   230,   233,   127,  -446,  -446,  -446,
-    -446,  -446,    44,   130,  -446,    47,    88,   104,   117,    67,
-     118,   121,    37,  -446,   158,  -446,   124,  2037,  1418,  -446,
-    -446,  -446,   641,   739,  -446,    48,   485,   485,  -446,  -446,
-    -446,  -446,  -446,  -446,  -446,  2821,   122,   129,  2821,   131,
-     367,    37,    -4,  2985,   135,  2263,  1796,  -446,   367,   545,
-     -14,  -446,   438,  2821,  -446,  -446,   367,   242,    15,  -446,
-    -446,  2821,   367,  2914,  2356,   184,  -446,  -446,  -446,   367,
-     -14,   485,   485,   485,   -13,   -13,   244,   256,  -446,  -446,
-    2821,  2821,  2821,  2821,  2821,  2821,  2449,  2821,  2821,  2821,
-    2821,  2821,  2821,  2821,  2821,  2821,  2821,  2821,  2821,  2821,
-    2821,  2821,  -446,  -446,  -446,   245,  2542,  2821,  2821,  2821,
-    2821,  2821,  2821,  2821,  -446,   238,  -446,   250,  -446,  -446,
-    -446,  -446,  -446,   183,    51,  -446,  -446,   187,  -446,  -446,
-    -446,    37,  -446,  -446,  2821,  2821,  2821,  2821,  2821,  2821,
-    -446,  -446,  -446,  -446,  -446,  2821,  2821,    97,  -446,  -446,
-    -446,   189,   221,  -446,  -446,   309,   181,  2821,   -14,  -446,
-     284,  -446,  2635,   485,   184,    63,    82,   157,  -446,   312,
-     273,  -446,  2821,   297,   234,   234,  -446,  2985,   100,   103,
-    -446,   327,  1596,  1876,  1686,   724,   626,  2985,  2940,   468,
-     468,   515,   408,  1781,  1929,   485,   485,  2821,  2821,   217,
-     222,   232,  -446,   243,  2728,    11,   247,   236,  -446,  -446,
-     331,   194,   119,   201,   125,   218,   132,   259,   836,  -446,
-     333,   262,     2,   301,  2821,  2821,  2821,  2821,  -446,   254,
-    -446,  -446,   290,  -446,  -446,  -446,  -446,  1608,    23,  -446,
-    2821,  2821,  -446,    53,  -446,    53,    53,    53,    53,    53,
-     265,   -43,  -446,  2821,  -446,   221,   374,    37,  -446,  -446,
-     346,  -446,    30,   435,  -446,  -446,  -446,   190,  2821,   393,
-    -446,  -446,  2821,   279,   208,  -446,  -446,  -446,  -446,  -446,
-     473,  -446,  -446,  2821,  -446,   399,  -446,   400,  -446,   404,
-    -446,   405,  -446,  -446,  -446,   410,  -446,  -446,  -446,   396,
-     335,    53,   336,   338,    53,   340,   342,  -446,  -446,  -446,
-    -446,   344,   343,   264,  -446,  2821,   356,   357,  -446,  2821,
-     364,  -446,   365,   462,  -446,  -446,  -446,    42,  -446,   211,
-    -446,  3030,   463,  -446,  -446,   373,  -446,  -446,  -446,  -446,
-     375,   221,   189,  -446,  2821,  -446,  -446,   466,   466,  2821,
-    2821,   466,  -446,   381,   384,   466,   466,    53,  -446,  -446,
-    -446,  -446,  -446,  -446,   416,     5,   221,  -446,   389,   466,
-     466,  -446,    32,    32,   392,   406,   158,  2821,  2821,   466,
-    -446,  -446,   933,  -446,  -446,  -446,  -446,   495,  1030,  -446,
-     158,   158,  -446,   466,   414,  -446,  -446,   466,   466,  -446,
-     434,   439,   158,  -446,    29,  -446,  -446,  -446,  -446,  1127,
-    -446,  2821,   158,   158,  -446,   466,  -446,   470,   522,  -446,
-    1224,  -446,   444,  -446,  -446,  -446,   158,  -446,  -446,  -446,
-    -446,   466,  1701,  -446,  1321,    32,   445,  -446,  -446,   466,
-    -446
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int16 yypgoto[] =
-{
-    -446,  -446,  -446,  -446,  -446,  -446,  -446,  -446,     3,  -446,
-     -60,   -37,  -446,   -15,  -446,   537,   458,    10,  -446,  -446,
-    -446,  -446,  -446,  -446,  -446,  -446,  -446,  -315,  -445,   -75,
-    -411,  -446,   102,   253,  -234,    52,  -446,   369,   534,  -446,
-     486,   195,  -329,   325,   149,  -446,  -446,    -6,   -36,  -446,
-    -446,  -446,  -446,  -446,  -446,  -446,  -446,   198,  -446,  -446,
-     446,  -106,  -125,  -446,  -446,   263,  -446,  -446,   378,   303,
-     -41,   -39,  -446,  -446,  -446,  -446,  -446,     9
-};
-
-/* 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 -252
+  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+     positive, shift that token.  If negative, reduce the rule whose
+     number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     103,   236,   389,    57,   130,   147,   403,   148,   476,   224,
+     103,   236,   389,    57,   130,   147,   403,   148,    14,   224,
      105,   377,   150,    78,    77,   450,   164,   194,   165,   230,
-      77,    95,   110,   110,   110,    14,   110,   110,   112,   113,
-     114,   108,   115,   116,   163,   241,   109,   138,    19,    20,
-      77,   252,   127,   110,   110,   135,    77,   118,   157,   133,
-     134,   108,   497,   348,   119,   187,   109,   188,   110,   110,
-     223,   399,   231,   163,   139,   159,    19,    20,    21,   140,
-     518,   124,   187,   385,   188,   473,   474,    19,    20,   130,
-    -252,  -252,  -252,   391,   125,   185,   396,   397,   160,   161,
-     162,  -247,   445,  -247,   512,   210,   -16,   238,   126,  -222,
-     330,   186,   246,   378,   247,   130,   464,   166,   221,   332,
-    -251,  -221,   227,    55,   361,   350,   240,   467,   310,   235,
-      57,   160,   161,   162,   229,    55,   160,   161,   162,   110,
-     498,   366,  -223,    55,   203,   237,   193,   368,   249,   304,
-     305,   306,   307,   309,   370,   317,   318,   199,   320,   321,
-     197,  -225,   143,    55,   254,   255,   256,   204,   258,   259,
-     261,   434,   144,   315,    55,   316,  -249,   205,  -249,    55,
+      77,    95,   110,   110,   110,    77,   110,   110,   112,   113,
+     114,   108,   115,   116,   119,   241,   109,   138,    19,    20,
+      77,   252,   127,   110,   110,   135,   124,   163,   157,   133,
+     134,   108,   497,   348,   476,   139,   109,   118,   110,   110,
+     140,   187,   231,   188,   163,   159,  -247,  -249,  -247,  -249,
+      19,    20,    21,   385,   399,   473,   474,    19,    20,   130,
+     125,   126,   187,   391,   188,  -251,   396,   397,  -247,   223,
+    -247,  -249,   445,  -249,   512,   210,   -16,   238,   186,  -222,
+     330,   193,   246,   378,   247,   130,   464,   166,   221,   332,
+     197,  -221,   227,    55,   361,   350,   518,   467,   199,   235,
+      57,  -223,   310,   211,   229,    55,  -225,  -224,   200,   110,
+     498,   366,   189,    55,   190,   237,   201,   368,   249,   304,
+     305,   306,   307,   309,   370,   317,   318,   202,   320,   321,
+     160,   161,   162,   143,   254,   255,   256,    55,   258,   259,
+     261,   434,   144,   315,    55,   316,  -252,  -252,  -252,   185,
      160,   161,   162,   160,   161,   162,   160,   161,   162,   298,
-     290,   291,   292,   293,   294,   295,   296,   297,   200,  -247,
-     331,  -247,   160,   161,   162,   454,   455,   389,   160,   161,
-     162,   349,   408,   211,   201,   160,   161,   162,   323,   325,
-     326,   327,   328,   329,   322,   106,   107,   202,   208,    57,
-     413,   209,   225,   441,   481,   213,  -224,   401,   120,   226,
-     228,   340,   123,  -249,   233,  -249,   343,   128,   415,   189,
-     136,   190,   191,   142,   192,   149,   347,   151,   152,   153,
-     154,   155,   239,   250,   277,   252,   278,   502,   299,   395,
-     279,   280,   281,   160,   161,   162,   282,   160,   161,   162,
-     302,   353,   354,   308,   160,   161,   162,   315,   360,   316,
-     339,   160,   161,   162,   160,   161,   162,   319,   110,   334,
-     336,   160,   161,   162,   341,   365,   346,   130,   381,   325,
-     384,   384,   367,   214,   215,   216,   217,   283,   348,   162,
-     218,   393,   219,   420,   384,   384,   422,   423,   448,   369,
-     355,   379,   111,   111,   111,   356,   111,   111,   430,   160,
-     161,   162,   160,   161,   162,   357,   363,   160,   161,   162,
-     405,   243,   409,   132,   111,   284,   358,   285,   286,   146,
-     362,   373,   160,   161,   162,   253,    55,    57,   111,   111,
-     371,   257,   -31,   -79,   398,   262,   263,   264,   265,   266,
+     290,   291,   292,   293,   294,   295,   296,   297,   208,   191,
+     331,   192,   160,   161,   162,   454,   455,   389,   160,   161,
+     162,   240,   408,   213,   209,   160,   161,   162,   323,   325,
+     326,   327,   328,   329,   322,   106,   107,   225,   226,    57,
+     413,   228,   239,   441,   481,   233,   250,   401,   120,   299,
+     252,   340,   123,   302,   203,   308,   343,   128,   415,   319,
+     136,   334,   336,   142,   339,   149,   347,   151,   152,   153,
+     154,   155,   341,   346,   277,   348,   278,   502,   204,   395,
+     279,   280,   281,   160,   161,   162,   282,   205,   162,    55,
+     373,   353,   354,   355,   160,   161,   162,   315,   360,   316,
+     356,   160,   161,   162,   160,   161,   162,   357,   110,   358,
+     362,   160,   161,   162,   160,   161,   162,   130,   381,   325,
+     384,   384,   349,   214,   215,   216,   217,   283,   379,    55,
+     218,   393,   219,   420,   384,   384,   422,   423,   448,   365,
+     253,   398,   111,   111,   111,   363,   111,   111,   430,   160,
+     161,   162,   160,   161,   162,   -31,   388,   160,   161,   162,
+     405,   243,   409,   132,   111,   284,   404,   285,   286,   146,
+     410,   230,   160,   161,   162,   338,   424,    57,   111,   111,
+     367,   257,   416,   -79,   417,   262,   263,   264,   265,   266,
      267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     412,   479,   160,   161,   162,   160,   161,   162,   130,   384,
-     388,   453,   207,   437,   456,   487,   488,   404,   460,   461,
-     160,   161,   162,   410,   160,   161,   162,   496,   338,   416,
-     417,   345,   470,   471,   418,   419,   424,   503,   504,   160,
-     161,   162,   482,   384,   384,   462,   351,   170,   171,   132,
-     364,   513,   468,   230,   425,   426,   490,   427,  -175,   428,
-     492,   493,   429,   431,   432,   406,   245,   187,   465,   188,
-    -175,   381,   384,   179,   180,   435,   436,   489,   506,   181,
-     182,   183,   184,   438,   439,   185,   168,   169,   170,   171,
-     500,   440,   443,   442,   515,   451,   444,  -175,  -175,  -175,
-    -175,   458,   520,   459,  -175,   384,  -175,   463,   288,  -175,
-     469,   477,   514,   178,   179,   180,  -175,  -175,  -175,  -175,
-     181,   182,   183,   184,   485,   478,   185,   314,   160,   161,
-     162,  -175,  -175,  -175,   491,  -175,  -175,  -175,  -175,  -175,
+     369,   479,   160,   161,   162,   160,   161,   162,   130,   384,
+     418,   453,   207,   437,   456,   487,   488,   419,   460,   461,
+     425,   426,   160,   161,   162,   427,   428,   496,   429,   431,
+     371,   345,   470,   471,   160,   161,   162,   503,   504,   160,
+     161,   162,   482,   384,   384,   462,   432,   170,   171,   132,
+     412,   513,   468,   435,   436,   440,   490,   438,  -175,   442,
+     492,   493,   439,   443,   451,   351,   245,   187,   465,   188,
+    -175,   381,   384,   179,   180,   459,   444,   489,   506,   181,
+     458,   463,   182,   183,   184,   185,   168,   169,   170,   171,
+     500,   469,   477,   478,   515,   485,   491,  -175,  -175,  -175,
+    -175,   507,   520,   494,  -175,   384,  -175,   495,   288,  -175,
+     509,   511,   514,   178,   179,   180,  -175,  -175,  -175,  -175,
+     181,   519,    99,   182,   183,   184,   185,   314,   220,   382,
+     480,  -175,  -175,  -175,   301,  -175,  -175,  -175,  -175,  -175,
     -175,  -175,  -175,  -175,  -175,  -175,   168,   169,   170,   171,
-    -175,  -175,  -175,  -175,   407,   494,  -175,  -175,   495,  -175,
-     507,   509,  -175,   511,   519,  -214,   160,   161,   162,    99,
-     411,   176,   177,   178,   179,   180,   220,  -214,   382,   480,
-     181,   182,   183,   184,   516,   301,   185,   122,   196,   344,
-     421,   446,   414,   168,   169,   170,   171,   181,   182,   183,
-     184,   394,   313,   185,  -214,  -214,  -214,  -214,   111,   244,
-       0,  -214,     0,  -214,     0,     0,  -214,     0,     0,   177,
-     178,   179,   180,  -214,  -214,  -214,  -214,   181,   182,   183,
-     184,     0,   387,   185,     0,     0,     0,     0,  -214,  -214,
+    -175,   516,   122,  -175,  -175,  -175,  -175,  -175,   196,  -175,
+     421,  -252,  -175,   170,   171,  -214,   160,   161,   162,   344,
+     411,   176,   177,   178,   179,   180,   446,  -214,   244,   394,
+     181,   313,   170,   182,   183,   184,   185,     0,     0,   179,
+     180,     0,   364,     0,     0,   181,     0,     0,   182,   183,
+     184,   185,     0,     0,  -214,  -214,  -214,  -214,   111,   180,
+       0,  -214,     0,  -214,   181,     0,  -214,   182,   183,   184,
+     185,     0,     0,  -214,  -214,  -214,  -214,   160,   161,   162,
+       0,     0,   387,   160,   161,   162,     0,     0,  -214,  -214,
     -214,   314,  -214,  -214,  -214,  -214,  -214,  -214,  -214,  -214,
-    -214,  -214,  -214,     0,     0,     0,     0,  -214,  -214,  -214,
-    -214,   -13,    79,  -214,  -214,     0,  -214,     0,     0,  -214,
-      77,     0,    16,     0,    17,    18,    19,    20,    21,     0,
-       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
-      30,    31,    32,    80,    98,    81,    82,    33,    83,    84,
-      85,    86,    87,    88,     0,     0,   170,    89,    90,    91,
-      92,    34,     0,    35,    36,    37,    38,    39,    40,     0,
-       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
-       0,     0,     0,   180,     0,     0,     0,    48,   181,   182,
-     183,   184,     0,     0,   185,     0,     0,     0,     0,    49,
-      50,    51,     0,     0,     0,     0,     0,    52,    53,    -3,
-      79,    54,    93,    55,    56,     0,     0,     0,    77,     0,
-      16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
-      23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
-      32,    80,    98,    81,    82,    33,    83,    84,    85,    86,
-      87,    88,     0,     0,     0,    89,    90,    91,    92,    34,
-       0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
-       0,    41,    42,    43,    44,    45,    46,    47,     0,     0,
-       0,   180,     0,     0,     0,    48,   181,   182,   183,   184,
-       0,     0,   185,     0,     0,     0,     0,    49,    50,    51,
-       0,     0,     0,     0,     0,    52,    53,    79,     0,    54,
-      93,    55,    56,     0,     0,    77,   372,    16,     0,    17,
-      18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
-      26,     0,    27,    28,    29,    30,    31,    32,    80,    98,
-      81,    82,    33,    83,    84,    85,    86,    87,    88,     0,
-       0,     0,    89,    90,    91,    92,    34,     0,    35,    36,
-      37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
-      43,    44,    45,    46,    47,     1,     2,     3,     4,     5,
-       6,     0,    48,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
-       0,     0,    52,    53,    79,     0,    54,    93,    55,    56,
-       0,     0,    77,   483,    16,     0,    17,    18,    19,    20,
-      21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
-      28,    29,    30,    31,    32,    80,    98,    81,    82,    33,
-      83,    84,    85,    86,    87,    88,     0,     0,     0,    89,
-      90,    91,    92,    34,     0,    35,    36,    37,    38,    39,
-      40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
-      46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
+    -214,  -214,  -214,   406,     0,     0,     0,  -214,     0,   407,
+    -214,  -214,  -214,  -214,  -214,     0,  -214,   -13,    79,  -214,
+       0,     0,     0,     0,     0,     0,    77,     0,    16,     0,
+      17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
+      98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
+     170,   171,     0,    89,    90,    91,    92,    34,     0,    35,
+      36,    37,    38,    39,    40,   160,   161,   162,     0,    41,
+      42,    43,    44,    45,    46,    47,     0,   180,     0,     0,
+       0,     0,   181,    48,     0,   182,   183,   184,   185,     0,
+       0,   414,     0,     0,     0,    49,    50,     0,    51,     0,
+      52,    53,    -3,    79,     0,     0,     0,    54,    93,    55,
+      56,    77,     0,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
+      84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
+      91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,   180,     0,     0,     0,     0,   181,     0,    48,   182,
+     183,   184,   185,   181,     0,     0,   182,   183,   184,   185,
+      49,    50,     0,    51,     0,    52,    53,     0,    79,     0,
+       0,     0,    54,    93,    55,    56,    77,   372,    16,     0,
+      17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
+      98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
+       0,     0,     0,    89,    90,    91,    92,    34,     0,    35,
+      36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
+      42,    43,    44,    45,    46,    47,     1,     2,     3,     4,
+       5,     6,     0,    48,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    49,    50,     0,    51,     0,
+      52,    53,     0,    79,     0,     0,     0,    54,    93,    55,
+      56,    77,   483,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
+      84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
+      91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,     0,     0,     0,     0,     0,     0,     0,    48,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    49,    50,    51,     0,     0,     0,     0,     0,    52,
-      53,    79,     0,    54,    93,    55,    56,     0,     0,    77,
-     486,    16,     0,    17,    18,    19,    20,    21,     0,     0,
-      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
-      31,    32,    80,    98,    81,    82,    33,    83,    84,    85,
-      86,    87,    88,     0,     0,     0,    89,    90,    91,    92,
-      34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
-       0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
-       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
-      51,     0,     0,     0,     0,     0,    52,    53,    79,     0,
-      54,    93,    55,    56,     0,     0,    77,   501,    16,     0,
+      49,    50,     0,    51,     0,    52,    53,     0,    79,     0,
+       0,     0,    54,    93,    55,    56,    77,   486,    16,     0,
       17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
       25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
       98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
@@ -613,122 +423,103 @@ static const yytype_int16 yytable[] =
       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
       42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
        0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    49,    50,    51,     0,     0,
-       0,     0,     0,    52,    53,    79,     0,    54,    93,    55,
-      56,     0,     0,    77,   510,    16,     0,    17,    18,    19,
-      20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
-      27,    28,    29,    30,    31,    32,    80,    98,    81,    82,
-      33,    83,    84,    85,    86,    87,    88,     0,     0,     0,
-      89,    90,    91,    92,    34,     0,    35,    36,    37,    38,
-      39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
-      45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
-      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
-      52,    53,    79,     0,    54,    93,    55,    56,     0,     0,
-      77,     0,    16,     0,    17,    18,    19,    20,    21,     0,
-       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
-      30,    31,    32,    80,    98,    81,    82,    33,    83,    84,
-      85,    86,    87,    88,     0,     0,     0,    89,    90,    91,
-      92,    34,     0,    35,    36,    37,    38,    39,    40,     0,
-       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
-       0,     0,   517,     0,     0,     0,     0,    48,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
-      50,    51,     0,     0,     0,     0,     0,    52,    53,    79,
-       0,    54,    93,    55,    56,     0,     0,    77,     0,    16,
-       0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
-      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
-      80,    98,    81,    82,    33,    83,    84,    85,    86,    87,
-      88,     0,     0,     0,    89,    90,    91,    92,    34,     0,
-      35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
-      41,    42,    43,    44,    45,    46,    47,     0,     0,     0,
-       0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    49,    50,    51,     0,
-       0,     0,     0,     0,    52,    53,    79,     0,    54,    93,
-      55,    56,     0,     0,    77,     0,    16,     0,    17,    18,
-      19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
-       0,    27,    28,    29,    30,    31,    32,    80,     0,    81,
-      82,    33,    83,    84,    85,    86,    87,    88,     0,     0,
-       0,    89,    90,    91,    92,    34,     0,    35,    36,    37,
-      38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
-      44,    45,    46,    47,     0,     0,     0,     0,     0,     0,
-       0,    48,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    49,    50,    51,     0,     0,     0,    79,
-       0,    52,    53,     0,     0,    54,    93,    55,    56,    16,
-       0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
-      24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
-       0,     0,     0,     0,    33,     0,     0,  -252,     0,     0,
-       0,     0,     0,     0,   168,   169,   170,   171,    34,     0,
-      35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
-      41,    42,    43,    44,    45,    46,    47,   174,   175,   176,
-     177,   178,   179,   180,    48,     0,     0,     0,   181,   182,
-     183,   184,     0,     0,   185,     0,    49,    50,    51,     0,
-       0,     0,    79,     0,    52,    53,     0,     0,    54,   -74,
-      55,    56,    16,     0,    17,    18,    19,    20,    21,     0,
-       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
-      30,    31,    32,     0,     0,     0,     0,    33,     0,     0,
-       0,     0,     0,     0,   168,  -252,   170,   171,     0,     0,
-       0,    34,     0,    35,    36,    37,    38,    39,    40,     0,
-       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
-       0,     0,   179,   180,     0,     0,     0,    48,   181,   182,
-     183,   184,     0,     0,   185,     0,     0,     0,     0,    49,
-      50,    51,     0,     0,     0,     0,     0,    52,    53,     0,
-     -74,    54,     0,    55,    56,    77,     0,    16,     0,    17,
-      18,    19,    20,    21,     0,     0,   129,    23,    24,    25,
-      26,   109,    27,    28,    29,    30,    31,    32,     0,     0,
-       0,     0,    33,     0,     0,     0,     0,     0,     0,   168,
-     169,   170,   171,     0,     0,     0,    34,     0,    35,    36,
-      37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
-      43,    44,    45,    46,    47,     0,     0,   179,   180,     0,
-       0,     0,    48,   181,   182,   183,   184,     0,     0,   185,
-       0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
-       0,     0,    52,    53,     0,     0,    54,     0,    55,    56,
-      77,     0,    16,     0,    17,    18,    19,    20,    21,     0,
-       0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
-      30,    31,    32,     0,     0,     0,     0,    33,     0,     0,
-       0,     0,     0,     0,  -252,     0,   170,   171,     0,     0,
-       0,    34,     0,    35,    36,    37,    38,    39,    40,     0,
-       0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
-       0,     0,   179,   180,     0,     0,     0,    48,   181,   182,
-     183,   184,     0,     0,   185,     0,     0,     0,     0,    49,
-      50,    51,     0,     0,     0,     0,     0,    52,    53,   170,
-     171,    54,     0,    55,    56,    16,   104,    17,    18,    19,
-      20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
-      27,    28,    29,    30,    31,    32,   180,     0,     0,     0,
-      33,   181,   182,   183,   184,     0,     0,   185,     0,     0,
-       0,     0,     0,     0,    34,     0,    35,    36,    37,    38,
-      39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
-      45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
-      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    49,    50,    51,     0,   214,   215,   216,   217,
-      52,    53,     0,   218,    54,   219,    55,    56,    16,     0,
+       0,     0,     0,     0,     0,    49,    50,     0,    51,     0,
+      52,    53,     0,    79,     0,     0,     0,    54,    93,    55,
+      56,    77,   501,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
+      84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
+      91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,     0,     0,     0,     0,     0,     0,     0,    48,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      49,    50,     0,    51,     0,    52,    53,     0,    79,     0,
+       0,     0,    54,    93,    55,    56,    77,   510,    16,     0,
       17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
-      25,    26,     0,    27,    28,    29,    30,    31,    32,     0,
-     160,   161,   162,    33,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
+      98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
+       0,     0,     0,    89,    90,    91,    92,    34,     0,    35,
       36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
       42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
        0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    49,    50,    51,     0,     0,
-       0,     0,     0,    52,    53,     0,     0,    54,   137,    55,
-      56,    16,     0,    17,    18,    19,    20,    21,     0,     0,
+       0,     0,     0,     0,     0,    49,    50,     0,    51,     0,
+      52,    53,     0,    79,     0,     0,     0,    54,    93,    55,
+      56,    77,     0,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    80,    98,    81,    82,    33,    83,
+      84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
+      91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,     0,     0,   517,     0,     0,     0,     0,    48,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      49,    50,     0,    51,     0,    52,    53,     0,    79,     0,
+       0,     0,    54,    93,    55,    56,    77,     0,    16,     0,
+      17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,    80,
+      98,    81,    82,    33,    83,    84,    85,    86,    87,    88,
+       0,     0,     0,    89,    90,    91,    92,    34,     0,    35,
+      36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
+      42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
+       0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    49,    50,     0,    51,     0,
+      52,    53,     0,    79,     0,     0,     0,    54,    93,    55,
+      56,    77,     0,    16,     0,    17,    18,    19,    20,    21,
+       0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
+      29,    30,    31,    32,    80,     0,    81,    82,    33,    83,
+      84,    85,    86,    87,    88,     0,     0,     0,    89,    90,
+      91,    92,    34,     0,    35,    36,    37,    38,    39,    40,
+       0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
+      47,     0,     0,     0,     0,     0,     0,     0,    48,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      49,    50,     0,    51,     0,    52,    53,    79,     0,     0,
+       0,     0,    54,    93,    55,    56,     0,    16,     0,    17,
+      18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
+      26,     0,    27,    28,    29,    30,    31,    32,     0,     0,
+       0,     0,    33,     0,     0,  -252,     0,     0,     0,     0,
+       0,     0,   168,   169,   170,   171,    34,     0,    35,    36,
+      37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
+      43,    44,    45,    46,    47,   174,   175,   176,   177,   178,
+     179,   180,    48,     0,     0,     0,   181,     0,     0,   182,
+     183,   184,   185,     0,    49,    50,     0,    51,     0,    52,
+      53,    79,     0,     0,     0,     0,    54,   -74,    55,    56,
+       0,    16,     0,    17,    18,    19,    20,    21,     0,     0,
       22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
       31,    32,     0,     0,     0,     0,    33,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   168,   169,   170,   171,     0,     0,     0,
       34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
-       0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
-       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
-      51,     0,     0,     0,     0,     0,    52,    53,     0,   156,
-      54,     0,    55,    56,    16,     0,    17,    18,    19,    20,
+       0,     0,    41,    42,    43,    44,    45,    46,    47,   177,
+     178,   179,   180,     0,     0,     0,    48,   181,     0,     0,
+     182,   183,   184,   185,     0,     0,     0,     0,    49,    50,
+       0,    51,     0,    52,    53,     0,     0,     0,     0,   -74,
+      54,     0,    55,    56,    77,     0,    16,     0,    17,    18,
+      19,    20,    21,     0,     0,   129,    23,    24,    25,    26,
+     109,    27,    28,    29,    30,    31,    32,     0,     0,     0,
+       0,    33,     0,     0,     0,     0,   168,  -252,   170,   171,
+       0,     0,     0,     0,     0,    34,     0,    35,    36,    37,
+      38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
+      44,    45,    46,    47,   179,   180,     0,     0,     0,     0,
+     181,    48,     0,   182,   183,   184,   185,     0,     0,     0,
+       0,     0,     0,    49,    50,     0,    51,     0,    52,    53,
+       0,     0,     0,     0,     0,    54,     0,    55,    56,    77,
+       0,    16,     0,    17,    18,    19,    20,    21,     0,     0,
+      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
+      31,    32,     0,     0,     0,     0,    33,     0,     0,     0,
+       0,   168,   169,   170,   171,     0,     0,     0,     0,     0,
+      34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
+       0,     0,    41,    42,    43,    44,    45,    46,    47,   179,
+     180,     0,     0,     0,     0,   181,    48,     0,   182,   183,
+     184,   185,     0,     0,     0,     0,     0,     0,    49,    50,
+       0,    51,     0,    52,    53,     0,     0,     0,     0,     0,
+      54,     0,    55,    56,    16,   104,    17,    18,    19,    20,
       21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
       28,    29,    30,    31,    32,     0,     0,     0,     0,    33,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,   219,
        0,     0,     0,    34,     0,    35,    36,    37,    38,    39,
       40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
-      46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
+      46,    47,     0,     0,   160,   161,   162,     0,     0,    48,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    49,    50,    51,     0,     0,     0,     0,     0,    52,
-      53,     0,   234,    54,     0,    55,    56,    16,     0,    17,
+       0,    49,    50,     0,    51,     0,    52,    53,     0,     0,
+       0,     0,     0,    54,     0,    55,    56,    16,     0,    17,
       18,    19,    20,    21,     0,     0,    22,    23,    24,    25,
       26,     0,    27,    28,    29,    30,    31,    32,     0,     0,
        0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
@@ -736,8 +527,8 @@ static const yytype_int16 yytable[] =
       37,    38,    39,    40,     0,     0,     0,     0,    41,    42,
       43,    44,    45,    46,    47,     0,     0,     0,     0,     0,
        0,     0,    48,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    49,    50,    51,     0,     0,     0,
-       0,     0,    52,    53,     0,   248,    54,     0,    55,    56,
+       0,     0,     0,     0,    49,    50,     0,    51,     0,    52,
+      53,     0,     0,     0,     0,     0,    54,   137,    55,    56,
       16,     0,    17,    18,    19,    20,    21,     0,     0,    22,
       23,    24,    25,    26,     0,    27,    28,    29,    30,    31,
       32,     0,     0,     0,     0,    33,     0,     0,     0,     0,
@@ -745,8 +536,8 @@ static const yytype_int16 yytable[] =
        0,    35,    36,    37,    38,    39,    40,     0,     0,     0,
        0,    41,    42,    43,    44,    45,    46,    47,     0,     0,
        0,     0,     0,     0,     0,    48,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    49,    50,    51,
-       0,     0,     0,     0,     0,    52,    53,     0,   260,    54,
+       0,     0,     0,     0,     0,     0,     0,    49,    50,     0,
+      51,     0,    52,    53,     0,     0,     0,     0,   156,    54,
        0,    55,    56,    16,     0,    17,    18,    19,    20,    21,
        0,     0,    22,    23,    24,    25,    26,     0,    27,    28,
       29,    30,    31,    32,     0,     0,     0,     0,    33,     0,
@@ -755,8 +546,8 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,    41,    42,    43,    44,    45,    46,
       47,     0,     0,     0,     0,     0,     0,     0,    48,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      49,    50,    51,     0,     0,     0,     0,     0,    52,    53,
-       0,   289,    54,     0,    55,    56,    16,     0,    17,    18,
+      49,    50,     0,    51,     0,    52,    53,     0,     0,     0,
+       0,   234,    54,     0,    55,    56,    16,     0,    17,    18,
       19,    20,    21,     0,     0,    22,    23,    24,    25,    26,
        0,    27,    28,    29,    30,    31,    32,     0,     0,     0,
        0,    33,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -764,8 +555,8 @@ static const yytype_int16 yytable[] =
       38,    39,    40,     0,     0,     0,     0,    41,    42,    43,
       44,    45,    46,    47,     0,     0,     0,     0,     0,     0,
        0,    48,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    49,    50,    51,     0,     0,     0,     0,
-       0,    52,    53,     0,   342,    54,     0,    55,    56,    16,
+       0,     0,     0,    49,    50,     0,    51,     0,    52,    53,
+       0,     0,     0,     0,   248,    54,     0,    55,    56,    16,
        0,    17,    18,    19,    20,    21,     0,     0,    22,    23,
       24,    25,    26,     0,    27,    28,    29,    30,    31,    32,
        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
@@ -773,8 +564,8 @@ static const yytype_int16 yytable[] =
       35,    36,    37,    38,    39,    40,     0,     0,     0,     0,
       41,    42,    43,    44,    45,    46,    47,     0,     0,     0,
        0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    49,    50,    51,     0,
-       0,     0,     0,     0,    52,    53,     0,   359,    54,     0,
+       0,     0,     0,     0,     0,     0,    49,    50,     0,    51,
+       0,    52,    53,     0,     0,     0,     0,   260,    54,     0,
       55,    56,    16,     0,    17,    18,    19,    20,    21,     0,
        0,    22,    23,    24,    25,    26,     0,    27,    28,    29,
       30,    31,    32,     0,     0,     0,     0,    33,     0,     0,
@@ -783,146 +574,164 @@ static const yytype_int16 yytable[] =
        0,     0,     0,    41,    42,    43,    44,    45,    46,    47,
        0,     0,     0,     0,     0,     0,     0,    48,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
-      50,    51,     0,     0,     0,     0,     0,    52,    53,     0,
-       0,    54,     0,    55,    56,    16,     0,    17,    18,    19,
+      50,     0,    51,     0,    52,    53,     0,     0,     0,     0,
+     289,    54,     0,    55,    56,    16,     0,    17,    18,    19,
       20,    21,     0,     0,    22,    23,    24,    25,    26,     0,
       27,    28,    29,    30,    31,    32,     0,     0,     0,     0,
       33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,    34,     0,    35,    36,    37,    38,
       39,    40,     0,     0,     0,     0,    41,    42,    43,    44,
       45,    46,    47,     0,     0,     0,     0,     0,     0,     0,
-      48,   167,     0,     0,     0,     0,     0,     0,   168,   169,
-     170,   171,    49,    50,    51,     0,     0,     0,     0,     0,
-      52,    53,     0,     0,   242,     0,    55,    56,   172,   173,
-     352,   174,   175,   176,   177,   178,   179,   180,     0,     0,
-       0,     0,   181,   182,   183,   184,   167,     0,   185,     0,
-       0,     0,     0,   168,   169,   170,   171,     0,     0,     0,
+      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    49,    50,     0,    51,     0,    52,    53,     0,
+       0,     0,     0,   342,    54,     0,    55,    56,    16,     0,
+      17,    18,    19,    20,    21,     0,     0,    22,    23,    24,
+      25,    26,     0,    27,    28,    29,    30,    31,    32,     0,
+       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
+      36,    37,    38,    39,    40,     0,     0,     0,     0,    41,
+      42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
+       0,     0,     0,    48,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    49,    50,     0,    51,     0,
+      52,    53,     0,     0,     0,     0,   359,    54,     0,    55,
+      56,    16,     0,    17,    18,    19,    20,    21,     0,     0,
+      22,    23,    24,    25,    26,     0,    27,    28,    29,    30,
+      31,    32,     0,     0,     0,     0,    33,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   172,   173,     0,   174,   175,   176,   177,
-     178,   179,   180,     0,     0,     0,     0,   181,   182,   183,
-     184,   167,     0,   185,     0,     0,     0,     0,   168,   169,
-     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   173,
-       0,   174,   175,   176,   177,   178,   179,   180,     0,     0,
-       0,     0,   181,   182,   183,   184,     0,     0,   185
+      34,     0,    35,    36,    37,    38,    39,    40,     0,     0,
+       0,     0,    41,    42,    43,    44,    45,    46,    47,     0,
+       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    49,    50,
+       0,    51,     0,    52,    53,     0,     0,     0,     0,     0,
+      54,     0,    55,    56,    16,     0,    17,    18,    19,    20,
+      21,     0,     0,    22,    23,    24,    25,    26,     0,    27,
+      28,    29,    30,    31,    32,     0,     0,     0,     0,    33,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    34,     0,    35,    36,    37,    38,    39,
+      40,     0,     0,     0,     0,    41,    42,    43,    44,    45,
+      46,    47,     0,     0,     0,     0,     0,     0,     0,    48,
+     167,     0,     0,     0,     0,     0,     0,   168,   169,   170,
+     171,    49,    50,     0,    51,     0,    52,    53,     0,     0,
+       0,     0,     0,   242,     0,    55,    56,   172,   173,   352,
+     174,   175,   176,   177,   178,   179,   180,     0,     0,     0,
+       0,   181,   167,     0,   182,   183,   184,   185,     0,   168,
+     169,   170,   171,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   172,
+     173,     0,   174,   175,   176,   177,   178,   179,   180,     0,
+       0,     0,     0,   181,   167,     0,   182,   183,   184,   185,
+       0,   168,   169,   170,   171,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   173,     0,   174,   175,   176,   177,   178,   179,
+     180,     0,     0,     0,     0,   181,     0,     0,   182,   183,
+     184,   185
 };
 
 static const yytype_int16 yycheck[] =
 {
-      15,   126,   317,     9,    40,    46,   335,    46,   453,   115,
+      15,   126,   317,     9,    40,    46,   335,    46,     0,   115,
       16,     9,    48,    10,     9,   426,     9,    77,    11,    23,
-       9,    11,    19,    20,    21,     0,    23,    24,    19,    20,
-      21,    20,    23,    24,    77,   141,    25,    43,    15,    16,
-       9,    11,    39,    40,    41,    42,     9,    11,    54,    40,
-      41,    20,    23,    11,   100,     9,    25,    11,    55,    56,
-      12,   104,   122,    77,    20,    56,    15,    16,    17,    25,
-     515,   100,     9,   307,    11,    43,    44,    15,    16,   115,
-      93,    94,    95,   317,   100,    98,   320,   321,    73,    74,
-      75,     9,   421,    11,   505,    92,   100,   133,   100,    69,
-     225,   100,   143,   101,   143,   141,   101,   100,    98,    12,
-       9,    69,   118,   102,   103,    12,   101,   446,    67,   125,
-     126,    73,    74,    75,   121,   102,    73,    74,    75,   126,
-     101,    12,    69,   102,    67,   126,     9,    12,   144,   199,
+       9,    11,    19,    20,    21,     9,    23,    24,    19,    20,
+      21,    20,    23,    24,   100,   141,    25,    43,    15,    16,
+       9,    11,    39,    40,    41,    42,   100,    77,    54,    40,
+      41,    20,    23,    11,   453,    20,    25,    11,    55,    56,
+      25,     9,   122,    11,    77,    56,     9,     9,    11,    11,
+      15,    16,    17,   307,   104,    43,    44,    15,    16,   115,
+     100,   100,     9,   317,    11,     9,   320,   321,     9,    12,
+      11,     9,   421,    11,   505,    92,   100,   133,   100,    69,
+     225,     9,   143,   101,   143,   141,   101,   100,    98,    12,
+      20,    69,   118,   102,   103,    12,   515,   446,   100,   125,
+     126,    69,    67,    45,   121,   102,    69,    69,   100,   126,
+     101,    12,     9,   102,    11,   126,   100,    12,   144,   199,
      200,   201,   202,   203,    12,   205,   206,   100,   208,   209,
-      20,    69,    90,   102,   160,   161,   162,    90,   164,   165,
-     166,   395,   100,   204,   102,   204,     9,   100,    11,   102,
+      73,    74,    75,    91,   160,   161,   162,   102,   164,   165,
+     166,   395,   100,   204,   102,   204,    95,    96,    97,    98,
       73,    74,    75,    73,    74,    75,    73,    74,    75,   194,
      186,   187,   188,   189,   190,   191,   192,   193,   100,     9,
      226,    11,    73,    74,    75,   429,   430,   512,    73,    74,
-      75,   101,    12,    45,   100,    73,    74,    75,   214,   215,
+      75,   101,    12,   101,   100,    73,    74,    75,   214,   215,
      216,   217,   218,   219,   211,    17,    18,   100,   100,   225,
-      12,   100,   100,    12,   458,   101,    69,   333,    30,   100,
-      99,   237,    34,     9,    99,    11,   242,    39,   363,     9,
-      42,    11,     9,    45,    11,    47,   252,    49,    50,    51,
-      52,    53,    10,    69,     9,    11,    11,   491,    20,   319,
-      15,    16,    17,    73,    74,    75,    21,    73,    74,    75,
-      20,   277,   278,    90,    73,    74,    75,   318,   284,   318,
-      99,    73,    74,    75,    73,    74,    75,   100,   285,   100,
-      69,    73,    74,    75,    10,   101,    23,   333,   304,   305,
-     306,   307,   101,    39,    40,    41,    42,    62,    11,    75,
+      12,    99,    10,    12,   458,    99,    69,   333,    30,    20,
+      11,   237,    34,    20,    67,    91,   242,    39,   363,   100,
+      42,   100,    69,    45,    99,    47,   252,    49,    50,    51,
+      52,    53,    10,    23,     9,    11,    11,   491,    91,   319,
+      15,    16,    17,    73,    74,    75,    21,   100,    75,   102,
+      18,   277,   278,   103,    73,    74,    75,   318,   284,   318,
+     103,    73,    74,    75,    73,    74,    75,   103,   285,   103,
+     103,    73,    74,    75,    73,    74,    75,   333,   304,   305,
+     306,   307,   101,    39,    40,    41,    42,    62,    20,   102,
       46,   317,    48,   373,   320,   321,   376,   377,   424,   101,
-     103,    20,    19,    20,    21,   103,    23,    24,   388,    73,
-      74,    75,    73,    74,    75,   103,   100,    73,    74,    75,
-     337,   143,   348,    40,    41,   100,   103,   102,   103,    46,
-     103,    18,    73,    74,    75,    99,   102,   363,    55,    56,
-     101,   163,   100,    99,    99,   167,   168,   169,   170,   171,
+      99,    99,    19,    20,    21,   100,    23,    24,   388,    73,
+      74,    75,    73,    74,    75,   100,   100,    73,    74,    75,
+     337,   143,   348,    40,    41,   100,    23,   102,   103,    46,
+      10,    23,    73,    74,    75,    99,    20,   363,    55,    56,
+     101,   163,    10,    99,    10,   167,   168,   169,   170,   171,
      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
      101,   456,    73,    74,    75,    73,    74,    75,   424,   395,
-     100,   428,    89,   399,   431,   470,   471,    23,   435,   436,
-      73,    74,    75,    10,    73,    74,    75,   482,    99,    10,
-      10,    99,   449,   450,    10,    10,    20,   492,   493,    73,
-      74,    75,   459,   429,   430,   440,    99,    60,    61,   126,
-      99,   506,   447,    23,    99,    99,   473,    99,     0,    99,
-     477,   478,   100,    99,   101,    99,   143,     9,   445,    11,
-      12,   457,   458,    86,    87,    99,    99,   472,   495,    92,
-      93,    94,    95,    99,    99,    98,    58,    59,    60,    61,
-     485,     9,    99,    10,   511,     9,   101,    39,    40,    41,
-      42,   100,   519,    99,    46,   491,    48,    71,   185,    51,
-     101,    99,   507,    85,    86,    87,    58,    59,    60,    61,
-      92,    93,    94,    95,     9,    99,    98,   204,    73,    74,
-      75,    73,    74,    75,   100,    77,    78,    79,    80,    81,
+      10,   428,    89,   399,   431,   470,   471,    10,   435,   436,
+      99,    99,    73,    74,    75,    99,    99,   482,   100,    99,
+     101,    99,   449,   450,    73,    74,    75,   492,   493,    73,
+      74,    75,   459,   429,   430,   440,   101,    60,    61,   126,
+     101,   506,   447,    99,    99,     9,   473,    99,     0,    10,
+     477,   478,    99,    99,     9,    99,   143,     9,   445,    11,
+      12,   457,   458,    86,    87,    99,   101,   472,   495,    92,
+     100,    71,    95,    96,    97,    98,    58,    59,    60,    61,
+     485,   101,    99,    99,   511,     9,   100,    39,    40,    41,
+      42,    70,   519,   101,    46,   491,    48,    99,   185,    51,
+      19,    99,   507,    85,    86,    87,    58,    59,    60,    61,
+      92,    99,    12,    95,    96,    97,    98,   204,    98,   305,
+     457,    73,    74,    75,   196,    77,    78,    79,    80,    81,
       82,    83,    84,    85,    86,    87,    58,    59,    60,    61,
-      92,    93,    94,    95,    99,   101,    98,    99,    99,   101,
-      70,    19,   104,    99,    99,     0,    73,    74,    75,    12,
-     352,    83,    84,    85,    86,    87,    98,    12,   305,   457,
-      92,    93,    94,    95,   512,   196,    98,    33,    82,   244,
-     375,   422,    99,    58,    59,    60,    61,    92,    93,    94,
-      95,   318,   204,    98,    39,    40,    41,    42,   285,   143,
-      -1,    46,    -1,    48,    -1,    -1,    51,    -1,    -1,    84,
-      85,    86,    87,    58,    59,    60,    61,    92,    93,    94,
-      95,    -1,   309,    98,    -1,    -1,    -1,    -1,    73,    74,
+      92,   512,    33,    95,    96,    97,    98,    99,    82,   101,
+     375,    58,   104,    60,    61,     0,    73,    74,    75,   244,
+     352,    83,    84,    85,    86,    87,   422,    12,   143,   318,
+      92,   204,    60,    95,    96,    97,    98,    -1,    -1,    86,
+      87,    -1,    99,    -1,    -1,    92,    -1,    -1,    95,    96,
+      97,    98,    -1,    -1,    39,    40,    41,    42,   285,    87,
+      -1,    46,    -1,    48,    92,    -1,    51,    95,    96,    97,
+      98,    -1,    -1,    58,    59,    60,    61,    73,    74,    75,
+      -1,    -1,   309,    73,    74,    75,    -1,    -1,    73,    74,
       75,   318,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    -1,    -1,    -1,    -1,    92,    93,    94,
-      95,     0,     1,    98,    99,    -1,   101,    -1,    -1,   104,
-       9,    -1,    11,    -1,    13,    14,    15,    16,    17,    -1,
-      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    -1,    -1,    60,    46,    47,    48,
-      49,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
-      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
-      -1,    -1,    -1,    87,    -1,    -1,    -1,    76,    92,    93,
-      94,    95,    -1,    -1,    98,    -1,    -1,    -1,    -1,    88,
-      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,     0,
-       1,   100,   101,   102,   103,    -1,    -1,    -1,     9,    -1,
-      11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
-      21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    -1,    -1,    -1,    46,    47,    48,    49,    50,
-      -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
-      -1,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
-      -1,    87,    -1,    -1,    -1,    76,    92,    93,    94,    95,
-      -1,    -1,    98,    -1,    -1,    -1,    -1,    88,    89,    90,
-      -1,    -1,    -1,    -1,    -1,    96,    97,     1,    -1,   100,
-     101,   102,   103,    -1,    -1,     9,    10,    11,    -1,    13,
-      14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
-      24,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    -1,
-      -1,    -1,    46,    47,    48,    49,    50,    -1,    52,    53,
-      54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
-      64,    65,    66,    67,    68,     3,     4,     5,     6,     7,
-       8,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
-      -1,    -1,    96,    97,     1,    -1,   100,   101,   102,   103,
-      -1,    -1,     9,    10,    11,    -1,    13,    14,    15,    16,
-      17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    -1,    -1,    -1,    46,
-      47,    48,    49,    50,    -1,    52,    53,    54,    55,    56,
-      57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,
-      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      85,    86,    87,    99,    -1,    -1,    -1,    92,    -1,    99,
+      95,    96,    97,    98,    99,    -1,   101,     0,     1,   104,
+      -1,    -1,    -1,    -1,    -1,    -1,     9,    -1,    11,    -1,
+      13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      60,    61,    -1,    46,    47,    48,    49,    50,    -1,    52,
+      53,    54,    55,    56,    57,    73,    74,    75,    -1,    62,
+      63,    64,    65,    66,    67,    68,    -1,    87,    -1,    -1,
+      -1,    -1,    92,    76,    -1,    95,    96,    97,    98,    -1,
+      -1,    99,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,
+      93,    94,     0,     1,    -1,    -1,    -1,   100,   101,   102,
+     103,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    87,    -1,    -1,    -1,    -1,    92,    -1,    76,    95,
+      96,    97,    98,    92,    -1,    -1,    95,    96,    97,    98,
+      88,    89,    -1,    91,    -1,    93,    94,    -1,     1,    -1,
+      -1,    -1,   100,   101,   102,   103,     9,    10,    11,    -1,
+      13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52,
+      53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
+      63,    64,    65,    66,    67,    68,     3,     4,     5,     6,
+       7,     8,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,
+      93,    94,    -1,     1,    -1,    -1,    -1,   100,   101,   102,
+     103,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,
-      97,     1,    -1,   100,   101,   102,   103,    -1,    -1,     9,
-      10,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
-      20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    -1,    -1,    -1,    46,    47,    48,    49,
-      50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
-      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
-      90,    -1,    -1,    -1,    -1,    -1,    96,    97,     1,    -1,
-     100,   101,   102,   103,    -1,    -1,     9,    10,    11,    -1,
+      88,    89,    -1,    91,    -1,    93,    94,    -1,     1,    -1,
+      -1,    -1,   100,   101,   102,   103,     9,    10,    11,    -1,
       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
       23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
@@ -930,122 +739,103 @@ static const yytype_int16 yycheck[] =
       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
       63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
-      -1,    -1,    -1,    96,    97,     1,    -1,   100,   101,   102,
-     103,    -1,    -1,     9,    10,    11,    -1,    13,    14,    15,
-      16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    -1,    -1,    -1,
-      46,    47,    48,    49,    50,    -1,    52,    53,    54,    55,
-      56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
-      66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
-      96,    97,     1,    -1,   100,   101,   102,   103,    -1,    -1,
-       9,    -1,    11,    -1,    13,    14,    15,    16,    17,    -1,
-      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    -1,    -1,    -1,    46,    47,    48,
-      49,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
-      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
-      -1,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,     1,
-      -1,   100,   101,   102,   103,    -1,    -1,     9,    -1,    11,
-      -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
-      22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,
-      52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
-      62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
-      -1,    -1,    -1,    -1,    96,    97,     1,    -1,   100,   101,
-     102,   103,    -1,    -1,     9,    -1,    11,    -1,    13,    14,
-      15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
-      -1,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
-      -1,    46,    47,    48,    49,    50,    -1,    52,    53,    54,
-      55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,
-      65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,     1,
-      -1,    96,    97,    -1,    -1,   100,   101,   102,   103,    11,
-      -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
-      22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
-      -1,    -1,    -1,    -1,    36,    -1,    -1,    51,    -1,    -1,
-      -1,    -1,    -1,    -1,    58,    59,    60,    61,    50,    -1,
-      52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
-      62,    63,    64,    65,    66,    67,    68,    81,    82,    83,
-      84,    85,    86,    87,    76,    -1,    -1,    -1,    92,    93,
-      94,    95,    -1,    -1,    98,    -1,    88,    89,    90,    -1,
-      -1,    -1,     1,    -1,    96,    97,    -1,    -1,   100,   101,
-     102,   103,    11,    -1,    13,    14,    15,    16,    17,    -1,
-      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
-      29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
-      -1,    -1,    -1,    -1,    58,    59,    60,    61,    -1,    -1,
-      -1,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
-      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
-      -1,    -1,    86,    87,    -1,    -1,    -1,    76,    92,    93,
-      94,    95,    -1,    -1,    98,    -1,    -1,    -1,    -1,    88,
-      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,
-      99,   100,    -1,   102,   103,     9,    -1,    11,    -1,    13,
-      14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
-      -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    58,
-      59,    60,    61,    -1,    -1,    -1,    50,    -1,    52,    53,
-      54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
-      64,    65,    66,    67,    68,    -1,    -1,    86,    87,    -1,
-      -1,    -1,    76,    92,    93,    94,    95,    -1,    -1,    98,
-      -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
-      -1,    -1,    96,    97,    -1,    -1,   100,    -1,   102,   103,
-       9,    -1,    11,    -1,    13,    14,    15,    16,    17,    -1,
-      -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
-      29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
-      -1,    -1,    -1,    -1,    58,    -1,    60,    61,    -1,    -1,
-      -1,    50,    -1,    52,    53,    54,    55,    56,    57,    -1,
-      -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
-      -1,    -1,    86,    87,    -1,    -1,    -1,    76,    92,    93,
-      94,    95,    -1,    -1,    98,    -1,    -1,    -1,    -1,    88,
-      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,    60,
-      61,   100,    -1,   102,   103,    11,    12,    13,    14,    15,
-      16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
-      26,    27,    28,    29,    30,    31,    87,    -1,    -1,    -1,
-      36,    92,    93,    94,    95,    -1,    -1,    98,    -1,    -1,
-      -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
-      56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
-      66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    88,    89,    90,    -1,    39,    40,    41,    42,
-      96,    97,    -1,    46,   100,    48,   102,   103,    11,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,
+      93,    94,    -1,     1,    -1,    -1,    -1,   100,   101,   102,
+     103,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      88,    89,    -1,    91,    -1,    93,    94,    -1,     1,    -1,
+      -1,    -1,   100,   101,   102,   103,     9,    10,    11,    -1,
       13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
-      23,    24,    -1,    26,    27,    28,    29,    30,    31,    -1,
-      73,    74,    75,    36,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    52,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52,
       53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
       63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,
-      -1,    -1,    -1,    96,    97,    -1,    -1,   100,   101,   102,
-     103,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,
+      93,    94,    -1,     1,    -1,    -1,    -1,   100,   101,   102,
+     103,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    76,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      88,    89,    -1,    91,    -1,    93,    94,    -1,     1,    -1,
+      -1,    -1,   100,   101,   102,   103,     9,    -1,    11,    -1,
+      13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,    52,
+      53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
+      63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,
+      93,    94,    -1,     1,    -1,    -1,    -1,   100,   101,   102,
+     103,     9,    -1,    11,    -1,    13,    14,    15,    16,    17,
+      -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
+      28,    29,    30,    31,    32,    -1,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    -1,    -1,    -1,    46,    47,
+      48,    49,    50,    -1,    52,    53,    54,    55,    56,    57,
+      -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
+      68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      88,    89,    -1,    91,    -1,    93,    94,     1,    -1,    -1,
+      -1,    -1,   100,   101,   102,   103,    -1,    11,    -1,    13,
+      14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
+      24,    -1,    26,    27,    28,    29,    30,    31,    -1,    -1,
+      -1,    -1,    36,    -1,    -1,    51,    -1,    -1,    -1,    -1,
+      -1,    -1,    58,    59,    60,    61,    50,    -1,    52,    53,
+      54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
+      64,    65,    66,    67,    68,    81,    82,    83,    84,    85,
+      86,    87,    76,    -1,    -1,    -1,    92,    -1,    -1,    95,
+      96,    97,    98,    -1,    88,    89,    -1,    91,    -1,    93,
+      94,     1,    -1,    -1,    -1,    -1,   100,   101,   102,   103,
+      -1,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
       20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
       30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    58,    59,    60,    61,    -1,    -1,    -1,
       50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
-      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
-      90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    99,
-     100,    -1,   102,   103,    11,    -1,    13,    14,    15,    16,
+      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    84,
+      85,    86,    87,    -1,    -1,    -1,    76,    92,    -1,    -1,
+      95,    96,    97,    98,    -1,    -1,    -1,    -1,    88,    89,
+      -1,    91,    -1,    93,    94,    -1,    -1,    -1,    -1,    99,
+     100,    -1,   102,   103,     9,    -1,    11,    -1,    13,    14,
+      15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
+      -1,    36,    -1,    -1,    -1,    -1,    58,    59,    60,    61,
+      -1,    -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,
+      55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,
+      65,    66,    67,    68,    86,    87,    -1,    -1,    -1,    -1,
+      92,    76,    -1,    95,    96,    97,    98,    -1,    -1,    -1,
+      -1,    -1,    -1,    88,    89,    -1,    91,    -1,    93,    94,
+      -1,    -1,    -1,    -1,    -1,   100,    -1,   102,   103,     9,
+      -1,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
+      20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
+      30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
+      -1,    58,    59,    60,    61,    -1,    -1,    -1,    -1,    -1,
+      50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
+      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    86,
+      87,    -1,    -1,    -1,    -1,    92,    76,    -1,    95,    96,
+      97,    98,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
+      -1,    91,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
+     100,    -1,   102,   103,    11,    12,    13,    14,    15,    16,
       17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
       27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      39,    40,    41,    42,    -1,    -1,    -1,    46,    -1,    48,
       -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,    56,
       57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,
-      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      67,    68,    -1,    -1,    73,    74,    75,    -1,    -1,    76,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,
-      97,    -1,    99,   100,    -1,   102,   103,    11,    -1,    13,
+      -1,    88,    89,    -1,    91,    -1,    93,    94,    -1,    -1,
+      -1,    -1,    -1,   100,    -1,   102,   103,    11,    -1,    13,
       14,    15,    16,    17,    -1,    -1,    20,    21,    22,    23,
       24,    -1,    26,    27,    28,    29,    30,    31,    -1,    -1,
       -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1053,8 +843,8 @@ static const yytype_int16 yycheck[] =
       54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,
       64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,
-      -1,    -1,    96,    97,    -1,    99,   100,    -1,   102,   103,
+      -1,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,    93,
+      94,    -1,    -1,    -1,    -1,    -1,   100,   101,   102,   103,
       11,    -1,    13,    14,    15,    16,    17,    -1,    -1,    20,
       21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
       31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
@@ -1062,8 +852,8 @@ static const yytype_int16 yycheck[] =
       -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
       -1,    62,    63,    64,    65,    66,    67,    68,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-      -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    99,   100,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    -1,
+      91,    -1,    93,    94,    -1,    -1,    -1,    -1,    99,   100,
       -1,   102,   103,    11,    -1,    13,    14,    15,    16,    17,
       -1,    -1,    20,    21,    22,    23,    24,    -1,    26,    27,
       28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
@@ -1072,7 +862,7 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
       68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      88,    89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,
+      88,    89,    -1,    91,    -1,    93,    94,    -1,    -1,    -1,
       -1,    99,   100,    -1,   102,   103,    11,    -1,    13,    14,
       15,    16,    17,    -1,    -1,    20,    21,    22,    23,    24,
       -1,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
@@ -1081,8 +871,8 @@ static const yytype_int16 yycheck[] =
       55,    56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,
       65,    66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    88,    89,    90,    -1,    -1,    -1,    -1,
-      -1,    96,    97,    -1,    99,   100,    -1,   102,   103,    11,
+      -1,    -1,    -1,    88,    89,    -1,    91,    -1,    93,    94,
+      -1,    -1,    -1,    -1,    99,   100,    -1,   102,   103,    11,
       -1,    13,    14,    15,    16,    17,    -1,    -1,    20,    21,
       22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
       -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
@@ -1090,8 +880,8 @@ static const yytype_int16 yycheck[] =
       52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,
       62,    63,    64,    65,    66,    67,    68,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    -1,
-      -1,    -1,    -1,    -1,    96,    97,    -1,    99,   100,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    91,
+      -1,    93,    94,    -1,    -1,    -1,    -1,    99,   100,    -1,
      102,   103,    11,    -1,    13,    14,    15,    16,    17,    -1,
       -1,    20,    21,    22,    23,    24,    -1,    26,    27,    28,
       29,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
@@ -1100,32 +890,60 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    62,    63,    64,    65,    66,    67,    68,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    -1,    -1,    -1,    -1,    -1,    96,    97,    -1,
-      -1,   100,    -1,   102,   103,    11,    -1,    13,    14,    15,
+      89,    -1,    91,    -1,    93,    94,    -1,    -1,    -1,    -1,
+      99,   100,    -1,   102,   103,    11,    -1,    13,    14,    15,
       16,    17,    -1,    -1,    20,    21,    22,    23,    24,    -1,
       26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
       36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,
       56,    57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,
       66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      76,    51,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
-      60,    61,    88,    89,    90,    -1,    -1,    -1,    -1,    -1,
-      96,    97,    -1,    -1,   100,    -1,   102,   103,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    -1,    -1,
-      -1,    -1,    92,    93,    94,    95,    51,    -1,    98,    -1,
-      -1,    -1,    -1,    58,    59,    60,    61,    -1,    -1,    -1,
+      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    -1,    91,    -1,    93,    94,    -1,
+      -1,    -1,    -1,    99,   100,    -1,   102,   103,    11,    -1,
+      13,    14,    15,    16,    17,    -1,    -1,    20,    21,    22,
+      23,    24,    -1,    26,    27,    28,    29,    30,    31,    -1,
+      -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    52,
+      53,    54,    55,    56,    57,    -1,    -1,    -1,    -1,    62,
+      63,    64,    65,    66,    67,    68,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    -1,    91,    -1,
+      93,    94,    -1,    -1,    -1,    -1,    99,   100,    -1,   102,
+     103,    11,    -1,    13,    14,    15,    16,    17,    -1,    -1,
+      20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
+      30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
+      -1,    -1,    62,    63,    64,    65,    66,    67,    68,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
+      -1,    91,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
+     100,    -1,   102,   103,    11,    -1,    13,    14,    15,    16,
+      17,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
+      27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    78,    79,    -1,    81,    82,    83,    84,
-      85,    86,    87,    -1,    -1,    -1,    -1,    92,    93,    94,
-      95,    51,    -1,    98,    -1,    -1,    -1,    -1,    58,    59,
-      60,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    -1,    -1,
-      -1,    -1,    92,    93,    94,    95,    -1,    -1,    98
+      -1,    -1,    -1,    50,    -1,    52,    53,    54,    55,    56,
+      57,    -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,
+      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      51,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,
+      61,    88,    89,    -1,    91,    -1,    93,    94,    -1,    -1,
+      -1,    -1,    -1,   100,    -1,   102,   103,    78,    79,    80,
+      81,    82,    83,    84,    85,    86,    87,    -1,    -1,    -1,
+      -1,    92,    51,    -1,    95,    96,    97,    98,    -1,    58,
+      59,    60,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    -1,
+      -1,    -1,    -1,    92,    51,    -1,    95,    96,    97,    98,
+      -1,    58,    59,    60,    61,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    -1,    -1,    -1,    -1,    92,    -1,    -1,    95,    96,
+      97,    98
 };
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
+  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+     symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
        0,     3,     4,     5,     6,     7,     8,   106,   107,   108,
@@ -1133,7 +951,7 @@ static const yytype_uint8 yystos[] =
       16,    17,    20,    21,    22,    23,    24,    26,    27,    28,
       29,    30,    31,    36,    50,    52,    53,    54,    55,    56,
       57,    62,    63,    64,    65,    66,    67,    68,    76,    88,
-      89,    90,    96,    97,   100,   102,   103,   152,   153,   154,
+      89,    91,    93,    94,   100,   102,   103,   152,   153,   154,
      157,   158,   159,   160,   161,   162,   164,   167,   173,   174,
      175,   176,   177,   178,   179,   180,   181,     9,   113,     1,
       32,    34,    35,    37,    38,    39,    40,    41,    42,    46,
@@ -1142,13 +960,13 @@ static const yytype_uint8 yystos[] =
      113,   174,   182,   182,   182,   182,   182,   163,    11,   100,
      162,   143,   143,   162,   100,   100,   100,   113,   162,    20,
      153,   166,   174,   182,   182,   113,   162,   101,   152,    20,
-      25,   145,   162,    90,   100,   165,   174,   175,   176,   162,
+      25,   145,   162,    91,   100,   165,   174,   175,   176,   162,
      153,   162,   162,   162,   162,   162,    99,   152,   182,   182,
       73,    74,    75,    77,     9,    11,   100,    51,    58,    59,
       60,    61,    78,    79,    81,    82,    83,    84,    85,    86,
-      87,    92,    93,    94,    95,    98,   100,     9,    11,     9,
+      87,    92,    95,    96,    97,    98,   100,     9,    11,     9,
       11,     9,    11,     9,   115,   144,   145,    20,   142,   100,
-     100,   100,   100,    67,    90,   100,   172,   174,   100,   100,
+     100,   100,   100,    67,    91,   100,   172,   174,   100,   100,
      113,    45,   134,   101,    39,    40,    41,    42,    46,    48,
      121,   122,   120,    12,   166,   100,   100,   152,    99,   113,
       23,   115,   146,    99,    99,   152,   167,   182,   153,    10,
@@ -1158,7 +976,7 @@ static const yytype_uint8 yystos[] =
      162,   162,   162,   162,   162,   162,   162,     9,    11,    15,
       16,    17,    21,    62,   100,   102,   103,   156,   174,    99,
      152,   152,   152,   152,   152,   152,   152,   152,   118,    20,
-     141,   142,    20,   125,   115,   115,   115,   115,    90,   115,
+     141,   142,    20,   125,   115,   115,   115,   115,    91,   115,
       67,   170,   171,   173,   174,   175,   176,   115,   115,   100,
      115,   115,   113,   152,   138,   152,   152,   152,   152,   152,
      167,   153,    12,   155,   100,   149,    69,   147,    99,    99,
@@ -1183,6 +1001,68 @@ static const yytype_uint8 yystos[] =
      116
 };
 
+  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,   105,   107,   106,   108,   106,   109,   106,   110,   106,
+     111,   106,   112,   106,   113,   114,   115,   116,   117,   118,
+     118,   119,   119,   120,   120,   121,   121,   122,   122,   123,
+     122,   124,   122,   122,   125,   122,   122,   122,   122,   122,
+     122,   122,   122,   126,   127,   122,   122,   122,   128,   122,
+     122,   122,   122,   129,   122,   122,   122,   130,   131,   131,
+     132,   132,   132,   132,   132,   132,   132,   132,   133,   133,
+     133,   134,   134,   135,   136,   136,   137,   137,   138,   139,
+     140,   141,   141,   142,   143,   144,   145,   145,   146,   146,
+     147,   147,   147,   148,   148,   150,   149,   151,   151,   152,
+     152,   152,   152,   153,   153,   153,   154,   154,   154,   154,
+     154,   154,   154,   154,   155,   154,   156,   156,   157,   157,
+     157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
+     157,   157,   158,   158,   158,   158,   158,   158,   158,   158,
+     158,   158,   158,   158,   158,   158,   159,   159,   159,   159,
+     159,   159,   159,   159,   159,   160,   160,   160,   160,   160,
+     160,   161,   161,   162,   162,   162,   162,   162,   162,   162,
+     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
+     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
+     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
+     162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
+     162,   162,   163,   162,   162,   162,   162,   162,   164,   164,
+     164,   165,   165,   165,   165,   165,   166,   166,   167,   167,
+     168,   168,   169,   170,   170,   170,   171,   171,   172,   172,
+     173,   174,   175,   176,   177,   177,   178,   179,   179,   180,
+     180,   181,   181,   182,   182,   182,   182
+};
+
+  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
+       0,     3,     0,     3,     4,     7,     0,     4,     0,     0,
+       2,     0,     2,     1,     1,     2,     2,     1,     4,     0,
+       7,     0,    10,     4,     0,     7,     7,     7,     6,     6,
+       2,     8,     8,     0,     0,    13,     9,     8,     0,    10,
+       9,     7,     2,     0,     8,     2,     1,     2,     0,     3,
+       1,     1,     3,     3,     3,     3,     3,     3,     0,     2,
+       6,     0,     2,     0,     0,     1,     0,     1,     1,     1,
+       1,     1,     0,     0,     0,     0,     1,     1,     0,     1,
+       0,     2,     1,     2,     1,     0,     3,     1,     1,     3,
+       3,     3,     1,     2,     3,     1,     3,     5,     6,     3,
+       3,     5,     2,     4,     0,     5,     1,     1,     5,     4,
+       5,     4,     5,     6,     5,     4,     5,     4,     3,     6,
+       4,     5,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     3,     2,     4,     3,     5,
+       8,     2,     2,     1,     1,     1,     1,     5,     2,     3,
+       1,     2,     3,     1,     2,     1,     1,     1,     1,     1,
+       1,     4,     4,     5,     5,     1,     1,     3,     4,     3,
+       4,     4,     4,     4,     4,     1,     2,     2,     1,     2,
+       2,     1,     2,     1,     2,     1,     3,     1,     3,     1,
+       3,     4,     0,     6,     1,     1,     1,     1,     3,     2,
+       4,     3,     2,     1,     1,     1,     0,     1,     0,     1,
+       0,     2,     1,     1,     1,     1,     1,     1,     2,     2,
+       2,     2,     2,     2,     2,     4,     2,     1,     3,     1,
+       3,     1,     3,     1,     1,     1,     1
+};
+
 typedef enum {
        toketype_ival, toketype_opval, toketype_pval
 } toketypes;
@@ -1192,24 +1072,24 @@ static const toketypes yy_type_tab[] =
 {
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_pval,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
+  toketype_pval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival,
-  toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
-  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval,
-  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+  toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval,
+  toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
+  toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
+  toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
+  toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
   toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
@@ -1220,6 +1100,6 @@ static const toketypes yy_type_tab[] =
 };
 
 /* Generated from:
- * 0e541d3dbc868833736c1ead2e604316bea18db0d8a011efbabaa89bc12eee70 perly.y
+ * fba24dfc68a3a84c9ae95cb9e14cc156ac487e6f3228cdf84c166d3cd820e59a perly.y
  * 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl
  * ex: set ro: */
diff --git a/perly.y b/perly.y
index 489291a..6eb4b23 100644 (file)
--- a/perly.y
+++ b/perly.y
@@ -47,7 +47,7 @@
 
 %token <ival> '{' '}' '[' ']' '-' '+' '@' '%' '&' '=' '.'
 
-%token <opval> WORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST
+%token <opval> BAREWORD METHOD FUNCMETH THING PMFUNC PRIVATEREF QWLIST
 %token <opval> FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB
 %token <opval> PLUGEXPR PLUGSTMT
 %token <pval> LABEL
@@ -336,7 +336,7 @@ barestmt:   PLUGSTMT
                          intro_my();
                          parser->parsed_sub = 1;
                        }
-       |       PACKAGE WORD WORD ';'
+       |       PACKAGE BAREWORD BAREWORD ';'
                        {
                          package($3);
                          if ($2)
@@ -345,7 +345,7 @@ barestmt:   PLUGSTMT
                        }
        |       USE startsub
                        { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
-               WORD WORD optlistexpr ';'
+               BAREWORD BAREWORD optlistexpr ';'
                        {
                          SvREFCNT_inc_simple_void(PL_compcv);
                          utilize($1, $2, $4, $5, $6);
@@ -453,7 +453,7 @@ barestmt:   PLUGSTMT
                          $$ = newWHILEOP(0, 1, (LOOP*)(OP*)NULL,
                                  (OP*)NULL, $1, $2, 0);
                        }
-       |       PACKAGE WORD WORD '{' remember
+       |       PACKAGE BAREWORD BAREWORD '{' remember
                        {
                          package($3);
                          if ($2) {
@@ -581,7 +581,7 @@ mnexpr      :       nexpr
                        { $$ = $1; intro_my(); }
        ;
 
-formname:      WORD            { $$ = $1; }
+formname:      BAREWORD        { $$ = $1; }
        |       /* NULL */      { $$ = (OP*)NULL; }
        ;
 
@@ -602,7 +602,7 @@ startformsub:       /* NULL */      /* start a format subroutine scope */
        ;
 
 /* Name of a subroutine - must be a bareword, could be special */
-subname        :       WORD
+subname        :       BAREWORD
        |       PRIVATEREF
        ;
 
@@ -1028,7 +1028,7 @@ term      :       termbinop
                        }
                    '(' listexpr optrepl ')'
                        { $$ = pmruntime($1, $4, $5, 1, $<ival>2); }
-       |       WORD
+       |       BAREWORD
        |       listop
        |       YADAYADA
                        {
@@ -1145,7 +1145,7 @@ gelem     :       star
        ;
 
 /* Indirect objects */
-indirob        :       WORD
+indirob        :       BAREWORD
                        { $$ = scalar($1); }
        |       scalar %prec PREC_LOW
                        { $$ = scalar($1); }
diff --git a/toke.c b/toke.c
index 9ab470b..abf0377 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -211,7 +211,7 @@ static const char* const lex_state_names[] = {
 #define PREREF(retval) return (PL_expect = XREF,PL_bufptr = s, REPORT(retval))
 #define TERM(retval) return (CLINE, PL_expect = XOPERATOR, PL_bufptr = s, REPORT(retval))
 #define POSTDEREF(f) return (PL_bufptr = s, S_postderef(aTHX_ REPORT(f),s[1]))
-#define LOOPX(f) return (PL_bufptr = force_word(s,WORD,TRUE,FALSE), \
+#define LOOPX(f) return (PL_bufptr = force_word(s,BAREWORD,TRUE,FALSE), \
                         pl_yylval.ival=f, \
                         PL_expect = PL_nexttoke ? XOPERATOR : XTERM, \
                         REPORT((int)LOOPEX))
@@ -373,7 +373,7 @@ static struct debug_tokens {
     { USE,             TOKENTYPE_IVAL,         "USE" },
     { WHEN,            TOKENTYPE_IVAL,         "WHEN" },
     { WHILE,           TOKENTYPE_IVAL,         "WHILE" },
-    { WORD,            TOKENTYPE_OPVAL,        "WORD" },
+    { BAREWORD,                TOKENTYPE_OPVAL,        "BAREWORD" },
     { YADAYADA,                TOKENTYPE_IVAL,         "YADAYADA" },
     { 0,               TOKENTYPE_NONE,         NULL }
 };
@@ -1995,7 +1995,8 @@ S_newSV_maybe_utf8(pTHX_ const char *const start, STRLEN len)
  *
  * Arguments:
  *   char *start : buffer position (must be within PL_linestr)
- *   int token   : PL_next* will be this type of bare word (e.g., METHOD,WORD)
+ *   int token   : PL_next* will be this type of bare word
+ *                 (e.g., METHOD,BAREWORD)
  *   int check_keyword : if true, Perl checks to make sure the word isn't
  *       a keyword (do this if the word is a label, e.g. goto FOO)
  *   int allow_pack : if true, : characters will also be allowed (require,
@@ -2046,7 +2047,7 @@ S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack)
  * Called when the lexer wants $foo *foo &foo etc, but the program
  * text only contains the "foo" portion.  The first argument is a pointer
  * to the "foo", and the second argument is the type symbol to prefix.
- * Forces the next token to be a "WORD".
+ * Forces the next token to be a "BAREWORD".
  * Creates the symbol if it didn't already exist (via gv_fetchpv()).
  */
 
@@ -2060,7 +2061,7 @@ S_force_ident(pTHX_ const char *s, int kind)
        OP* const o = (OP*)newSVOP(OP_CONST, 0, newSVpvn_flags(s, len,
                                                                 UTF ? SVf_UTF8 : 0));
        NEXTVAL_NEXTTOKE.opval = o;
-       force_next(WORD);
+       force_next(BAREWORD);
        if (kind) {
            o->op_private = OPpCONST_ENTERED;
            /* XXX see note in pp_entereval() for why we forgo typo
@@ -2155,7 +2156,7 @@ S_force_version(pTHX_ char *s, int guessing)
 
     /* NOTE: The parser sees the package name and the VERSION swapped */
     NEXTVAL_NEXTTOKE.opval = version;
-    force_next(WORD);
+    force_next(BAREWORD);
 
     return s;
 }
@@ -2192,7 +2193,7 @@ S_force_strict_version(pTHX_ char *s)
 
     /* NOTE: The parser sees the package name and the VERSION swapped */
     NEXTVAL_NEXTTOKE.opval = version;
-    force_next(WORD);
+    force_next(BAREWORD);
 
     return s;
 }
@@ -4096,7 +4097,7 @@ S_intuit_method(pTHX_ char *start, SV *ioname, CV *cv)
                                                  S_newSV_maybe_utf8(aTHX_ tmpbuf, len));
            NEXTVAL_NEXTTOKE.opval->op_private = OPpCONST_BARE;
            PL_expect = XTERM;
-           force_next(WORD);
+           force_next(BAREWORD);
            PL_bufptr = s;
            return *s == '(' ? FUNCMETH : METHOD;
        }
@@ -4372,15 +4373,15 @@ S_tokenize_use(pTHX_ int is_use, char *s) {
        if (*s == ';' || *s == '}'
                || (s = skipspace(s), (*s == ';' || *s == '}'))) {
            NEXTVAL_NEXTTOKE.opval = NULL;
-           force_next(WORD);
+           force_next(BAREWORD);
        }
        else if (*s == 'v') {
-           s = force_word(s,WORD,FALSE,TRUE);
+           s = force_word(s,BAREWORD,FALSE,TRUE);
            s = force_version(s, FALSE);
        }
     }
     else {
-       s = force_word(s,WORD,FALSE,TRUE);
+       s = force_word(s,BAREWORD,FALSE,TRUE);
        s = force_version(s, FALSE);
     }
     pl_yylval.ival = is_use;
@@ -5251,7 +5252,7 @@ Perl_yylex(pTHX)
                s++;
 
            if (strnEQ(s,"=>",2)) {
-               s = force_word(PL_bufptr,WORD,FALSE,FALSE);
+               s = force_word(PL_bufptr,BAREWORD,FALSE,FALSE);
                DEBUG_T( { printbuf("### Saw unary minus before =>, forcing word %s\n", s); } );
                OPERATOR('-');          /* unary minus */
            }
@@ -5734,7 +5735,7 @@ Perl_yylex(pTHX)
                    d++;
                if (*d == '}') {
                    const char minus = (PL_tokenbuf[0] == '-');
-                   s = force_word(s + minus, WORD, FALSE, TRUE);
+                   s = force_word(s + minus, BAREWORD, FALSE, TRUE);
                    if (minus)
                        force_next('-');
                }
@@ -6679,7 +6680,7 @@ Perl_yylex(pTHX)
                = (OP*)newSVOP(OP_CONST, 0,
                               S_newSV_maybe_utf8(aTHX_ PL_tokenbuf, len));
            pl_yylval.opval->op_private = OPpCONST_BARE;
-           TERM(WORD);
+           TERM(BAREWORD);
        }
 
        /* Check for plugged-in keyword */
@@ -7001,7 +7002,7 @@ Perl_yylex(pTHX)
                              SvUTF8_on(sv);
                        SvREADONLY_on(sv);
                    }
-                   TERM(WORD);
+                   TERM(BAREWORD);
                }
 
                /* If followed by a paren, it's certainly a subroutine. */
@@ -7020,7 +7021,7 @@ Perl_yylex(pTHX)
                        off ? rv2cv_op : pl_yylval.opval;
                    if (off)
                         op_free(pl_yylval.opval), force_next(PRIVATEREF);
-                   else op_free(rv2cv_op),        force_next(WORD);
+                   else op_free(rv2cv_op),        force_next(BAREWORD);
                    pl_yylval.ival = 0;
                    TOKEN('&');
                }
@@ -7082,7 +7083,7 @@ Perl_yylex(pTHX)
                            pl_yylval.opval->op_folded = 1;
                            pl_yylval.opval->op_flags |= OPf_SPECIAL;
                        }
-                       TOKEN(WORD);
+                       TOKEN(BAREWORD);
                    }
 
                    op_free(pl_yylval.opval);
@@ -7140,7 +7141,7 @@ Perl_yylex(pTHX)
                    }
                    NEXTVAL_NEXTTOKE.opval = pl_yylval.opval;
                    PL_expect = XTERM;
-                   force_next(off ? PRIVATEREF : WORD);
+                   force_next(off ? PRIVATEREF : BAREWORD);
                    if (!PL_lex_allbrackets
                         && PL_lex_fakeeof > LEX_FAKEEOF_LOWLOGIC)
                     {
@@ -7197,7 +7198,7 @@ Perl_yylex(pTHX)
                                     "Ambiguous use of %c resolved as operator %c",
                                     lastchar, lastchar);
                }
-               TOKEN(WORD);
+               TOKEN(BAREWORD);
            }
 
        case KEY___FILE__:
@@ -7901,7 +7902,7 @@ Perl_yylex(pTHX)
            LOP(OP_PACK,XTERM);
 
        case KEY_package:
-           s = force_word(s,WORD,FALSE,TRUE);
+           s = force_word(s,BAREWORD,FALSE,TRUE);
            s = skipspace(s);
            s = force_strict_version(s);
            PREBLOCK(PACKAGE);
@@ -8002,7 +8003,7 @@ Perl_yylex(pTHX)
                    || (s = force_version(s, TRUE), *s == 'v'))
            {
                *PL_tokenbuf = '\0';
-               s = force_word(s,WORD,TRUE,TRUE);
+               s = force_word(s,BAREWORD,TRUE,TRUE);
                if (isIDFIRST_lazy_if(PL_tokenbuf,UTF))
                    gv_stashpvn(PL_tokenbuf, strlen(PL_tokenbuf),
                                 GV_ADD | (UTF ? SVf_UTF8 : 0));
@@ -8166,7 +8167,7 @@ Perl_yylex(pTHX)
            checkcomma(s,PL_tokenbuf,"subroutine name");
            s = skipspace(s);
            PL_expect = XTERM;
-           s = force_word(s,WORD,TRUE,TRUE);
+           s = force_word(s,BAREWORD,TRUE,TRUE);
            LOP(OP_SORT,XREF);
 
        case KEY_split:
@@ -8254,7 +8255,7 @@ Perl_yylex(pTHX)
                         NEXTVAL_NEXTTOKE.opval
                             = (OP*)newSVOP(OP_CONST,0, format_name);
                         NEXTVAL_NEXTTOKE.opval->op_private |= OPpCONST_BARE;
-                        force_next(WORD);
+                        force_next(BAREWORD);
                     }
                    PREBLOCK(FORMAT);
                }
@@ -8463,7 +8464,7 @@ Perl_yylex(pTHX)
 
   Returns:
     PRIVATEREF if this is a lexical name.
-    WORD       if this belongs to a package.
+    BAREWORD   if this belongs to a package.
 
   Structure:
       if we're in a my declaration
@@ -8547,7 +8548,7 @@ S_pending_ident(pTHX)
                     ((PL_tokenbuf[0] == '$') ? SVt_PV
                      : (PL_tokenbuf[0] == '@') ? SVt_PVAV
                      : SVt_PVHV));
-                return WORD;
+                return BAREWORD;
             }
 
             pl_yylval.opval = newOP(OP_PADANY, 0);
@@ -8595,7 +8596,7 @@ S_pending_ident(pTHX)
                     ((PL_tokenbuf[0] == '$') ? SVt_PV
                      : (PL_tokenbuf[0] == '@') ? SVt_PVAV
                      : SVt_PVHV));
-    return WORD;
+    return BAREWORD;
 }
 
 STATIC void