Author: kjs
Date: Sun Nov  4 10:44:27 2007
New Revision: 22707

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

Log:
[pirc|new]
o allow both "goto" and "," in if/unless statements, so as to support PASM 
style if statements.

Modified: trunk/compilers/pirc/new/pir.y
==============================================================================
--- trunk/compilers/pirc/new/pir.y      (original)
+++ trunk/compilers/pirc/new/pir.y      Sun Nov  4 10:44:27 2007
@@ -453,12 +453,16 @@
          ;
 
 
-if_statement: "if" condition goto_statement
+if_statement: "if" condition goto identifier "\n"
             ;
 
-unless_statement: "unless" condition goto_statement
+unless_statement: "unless" condition goto identifier "\n"
                 ;
 
+goto: "goto" /* PIR mode */
+    | ','    /* PASM mode*/
+    ;
+
 goto_statement: "goto" identifier "\n"
               ;
 

Modified: trunk/compilers/pirc/new/pirparser.c
==============================================================================
--- trunk/compilers/pirc/new/pirparser.c        (original)
+++ trunk/compilers/pirc/new/pirparser.c        Sun Nov  4 10:44:27 2007
@@ -592,16 +592,16 @@
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  4
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   476
+#define YYLAST   472
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  117
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  99
+#define YYNNTS  100
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  252
+#define YYNRULES  254
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  402
+#define YYNSTATES  408
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -669,26 +669,26 @@
      271,   273,   275,   277,   279,   281,   283,   285,   287,   289,
      291,   293,   295,   297,   299,   301,   303,   305,   307,   309,
      311,   313,   315,   317,   319,   321,   323,   325,   327,   329,
-     331,   335,   337,   341,   343,   345,   347,   351,   355,   359,
-     364,   366,   370,   372,   375,   377,   379,   385,   387,   389,
-     398,   399,   402,   407,   411,   414,   420,   421,   424,   425,
-     428,   433,   435,   442,   446,   449,   450,   452,   454,   458,
-     461,   462,   465,   467,   469,   471,   474,   476,   478,   480,
-     482,   484,   486,   491,   493,   495,   497,   499,   501,   503,
-     505,   507,   513,   515,   517,   521,   525,   529,   533,   534,
-     536,   538,   542,   545,   549,   555,   556,   559,   564,   565,
-     568,   573,   574,   577,   579,   582,   583,   587,   590,   593,
-     597,   602,   607,   612,   617,   620,   622,   626,   628,   630,
-     632,   634,   636,   638,   640,   642,   644,   646,   648,   650,
-     652,   654,   656,   658,   660,   662,   664,   666,   668,   670,
-     672,   674,   676
+     331,   335,   337,   341,   343,   345,   347,   353,   359,   361,
+     363,   367,   372,   374,   378,   380,   383,   385,   387,   393,
+     395,   397,   406,   407,   410,   415,   419,   422,   428,   429,
+     432,   433,   436,   441,   443,   450,   454,   457,   458,   460,
+     462,   466,   469,   470,   473,   475,   477,   479,   482,   484,
+     486,   488,   490,   492,   494,   499,   501,   503,   505,   507,
+     509,   511,   513,   515,   521,   523,   525,   529,   533,   537,
+     541,   542,   544,   546,   550,   553,   557,   563,   564,   567,
+     572,   573,   576,   581,   582,   585,   587,   590,   591,   595,
+     598,   601,   605,   610,   615,   620,   625,   628,   630,   634,
+     636,   638,   640,   642,   644,   646,   648,   650,   652,   654,
+     656,   658,   660,   662,   664,   666,   668,   670,   672,   674,
+     676,   678,   680,   682,   684
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
      118,     0,    -1,   119,   120,   119,    -1,    -1,     4,    -1,
-     121,    -1,   120,     4,   121,    -1,   132,    -1,   205,    -1,
+     121,    -1,   120,     4,   121,    -1,   132,    -1,   206,    -1,
      130,    -1,   126,    -1,   124,    -1,   125,    -1,   123,    -1,
      122,    -1,    10,     9,    37,    -1,    11,    36,    -1,     5,
       36,   102,    36,    -1,     6,    36,   102,    36,    -1,     7,
@@ -696,24 +696,24 @@
       -1,     3,   129,    -1,   129,    -1,    47,   151,     4,    -1,
       17,    -1,    17,   103,   131,   104,    -1,    36,    -1,   131,
      161,    36,    -1,    12,   133,   134,     4,   138,   141,    13,
-      -1,   168,    -1,    36,    -1,    -1,   134,   135,    -1,    88,
+      -1,   169,    -1,    36,    -1,    -1,   134,   135,    -1,    88,
       -1,    85,    -1,    86,    -1,    87,    -1,    89,    -1,    92,
-      -1,    90,   105,   133,   106,    -1,    91,   204,    -1,    93,
+      -1,    90,   105,   133,   106,    -1,    91,   205,    -1,    93,
      105,   136,   106,    -1,    94,    -1,    95,    -1,    -1,   136,
-     102,   137,    -1,   168,    -1,    36,    -1,   158,    -1,   214,
-      -1,    -1,   138,   139,    -1,    14,   140,   182,     4,    -1,
-     214,   168,    -1,   214,    36,    56,   168,    -1,    -1,   141,
+     102,   137,    -1,   169,    -1,    36,    -1,   158,    -1,   215,
+      -1,    -1,   138,   139,    -1,    14,   140,   183,     4,    -1,
+     215,   169,    -1,   215,    36,    56,   169,    -1,    -1,   141,
      142,    -1,     3,     4,    -1,     3,   143,    -1,   143,    -1,
-     162,    -1,   163,    -1,   164,    -1,   165,    -1,   169,    -1,
-     206,    -1,   188,    -1,   190,    -1,   170,    -1,   147,    -1,
+     162,    -1,   163,    -1,   165,    -1,   166,    -1,   170,    -1,
+     207,    -1,   189,    -1,   191,    -1,   171,    -1,   147,    -1,
      146,    -1,   129,    -1,   145,    -1,   144,    -1,     1,     4,
-      -1,    54,   215,     4,    -1,   215,   107,    54,     4,    -1,
-      30,   105,   179,   106,     4,    -1,   186,     4,    -1,   215,
-     148,     4,    -1,   157,   209,    -1,   158,   107,   209,    -1,
-     107,   149,    -1,   155,   209,    -1,   209,    -1,   209,   156,
-     209,    -1,   215,   158,    -1,   154,    -1,    36,   193,    -1,
-     186,    -1,   150,    -1,    47,   152,    -1,    -1,   152,    -1,
-     153,    -1,   152,   102,   153,    -1,   209,    -1,   185,   193,
+      -1,    54,   216,     4,    -1,   216,   107,    54,     4,    -1,
+      30,   105,   180,   106,     4,    -1,   187,     4,    -1,   216,
+     148,     4,    -1,   157,   210,    -1,   158,   107,   210,    -1,
+     107,   149,    -1,   155,   210,    -1,   210,    -1,   210,   156,
+     210,    -1,   216,   158,    -1,   154,    -1,    36,   194,    -1,
+     187,    -1,   150,    -1,    47,   152,    -1,    -1,   152,    -1,
+     153,    -1,   152,   102,   153,    -1,   210,    -1,   186,   194,
       -1,   108,    -1,   109,    -1,   110,    -1,   111,    -1,   108,
       -1,   112,    -1,   113,    -1,   114,    -1,    70,    -1,    63,
       -1,    64,    -1,    65,    -1,    67,    -1,    68,    -1,    66,
@@ -721,40 +721,41 @@
       -1,    78,    -1,    79,    -1,    82,    -1,    80,    -1,    81,
       -1,    83,    -1,    84,    -1,    72,    -1,    73,    -1,    71,
       -1,   103,   159,   104,    -1,   160,    -1,   159,   161,   160,
-      -1,   209,    -1,   115,    -1,   102,    -1,    52,   208,   164,
-      -1,    53,   208,   164,    -1,    55,   168,     4,    -1,    16,
-     214,   166,     4,    -1,   167,    -1,   166,   102,   167,    -1,
-     168,    -1,   168,    96,    -1,    35,    -1,    47,    -1,    15,
-      36,   102,   215,     4,    -1,   171,    -1,   178,    -1,    28,
-       4,   172,   174,     4,   176,    29,     4,    -1,    -1,   172,
-     173,    -1,    32,   209,   202,     4,    -1,    31,   185,   175,
-      -1,    34,   185,    -1,    18,   185,     4,    19,   187,    -1,
-      -1,   102,   185,    -1,    -1,   176,   177,    -1,    33,   215,
-     182,     4,    -1,   165,    -1,   105,   179,   106,   107,   184,
-       4,    -1,    36,   193,     4,    -1,   154,     4,    -1,    -1,
-     180,    -1,   181,    -1,   180,   102,   181,    -1,   215,   182,
-      -1,    -1,   182,   183,    -1,   100,    -1,   101,    -1,    98,
-      -1,    97,   204,    -1,    96,    -1,   154,    -1,   186,    -1,
-      43,    -1,    39,    -1,   168,    -1,   185,   116,   187,   193,
-      -1,   168,    -1,    36,    -1,    45,    -1,    41,    -1,    39,
-      -1,    43,    -1,   191,    -1,   189,    -1,    26,     4,   200,
-      27,     4,    -1,   192,    -1,   197,    -1,    22,   193,     4,
-      -1,    22,   184,     4,    -1,    23,   193,     4,    -1,   105,
-     194,   106,    -1,    -1,   195,    -1,   196,    -1,   195,   102,
-     196,    -1,   209,   202,    -1,    36,    56,   209,    -1,    24,
-       4,   198,    25,     4,    -1,    -1,   198,   199,    -1,    23,
-     209,   202,     4,    -1,    -1,   200,   201,    -1,    22,   209,
-     202,     4,    -1,    -1,   202,   203,    -1,    99,    -1,    97,
-     204,    -1,    -1,   105,    36,   106,    -1,    21,   207,    -1,
-     205,     4,    -1,    20,   207,     4,    -1,    48,   168,   107,
-      37,    -1,    49,   168,   107,    38,    -1,    50,   168,   107,
-      36,    -1,    51,   168,   107,    36,    -1,    54,   209,    -1,
-     209,    -1,   209,   213,   209,    -1,   215,    -1,   210,    -1,
-      36,    -1,    37,    -1,    38,    -1,    43,    -1,    44,    -1,
-      46,    -1,    45,    -1,   212,    -1,    39,    -1,    40,    -1,
-      42,    -1,    41,    -1,    57,    -1,    58,    -1,    59,    -1,
-      60,    -1,    62,    -1,    61,    -1,    48,    -1,    49,    -1,
-      50,    -1,    51,    -1,   211,    -1,   168,    -1
+      -1,   210,    -1,   115,    -1,   102,    -1,    52,   209,   164,
+     169,     4,    -1,    53,   209,   164,   169,     4,    -1,    55,
+      -1,   102,    -1,    55,   169,     4,    -1,    16,   215,   167,
+       4,    -1,   168,    -1,   167,   102,   168,    -1,   169,    -1,
+     169,    96,    -1,    35,    -1,    47,    -1,    15,    36,   102,
+     216,     4,    -1,   172,    -1,   179,    -1,    28,     4,   173,
+     175,     4,   177,    29,     4,    -1,    -1,   173,   174,    -1,
+      32,   210,   203,     4,    -1,    31,   186,   176,    -1,    34,
+     186,    -1,    18,   186,     4,    19,   188,    -1,    -1,   102,
+     186,    -1,    -1,   177,   178,    -1,    33,   216,   183,     4,
+      -1,   166,    -1,   105,   180,   106,   107,   185,     4,    -1,
+      36,   194,     4,    -1,   154,     4,    -1,    -1,   181,    -1,
+     182,    -1,   181,   102,   182,    -1,   216,   183,    -1,    -1,
+     183,   184,    -1,   100,    -1,   101,    -1,    98,    -1,    97,
+     205,    -1,    96,    -1,   154,    -1,   187,    -1,    43,    -1,
+      39,    -1,   169,    -1,   186,   116,   188,   194,    -1,   169,
+      -1,    36,    -1,    45,    -1,    41,    -1,    39,    -1,    43,
+      -1,   192,    -1,   190,    -1,    26,     4,   201,    27,     4,
+      -1,   193,    -1,   198,    -1,    22,   194,     4,    -1,    22,
+     185,     4,    -1,    23,   194,     4,    -1,   105,   195,   106,
+      -1,    -1,   196,    -1,   197,    -1,   196,   102,   197,    -1,
+     210,   203,    -1,    36,    56,   210,    -1,    24,     4,   199,
+      25,     4,    -1,    -1,   199,   200,    -1,    23,   210,   203,
+       4,    -1,    -1,   201,   202,    -1,    22,   210,   203,     4,
+      -1,    -1,   203,   204,    -1,    99,    -1,    97,   205,    -1,
+      -1,   105,    36,   106,    -1,    21,   208,    -1,   206,     4,
+      -1,    20,   208,     4,    -1,    48,   169,   107,    37,    -1,
+      49,   169,   107,    38,    -1,    50,   169,   107,    36,    -1,
+      51,   169,   107,    36,    -1,    54,   210,    -1,   210,    -1,
+     210,   214,   210,    -1,   216,    -1,   211,    -1,    36,    -1,
+      37,    -1,    38,    -1,    43,    -1,    44,    -1,    46,    -1,
+      45,    -1,   213,    -1,    39,    -1,    40,    -1,    42,    -1,
+      41,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
+      62,    -1,    61,    -1,    48,    -1,    49,    -1,    50,    -1,
+      51,    -1,   212,    -1,   169,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -773,19 +774,19 @@
      404,   405,   406,   409,   410,   411,   412,   413,   414,   415,
      416,   417,   418,   419,   420,   421,   425,   426,   427,   428,
      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
-     441,   444,   445,   448,   451,   452,   456,   459,   462,   465,
-     468,   469,   472,   473,   476,   477,   480,   483,   484,   487,
-     494,   495,   498,   501,   502,   503,   507,   508,   511,   512,
-     515,   516,   519,   520,   521,   524,   525,   528,   529,   532,
-     535,   536,   539,   540,   541,   542,   543,   546,   547,   550,
-     551,   552,   555,   558,   559,   560,   561,   562,   563,   566,
-     567,   570,   576,   577,   580,   581,   584,   587,   590,   591,
-     594,   595,   598,   599,   602,   607,   608,   611,   614,   615,
-     618,   621,   622,   625,   626,   629,   630,   633,   636,   637,
-     640,   641,   642,   643,   646,   647,   648,   651,   652,   655,
-     656,   657,   660,   661,   662,   663,   664,   668,   669,   670,
-     671,   674,   675,   676,   677,   678,   679,   682,   683,   684,
-     685,   688,   689
+     441,   444,   445,   448,   451,   452,   456,   459,   462,   463,
+     466,   469,   472,   473,   476,   477,   480,   481,   484,   487,
+     488,   491,   498,   499,   502,   505,   506,   507,   511,   512,
+     515,   516,   519,   520,   523,   524,   525,   528,   529,   532,
+     533,   536,   539,   540,   543,   544,   545,   546,   547,   550,
+     551,   554,   555,   556,   559,   562,   563,   564,   565,   566,
+     567,   570,   571,   574,   580,   581,   584,   585,   588,   591,
+     594,   595,   598,   599,   602,   603,   606,   611,   612,   615,
+     618,   619,   622,   625,   626,   629,   630,   633,   634,   637,
+     640,   641,   644,   645,   646,   647,   650,   651,   652,   655,
+     656,   659,   660,   661,   664,   665,   666,   667,   668,   672,
+     673,   674,   675,   678,   679,   680,   681,   682,   683,   686,
+     687,   688,   689,   692,   693
 };
 #endif
 
@@ -829,21 +830,22 @@
   "assignment_tail", "assignment_expression", "parrot_instruction",
   "opt_parrot_op_args", "parrot_op_args", "parrot_op_arg",
   "simple_invocation", "unop", "binop", "augmented_op", "keylist", "keys",
-  "key", "separator", "if_statement", "unless_statement", "goto_statement",
-  "local_declaration", "local_id_list", "local_id", "identifier",
-  "lex_declaration", "invocation_statement", "long_invocation_statement",
-  "long_arguments", "long_argument", "long_invocation",
-  "opt_return_continuation", "long_results", "long_result",
-  "short_invocation_statement", "opt_target_list", "target_list",
-  "result_target", "param_flags", "param_flag", "invocation_expression",
-  "invokable", "methodcall", "method", "return_statement",
-  "long_return_statement", "yield_statement", "short_return_statement",
-  "short_yield_statement", "arguments", "opt_arguments_list",
-  "arguments_list", "argument", "long_yield_statement",
-  "yield_expressions", "yield_expression", "return_expressions",
-  "return_expression", "arg_flags", "arg_flag", "opt_paren_string",
-  "const_declaration", "const_decl_statement", "const_tail", "condition",
-  "expression", "constant", "reg", "pasm_reg", "rel_op", "type", "target", 0
+  "key", "separator", "if_statement", "unless_statement", "goto",
+  "goto_statement", "local_declaration", "local_id_list", "local_id",
+  "identifier", "lex_declaration", "invocation_statement",
+  "long_invocation_statement", "long_arguments", "long_argument",
+  "long_invocation", "opt_return_continuation", "long_results",
+  "long_result", "short_invocation_statement", "opt_target_list",
+  "target_list", "result_target", "param_flags", "param_flag",
+  "invocation_expression", "invokable", "methodcall", "method",
+  "return_statement", "long_return_statement", "yield_statement",
+  "short_return_statement", "short_yield_statement", "arguments",
+  "opt_arguments_list", "arguments_list", "argument",
+  "long_yield_statement", "yield_expressions", "yield_expression",
+  "return_expressions", "return_expression", "arg_flags", "arg_flag",
+  "opt_paren_string", "const_declaration", "const_decl_statement",
+  "const_tail", "condition", "expression", "constant", "reg", "pasm_reg",
+  "rel_op", "type", "target", 0
 };
 #endif
 
@@ -883,19 +885,19 @@
      155,   155,   155,   156,   156,   156,   156,   156,   156,   156,
      156,   156,   156,   156,   156,   156,   157,   157,   157,   157,
      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
-     158,   159,   159,   160,   161,   161,   162,   163,   164,   165,
-     166,   166,   167,   167,   168,   168,   169,   170,   170,   171,
-     172,   172,   173,   174,   174,   174,   175,   175,   176,   176,
-     177,   177,   178,   178,   178,   179,   179,   180,   180,   181,
-     182,   182,   183,   183,   183,   183,   183,   184,   184,   185,
-     185,   185,   186,   187,   187,   187,   187,   187,   187,   188,
-     188,   189,   190,   190,   191,   191,   192,   193,   194,   194,
-     195,   195,   196,   196,   197,   198,   198,   199,   200,   200,
-     201,   202,   202,   203,   203,   204,   204,   205,   206,   206,
-     207,   207,   207,   207,   208,   208,   208,   209,   209,   210,
-     210,   210,   211,   211,   211,   211,   211,   212,   212,   212,
-     212,   213,   213,   213,   213,   213,   213,   214,   214,   214,
-     214,   215,   215
+     158,   159,   159,   160,   161,   161,   162,   163,   164,   164,
+     165,   166,   167,   167,   168,   168,   169,   169,   170,   171,
+     171,   172,   173,   173,   174,   175,   175,   175,   176,   176,
+     177,   177,   178,   178,   179,   179,   179,   180,   180,   181,
+     181,   182,   183,   183,   184,   184,   184,   184,   184,   185,
+     185,   186,   186,   186,   187,   188,   188,   188,   188,   188,
+     188,   189,   189,   190,   191,   191,   192,   192,   193,   194,
+     195,   195,   196,   196,   197,   197,   198,   199,   199,   200,
+     201,   201,   202,   203,   203,   204,   204,   205,   205,   206,
+     207,   207,   208,   208,   208,   208,   209,   209,   209,   210,
+     210,   211,   211,   211,   212,   212,   212,   212,   212,   213,
+     213,   213,   213,   214,   214,   214,   214,   214,   214,   215,
+     215,   215,   215,   216,   216
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -914,19 +916,19 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       3,     1,     3,     1,     1,     1,     3,     3,     3,     4,
-       1,     3,     1,     2,     1,     1,     5,     1,     1,     8,
-       0,     2,     4,     3,     2,     5,     0,     2,     0,     2,
-       4,     1,     6,     3,     2,     0,     1,     1,     3,     2,
-       0,     2,     1,     1,     1,     2,     1,     1,     1,     1,
-       1,     1,     4,     1,     1,     1,     1,     1,     1,     1,
-       1,     5,     1,     1,     3,     3,     3,     3,     0,     1,
-       1,     3,     2,     3,     5,     0,     2,     4,     0,     2,
-       4,     0,     2,     1,     2,     0,     3,     2,     2,     3,
-       4,     4,     4,     4,     2,     1,     3,     1,     1,     1,
+       3,     1,     3,     1,     1,     1,     5,     5,     1,     1,
+       3,     4,     1,     3,     1,     2,     1,     1,     5,     1,
+       1,     8,     0,     2,     4,     3,     2,     5,     0,     2,
+       0,     2,     4,     1,     6,     3,     2,     0,     1,     1,
+       3,     2,     0,     2,     1,     1,     1,     2,     1,     1,
+       1,     1,     1,     1,     4,     1,     1,     1,     1,     1,
+       1,     1,     1,     5,     1,     1,     3,     3,     3,     3,
+       0,     1,     1,     3,     2,     3,     5,     0,     2,     4,
+       0,     2,     4,     0,     2,     1,     2,     0,     3,     2,
+       2,     3,     4,     4,     4,     4,     2,     1,     3,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1
+       1,     1,     1,     1,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -936,45 +938,45 @@
 {
        3,     4,     0,     0,     1,     0,     0,     0,     0,     0,
        0,    26,     0,     3,     5,    14,    13,    11,    12,    10,
-       9,     7,     8,     0,     0,    20,     0,    16,   144,    32,
-     145,    33,    31,     0,     0,     0,     0,     0,   217,     4,
+       9,     7,     8,     0,     0,    20,     0,    16,   146,    32,
+     147,    33,    31,     0,     0,     0,     0,     0,   219,     4,
        2,     0,     0,     0,    15,     0,    28,     0,     0,     0,
        0,     0,     6,    17,    18,     0,    19,    94,    21,    24,
-      52,    36,    37,    38,    35,    39,     0,   215,    40,     0,
+      52,    36,    37,    38,    35,    39,     0,   217,    40,     0,
       44,    45,    34,   135,    27,   134,     0,     0,     0,     0,
-       0,    22,    23,   229,   230,   231,   237,   238,   240,   239,
-     232,   233,   235,   234,     0,    95,    96,   252,    98,   228,
-     251,   236,   227,    57,     0,     0,    42,    46,    29,   220,
-     221,   222,   223,    25,     0,     0,    53,     0,     0,     0,
-       0,    97,   247,   248,   249,   250,   170,     0,     0,     0,
+       0,    22,    23,   231,   232,   233,   239,   240,   242,   241,
+     234,   235,   237,   236,     0,    95,    96,   254,    98,   230,
+     253,   238,   229,    57,     0,     0,    42,    46,    29,   222,
+     223,   224,   225,    25,     0,     0,    53,     0,     0,     0,
+       0,    97,   249,   250,   251,   252,   172,     0,     0,     0,
       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   237,   232,   145,     0,     0,     0,     0,   165,    73,
+       0,   239,   234,   147,     0,     0,     0,     0,   167,    73,
       58,    61,    75,    74,    72,    71,     0,    62,    63,    64,
-      65,   252,    66,    70,   147,   148,     0,     0,    68,   190,
-      69,   189,   192,   193,     0,    67,     0,    41,   216,     0,
+      65,   254,    66,    70,   149,   150,     0,     0,    68,   192,
+      69,   191,   194,   195,     0,    67,     0,    41,   218,     0,
       43,     0,     0,    55,    76,    59,    60,     0,     0,     0,
-     180,   179,   198,   177,   181,     0,   178,     0,     0,   205,
-     208,   150,   165,     0,     0,     0,   225,     0,     0,     0,
-       0,   166,   167,   170,   164,     0,    99,    80,   218,   129,
+     182,   181,   200,   179,   183,     0,   180,     0,     0,   207,
+     210,   152,   167,     0,     0,     0,   227,     0,     0,     0,
+       0,   168,   169,   172,   166,     0,    99,    80,   220,   129,
      127,   128,   116,   117,   118,   119,   120,   121,   123,   124,
      122,   125,   126,     0,     0,     0,     0,     0,    49,    47,
-      50,    48,    51,    54,   176,   215,   174,   172,   173,   171,
-       0,     0,     0,   140,   142,   219,   229,     0,   199,   200,
-     211,   195,   194,   196,     0,     0,     0,     0,   163,   224,
-     136,   241,   242,   243,   244,   246,   245,     0,   137,    77,
-     138,     0,     0,   169,   184,   187,   186,   188,   185,   183,
-       0,     0,   131,   133,   229,   145,     0,   100,   101,   102,
-      84,    92,    89,     0,    91,    86,   227,    81,    82,     0,
-     175,    56,     0,   139,     0,   143,     0,   197,     0,   202,
-       0,     0,   206,     0,     0,   209,     0,     0,     0,     0,
-     151,     0,     0,   226,     0,   168,   182,   130,     0,    90,
-      93,    78,    85,   109,   110,   111,   114,   112,   113,   115,
-     108,   104,   103,   105,   106,   107,     0,    88,    83,   146,
-     141,   203,   201,   215,   213,   212,   211,   204,   211,   191,
-       0,   156,   211,   154,   158,    79,     0,   132,    87,   214,
-       0,     0,     0,     0,   153,     0,     0,   162,   207,   210,
-       0,   157,   152,     0,     0,   161,   159,   155,   149,   170,
-       0,   160
+      50,    48,    51,    54,   178,   217,   176,   174,   175,   173,
+       0,     0,     0,   142,   144,   221,   231,     0,   201,   202,
+     213,   197,   196,   198,     0,     0,     0,     0,   165,   226,
+     138,   139,     0,   243,   244,   245,   246,   248,   247,     0,
+       0,    77,   140,     0,     0,   171,   186,   189,   188,   190,
+     187,   185,     0,     0,   131,   133,   231,   147,     0,   100,
+     101,   102,    84,    92,    89,     0,    91,    86,   229,    81,
+      82,     0,   177,    56,     0,   141,     0,   145,     0,   199,
+       0,   204,     0,     0,   208,     0,     0,   211,     0,     0,
+       0,     0,   153,     0,     0,     0,   228,     0,     0,   170,
+     184,   130,     0,    90,    93,    78,    85,   109,   110,   111,
+     114,   112,   113,   115,   108,   104,   103,   105,   106,   107,
+       0,    88,    83,   148,   143,   205,   203,   217,   215,   214,
+     213,   206,   213,   193,     0,   158,   213,   156,   160,    79,
+     136,   137,     0,   132,    87,   216,     0,     0,     0,     0,
+     155,     0,     0,   164,   209,   212,     0,   159,   154,     0,
+       0,   163,   161,   157,   151,   172,     0,   162
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
@@ -983,185 +985,185 @@
       -1,     2,     3,    13,    14,    15,    16,    17,    18,    19,
       43,    58,   149,    20,    47,    21,    31,    45,    72,   120,
      239,   103,   116,   126,   117,   150,   151,   152,   153,   154,
-     155,   235,   300,   301,    94,    95,    96,   156,   303,   356,
-     236,   237,   291,   292,    76,   157,   158,   159,   160,   252,
-     253,    97,   162,   163,   164,   266,   330,   331,   384,   386,
-     396,   165,   210,   211,   212,   181,   249,   195,   166,   167,
-     290,   168,   169,   170,   171,   172,   197,   257,   258,   259,
-     173,   264,   322,   265,   325,   319,   365,   106,    22,   175,
-      38,   205,    98,    99,   100,   101,   277,   127,   102
+     155,   235,   302,   303,    94,    95,    96,   156,   305,   360,
+     236,   237,   293,   294,    76,   157,   158,   272,   159,   160,
+     252,   253,    97,   162,   163,   164,   266,   332,   333,   390,
+     392,   402,   165,   210,   211,   212,   181,   249,   195,   166,
+     167,   292,   168,   169,   170,   171,   172,   197,   257,   258,
+     259,   173,   264,   324,   265,   327,   321,   369,   106,    22,
+     175,    38,   205,    98,    99,   100,   101,   279,   127,   102
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -294
+#define YYPACT_NINF -313
 static const yytype_int16 yypact[] =
 {
-      36,  -294,    47,    66,  -294,    19,    20,    71,    87,    61,
-      23,    22,   150,   109,  -294,  -294,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,    28,    53,  -294,    85,  -294,  -294,  -294,
-    -294,  -294,  -294,   122,    -6,    -6,    -6,    -6,  -294,    66,
-    -294,   128,   138,    13,  -294,    57,  -294,   -65,    26,    79,
-      88,    96,  -294,  -294,  -294,    10,  -294,   416,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,  -294,    68,    99,  -294,   103,
-    -294,  -294,  -294,  -294,  -294,  -294,   181,   183,   180,   187,
-     189,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,  -294,   227,   131,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,   221,    23,   201,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,  -294,   416,   162,  -294,   206,   132,   133,
-      54,  -294,  -294,  -294,  -294,  -294,  -294,    44,   239,   253,
-    -294,   208,   162,   150,   -24,   151,   251,   266,   267,   167,
-     151,   -96,   -67,   366,   393,   393,   320,    -6,   320,  -294,
-    -294,  -294,  -294,  -294,  -294,  -294,   276,  -294,  -294,  -294,
-    -294,   -16,  -294,  -294,  -294,  -294,    65,   278,  -294,  -294,
-    -294,  -294,  -294,  -294,   280,  -294,   343,  -294,  -294,    17,
-    -294,    14,   229,  -294,  -294,  -294,  -294,   184,    -6,   283,
-    -294,  -294,   429,  -294,  -294,   286,  -294,   287,   297,  -294,
-    -294,  -294,   320,   298,   416,   248,   205,   248,   305,   306,
-     207,   210,  -294,  -294,  -294,   118,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,   416,   290,   310,   416,   211,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,    99,  -294,  -294,  -294,  -294,
-      -6,   320,     6,  -294,   219,  -294,   264,   215,   220,  -294,
-    -294,  -294,  -294,  -294,   160,    82,    67,   217,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,  -294,  -294,   416,  -294,  -294,
-    -294,   231,   320,    92,  -294,  -294,  -294,  -294,  -294,  -294,
-     151,     1,  -294,  -294,   151,   416,   335,  -294,  -294,  -294,
-    -294,  -294,  -294,   416,  -294,   282,   237,  -294,  -294,   416,
-    -294,  -294,   337,  -294,    -6,  -294,   416,  -294,   429,    97,
-     416,   338,  -294,   416,   339,  -294,   137,   137,   416,   137,
-    -294,   349,   350,  -294,   137,  -294,  -294,  -294,   416,  -294,
-     131,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,  -294,   416,  -294,  -294,  -294,
-    -294,  -294,  -294,    99,  -294,  -294,  -294,  -294,  -294,  -294,
-     352,   255,  -294,  -294,  -294,  -294,   364,  -294,  -294,  -294,
-      24,    41,   353,   137,  -294,    42,    15,  -294,  -294,  -294,
-     118,  -294,  -294,   365,   320,  -294,  -294,  -294,  -294,  -294,
-      31,  -294
+      18,  -313,    21,    64,  -313,    -8,    19,    68,    37,    77,
+      26,    13,   216,    97,  -313,  -313,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,    73,    78,  -313,    91,  -313,  -313,  -313,
+    -313,  -313,  -313,   130,   -12,   -12,   -12,   -12,  -313,    64,
+    -313,   154,   158,    42,  -313,    54,  -313,   -55,    95,    96,
+     100,   101,  -313,  -313,  -313,    10,  -313,   405,  -313,  -313,
+    -313,  -313,  -313,  -313,  -313,  -313,   112,   118,  -313,   139,
+    -313,  -313,  -313,  -313,  -313,  -313,   199,   206,   207,   211,
+     214,  -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,  -313,   247,   150,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,   244,    26,   224,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,  -313,   405,   266,  -313,   233,   165,   175,
+      -2,  -313,  -313,  -313,  -313,  -313,  -313,   138,   278,   309,
+    -313,   253,   266,   216,     1,   178,   286,   287,   301,   202,
+     178,   -26,   -18,   353,   385,   385,   186,   -12,   186,  -313,
+    -313,  -313,  -313,  -313,  -313,  -313,   304,  -313,  -313,  -313,
+    -313,    60,  -313,  -313,  -313,  -313,    67,   308,  -313,  -313,
+    -313,  -313,  -313,  -313,   316,  -313,    79,  -313,  -313,    17,
+    -313,    14,   267,  -313,  -313,  -313,  -313,   220,   -12,   322,
+    -313,  -313,   418,  -313,  -313,   323,  -313,   330,   332,  -313,
+    -313,  -313,   186,   336,   405,   -46,   153,   -46,   337,   338,
+     203,   241,  -313,  -313,  -313,   152,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,   405,   257,   342,   405,   240,  -313,  -313,
+    -313,  -313,  -313,  -313,  -313,   118,  -313,  -313,  -313,  -313,
+     -12,   186,     7,  -313,   262,  -313,   303,   254,   274,  -313,
+    -313,  -313,  -313,  -313,   193,    81,    65,   271,  -313,  -313,
+    -313,  -313,   -12,  -313,  -313,  -313,  -313,  -313,  -313,   405,
+     -12,  -313,  -313,   273,   186,   141,  -313,  -313,  -313,  -313,
+    -313,  -313,   178,   -24,  -313,  -313,   178,   405,   374,  -313,
+    -313,  -313,  -313,  -313,  -313,   405,  -313,   305,   279,  -313,
+    -313,   405,  -313,  -313,   377,  -313,   -12,  -313,   405,  -313,
+     418,   123,   405,   379,  -313,   405,   380,  -313,   157,   157,
+     405,   157,  -313,   381,   383,   397,  -313,   398,   157,  -313,
+    -313,  -313,   405,  -313,   150,  -313,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,  -313,
+     405,  -313,  -313,  -313,  -313,  -313,  -313,   118,  -313,  -313,
+    -313,  -313,  -313,  -313,   399,   302,  -313,  -313,  -313,  -313,
+    -313,  -313,   401,  -313,  -313,  -313,    30,    34,   387,   157,
+    -313,    35,     4,  -313,  -313,  -313,   152,  -313,  -313,   403,
+     186,  -313,  -313,  -313,  -313,  -313,    25,  -313
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -294,  -294,   358,  -294,   336,  -294,  -294,  -294,  -294,  -294,
-    -294,  -294,    -1,  -294,  -294,  -294,   270,  -294,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,  -294,   247,  -294,  -294,  -294,
-    -294,  -294,  -294,  -294,  -294,    83,   263,  -132,  -294,  -294,
-    -294,  -172,  -294,    43,    91,  -294,  -294,     9,    -7,  -294,
-      69,   -10,  -294,  -294,  -294,  -294,  -294,  -294,  -294,  -294,
-    -294,  -294,   182,  -294,   104,  -208,  -294,    51,  -293,  -128,
-      -3,  -294,  -294,  -294,  -294,  -294,  -123,  -294,  -294,    70,
-    -294,  -294,  -294,  -294,  -294,  -284,  -294,  -237,   -55,  -294,
-     256,   246,  -141,  -294,  -294,  -294,  -294,  -110,  -116
+    -313,  -313,   395,  -313,   370,  -313,  -313,  -313,  -313,  -313,
+    -313,  -313,    -1,  -313,  -313,  -313,   306,  -313,  -313,  -313,
+    -313,  -313,  -313,  -313,  -313,  -313,   282,  -313,  -313,  -313,
+    -313,  -313,  -313,  -313,  -313,   115,   319,  -132,  -313,  -313,
+    -313,  -172,  -313,    92,   122,  -313,  -313,   228,  -313,    44,
+    -313,   121,   -10,  -313,  -313,  -313,  -313,  -313,  -313,  -313,
+    -313,  -313,  -313,   236,  -313,   182,  -207,  -313,   129,  -312,
+    -129,    72,  -313,  -313,  -313,  -313,  -313,  -125,  -313,  -313,
+     149,  -313,  -313,  -313,  -313,  -313,  -288,  -313,  -237,   -86,
+    -313,   339,   325,  -141,  -313,  -313,  -313,  -313,  -120,  -116
 };
 
 /* 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 -182
+#define YYTABLE_NINF -184
 static const yytype_int16 yytable[] =
 {
-      32,   176,   193,   206,   206,   283,   196,   240,   310,  -180,
-     313,    28,   198,   176,    81,   190,    55,   203,   243,   191,
-    -180,    56,   188,    30,    48,    49,    50,    51,   388,    28,
-     208,   132,   213,   370,   371,   401,   373,    73,  -179,    74,
-       1,    30,    59,   216,   393,   389,   392,     4,   394,  -179,
-      75,   260,    28,   238,    82,    23,    24,    57,    28,    29,
-      57,    60,   174,   269,    30,   122,   123,   124,   125,   242,
-      30,     5,     6,     7,   174,    25,     8,     9,    10,    28,
-     182,   192,   380,    11,   381,   326,   213,    12,   385,  -181,
-     391,    30,   293,   305,    32,   308,    26,    27,   327,   328,
-    -181,   329,   302,    73,   323,   337,   304,   161,   314,   324,
-     244,   245,   246,    39,   247,   248,    75,   183,   306,   161,
-     233,   363,    44,   364,   194,    33,   379,   244,   245,   246,
-      41,   247,   248,    77,   357,   312,   333,   209,   363,   363,
-     364,   364,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    28,   284,    42,   179,   285,    46,   286,
-     180,   287,   342,   288,    53,    30,   213,   336,   358,   241,
-     192,   339,    28,   104,    54,   361,   190,   260,   254,   366,
-     191,   215,   368,   320,    30,   321,    78,   372,   244,   245,
-     246,   400,   247,   248,   363,    79,   364,   293,    34,    35,
-      36,    37,   193,    80,   105,   289,   196,   128,   107,   129,
-     122,   123,   124,   125,   270,   378,   278,   108,   110,   130,
-     109,   131,   132,   111,   161,   112,   133,    12,   134,   135,
-     136,   113,   137,   114,   138,   115,   139,   119,   177,   178,
-     311,    28,   140,   184,   187,   141,    87,    88,    89,   142,
-      91,    92,    93,   143,   128,   199,   192,   185,   144,   145,
-     146,   147,   271,   272,   273,   274,   275,   276,   131,   132,
-     200,   201,   202,   133,    12,   134,   135,   136,   399,   137,
-     214,   138,   217,   139,   218,   250,   251,   255,    28,   140,
-     261,   262,   141,    87,    88,    89,   142,    91,    92,    93,
-     143,   263,   268,   147,   254,   144,   145,   146,   147,   279,
-     280,   148,   282,   281,   307,   315,   194,   194,   309,   194,
-     316,   317,   318,   332,   194,    28,   294,    84,    85,   141,
-      87,    88,    89,   142,    91,    92,    93,   295,   334,   341,
-     233,   359,   367,   369,   296,   343,   344,   345,   346,   347,
-     348,   349,   350,   374,   375,    28,   382,   383,   148,    86,
-      87,    88,    89,    90,    91,    92,    93,    30,   387,   398,
-     -94,    40,   390,   194,   118,    52,   186,   121,   340,   395,
-     289,   377,   338,   360,   267,   376,   335,   397,   362,   189,
-     351,   207,     0,   352,   353,   354,   355,     0,   297,   298,
-     299,    28,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    30,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,    28,    83,
+      32,   176,   193,   206,   206,   196,   285,   240,   312,   270,
+     198,   315,   188,   176,    81,   203,   374,   375,   243,   377,
+     132,     4,     1,    28,    48,    49,    50,    51,    23,   407,
+     208,   174,   213,   399,   394,    30,    28,   400,   395,   398,
+     190,   216,    59,   174,   191,    55,    26,    73,    30,    74,
+      56,   260,    28,   238,    82,    24,   271,    57,    60,   242,
+      75,    28,    29,   269,    30,   122,   123,   124,   125,     5,
+       6,     7,    25,    30,     8,     9,    10,   397,    73,  -182,
+     341,    11,   386,   328,   387,    12,   213,  -181,   391,    57,
+    -182,    75,   295,   307,    32,   310,   329,   330,  -181,   331,
+     179,    39,   304,   325,   180,   306,   192,   161,   326,   316,
+     244,   245,   246,    27,   247,   248,    33,   183,   308,   161,
+     233,   244,   245,   246,   194,   247,   248,   367,    44,   368,
+     385,   367,   367,   368,   368,   314,   361,   209,   336,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
+     229,   230,   231,   232,   346,  -183,    46,   340,   213,   241,
+     362,   343,   192,    28,   182,    41,  -183,   365,   254,   260,
+      42,   370,   233,   215,   372,    30,   234,    28,   286,   376,
+      53,   287,    28,   288,    54,   289,   190,   290,   406,    30,
+     191,   295,    77,    78,    30,   291,   193,    79,    80,   196,
+     273,   274,   275,   276,   277,   278,   322,   104,   323,   384,
+     367,    28,   368,   105,   161,    86,    87,    88,    89,    90,
+      91,    92,    93,    30,   128,   108,   129,   244,   245,   246,
+     313,   247,   248,   109,   107,   110,   130,   111,   131,   132,
+     112,   113,   114,   133,    12,   134,   135,   136,   115,   137,
+     119,   138,   335,   139,    34,    35,    36,    37,    28,   140,
+     337,   177,   141,    87,    88,    89,   142,    91,    92,    93,
+     143,   178,   184,   192,   405,   144,   145,   146,   147,   187,
+     199,   200,    28,   296,    84,    85,   141,    87,    88,    89,
+     142,    91,    92,    93,   297,   201,   254,   202,   214,   283,
+     128,   298,   217,   185,   122,   123,   124,   125,   194,   194,
+     218,   194,   251,   250,   131,   132,   255,   261,   194,   133,
+      12,   134,   135,   136,   262,   137,   263,   138,   148,   139,
+     268,   281,   282,   284,    28,   140,   309,   311,   141,    87,
+      88,    89,   142,    91,    92,    93,   143,   -94,   317,   318,
+     319,   144,   145,   146,   147,   299,   300,   301,   347,   348,
+     349,   350,   351,   352,   353,   354,   320,   334,   345,   194,
+     338,   363,   233,   371,   373,   378,   291,   379,    28,    83,
       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      30,     0,     0,     0,     0,     0,   233,   204,     0,     0,
-     234,    28,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    30,    28,   256,    84,    85,    86,    87,
-      88,    89,    90,    91,    92,    93,    30
+      30,   380,   381,   388,   389,   393,   396,   404,    40,    52,
+     118,   186,   344,   355,   148,   342,   356,   357,   358,   359,
+      28,    83,    84,    85,    86,    87,    88,    89,    90,    91,
+      92,    93,    30,   121,   383,   280,   401,   364,   267,   204,
+      28,    83,    84,    85,    86,    87,    88,    89,    90,    91,
+      92,    93,    30,    28,   256,    84,    85,    86,    87,    88,
+      89,    90,    91,    92,    93,    30,   339,   382,   403,   366,
+     207,     0,   189
 };
 
 static const yytype_int16 yycheck[] =
 {
-      10,   117,   134,   144,   145,   213,   134,   179,   245,   105,
-       4,    35,   135,   129,     4,    39,     3,   140,     4,    43,
-     116,     8,   132,    47,    34,    35,    36,    37,     4,    35,
-     146,    16,   148,   326,   327,     4,   329,   102,   105,   104,
-       4,    47,    43,   166,    29,     4,     4,     0,    33,   116,
-     115,   192,    35,    36,    55,    36,    36,    47,    35,    36,
-      47,     4,   117,   204,    47,    48,    49,    50,    51,   179,
-      47,     5,     6,     7,   129,     4,    10,    11,    12,    35,
-      36,   105,   366,    17,   368,    18,   202,    21,   372,   105,
-     383,    47,   233,   234,   104,   236,     9,    36,    31,    32,
-     116,    34,   234,   102,    22,   104,   234,   117,   102,    27,
-      96,    97,    98,     4,   100,   101,   115,   127,   234,   129,
-     103,    97,    37,    99,   134,   103,   363,    96,    97,    98,
-     102,   100,   101,   107,   306,   251,   277,   147,    97,    97,
-      99,    99,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    35,    36,   102,   102,    39,    36,    41,
-     106,    43,   303,    45,    36,    47,   282,   290,   309,   179,
-     105,   294,    35,   105,    36,   316,    39,   318,   188,   320,
-      43,   116,   323,    23,    47,    25,   107,   328,    96,    97,
-      98,   399,   100,   101,    97,   107,    99,   338,    48,    49,
-      50,    51,   334,   107,   105,   215,   334,     1,   105,     3,
-      48,    49,    50,    51,   205,   356,   207,    36,    38,    13,
-      37,    15,    16,    36,   234,    36,    20,    21,    22,    23,
-      24,     4,    26,   102,    28,    14,    30,    36,   106,   106,
-     250,    35,    36,     4,    36,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,     1,     4,   105,     4,    52,    53,
-      54,    55,    57,    58,    59,    60,    61,    62,    15,    16,
-       4,     4,   105,    20,    21,    22,    23,    24,   394,    26,
-       4,    28,     4,    30,     4,    56,   102,     4,    35,    36,
-       4,     4,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,     4,     4,    55,   314,    52,    53,    54,    55,     4,
-       4,   105,   102,   106,     4,    96,   326,   327,   107,   329,
-      56,   106,   102,   106,   334,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,   107,     4,
-     103,     4,     4,     4,    54,    63,    64,    65,    66,    67,
-      68,    69,    70,     4,     4,    35,     4,   102,   105,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,     4,     4,
-       4,    13,    19,   383,   104,    39,   129,   114,   295,   386,
-     390,   338,   291,   314,   202,   334,   282,   390,   318,   133,
-     108,   145,    -1,   111,   112,   113,   114,    -1,   108,   109,
-     110,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    35,    36,
+      10,   117,   134,   144,   145,   134,   213,   179,   245,    55,
+     135,     4,   132,   129,     4,   140,   328,   329,     4,   331,
+      16,     0,     4,    35,    34,    35,    36,    37,    36,     4,
+     146,   117,   148,    29,     4,    47,    35,    33,     4,     4,
+      39,   166,    43,   129,    43,     3,     9,   102,    47,   104,
+       8,   192,    35,    36,    55,    36,   102,    47,     4,   179,
+     115,    35,    36,   204,    47,    48,    49,    50,    51,     5,
+       6,     7,     4,    47,    10,    11,    12,   389,   102,   105,
+     104,    17,   370,    18,   372,    21,   202,   105,   376,    47,
+     116,   115,   233,   234,   104,   236,    31,    32,   116,    34,
+     102,     4,   234,    22,   106,   234,   105,   117,    27,   102,
+      96,    97,    98,    36,   100,   101,   103,   127,   234,   129,
+     103,    96,    97,    98,   134,   100,   101,    97,    37,    99,
+     367,    97,    97,    99,    99,   251,   308,   147,   279,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    83,    84,   305,   105,    36,   292,   284,   179,
+     311,   296,   105,    35,    36,   102,   116,   318,   188,   320,
+     102,   322,   103,   116,   325,    47,   107,    35,    36,   330,
+      36,    39,    35,    41,    36,    43,    39,    45,   405,    47,
+      43,   342,   107,   107,    47,   215,   338,   107,   107,   338,
+      57,    58,    59,    60,    61,    62,    23,   105,    25,   360,
+      97,    35,    99,   105,   234,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,     1,    36,     3,    96,    97,    98,
+     250,   100,   101,    37,   105,    38,    13,    36,    15,    16,
+      36,     4,   102,    20,    21,    22,    23,    24,    14,    26,
+      36,    28,   272,    30,    48,    49,    50,    51,    35,    36,
+     280,   106,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,   106,     4,   105,   400,    52,    53,    54,    55,    36,
+       4,     4,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,     4,   316,   105,     4,   106,
+       1,    54,     4,     4,    48,    49,    50,    51,   328,   329,
+       4,   331,   102,    56,    15,    16,     4,     4,   338,    20,
+      21,    22,    23,    24,     4,    26,     4,    28,   105,    30,
+       4,     4,     4,   102,    35,    36,     4,   107,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,     4,    96,    56,
+     106,    52,    53,    54,    55,   108,   109,   110,    63,    64,
+      65,    66,    67,    68,    69,    70,   102,   106,     4,   389,
+     107,     4,   103,     4,     4,     4,   396,     4,    35,    36,
       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    -1,    -1,    -1,    -1,    -1,   103,    54,    -1,    -1,
-     107,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47
+      47,     4,     4,     4,   102,     4,    19,     4,    13,    39,
+     104,   129,   297,   108,   105,   293,   111,   112,   113,   114,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,   114,   342,   207,   392,   316,   202,    54,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,   284,   338,   396,   320,
+     145,    -1,   133
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1170,45 +1172,45 @@
 {
        0,     4,   118,   119,     0,     5,     6,     7,    10,    11,
       12,    17,    21,   120,   121,   122,   123,   124,   125,   126,
-     130,   132,   205,    36,    36,     4,     9,    36,    35,    36,
-      47,   133,   168,   103,    48,    49,    50,    51,   207,     4,
-     119,   102,   102,   127,    37,   134,    36,   131,   168,   168,
-     168,   168,   121,    36,    36,     3,     8,    47,   128,   129,
+     130,   132,   206,    36,    36,     4,     9,    36,    35,    36,
+      47,   133,   169,   103,    48,    49,    50,    51,   208,     4,
+     119,   102,   102,   127,    37,   134,    36,   131,   169,   169,
+     169,   169,   121,    36,    36,     3,     8,    47,   128,   129,
        4,    85,    86,    87,    88,    89,    90,    91,    92,    93,
       94,    95,   135,   102,   104,   115,   161,   107,   107,   107,
      107,     4,   129,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,   151,   152,   153,   168,   209,   210,
-     211,   212,   215,   138,   105,   105,   204,   105,    36,    37,
+      43,    44,    45,    46,   151,   152,   153,   169,   210,   211,
+     212,   213,   216,   138,   105,   105,   205,   105,    36,    37,
       38,    36,    36,     4,   102,    14,   139,   141,   133,    36,
-     136,   153,    48,    49,    50,    51,   140,   214,     1,     3,
+     136,   153,    48,    49,    50,    51,   140,   215,     1,     3,
       13,    15,    16,    20,    22,    23,    24,    26,    28,    30,
       36,    39,    43,    47,    52,    53,    54,    55,   105,   129,
-     142,   143,   144,   145,   146,   147,   154,   162,   163,   164,
-     165,   168,   169,   170,   171,   178,   185,   186,   188,   189,
-     190,   191,   192,   197,   205,   206,   215,   106,   106,   102,
-     106,   182,    36,   168,     4,     4,   143,    36,   214,   207,
-      39,    43,   105,   154,   168,   184,   186,   193,   193,     4,
-       4,     4,   105,   193,    54,   208,   209,   208,   215,   168,
-     179,   180,   181,   215,     4,   116,   193,     4,     4,    71,
+     142,   143,   144,   145,   146,   147,   154,   162,   163,   165,
+     166,   169,   170,   171,   172,   179,   186,   187,   189,   190,
+     191,   192,   193,   198,   206,   207,   216,   106,   106,   102,
+     106,   183,    36,   169,     4,     4,   143,    36,   215,   208,
+      39,    43,   105,   154,   169,   185,   187,   194,   194,     4,
+       4,     4,   105,   194,    54,   209,   210,   209,   216,   169,
+     180,   181,   182,   216,     4,   116,   194,     4,     4,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
       82,    83,    84,   103,   107,   148,   157,   158,    36,   137,
-     158,   168,   214,     4,    96,    97,    98,   100,   101,   183,
-      56,   102,   166,   167,   168,     4,    36,   194,   195,   196,
-     209,     4,     4,     4,   198,   200,   172,   179,     4,   209,
-     164,    57,    58,    59,    60,    61,    62,   213,   164,     4,
-       4,   106,   102,   182,    36,    39,    41,    43,    45,   168,
-     187,   159,   160,   209,    36,    47,    54,   108,   109,   110,
-     149,   150,   154,   155,   186,   209,   215,     4,   209,   107,
-     204,   168,   215,     4,   102,    96,    56,   106,   102,   202,
-      23,    25,   199,    22,    27,   201,    18,    31,    32,    34,
-     173,   174,   106,   209,   107,   181,   193,   104,   161,   193,
-     152,     4,   209,    63,    64,    65,    66,    67,    68,    69,
-      70,   108,   111,   112,   113,   114,   156,   158,   209,     4,
-     167,   209,   196,    97,    99,   203,   209,     4,   209,     4,
-     185,   185,   209,   185,     4,     4,   184,   160,   209,   204,
-     202,   202,     4,   102,   175,   202,   176,     4,     4,     4,
-      19,   185,     4,    29,    33,   165,   177,   187,     4,   215,
-     182,     4
+     158,   169,   215,     4,    96,    97,    98,   100,   101,   184,
+      56,   102,   167,   168,   169,     4,    36,   195,   196,   197,
+     210,     4,     4,     4,   199,   201,   173,   180,     4,   210,
+      55,   102,   164,    57,    58,    59,    60,    61,    62,   214,
+     164,     4,     4,   106,   102,   183,    36,    39,    41,    43,
+      45,   169,   188,   159,   160,   210,    36,    47,    54,   108,
+     109,   110,   149,   150,   154,   155,   187,   210,   216,     4,
+     210,   107,   205,   169,   216,     4,   102,    96,    56,   106,
+     102,   203,    23,    25,   200,    22,    27,   202,    18,    31,
+      32,    34,   174,   175,   106,   169,   210,   169,   107,   182,
+     194,   104,   161,   194,   152,     4,   210,    63,    64,    65,
+      66,    67,    68,    69,    70,   108,   111,   112,   113,   114,
+     156,   158,   210,     4,   168,   210,   197,    97,    99,   204,
+     210,     4,   210,     4,   186,   186,   210,   186,     4,     4,
+       4,     4,   185,   160,   210,   205,   203,   203,     4,   102,
+     176,   203,   177,     4,     4,     4,    19,   186,     4,    29,
+      33,   166,   178,   188,     4,   216,   183,     4
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -2042,7 +2044,7 @@
 
 
 /* Line 1267 of yacc.c.  */
-#line 2046 "pirparser.c"
+#line 2048 "pirparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2256,7 +2258,7 @@
 }
 
 
-#line 692 "pir.y"
+#line 696 "pir.y"
 
 
 

Reply via email to