[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 0.25.5-639-g8f94f35

Markus Roberts Markus at reality.com
Wed Jul 14 10:36:05 UTC 2010


The following commit has been merged in the upstream branch:
commit 59bf5e4c1be5eb70b6f6cfe3e725e9763ec79ece
Author: Jesse Wolfe <jes5199 at gmail.com>
Date:   Wed Jun 30 17:20:37 2010 -0700

    [#2713] Enable ELSIF

diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra
index 545137e..a6e64a3 100644
--- a/lib/puppet/parser/grammar.ra
+++ b/lib/puppet/parser/grammar.ra
@@ -67,7 +67,7 @@ statement:    resource
             | collection
             | assignment
             | casestatement
-            | ifstatement
+            | ifstatement_begin
             | import
             | fstatement
             | definition
@@ -463,34 +463,41 @@ resourceref: NAME LBRACK rvalues RBRACK {
     result = ast AST::ResourceReference, :type => val[0], :title => val[2]
 }
 
-ifstatement:      IF expression LBRACE statements RBRACE else {
+ifstatement_begin: IF ifstatement {
+    result = val[1]
+}
+
+ifstatement:      expression LBRACE statements RBRACE else {
     @lexer.commentpop
     args = {
-        :test => val[1],
-        :statements => val[3]
+        :test => val[0],
+        :statements => val[2]
     }
 
-    if val[5]
-        args[:else] = val[5]
+    if val[4]
+        args[:else] = val[4]
     end
 
     result = ast AST::IfStatement, args
 }
-                | IF expression LBRACE RBRACE else {
+                | expression LBRACE RBRACE else {
     @lexer.commentpop
     args = {
-        :test => val[1],
+        :test => val[0],
         :statements => ast(AST::Nop)
     }
 
-    if val[4]
-        args[:else] = val[4]
+    if val[3]
+        args[:else] = val[3]
     end
 
     result = ast AST::IfStatement, args
 }
 
 else:             # nothing
+                | ELSIF ifstatement {
+    result = ast AST::Else, :statements => val[1]
+}
                 | ELSE LBRACE statements RBRACE {
     @lexer.commentpop
     result = ast AST::Else, :statements => val[2]
diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb
index 7e78126..5be9e5a 100644
--- a/lib/puppet/parser/parser.rb
+++ b/lib/puppet/parser/parser.rb
@@ -25,7 +25,7 @@ module Puppet
 
     class Parser < Racc::Parser
 
-module_eval <<'..end grammar.ra modeval..id02e244f149', 'grammar.ra', 868
+module_eval <<'..end grammar.ra modeval..id7145220b1b', 'grammar.ra', 876
 
 # It got too annoying having code in a file that needs to be compiled.
 require 'puppet/parser/parser_support'
@@ -37,7 +37,7 @@ require 'puppet/parser/parser_support'
 
 # $Id$
 
-..end grammar.ra modeval..id02e244f149
+..end grammar.ra modeval..id7145220b1b
 
 ##### racc 1.4.5 generates ###
 
@@ -167,14 +167,14 @@ racc_reduce_table = [
  1, 96, :_reduce_122,
  4, 90, :_reduce_123,
  4, 90, :_reduce_124,
- 6, 79, :_reduce_125,
- 5, 79, :_reduce_126,
- 0, 131, :_reduce_none,
- 4, 131, :_reduce_128,
- 3, 131, :_reduce_129,
+ 2, 79, :_reduce_125,
+ 5, 131, :_reduce_126,
+ 4, 131, :_reduce_127,
+ 0, 132, :_reduce_none,
+ 2, 132, :_reduce_129,
+ 4, 132, :_reduce_130,
+ 3, 132, :_reduce_131,
  1, 120, :_reduce_none,
- 3, 120, :_reduce_131,
- 3, 120, :_reduce_132,
  3, 120, :_reduce_133,
  3, 120, :_reduce_134,
  3, 120, :_reduce_135,
@@ -182,713 +182,743 @@ racc_reduce_table = [
  3, 120, :_reduce_137,
  3, 120, :_reduce_138,
  3, 120, :_reduce_139,
- 2, 120, :_reduce_140,
+ 3, 120, :_reduce_140,
  3, 120, :_reduce_141,
- 3, 120, :_reduce_142,
+ 2, 120, :_reduce_142,
  3, 120, :_reduce_143,
  3, 120, :_reduce_144,
  3, 120, :_reduce_145,
  3, 120, :_reduce_146,
- 2, 120, :_reduce_147,
+ 3, 120, :_reduce_147,
  3, 120, :_reduce_148,
- 3, 120, :_reduce_149,
+ 2, 120, :_reduce_149,
  3, 120, :_reduce_150,
- 5, 78, :_reduce_151,
- 1, 133, :_reduce_none,
- 2, 133, :_reduce_153,
- 5, 134, :_reduce_154,
- 4, 134, :_reduce_155,
- 1, 135, :_reduce_none,
- 3, 135, :_reduce_157,
- 3, 98, :_reduce_158,
- 1, 137, :_reduce_none,
- 4, 137, :_reduce_160,
- 1, 139, :_reduce_none,
- 3, 139, :_reduce_162,
- 3, 138, :_reduce_163,
- 1, 136, :_reduce_none,
- 1, 136, :_reduce_none,
- 1, 136, :_reduce_none,
- 1, 136, :_reduce_none,
- 1, 136, :_reduce_none,
- 1, 136, :_reduce_none,
+ 3, 120, :_reduce_151,
+ 3, 120, :_reduce_152,
+ 5, 78, :_reduce_153,
+ 1, 134, :_reduce_none,
+ 2, 134, :_reduce_155,
+ 5, 135, :_reduce_156,
+ 4, 135, :_reduce_157,
  1, 136, :_reduce_none,
- 1, 136, :_reduce_171,
- 1, 136, :_reduce_none,
- 1, 140, :_reduce_173,
- 1, 141, :_reduce_none,
- 3, 141, :_reduce_175,
- 2, 80, :_reduce_176,
- 6, 82, :_reduce_177,
- 5, 82, :_reduce_178,
- 7, 83, :_reduce_179,
- 6, 83, :_reduce_180,
- 6, 84, :_reduce_181,
- 5, 84, :_reduce_182,
- 1, 106, :_reduce_183,
- 1, 101, :_reduce_184,
- 1, 101, :_reduce_185,
- 1, 101, :_reduce_186,
- 1, 144, :_reduce_none,
- 3, 144, :_reduce_188,
- 1, 146, :_reduce_189,
- 1, 147, :_reduce_190,
- 1, 147, :_reduce_191,
- 1, 147, :_reduce_192,
- 1, 147, :_reduce_none,
- 0, 72, :_reduce_194,
- 0, 148, :_reduce_195,
+ 3, 136, :_reduce_159,
+ 3, 98, :_reduce_160,
+ 1, 138, :_reduce_none,
+ 4, 138, :_reduce_162,
+ 1, 140, :_reduce_none,
+ 3, 140, :_reduce_164,
+ 3, 139, :_reduce_165,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_none,
+ 1, 137, :_reduce_173,
+ 1, 137, :_reduce_none,
+ 1, 141, :_reduce_175,
  1, 142, :_reduce_none,
- 3, 142, :_reduce_197,
- 3, 142, :_reduce_198,
- 1, 149, :_reduce_none,
- 3, 149, :_reduce_200,
- 3, 150, :_reduce_201,
- 1, 150, :_reduce_202,
- 3, 150, :_reduce_203,
- 1, 150, :_reduce_204,
+ 3, 142, :_reduce_177,
+ 2, 80, :_reduce_178,
+ 6, 82, :_reduce_179,
+ 5, 82, :_reduce_180,
+ 7, 83, :_reduce_181,
+ 6, 83, :_reduce_182,
+ 6, 84, :_reduce_183,
+ 5, 84, :_reduce_184,
+ 1, 106, :_reduce_185,
+ 1, 101, :_reduce_186,
+ 1, 101, :_reduce_187,
+ 1, 101, :_reduce_188,
  1, 145, :_reduce_none,
- 2, 145, :_reduce_206,
+ 3, 145, :_reduce_190,
+ 1, 147, :_reduce_191,
+ 1, 148, :_reduce_192,
+ 1, 148, :_reduce_193,
+ 1, 148, :_reduce_194,
+ 1, 148, :_reduce_none,
+ 0, 72, :_reduce_196,
+ 0, 149, :_reduce_197,
  1, 143, :_reduce_none,
- 2, 143, :_reduce_208,
- 1, 151, :_reduce_none,
- 1, 151, :_reduce_none,
- 1, 94, :_reduce_211,
- 3, 119, :_reduce_212,
- 4, 119, :_reduce_213,
- 2, 119, :_reduce_214,
+ 3, 143, :_reduce_199,
+ 3, 143, :_reduce_200,
+ 1, 150, :_reduce_none,
+ 3, 150, :_reduce_202,
+ 3, 151, :_reduce_203,
+ 1, 151, :_reduce_204,
+ 3, 151, :_reduce_205,
+ 1, 151, :_reduce_206,
+ 1, 146, :_reduce_none,
+ 2, 146, :_reduce_208,
+ 1, 144, :_reduce_none,
+ 2, 144, :_reduce_210,
+ 1, 152, :_reduce_none,
+ 1, 152, :_reduce_none,
+ 1, 94, :_reduce_213,
+ 3, 119, :_reduce_214,
+ 4, 119, :_reduce_215,
+ 2, 119, :_reduce_216,
  1, 127, :_reduce_none,
  1, 127, :_reduce_none,
  0, 105, :_reduce_none,
- 1, 105, :_reduce_218,
- 1, 132, :_reduce_219,
- 3, 128, :_reduce_220,
- 4, 128, :_reduce_221,
- 2, 128, :_reduce_222,
- 1, 152, :_reduce_none,
- 3, 152, :_reduce_224,
- 3, 153, :_reduce_225,
- 1, 154, :_reduce_226,
- 1, 154, :_reduce_227,
- 4, 121, :_reduce_228,
+ 1, 105, :_reduce_220,
+ 1, 133, :_reduce_221,
+ 3, 128, :_reduce_222,
+ 4, 128, :_reduce_223,
+ 2, 128, :_reduce_224,
+ 1, 153, :_reduce_none,
+ 3, 153, :_reduce_226,
+ 3, 154, :_reduce_227,
+ 1, 155, :_reduce_228,
+ 1, 155, :_reduce_229,
+ 4, 121, :_reduce_230,
  1, 100, :_reduce_none,
- 4, 100, :_reduce_230 ]
+ 4, 100, :_reduce_232 ]
 
-racc_reduce_n = 231
+racc_reduce_n = 233
 
-racc_shift_n = 381
+racc_shift_n = 384
 
 racc_action_table = [
-   255,   256,    55,    63,   162,    64,   227,    48,   155,    82,
-   250,   244,   181,   204,   209,   161,    46,    47,    65,   243,
-   168,   216,   200,   202,   205,   208,   219,   183,    72,    75,
-    72,    75,   102,   157,    72,    75,   227,   192,   240,   241,
-    58,  -166,    62,    60,    72,    75,   203,   207,   229,   183,
-   212,   195,   196,   197,   199,   201,   277,   206,   210,   276,
-    55,    71,  -168,    59,   198,    83,   142,    71,   191,    92,
-   304,    83,    86,   116,   136,    92,   302,   161,    89,    76,
-    79,    83,   267,   305,    89,    92,    72,    75,   325,    59,
-   136,   303,   268,   162,    89,    59,    72,    75,    58,   162,
-    55,    60,    72,    75,   161,    59,   102,   253,   106,   168,
-   161,    72,    75,   240,   241,   168,    59,   180,   346,   161,
-   254,    59,   306,    83,   267,  -169,   216,    92,   309,   161,
-   343,   219,   136,    83,   267,    71,    89,    92,    58,    83,
-    86,    60,   136,    92,    72,    75,    89,    59,    79,   191,
-    72,    75,    89,   162,   102,    37,   106,    59,  -165,    38,
-   353,    59,   172,    59,   161,   312,    11,   270,   354,   168,
-   245,   365,    97,    63,   196,   197,   172,    71,  -167,   206,
-   210,    83,    86,    71,   151,    92,   198,    83,    86,    76,
-    79,    92,   317,   318,    89,  -167,    79,   100,    72,    75,
-    89,  -164,   102,    94,   106,    59,  -165,   212,   195,   196,
-   197,    59,    37,  -183,   206,   210,    38,  -164,    37,   180,
-    97,   198,    38,    11,    72,    75,   206,   210,    82,    11,
-    14,    71,    48,   198,   335,    83,    86,   230,   274,    92,
-   206,   210,   245,   273,    79,   100,    74,   198,    89,    72,
-    75,    94,    37,   102,   337,   106,   126,    71,  -166,    59,
-   175,    83,    86,    11,    14,    92,   340,   183,   269,    76,
-    79,    97,   245,   246,    89,    72,    75,   174,  -170,   102,
-    37,   106,    71,   344,   126,    59,    83,    86,    59,   239,
-    92,    11,    14,   240,   241,    79,   100,    97,   172,    89,
-    72,    75,    94,  -169,   102,  -168,   106,   213,    71,    64,
-    59,   214,    83,    86,    72,    75,    92,   221,   102,    37,
-   106,    79,   100,    38,    82,    89,   321,   248,    94,   154,
-    11,   245,   246,    71,   120,   151,    59,    83,    86,    72,
-    75,    92,   222,   102,   120,   106,    79,    71,  -166,   275,
-    89,    83,    86,   349,   224,    92,  -164,   225,    72,    75,
-    79,    59,   116,  -167,    89,   352,   -21,   -21,   -21,   -21,
-  -165,   228,    71,   225,   209,    59,    83,    86,   196,   197,
-    92,    52,   200,   206,   210,    79,   151,  -166,  -164,    89,
-   198,   161,  -167,  -165,  -169,    83,   267,    72,    75,    92,
-    59,   102,   363,   106,   136,    50,   230,   349,    89,   369,
-   212,   195,   196,   197,   199,   201,    49,   206,   210,    59,
-   371,   227,    72,    75,   198,  -218,   102,   225,   106,   374,
-    71,    40,    39,   233,    83,    86,   236,   nil,    92,    44,
-    45,    41,    42,    79,    97,   nil,   nil,    89,    72,    75,
-   nil,   nil,   102,   nil,   106,    71,   nil,   nil,    59,    83,
-    86,   nil,   nil,    92,   -23,   -23,   -23,   -23,    79,   100,
-    97,   nil,    89,   nil,   nil,    94,   nil,   nil,    72,    75,
-   nil,    71,   102,    59,   106,    83,    86,   nil,   nil,    92,
-    44,    45,    41,    42,    79,   100,   nil,   nil,    89,   nil,
-    97,    94,   nil,   nil,    72,    75,   nil,   nil,   102,    59,
-   106,    71,   nil,   nil,   nil,    83,    86,   nil,   nil,    92,
-   nil,   nil,   nil,   nil,    79,   100,    97,   nil,    89,   nil,
-   nil,    94,   nil,   nil,    72,    75,   nil,    71,   102,    59,
-   106,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,
-    79,   100,   nil,   nil,    89,   nil,    97,    94,   nil,   nil,
-    72,    75,   nil,   nil,   102,    59,   106,    71,   nil,   nil,
-   nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,
-    79,   100,    72,    75,    89,   nil,   102,    94,   106,   nil,
-   nil,   nil,   nil,    71,   nil,    59,   nil,    83,    86,   nil,
-   nil,    92,   nil,    72,    75,   nil,    79,   102,   nil,   106,
-    89,   nil,   nil,   nil,   nil,    71,   nil,   nil,   nil,    83,
-    86,    59,   nil,    92,   nil,    97,   nil,   nil,    79,    72,
-    75,   nil,    89,   102,   nil,   106,    71,   nil,   nil,   nil,
-    83,    86,   nil,    59,    92,   nil,   nil,   nil,   nil,    79,
+   256,   257,   228,    82,    54,    72,    75,   181,   251,    48,
+    72,    75,   194,   205,   210,   163,   156,   348,    46,    47,
+   344,   184,   201,   203,   206,   209,   162,   352,    54,   182,
+   351,   169,    54,  -168,    72,    75,   241,   242,   102,   305,
+   106,   158,    58,   193,   230,    60,   204,   208,   193,   306,
+   213,   196,   197,   198,   200,   202,    97,   207,   211,    72,
+    75,    72,    75,   163,   199,    59,    58,    71,   245,    60,
+    58,    83,    86,    60,   162,    92,   244,    72,    75,   169,
+    78,   100,   352,   269,    89,   351,    63,    94,    64,    59,
+   228,   326,    71,    59,   162,    59,    83,    86,    83,   268,
+    92,    65,    92,   184,    76,    78,   307,   137,   163,    89,
+   162,    89,    72,    75,    83,   268,   241,   242,    92,   162,
+    59,   163,    59,   137,   169,    62,   254,    89,   207,   211,
+    72,    75,   162,   308,   102,   199,   106,   169,    59,   255,
+   213,   196,   197,   198,  -166,   162,   309,   207,   211,    83,
+   268,   310,    97,    92,   199,    72,    75,   355,   137,   102,
+  -170,   106,    89,    71,   218,   356,   173,    83,    86,   220,
+   313,    92,  -171,    59,    72,    75,    78,   100,    37,   218,
+    89,   249,    38,    94,   220,   246,   247,   173,    71,    11,
+   210,    59,    83,    86,   246,   367,    92,   271,   201,    37,
+  -167,    78,    37,    38,   270,    89,    38,    71,   246,   247,
+    11,    83,    86,    11,    14,    92,    59,    72,    75,    76,
+    78,   102,   278,   106,    89,   277,   213,   196,   197,   198,
+   200,   202,   275,   207,   211,    59,   246,   274,   152,    97,
+   199,    37,   318,    72,    75,   127,   319,   102,  -169,   106,
+    71,    63,    11,    14,    83,    86,  -167,    37,    92,   207,
+   211,   127,  -169,    78,   100,    97,   199,    89,    11,    14,
+    94,  -166,   117,    72,    75,  -185,    71,    82,    59,   336,
+    83,    86,   197,   198,    92,   231,   338,   207,   211,    78,
+   100,   181,    48,    89,   199,    74,    94,   240,  -168,    72,
+    75,   241,   242,   102,    59,   106,    71,   184,   176,    37,
+    83,    86,    59,    38,    92,   345,   322,   175,    76,    78,
+    11,    97,  -172,    89,  -171,    72,    75,  -170,    59,   102,
+   214,   106,    71,    64,    59,   215,    83,    86,   173,   217,
+    92,   -23,   -23,   -23,   -23,    78,   100,    97,   155,    89,
+    72,    75,    94,   122,   102,   152,   106,    82,    71,   223,
+    59,   122,    83,    86,    72,    75,    92,  -168,   102,   225,
+   106,    78,   100,  -166,   276,    89,   226,   117,    94,    44,
+    45,    41,    42,    71,  -169,  -167,    59,    83,    86,    72,
+    75,    92,   226,   102,   229,   106,    78,    71,    52,  -168,
+    89,    83,    86,    72,    75,    92,  -166,   102,  -169,   106,
+    78,    59,   197,   198,    89,  -167,  -171,   207,   211,   365,
+   231,   152,    71,   234,   199,    59,    83,    86,    50,   210,
+    92,   -21,   -21,   -21,   -21,    78,    71,   201,   372,    89,
+    83,    86,    49,   374,    92,    72,    75,   228,  -220,    78,
+    59,   226,   354,    89,   377,    72,    75,    40,    39,   102,
+   237,   106,   341,   nil,    59,   213,   196,   197,   198,   200,
+   202,   nil,   207,   211,   nil,   nil,   nil,    97,   162,   199,
+   nil,   nil,    83,   268,   nil,   nil,    92,   nil,    71,   nil,
+   nil,   137,    83,    86,   nil,    89,    92,    44,    45,    41,
+    42,    78,   100,    72,    75,    89,    59,   102,    94,   106,
+   213,   196,   197,   198,   200,   202,    59,   207,   211,   nil,
+   213,   196,   197,   198,   199,    97,   nil,   207,   211,    72,
+    75,   nil,   nil,   102,   199,   106,    71,   nil,   nil,   nil,
+    83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,
    100,    97,   nil,    89,   nil,   nil,    94,   nil,   nil,    72,
     75,   nil,    71,   102,    59,   106,    83,    86,   nil,   nil,
-    92,   nil,   nil,   nil,   nil,    79,   100,   nil,   nil,    89,
+    92,   nil,   nil,   nil,   nil,    78,   100,   nil,   nil,    89,
    nil,    97,    94,   nil,   nil,    72,    75,   nil,   nil,   102,
     59,   106,    71,   nil,   nil,   nil,    83,    86,   nil,   nil,
-    92,   nil,   nil,   nil,   nil,    79,   100,    97,   nil,    89,
-   nil,   nil,    94,   nil,   nil,    72,    75,   nil,    71,   102,
-    59,   106,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,
-   nil,    79,   100,   nil,   nil,    89,   nil,    97,    94,   nil,
-   nil,    72,    75,   nil,   nil,   102,    59,   106,    71,   nil,
-   nil,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,
-   nil,    79,   100,    72,    75,    89,   nil,   102,    94,   106,
-   nil,   nil,   nil,   nil,    71,   nil,    59,   nil,    83,    86,
-   nil,   nil,    92,   nil,   nil,    97,   nil,    79,    72,    75,
-   nil,    89,   102,   nil,   106,   nil,    71,   nil,    72,    75,
-    83,    86,    59,   nil,    92,   nil,   nil,   nil,   nil,    79,
-   100,   nil,   nil,    89,   209,   nil,    94,   nil,   nil,   nil,
-   nil,    71,   200,   nil,    59,    83,    86,   nil,   nil,    92,
-   nil,   161,   nil,   nil,    79,    83,   267,   nil,    89,    92,
-   nil,    72,    75,   nil,   136,   102,   nil,   106,    89,    59,
-   212,   195,   196,   197,   199,   201,   nil,   206,   210,    59,
-    72,    75,   nil,    97,   198,   nil,    72,    75,   nil,   nil,
-   102,   nil,   106,   nil,    71,   nil,   nil,   nil,    83,    86,
-   nil,   nil,    92,   338,   nil,    72,    75,    79,   100,   nil,
-   nil,    89,   nil,    71,    94,   nil,   nil,    83,    86,    71,
-   nil,    92,    59,    83,    86,    76,    79,    92,   176,   nil,
-    89,   nil,    79,   nil,   nil,   nil,    89,   nil,    71,   nil,
-   nil,    59,    83,    86,   nil,   nil,    92,    59,    72,    75,
-    76,    79,   102,   nil,   106,    89,   nil,   212,   195,   196,
-   197,   199,   201,   nil,   206,   210,    59,    72,    75,   nil,
-    97,   198,   nil,    72,    75,   nil,   212,   195,   196,   197,
-   nil,    71,   nil,   206,   210,    83,    86,   nil,   nil,    92,
-   198,   nil,   nil,   nil,    79,   100,   nil,   nil,    89,   nil,
-   161,    94,   nil,   nil,    83,   267,   161,   nil,    92,    59,
-    83,   267,   nil,   136,    92,   nil,   nil,    89,   nil,   136,
-    72,    75,   nil,    89,   102,   nil,   106,   nil,    59,   nil,
-   nil,   nil,   nil,   nil,    59,   nil,   nil,   nil,   nil,    72,
-    75,   nil,    97,   102,   nil,   106,    72,    75,   nil,   nil,
+    92,   nil,   nil,   nil,   nil,    78,   100,    97,   nil,    89,
+    72,    75,    94,   nil,   102,   nil,   106,   nil,    71,   nil,
+    59,   nil,    83,    86,    72,    75,    92,   nil,   102,   nil,
+   nil,    78,   100,   nil,   nil,    89,   nil,   nil,    94,   nil,
+   nil,   nil,   nil,    71,   nil,   nil,    59,    83,    86,    72,
+    75,    92,   nil,   102,   nil,   106,    78,    71,   nil,   nil,
+    89,    83,   143,   nil,   nil,    92,   nil,   nil,   nil,   nil,
+   137,    59,   nil,   nil,    89,    72,    75,   nil,   nil,   102,
+   nil,   106,    71,   nil,   nil,    59,    83,    86,   nil,   nil,
+    92,   nil,   nil,   nil,   nil,    78,   nil,    97,   nil,    89,
+   nil,    72,    75,   nil,   nil,   102,   nil,   106,    71,   nil,
+    59,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,
+   nil,    78,   100,    97,   nil,    89,   nil,   nil,    94,   nil,
+   nil,    72,    75,   nil,    71,   102,    59,   106,    83,    86,
+   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,   nil,
+   nil,    89,   nil,    97,    94,   nil,   nil,    72,    75,   nil,
+   nil,   102,    59,   106,    71,   nil,   nil,   nil,    83,    86,
+   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,    97,
+   nil,    89,    72,    75,    94,   nil,   102,   nil,   106,   nil,
+    71,   nil,    59,   nil,    83,    86,   nil,   nil,    92,   nil,
+   nil,   nil,   nil,    78,   100,   nil,   nil,    89,    72,    75,
+    94,   nil,   102,   nil,   106,    71,   nil,   nil,    59,    83,
+    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   nil,
+    97,   nil,    89,   nil,    72,    75,   nil,   nil,   102,   nil,
+   106,    71,   nil,    59,   nil,    83,    86,   nil,   nil,    92,
+   nil,   nil,    72,    75,    78,   100,    97,   nil,    89,    72,
+    75,    94,   nil,   102,   nil,   106,   nil,    71,   nil,    59,
+   nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,
+    78,   100,   nil,   nil,    89,   162,   nil,    94,   nil,    83,
+   268,   nil,    71,    92,   nil,    59,    83,    86,   137,   nil,
+    92,   nil,    89,   nil,   nil,    78,    72,    75,   nil,    89,
+   102,   nil,   106,    59,   nil,   nil,   nil,   nil,   nil,   nil,
+    59,   nil,   nil,   nil,   nil,    72,    75,   nil,    97,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    71,
+   nil,   nil,   nil,    83,    86,   nil,   nil,    92,   177,   nil,
+    72,    75,    78,   100,   nil,   nil,    89,   nil,    71,    94,
+   nil,   nil,    83,    86,   nil,   nil,    92,    59,    72,    75,
+    76,    78,   102,   339,   106,    89,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    71,   nil,   nil,    59,    83,    86,   nil,
+    97,    92,   nil,    72,    75,    76,    78,   102,   nil,   106,
+    89,    71,   nil,    72,    75,    83,    86,   nil,   nil,    92,
+   nil,    59,   nil,   nil,    78,   100,   nil,   nil,    89,    72,
+    75,    94,   nil,   nil,   nil,   nil,    71,   nil,   nil,    59,
+    83,    86,   nil,   nil,    92,   nil,   162,   nil,   nil,    78,
+    83,   268,   nil,    89,    92,   nil,    72,    75,   nil,   137,
+   102,   nil,   162,    89,    59,   nil,    83,   268,   nil,   nil,
+    92,   nil,    72,    75,    59,   137,   102,   nil,   106,    89,
+   nil,   nil,    72,    75,   nil,   nil,   102,   nil,   106,    71,
+    59,   nil,   nil,    83,   268,   nil,   nil,    92,   nil,   nil,
+   nil,   nil,   137,   nil,    97,    71,    89,   nil,   nil,    83,
+    86,   nil,   nil,    92,   nil,    71,   nil,    59,    78,    83,
+    86,   nil,    89,    92,   nil,   nil,   nil,   nil,    78,   100,
+    72,    75,    89,    59,   102,    94,   106,   213,   196,   197,
+   198,   200,   202,    59,   207,   211,   nil,   nil,   nil,    72,
+    75,   199,    97,   102,   189,   106,    72,    75,   nil,   nil,
    102,   nil,   106,    71,   nil,   nil,   nil,    83,    86,   nil,
-   nil,    92,   nil,   nil,   nil,   nil,    79,   100,    97,   nil,
+   nil,    92,   nil,   nil,   nil,   nil,    78,   100,    72,    75,
     89,   nil,    71,    94,   nil,   nil,    83,    86,   nil,    71,
-    92,    59,   nil,    83,    86,    79,   nil,    92,   nil,    89,
-    72,    75,    79,   100,   102,   nil,    89,    72,    75,    94,
-    59,   102,   nil,   106,    72,    75,   nil,    59,   102,   nil,
-   106,    72,    75,   nil,   nil,   102,   188,   106,   nil,   nil,
-   nil,   nil,   nil,    71,   nil,   nil,   nil,    83,   267,   nil,
-    71,    92,   nil,   nil,    83,    86,   136,    71,    92,   nil,
-    89,    83,    86,    79,    71,    92,   nil,    89,    83,    86,
-    79,    59,    92,   nil,    89,    72,    75,    79,    59,   nil,
-   nil,    89,    72,    75,   nil,    59,   102,   nil,   106,   nil,
-   nil,   nil,    59,    26,   nil,    33,     1,   nil,     7,    12,
-   nil,    17,   nil,    23,    97,    29,   nil,     3,   161,   nil,
-    11,    14,    83,   267,   nil,    71,    92,   nil,   nil,    83,
-    86,   136,   nil,    92,   nil,    89,   nil,   nil,    79,   100,
-   nil,   nil,    89,    72,    75,    94,    59,   102,   nil,   106,
-   nil,   nil,   nil,    59,    26,   nil,    33,     1,   nil,     7,
-    12,   nil,    17,   nil,    23,    97,    29,   nil,     3,    72,
-    75,    11,    14,   102,   nil,   106,    71,   nil,   nil,   nil,
-    83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,    79,
-   100,    97,   nil,    89,   nil,   nil,    94,   nil,   nil,    72,
-    75,   nil,    71,   102,    59,   106,    83,    86,   211,   nil,
-    92,   nil,   nil,   nil,   nil,    79,   100,   204,   209,    89,
-   nil,    97,    94,   nil,   nil,   nil,   200,   202,   205,   208,
-    59,   nil,    71,   nil,   nil,   nil,    83,    86,   nil,   nil,
-    92,   nil,   nil,   nil,   nil,    79,   100,   nil,   nil,    89,
-   203,   207,    94,   nil,   212,   195,   196,   197,   199,   201,
-    59,   206,   210,   204,   209,   nil,   nil,   nil,   198,   nil,
-   nil,   nil,   200,   202,   205,   208,   nil,   nil,   204,   209,
-   nil,   nil,   nil,   nil,   nil,   nil,   272,   200,   202,   205,
-   208,   nil,   nil,   nil,   nil,   nil,   203,   207,   nil,   nil,
-   212,   195,   196,   197,   199,   201,   nil,   206,   210,   nil,
-   nil,   203,   207,   nil,   198,   212,   195,   196,   197,   199,
-   201,   nil,   206,   210,   204,   209,   nil,   nil,   nil,   198,
-   nil,   nil,   nil,   200,   202,   205,   208,   nil,   nil,   204,
-   209,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   200,   202,
-   205,   208,   nil,   nil,   nil,   nil,   nil,   nil,   207,   nil,
-   nil,   212,   195,   196,   197,   199,   201,   nil,   206,   210,
-   nil,   nil,   203,   207,   nil,   198,   212,   195,   196,   197,
-   199,   201,   nil,   206,   210,   204,   209,   nil,   nil,   nil,
-   198,   nil,   nil,   nil,   200,   202,   205,   208,   nil,   nil,
-   204,   209,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   200,
-   202,   205,   208,   nil,   nil,   nil,   nil,   nil,   203,   207,
-   209,   nil,   212,   195,   196,   197,   199,   201,   200,   206,
-   210,   nil,   nil,   nil,   nil,   209,   198,   212,   195,   196,
-   197,   199,   201,   200,   206,   210,   nil,   nil,   nil,   nil,
-   nil,   198,   nil,   nil,   nil,   nil,   212,   195,   196,   197,
-   199,   201,   nil,   206,   210,   308,   nil,   nil,   nil,   nil,
-   198,   212,   195,   196,   197,   199,   201,   nil,   206,   210,
-   nil,   nil,   nil,   nil,   380,   198,    26,   nil,    33,     1,
+    92,    59,   nil,    83,    86,    78,   nil,    92,   nil,    89,
+   nil,   nil,    78,    72,    75,   nil,    89,   102,   nil,   106,
+    59,   162,   nil,   nil,   nil,    83,   268,    59,   nil,    92,
+   nil,    72,    75,   nil,   137,   102,   nil,   106,    89,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    71,   nil,   nil,    59,
+    83,    86,   nil,    97,    92,   nil,   nil,   nil,   nil,    78,
+   nil,    72,    75,    89,    71,   102,   nil,   106,    83,    86,
+   nil,   nil,    92,   nil,    59,   nil,   nil,    78,   100,   nil,
+   nil,    89,   nil,    97,    94,   nil,   nil,    72,    75,   nil,
+   nil,   102,    59,   106,    71,   nil,   nil,   nil,    83,    86,
+   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,    97,
+   nil,    89,   nil,   nil,    94,   nil,   nil,   nil,   nil,   nil,
+    71,   nil,    59,   nil,    83,    86,   212,   nil,    92,   nil,
+   nil,   nil,   nil,    78,   100,   205,   210,    89,   nil,   nil,
+    94,   nil,   nil,   nil,   201,   203,   206,   209,    59,   nil,
+   205,   210,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   201,
+   203,   206,   209,   nil,   nil,   nil,   nil,   nil,   204,   208,
+   nil,   nil,   213,   196,   197,   198,   200,   202,   nil,   207,
+   211,   nil,   nil,   204,   208,   nil,   199,   213,   196,   197,
+   198,   200,   202,   nil,   207,   211,   205,   210,   nil,   nil,
+   nil,   199,   nil,   nil,   nil,   201,   203,   206,   209,   nil,
+   nil,   205,   210,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   201,   203,   206,   209,   nil,   nil,   nil,   nil,   nil,   204,
+   208,   nil,   nil,   213,   196,   197,   198,   200,   202,   nil,
+   207,   211,   nil,   nil,   204,   208,   nil,   199,   213,   196,
+   197,   198,   200,   202,   nil,   207,   211,   205,   210,   nil,
+   nil,   nil,   199,   nil,   nil,   nil,   201,   203,   206,   209,
+   nil,   nil,   205,   210,   nil,   nil,   nil,   nil,   nil,   nil,
+   273,   201,   203,   206,   209,   nil,   nil,   nil,   nil,   nil,
+   nil,   208,   nil,   nil,   213,   196,   197,   198,   200,   202,
+   nil,   207,   211,   nil,   nil,   204,   208,   nil,   199,   213,
+   196,   197,   198,   200,   202,   nil,   207,   211,   205,   210,
+   nil,   nil,   nil,   199,   nil,   nil,   nil,   201,   203,   206,
+   209,   nil,   nil,    26,   210,    33,     1,   nil,     7,    12,
+   nil,    17,   201,    23,   nil,    29,   nil,     3,   nil,   nil,
+    11,    14,   nil,   210,   nil,   213,   196,   197,   198,   200,
+   202,   201,   207,   211,   nil,   nil,   nil,   nil,   nil,   199,
+   213,   196,   197,   198,   200,   202,   nil,   207,   211,   nil,
+   nil,   324,   nil,   nil,   199,   nil,   nil,   nil,   nil,   213,
+   196,   197,   198,   200,   202,   nil,   207,   211,   nil,   nil,
+   379,   nil,    26,   199,    33,     1,   nil,     7,    12,   nil,
+    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
+    14,    26,   382,    33,     1,   nil,     7,    12,   nil,    17,
+   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,
+   nil,   296,   nil,    26,   nil,    33,     1,   nil,     7,    12,
+   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
+    11,    14,    26,   364,    33,     1,   nil,     7,    12,   nil,
+    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
+    14,   nil,   381,   nil,    26,   nil,    33,     1,   nil,     7,
+    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,
+   nil,    11,    14,    26,   383,    33,     1,   nil,     7,    12,
+   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
+    11,    14,   nil,   357,   nil,    26,   nil,    33,     1,   nil,
+     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,
+   nil,   nil,    11,    14,    26,   363,    33,     1,   nil,     7,
+    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,
+   nil,    11,    14,   nil,   375,   nil,    26,   nil,    33,     1,
    nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,
-     3,   nil,   nil,    11,    14,    26,   372,    33,     1,   nil,
+     3,   nil,   nil,    11,    14,    26,   304,    33,     1,   nil,
      7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,
-   nil,   nil,    11,    14,   nil,   348,   nil,    26,   nil,    33,
+   nil,   nil,    11,    14,   nil,   349,   nil,    26,   nil,    33,
      1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,
-   nil,     3,   nil,   nil,    11,    14,    26,   295,    33,     1,
+   nil,     3,   nil,   nil,    11,    14,    26,   nil,    33,     1,
    nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,
-     3,   nil,   nil,    11,    14,   nil,   358,   nil,    26,   nil,
-    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,
-    29,   nil,     3,   nil,   nil,    11,    14,    26,   379,    33,
-     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,
-   nil,     3,   nil,   nil,    11,    14,   nil,   362,   nil,    26,
-   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,
-   nil,    29,   nil,     3,   nil,   nil,    11,    14,    26,   378,
-    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,
-    29,   nil,     3,   nil,   nil,    11,    14,   nil,   376,   nil,
-    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,
-    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,    26,
-   361,    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,
-   nil,    29,   nil,     3,   nil,   nil,    11,    14,   nil,   323,
-   nil,    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,
-   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,
-    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,
-    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,   212,
-   195,   196,   197,   199,   201,   nil,   206,   210,   nil,   nil,
-   nil,   nil,   nil,   198 ]
+     3,   nil,   nil,    11,    14,    26,   nil,    33,     1,   nil,
+     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,
+   nil,   nil,    11,    14 ]
 
 racc_action_check = [
-   179,   179,   157,    22,    65,    22,   151,     7,    54,    86,
-   173,   164,    78,   179,   179,    65,     7,     7,    22,   164,
-    65,   120,   179,   179,   179,   179,   120,    86,    49,    49,
-   106,   106,    49,    54,   180,   180,   142,   106,   173,   173,
-   157,    95,    22,   157,   366,   366,   179,   179,   151,   142,
-   179,   179,   179,   179,   179,   179,   193,   179,   179,   193,
-   155,    49,    91,   157,   179,    49,    49,   180,   106,    49,
-   218,   180,   180,   214,    49,   180,   216,   366,    49,   180,
-   180,   366,   366,   218,   180,   366,   181,   181,   242,    49,
-   366,   217,   181,    62,   366,   180,   353,   353,   155,   238,
-    17,   155,   340,   340,    62,   366,   340,   177,   340,    62,
-   238,   276,   276,   242,   242,   238,   210,   271,   276,   181,
-   177,   155,   219,   181,   181,    90,   304,   181,   223,   353,
-   271,   304,   181,   353,   353,   340,   181,   353,    17,   340,
-   340,    17,   353,   340,   183,   183,   353,   181,   340,   276,
-   195,   195,   340,   162,   195,    12,   195,   353,    87,    12,
-   299,    17,   225,   340,   162,   226,    12,   183,   299,   162,
-   342,   342,   195,    85,   278,   278,   228,   183,    84,   278,
-   278,   183,   183,   195,   230,   183,   278,   195,   195,   183,
-   183,   195,   231,   232,   183,   103,   195,   195,   196,   196,
-   195,    81,   196,   195,   196,   183,   105,   282,   282,   282,
-   282,   195,     1,    79,   282,   282,     1,   101,    30,    77,
-   196,   282,    30,     1,    23,    23,   279,   279,    23,    30,
-    30,   196,    71,   279,   249,   196,   196,   251,   187,   196,
-   280,   280,   187,   187,   196,   196,    23,   280,   196,    26,
-    26,   196,   119,    26,   252,    26,   119,    23,    69,   196,
-    67,    23,    23,   119,   119,    23,   261,   267,   182,    23,
-    23,    26,   182,   182,    23,   197,   197,    66,   107,   197,
-    43,   197,    26,   273,    43,    23,    26,    26,   206,   159,
-    26,    43,    43,   159,   159,    26,    26,   197,    64,    26,
-    29,    29,    26,   108,    29,   109,    29,   113,   197,   114,
-    26,   118,   197,   197,   306,   306,   197,   122,   306,   233,
-   306,   197,   197,   233,   126,   197,   233,   170,   197,    52,
-   233,   170,   170,    29,    51,    50,   197,    29,    29,   302,
-   302,    29,   131,   302,    36,   302,    29,   306,   132,   190,
-    29,   306,   306,   295,   135,   306,   137,   138,   297,   297,
-   306,    29,    33,   139,   306,   297,    28,    28,    28,    28,
-   141,   143,   302,   314,   285,   306,   302,   302,   296,   296,
-   302,    16,   285,   296,   296,   302,   174,   326,   327,   302,
-   296,   297,   329,   330,   331,   297,   297,   198,   198,   297,
-   302,   198,   336,   198,   297,     9,   152,   348,   297,   349,
-   285,   285,   285,   285,   285,   285,     8,   285,   285,   297,
-   354,   172,   199,   199,   285,   365,   199,   171,   199,   367,
-   198,     3,     2,   153,   198,   198,   156,   nil,   198,     4,
-     4,     4,     4,   198,   199,   nil,   nil,   198,    97,    97,
-   nil,   nil,    97,   nil,    97,   199,   nil,   nil,   198,   199,
-   199,   nil,   nil,   199,    35,    35,    35,    35,   199,   199,
-    97,   nil,   199,   nil,   nil,   199,   nil,   nil,   200,   200,
-   nil,    97,   200,   199,   200,    97,    97,   nil,   nil,    97,
-    34,    34,    34,    34,    97,    97,   nil,   nil,    97,   nil,
-   200,    97,   nil,   nil,    46,    46,   nil,   nil,    46,    97,
-    46,   200,   nil,   nil,   nil,   200,   200,   nil,   nil,   200,
-   nil,   nil,   nil,   nil,   200,   200,    46,   nil,   200,   nil,
-   nil,   200,   nil,   nil,    47,    47,   nil,    46,    47,   200,
-    47,    46,    46,   nil,   nil,    46,   nil,   nil,   nil,   nil,
-    46,    46,   nil,   nil,    46,   nil,    47,    46,   nil,   nil,
-    48,    48,   nil,   nil,    48,    46,    48,    47,   nil,   nil,
-   nil,    47,    47,   nil,   nil,    47,   nil,   nil,   nil,   nil,
-    47,    47,   175,   175,    47,   nil,   175,    47,   175,   nil,
-   nil,   nil,   nil,    48,   nil,    47,   nil,    48,    48,   nil,
-   nil,    48,   nil,   201,   201,   nil,    48,   201,   nil,   201,
-    48,   nil,   nil,   nil,   nil,   175,   nil,   nil,   nil,   175,
-   175,    48,   nil,   175,   nil,   201,   nil,   nil,   175,   202,
-   202,   nil,   175,   202,   nil,   202,   201,   nil,   nil,   nil,
-   201,   201,   nil,   175,   201,   nil,   nil,   nil,   nil,   201,
-   201,   202,   nil,   201,   nil,   nil,   201,   nil,   nil,   203,
-   203,   nil,   202,   203,   201,   203,   202,   202,   nil,   nil,
-   202,   nil,   nil,   nil,   nil,   202,   202,   nil,   nil,   202,
-   nil,   203,   202,   nil,   nil,   204,   204,   nil,   nil,   204,
-   202,   204,   203,   nil,   nil,   nil,   203,   203,   nil,   nil,
-   203,   nil,   nil,   nil,   nil,   203,   203,   204,   nil,   203,
-   nil,   nil,   203,   nil,   nil,   205,   205,   nil,   204,   205,
-   203,   205,   204,   204,   nil,   nil,   204,   nil,   nil,   nil,
-   nil,   204,   204,   nil,   nil,   204,   nil,   205,   204,   nil,
-   nil,    63,    63,   nil,   nil,    63,   204,    63,   205,   nil,
-   nil,   nil,   205,   205,   nil,   nil,   205,   nil,   nil,   nil,
-   nil,   205,   205,   207,   207,   205,   nil,   207,   205,   207,
-   nil,   nil,   nil,   nil,    63,   nil,   205,   nil,    63,    63,
-   nil,   nil,    63,   nil,   nil,   207,   nil,    63,   275,   275,
-   nil,    63,   275,   nil,   275,   nil,   207,   nil,   268,   268,
-   207,   207,    63,   nil,   207,   nil,   nil,   nil,   nil,   207,
-   207,   nil,   nil,   207,   288,   nil,   207,   nil,   nil,   nil,
-   nil,   275,   288,   nil,   207,   275,   275,   nil,   nil,   275,
-   nil,   268,   nil,   nil,   275,   268,   268,   nil,   275,   268,
-   nil,   255,   255,   nil,   268,   255,   nil,   255,   268,   275,
-   288,   288,   288,   288,   288,   288,   nil,   288,   288,   268,
-   253,   253,   nil,   255,   288,   nil,   247,   247,   nil,   nil,
-   247,   nil,   247,   nil,   255,   nil,   nil,   nil,   255,   255,
-   nil,   nil,   255,   253,   nil,    74,    74,   255,   255,   nil,
-   nil,   255,   nil,   253,   255,   nil,   nil,   253,   253,   247,
-   nil,   253,   255,   247,   247,   253,   253,   247,    74,   nil,
-   253,   nil,   247,   nil,   nil,   nil,   247,   nil,    74,   nil,
-   nil,   253,    74,    74,   nil,   nil,    74,   247,    75,    75,
-    74,    74,    75,   nil,    75,    74,   nil,   283,   283,   283,
-   283,   283,   283,   nil,   283,   283,    74,   244,   244,   nil,
-    75,   283,   nil,   243,   243,   nil,   284,   284,   284,   284,
-   nil,    75,   nil,   284,   284,    75,    75,   nil,   nil,    75,
-   284,   nil,   nil,   nil,    75,    75,   nil,   nil,    75,   nil,
-   244,    75,   nil,   nil,   244,   244,   243,   nil,   244,    75,
-   243,   243,   nil,   244,   243,   nil,   nil,   244,   nil,   243,
-   208,   208,   nil,   243,   208,   nil,   208,   nil,   244,   nil,
-   nil,   nil,   nil,   nil,   243,   nil,   nil,   nil,   nil,    82,
-    82,   nil,   208,    82,   nil,    82,   209,   209,   nil,   nil,
-   209,   nil,   209,   208,   nil,   nil,   nil,   208,   208,   nil,
-   nil,   208,   nil,   nil,   nil,   nil,   208,   208,   209,   nil,
-   208,   nil,    82,   208,   nil,   nil,    82,    82,   nil,   209,
-    82,   208,   nil,   209,   209,    82,   nil,   209,   nil,    82,
-   224,   224,   209,   209,   224,   nil,   209,   229,   229,   209,
-    82,   229,   nil,   229,   227,   227,   nil,   209,   227,   nil,
-   227,   102,   102,   nil,   nil,   102,   102,   102,   nil,   nil,
-   nil,   nil,   nil,   224,   nil,   nil,   nil,   224,   224,   nil,
-   229,   224,   nil,   nil,   229,   229,   224,   227,   229,   nil,
-   224,   227,   227,   229,   102,   227,   nil,   229,   102,   102,
-   227,   224,   102,   nil,   227,   213,   213,   102,   229,   nil,
-   nil,   102,   100,   100,   nil,   227,   100,   nil,   100,   nil,
-   nil,   nil,   102,    19,   nil,    19,    19,   nil,    19,    19,
-   nil,    19,   nil,    19,   100,    19,   nil,    19,   213,   nil,
-    19,    19,   213,   213,   nil,   100,   213,   nil,   nil,   100,
-   100,   213,   nil,   100,   nil,   213,   nil,   nil,   100,   100,
-   nil,   nil,   100,    94,    94,   100,   213,    94,   nil,    94,
-   nil,   nil,   nil,   100,     0,   nil,     0,     0,   nil,     0,
-     0,   nil,     0,   nil,     0,    94,     0,   nil,     0,   212,
-   212,     0,     0,   212,   nil,   212,    94,   nil,   nil,   nil,
-    94,    94,   nil,   nil,    94,   nil,   nil,   nil,   nil,    94,
-    94,   212,   nil,    94,   nil,   nil,    94,   nil,   nil,    39,
-    39,   nil,   212,    39,    94,    39,   212,   212,   111,   nil,
-   212,   nil,   nil,   nil,   nil,   212,   212,   111,   111,   212,
-   nil,    39,   212,   nil,   nil,   nil,   111,   111,   111,   111,
-   212,   nil,    39,   nil,   nil,   nil,    39,    39,   nil,   nil,
-    39,   nil,   nil,   nil,   nil,    39,    39,   nil,   nil,    39,
-   111,   111,    39,   nil,   111,   111,   111,   111,   111,   111,
-    39,   111,   111,   130,   130,   nil,   nil,   nil,   111,   nil,
-   nil,   nil,   130,   130,   130,   130,   nil,   nil,   185,   185,
-   nil,   nil,   nil,   nil,   nil,   nil,   185,   185,   185,   185,
-   185,   nil,   nil,   nil,   nil,   nil,   130,   130,   nil,   nil,
-   130,   130,   130,   130,   130,   130,   nil,   130,   130,   nil,
-   nil,   185,   185,   nil,   130,   185,   185,   185,   185,   185,
-   185,   nil,   185,   185,   286,   286,   nil,   nil,   nil,   185,
-   nil,   nil,   nil,   286,   286,   286,   286,   nil,   nil,   129,
-   129,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   129,   129,
-   129,   129,   nil,   nil,   nil,   nil,   nil,   nil,   286,   nil,
-   nil,   286,   286,   286,   286,   286,   286,   nil,   286,   286,
-   nil,   nil,   129,   129,   nil,   286,   129,   129,   129,   129,
-   129,   129,   nil,   129,   129,   123,   123,   nil,   nil,   nil,
-   129,   nil,   nil,   nil,   123,   123,   123,   123,   nil,   nil,
-   290,   290,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   290,
-   290,   290,   290,   nil,   nil,   nil,   nil,   nil,   123,   123,
-   287,   nil,   123,   123,   123,   123,   123,   123,   287,   123,
-   123,   nil,   nil,   nil,   nil,   291,   123,   290,   290,   290,
-   290,   290,   290,   291,   290,   290,   nil,   nil,   nil,   nil,
-   nil,   290,   nil,   nil,   nil,   nil,   287,   287,   287,   287,
-   287,   287,   nil,   287,   287,   221,   nil,   nil,   nil,   nil,
-   287,   291,   291,   291,   291,   291,   291,   nil,   291,   291,
-   nil,   nil,   nil,   nil,   377,   291,   221,   nil,   221,   221,
-   nil,   221,   221,   nil,   221,   nil,   221,   nil,   221,   nil,
-   221,   nil,   nil,   221,   221,   377,   360,   377,   377,   nil,
-   377,   377,   nil,   377,   nil,   377,   nil,   377,   nil,   377,
-   nil,   nil,   377,   377,   nil,   294,   nil,   360,   nil,   360,
-   360,   nil,   360,   360,   nil,   360,   nil,   360,   nil,   360,
-   nil,   360,   nil,   nil,   360,   360,   294,   211,   294,   294,
-   nil,   294,   294,   nil,   294,   nil,   294,   nil,   294,   nil,
-   294,   nil,   nil,   294,   294,   nil,   307,   nil,   211,   nil,
-   211,   211,   nil,   211,   211,   nil,   211,   nil,   211,   nil,
-   211,   nil,   211,   nil,   nil,   211,   211,   307,   375,   307,
-   307,   nil,   307,   307,   nil,   307,   nil,   307,   nil,   307,
-   nil,   307,   nil,   nil,   307,   307,   nil,   322,   nil,   375,
-   nil,   375,   375,   nil,   375,   375,   nil,   375,   nil,   375,
-   nil,   375,   nil,   375,   nil,   nil,   375,   375,   322,   371,
-   322,   322,   nil,   322,   322,   nil,   322,   nil,   322,   nil,
-   322,   nil,   322,   nil,   nil,   322,   322,   nil,   369,   nil,
-   371,   nil,   371,   371,   nil,   371,   371,   nil,   371,   nil,
-   371,   nil,   371,   nil,   371,   nil,   nil,   371,   371,   369,
-   318,   369,   369,   nil,   369,   369,   nil,   369,   nil,   369,
-   nil,   369,   nil,   369,   nil,   nil,   369,   369,   nil,   236,
-   nil,   318,   nil,   318,   318,   nil,   318,   318,   nil,   318,
-   nil,   318,   nil,   318,   nil,   318,   nil,   nil,   318,   318,
-   236,   nil,   236,   236,   nil,   236,   236,   nil,   236,   nil,
-   236,   nil,   236,   nil,   236,   nil,   nil,   236,   236,   292,
-   292,   292,   292,   292,   292,   nil,   292,   292,   nil,   nil,
-   nil,   nil,   nil,   292 ]
+   180,   180,   152,    86,   156,   106,   106,   272,   174,     7,
+   277,   277,   106,   180,   180,    65,    55,   277,     7,     7,
+   272,    86,   180,   180,   180,   180,    65,   296,    17,    80,
+   296,    65,   158,    95,   202,   202,   174,   174,   202,   218,
+   202,    55,   156,   106,   152,   156,   180,   180,   277,   219,
+   180,   180,   180,   180,   180,   180,   202,   180,   180,   181,
+   181,   368,   368,   239,   180,   156,    17,   202,   165,    17,
+   158,   202,   202,   158,   239,   202,   165,   182,   182,   239,
+   202,   202,   349,   182,   202,   349,    22,   202,    22,    17,
+   143,   243,   181,   158,   368,   202,   181,   181,   368,   368,
+   181,    22,   368,   143,   181,   181,   220,   368,   163,   181,
+   182,   368,   355,   355,   182,   182,   243,   243,   182,   163,
+   181,    62,   368,   182,   163,    22,   178,   182,   281,   281,
+   351,   351,    62,   221,   351,   281,   351,    62,   182,   178,
+   285,   285,   285,   285,   101,   355,   221,   285,   285,   355,
+   355,   224,   351,   355,   285,   341,   341,   300,   355,   341,
+    91,   341,   355,   351,   308,   300,   226,   351,   351,   308,
+   227,   351,    90,   355,   184,   184,   351,   351,    12,   122,
+   351,   171,    12,   351,   122,   171,   171,   229,   341,    12,
+   286,   351,   341,   341,   343,   343,   341,   184,   286,     1,
+    87,   341,    30,     1,   183,   341,    30,   184,   183,   183,
+     1,   184,   184,    30,    30,   184,   341,   196,   196,   184,
+   184,   196,   195,   196,   184,   195,   286,   286,   286,   286,
+   286,   286,   188,   286,   286,   184,   188,   188,   231,   196,
+   286,   120,   232,   197,   197,   120,   233,   197,   103,   197,
+   196,    85,   120,   120,   196,   196,   105,    43,   196,   280,
+   280,    43,    84,   196,   196,   197,   280,   196,    43,    43,
+   196,    81,   215,    23,    23,    78,   197,    23,   196,   250,
+   197,   197,   279,   279,   197,   252,   253,   279,   279,   197,
+   197,    77,    71,   197,   279,    23,   197,   160,    68,    26,
+    26,   160,   160,    26,   197,    26,    23,   268,    67,   234,
+    23,    23,   211,   234,    23,   274,   234,    66,    23,    23,
+   234,    26,   107,    23,   108,   198,   198,   109,   207,   198,
+   114,   198,    26,   115,    23,   119,    26,    26,    64,   121,
+    26,    35,    35,    35,    35,    26,    26,   198,    52,    26,
+    29,    29,    26,    51,    29,    50,    29,   127,   198,   132,
+    26,    36,   198,   198,   307,   307,   198,   133,   307,   136,
+   307,   198,   198,   138,   192,   198,   139,    33,   198,    34,
+    34,    34,    34,    29,   140,   142,   198,    29,    29,   305,
+   305,    29,   315,   305,   144,   305,    29,   307,    16,   327,
+    29,   307,   307,   199,   199,   307,   328,   199,   330,   199,
+   307,    29,   297,   297,   307,   331,   332,   297,   297,   337,
+   153,   175,   305,   154,   297,   307,   305,   305,     9,   288,
+   305,    28,    28,    28,    28,   305,   199,   288,   352,   305,
+   199,   199,     8,   356,   199,   298,   298,   173,   367,   199,
+   305,   172,   298,   199,   369,   200,   200,     3,     2,   200,
+   157,   200,   263,   nil,   199,   288,   288,   288,   288,   288,
+   288,   nil,   288,   288,   nil,   nil,   nil,   200,   298,   288,
+   nil,   nil,   298,   298,   nil,   nil,   298,   nil,   200,   nil,
+   nil,   298,   200,   200,   nil,   298,   200,     4,     4,     4,
+     4,   200,   200,    39,    39,   200,   298,    39,   200,    39,
+   293,   293,   293,   293,   293,   293,   200,   293,   293,   nil,
+   283,   283,   283,   283,   293,    39,   nil,   283,   283,   201,
+   201,   nil,   nil,   201,   283,   201,    39,   nil,   nil,   nil,
+    39,    39,   nil,   nil,    39,   nil,   nil,   nil,   nil,    39,
+    39,   201,   nil,    39,   nil,   nil,    39,   nil,   nil,    46,
+    46,   nil,   201,    46,    39,    46,   201,   201,   nil,   nil,
+   201,   nil,   nil,   nil,   nil,   201,   201,   nil,   nil,   201,
+   nil,    46,   201,   nil,   nil,    47,    47,   nil,   nil,    47,
+   201,    47,    46,   nil,   nil,   nil,    46,    46,   nil,   nil,
+    46,   nil,   nil,   nil,   nil,    46,    46,    47,   nil,    46,
+    48,    48,    46,   nil,    48,   nil,    48,   nil,    47,   nil,
+    46,   nil,    47,    47,    49,    49,    47,   nil,    49,   nil,
+   nil,    47,    47,   nil,   nil,    47,   nil,   nil,    47,   nil,
+   nil,   nil,   nil,    48,   nil,   nil,    47,    48,    48,   176,
+   176,    48,   nil,   176,   nil,   176,    48,    49,   nil,   nil,
+    48,    49,    49,   nil,   nil,    49,   nil,   nil,   nil,   nil,
+    49,    48,   nil,   nil,    49,   203,   203,   nil,   nil,   203,
+   nil,   203,   176,   nil,   nil,    49,   176,   176,   nil,   nil,
+   176,   nil,   nil,   nil,   nil,   176,   nil,   203,   nil,   176,
+   nil,   204,   204,   nil,   nil,   204,   nil,   204,   203,   nil,
+   176,   nil,   203,   203,   nil,   nil,   203,   nil,   nil,   nil,
+   nil,   203,   203,   204,   nil,   203,   nil,   nil,   203,   nil,
+   nil,   205,   205,   nil,   204,   205,   203,   205,   204,   204,
+   nil,   nil,   204,   nil,   nil,   nil,   nil,   204,   204,   nil,
+   nil,   204,   nil,   205,   204,   nil,   nil,   100,   100,   nil,
+   nil,   100,   204,   100,   205,   nil,   nil,   nil,   205,   205,
+   nil,   nil,   205,   nil,   nil,   nil,   nil,   205,   205,   100,
+   nil,   205,    63,    63,   205,   nil,    63,   nil,    63,   nil,
+   100,   nil,   205,   nil,   100,   100,   nil,   nil,   100,   nil,
+   nil,   nil,   nil,   100,   100,   nil,   nil,   100,   208,   208,
+   100,   nil,   208,   nil,   208,    63,   nil,   nil,   100,    63,
+    63,   nil,   nil,    63,   nil,   nil,   nil,   nil,    63,   nil,
+   208,   nil,    63,   nil,   209,   209,   nil,   nil,   209,   nil,
+   209,   208,   nil,    63,   nil,   208,   208,   nil,   nil,   208,
+   nil,   nil,   269,   269,   208,   208,   209,   nil,   208,   276,
+   276,   208,   nil,   276,   nil,   276,   nil,   209,   nil,   208,
+   nil,   209,   209,   nil,   nil,   209,   nil,   nil,   nil,   nil,
+   209,   209,   nil,   nil,   209,   269,   nil,   209,   nil,   269,
+   269,   nil,   276,   269,   nil,   209,   276,   276,   269,   nil,
+   276,   nil,   269,   nil,   nil,   276,   256,   256,   nil,   276,
+   256,   nil,   256,   269,   nil,   nil,   nil,   nil,   nil,   nil,
+   276,   nil,   nil,   nil,   nil,    74,    74,   nil,   256,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   256,
+   nil,   nil,   nil,   256,   256,   nil,   nil,   256,    74,   nil,
+   254,   254,   256,   256,   nil,   nil,   256,   nil,    74,   256,
+   nil,   nil,    74,    74,   nil,   nil,    74,   256,    75,    75,
+    74,    74,    75,   254,    75,    74,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   254,   nil,   nil,    74,   254,   254,   nil,
+    75,   254,   nil,   248,   248,   254,   254,   248,   nil,   248,
+   254,    75,   nil,   245,   245,    75,    75,   nil,   nil,    75,
+   nil,   254,   nil,   nil,    75,    75,   nil,   nil,    75,   244,
+   244,    75,   nil,   nil,   nil,   nil,   248,   nil,   nil,    75,
+   248,   248,   nil,   nil,   248,   nil,   245,   nil,   nil,   248,
+   245,   245,   nil,   248,   245,   nil,   225,   225,   nil,   245,
+   225,   nil,   244,   245,   248,   nil,   244,   244,   nil,   nil,
+   244,   nil,    82,    82,   245,   244,    82,   nil,    82,   244,
+   nil,   nil,   210,   210,   nil,   nil,   210,   nil,   210,   225,
+   244,   nil,   nil,   225,   225,   nil,   nil,   225,   nil,   nil,
+   nil,   nil,   225,   nil,   210,    82,   225,   nil,   nil,    82,
+    82,   nil,   nil,    82,   nil,   210,   nil,   225,    82,   210,
+   210,   nil,    82,   210,   nil,   nil,   nil,   nil,   210,   210,
+   213,   213,   210,    82,   213,   210,   213,   284,   284,   284,
+   284,   284,   284,   210,   284,   284,   nil,   nil,   nil,   102,
+   102,   284,   213,   102,   102,   102,   230,   230,   nil,   nil,
+   230,   nil,   230,   213,   nil,   nil,   nil,   213,   213,   nil,
+   nil,   213,   nil,   nil,   nil,   nil,   213,   213,   214,   214,
+   213,   nil,   102,   213,   nil,   nil,   102,   102,   nil,   230,
+   102,   213,   nil,   230,   230,   102,   nil,   230,   nil,   102,
+   nil,   nil,   230,   228,   228,   nil,   230,   228,   nil,   228,
+   102,   214,   nil,   nil,   nil,   214,   214,   230,   nil,   214,
+   nil,    94,    94,   nil,   214,    94,   nil,    94,   214,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   228,   nil,   nil,   214,
+   228,   228,   nil,    94,   228,   nil,   nil,   nil,   nil,   228,
+   nil,    97,    97,   228,    94,    97,   nil,    97,    94,    94,
+   nil,   nil,    94,   nil,   228,   nil,   nil,    94,    94,   nil,
+   nil,    94,   nil,    97,    94,   nil,   nil,   206,   206,   nil,
+   nil,   206,    94,   206,    97,   nil,   nil,   nil,    97,    97,
+   nil,   nil,    97,   nil,   nil,   nil,   nil,    97,    97,   206,
+   nil,    97,   nil,   nil,    97,   nil,   nil,   nil,   nil,   nil,
+   206,   nil,    97,   nil,   206,   206,   111,   nil,   206,   nil,
+   nil,   nil,   nil,   206,   206,   111,   111,   206,   nil,   nil,
+   206,   nil,   nil,   nil,   111,   111,   111,   111,   206,   nil,
+   124,   124,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   124,
+   124,   124,   124,   nil,   nil,   nil,   nil,   nil,   111,   111,
+   nil,   nil,   111,   111,   111,   111,   111,   111,   nil,   111,
+   111,   nil,   nil,   124,   124,   nil,   111,   124,   124,   124,
+   124,   124,   124,   nil,   124,   124,   130,   130,   nil,   nil,
+   nil,   124,   nil,   nil,   nil,   130,   130,   130,   130,   nil,
+   nil,   131,   131,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   131,   131,   131,   131,   nil,   nil,   nil,   nil,   nil,   130,
+   130,   nil,   nil,   130,   130,   130,   130,   130,   130,   nil,
+   130,   130,   nil,   nil,   131,   131,   nil,   130,   131,   131,
+   131,   131,   131,   131,   nil,   131,   131,   287,   287,   nil,
+   nil,   nil,   131,   nil,   nil,   nil,   287,   287,   287,   287,
+   nil,   nil,   186,   186,   nil,   nil,   nil,   nil,   nil,   nil,
+   186,   186,   186,   186,   186,   nil,   nil,   nil,   nil,   nil,
+   nil,   287,   nil,   nil,   287,   287,   287,   287,   287,   287,
+   nil,   287,   287,   nil,   nil,   186,   186,   nil,   287,   186,
+   186,   186,   186,   186,   186,   nil,   186,   186,   291,   291,
+   nil,   nil,   nil,   186,   nil,   nil,   nil,   291,   291,   291,
+   291,   nil,   nil,    19,   292,    19,    19,   nil,    19,    19,
+   nil,    19,   292,    19,   nil,    19,   nil,    19,   nil,   nil,
+    19,    19,   nil,   289,   nil,   291,   291,   291,   291,   291,
+   291,   289,   291,   291,   nil,   nil,   nil,   nil,   nil,   291,
+   292,   292,   292,   292,   292,   292,   nil,   292,   292,   nil,
+   nil,   237,   nil,   nil,   292,   nil,   nil,   nil,   nil,   289,
+   289,   289,   289,   289,   289,   nil,   289,   289,   nil,   nil,
+   372,   nil,   237,   289,   237,   237,   nil,   237,   237,   nil,
+   237,   nil,   237,   nil,   237,   nil,   237,   nil,   nil,   237,
+   237,   372,   378,   372,   372,   nil,   372,   372,   nil,   372,
+   nil,   372,   nil,   372,   nil,   372,   nil,   nil,   372,   372,
+   nil,   212,   nil,   378,   nil,   378,   378,   nil,   378,   378,
+   nil,   378,   nil,   378,   nil,   378,   nil,   378,   nil,   nil,
+   378,   378,   212,   323,   212,   212,   nil,   212,   212,   nil,
+   212,   nil,   212,   nil,   212,   nil,   212,   nil,   nil,   212,
+   212,   nil,   374,   nil,   323,   nil,   323,   323,   nil,   323,
+   323,   nil,   323,   nil,   323,   nil,   323,   nil,   323,   nil,
+   nil,   323,   323,   374,   380,   374,   374,   nil,   374,   374,
+   nil,   374,   nil,   374,   nil,   374,   nil,   374,   nil,   nil,
+   374,   374,   nil,   303,   nil,   380,   nil,   380,   380,   nil,
+   380,   380,   nil,   380,   nil,   380,   nil,   380,   nil,   380,
+   nil,   nil,   380,   380,   303,   319,   303,   303,   nil,   303,
+   303,   nil,   303,   nil,   303,   nil,   303,   nil,   303,   nil,
+   nil,   303,   303,   nil,   362,   nil,   319,   nil,   319,   319,
+   nil,   319,   319,   nil,   319,   nil,   319,   nil,   319,   nil,
+   319,   nil,   nil,   319,   319,   362,   217,   362,   362,   nil,
+   362,   362,   nil,   362,   nil,   362,   nil,   362,   nil,   362,
+   nil,   nil,   362,   362,   nil,   295,   nil,   217,   nil,   217,
+   217,   nil,   217,   217,   nil,   217,   nil,   217,   nil,   217,
+   nil,   217,   nil,   nil,   217,   217,   295,   nil,   295,   295,
+   nil,   295,   295,   nil,   295,   nil,   295,   nil,   295,   nil,
+   295,   nil,   nil,   295,   295,     0,   nil,     0,     0,   nil,
+     0,     0,   nil,     0,   nil,     0,   nil,     0,   nil,     0,
+   nil,   nil,     0,     0 ]
 
 racc_action_pointer = [
-  1174,   176,   417,   387,   375,   nil,   nil,     1,   408,   397,
-   nil,   nil,   119,   nil,   nil,   nil,   381,    98,   nil,  1123,
-   nil,   nil,    -3,   222,   nil,   nil,   247,   nil,   302,   298,
-   182,   nil,   nil,   360,   426,   400,   320,   nil,   nil,  1247,
-   nil,   nil,   nil,   244,   nil,   nil,   502,   532,   558,    26,
-   295,   310,   329,   nil,    -4,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    69,   739,   258,   -20,   269,   254,   nil,   235,
-   nil,   226,   nil,   nil,   883,   926,   nil,   207,   -11,   207,
-   nil,   178,  1017,   nil,   155,   167,     3,   135,   nil,   nil,
-   102,    39,   nil,   nil,  1191,    18,   nil,   446,   nil,   nil,
-  1140,   194,  1089,   172,   nil,   183,    28,   255,   280,   282,
-   nil,  1250,   nil,   299,   301,   nil,   nil,   nil,   299,   216,
-   -14,   nil,   309,  1418,   nil,   nil,   318,   nil,   nil,  1372,
-  1296,   335,   325,   nil,   nil,   313,   nil,   333,   345,   340,
-   nil,   347,    25,   351,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    -5,   394,   396,   nil,    58,   428,     0,   nil,   243,
-   nil,   nil,   129,   nil,    -7,   nil,   nil,   nil,   nil,   nil,
-   320,   415,   410,   -12,   346,   580,   nil,    95,   nil,    -4,
-    32,    84,   261,   142,   nil,  1311,   nil,   231,   nil,   nil,
-   338,   nil,   nil,    47,   nil,   148,   196,   273,   395,   420,
-   476,   601,   627,   657,   683,   713,   225,   761,   998,  1024,
-    53,  1588,  1217,  1133,    71,   nil,    61,    66,    58,   107,
-   nil,  1506,   nil,   119,  1068,   122,   156,  1082,   136,  1075,
-   144,   183,   185,   283,   nil,   nil,  1730,   nil,    75,   nil,
-   nil,   nil,    63,   951,   945,   nil,   nil,   864,   nil,   225,
-   nil,   225,   247,   858,   nil,   839,   nil,   nil,   nil,   nil,
-   nil,   255,   nil,   nil,   nil,   nil,   nil,   243,   796,   nil,
-   nil,   105,   nil,   276,   nil,   786,   109,   nil,   118,   165,
-   179,   nil,   153,   883,   902,   356,  1357,  1452,   796,   nil,
-  1433,  1467,  1725,   nil,  1566,   322,   322,   356,   nil,   148,
-   nil,   nil,   337,   nil,    91,   nil,   312,  1607,   nil,   nil,
-   nil,   nil,   nil,   nil,   361,   nil,   nil,   nil,  1711,   nil,
-   nil,   nil,  1648,   nil,   nil,   nil,   364,   365,   nil,   369,
-   370,   371,   nil,   nil,   nil,   nil,   393,   nil,   nil,   nil,
-   100,   nil,   159,   nil,   nil,   nil,   nil,   nil,   376,   401,
-   nil,   nil,   nil,    94,   412,   nil,   nil,   nil,   nil,   nil,
-  1547,   nil,   nil,   nil,   nil,   416,    42,   420,   nil,  1689,
-   nil,  1670,   nil,   nil,   nil,  1629,   nil,  1525,   nil,   nil,
-   nil ]
+  1795,   163,   443,   413,   433,   nil,   nil,     3,   434,   420,
+   nil,   nil,   142,   nil,   nil,   nil,   398,    26,   nil,  1483,
+   nil,   nil,    80,   271,   nil,   nil,   297,   nil,   367,   348,
+   166,   nil,   nil,   375,   315,   277,   337,   nil,   nil,   501,
+   nil,   nil,   nil,   221,   nil,   nil,   557,   583,   608,   622,
+   315,   329,   348,   nil,   nil,     4,   nil,   nil,   nil,   nil,
+   nil,   nil,    97,   780,   298,    -9,   309,   302,   275,   nil,
+   nil,   286,   nil,   nil,   923,   966,   nil,   279,   269,   nil,
+     6,   248,  1060,   nil,   239,   245,    -3,   177,   nil,   nil,
+   149,   137,   nil,   nil,  1209,    10,   nil,  1239,   nil,   nil,
+   755,   121,  1137,   225,   nil,   233,     3,   299,   301,   304,
+   nil,  1298,   nil,   nil,   322,   325,   nil,   nil,   nil,   323,
+   205,   331,   144,   nil,  1313,   nil,   nil,   351,   nil,   nil,
+  1359,  1374,   352,   344,   nil,   nil,   328,   nil,   350,   364,
+   361,   nil,   362,    79,   374,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    -9,   408,   386,   nil,     2,   452,    30,   nil,
+   251,   nil,   nil,    84,   nil,    50,   nil,   nil,   nil,   nil,
+   nil,   174,   439,   436,   -14,   381,   647,   nil,   114,   nil,
+    -4,    57,    75,   197,   172,   nil,  1435,   nil,   225,   nil,
+   nil,   nil,   363,   nil,   nil,   213,   215,   241,   323,   401,
+   453,   527,    32,   673,   699,   729,  1265,   265,   806,   832,
+  1070,   249,  1612,  1118,  1166,   270,   nil,  1757,    24,    24,
+    91,   121,   nil,   nil,   142,  1044,   126,   161,  1191,   147,
+  1144,   198,   233,   238,   273,   nil,   nil,  1552,   nil,    39,
+   nil,   nil,   nil,    66,  1017,  1001,   nil,   nil,   991,   nil,
+   270,   nil,   273,   279,   948,   nil,   904,   nil,   nil,   nil,
+   nil,   nil,   nil,   451,   nil,   nil,   nil,   nil,   283,   850,
+   nil,   nil,    -5,   nil,   308,   nil,   857,     8,   nil,   226,
+   198,    67,   nil,   466,  1073,    86,   172,  1420,   411,  1515,
+   nil,  1481,  1496,   456,   nil,  1776,    -4,   356,   443,   nil,
+   145,   nil,   nil,  1694,   nil,   387,   nil,   362,   129,   nil,
+   nil,   nil,   nil,   nil,   nil,   380,   nil,   nil,   nil,  1716,
+   nil,   nil,   nil,  1634,   nil,   nil,   nil,   376,   383,   nil,
+   385,   392,   393,   nil,   nil,   nil,   nil,   410,   nil,   nil,
+   nil,   153,   nil,   183,   nil,   nil,   nil,   nil,   nil,    51,
+   nil,   128,   430,   nil,   nil,   110,   435,   nil,   nil,   nil,
+   nil,   nil,  1735,   nil,   nil,   nil,   nil,   439,    59,   445,
+   nil,   nil,  1571,   nil,  1653,   nil,   nil,   nil,  1593,   nil,
+  1675,   nil,   nil,   nil ]
 
 racc_action_default = [
-  -194,  -231,  -231,   -50,  -231,    -8,    -9,  -231,  -231,   -22,
-   -10,  -185,  -186,   -11,  -183,   -12,  -231,  -231,   -13,    -1,
-   -14,    -2,  -231,  -184,   -15,    -3,  -231,   -16,    -5,  -231,
-  -231,   -17,    -6,  -231,   -18,    -7,  -194,  -186,  -184,  -231,
-   -51,   -26,   -27,  -231,   -24,   -25,  -231,  -231,  -231,   -85,
-   -92,  -194,  -231,  -193,  -194,  -191,  -187,  -189,  -190,  -219,
-  -192,    -4,  -194,  -231,   -85,  -194,   -53,  -229,  -172,   -42,
-   -43,  -211,  -117,   -33,  -231,  -231,   -44,   -31,  -231,   -74,
-   -32,   -36,  -231,  -122,   -37,  -231,   -73,   -38,  -170,   -72,
-   -39,   -40,  -171,   -41,  -231,  -103,  -111,  -231,  -130,  -112,
-  -231,  -104,  -231,  -108,  -110,  -105,  -231,  -114,  -106,  -113,
-  -109,  -231,  -107,  -231,  -231,   -49,  -173,  -174,  -176,  -231,
-  -195,  -196,  -231,   -83,   -19,   -22,  -184,   -21,   -23,   -82,
-   -84,  -231,   -75,   -86,   -81,   -70,   -74,   -76,  -217,   -79,
-   -68,   -77,   -73,  -231,  -169,  -168,   -80,   -78,   -90,   -91,
-   -93,  -231,  -217,  -194,   381,  -231,  -231,  -231,  -205,  -231,
-   -57,  -211,  -194,   -59,  -231,   -66,   -65,   -56,   -73,   -95,
-  -231,  -217,  -231,  -231,   -92,  -231,   -30,  -231,  -118,  -231,
-  -231,  -231,  -231,  -231,  -140,  -231,  -147,  -231,  -214,  -227,
-  -231,  -226,  -222,  -231,  -223,  -231,  -231,  -231,  -231,  -231,
-  -231,  -231,  -231,  -231,  -231,  -231,  -231,  -231,  -231,  -231,
-  -231,  -231,  -231,  -231,  -231,   -20,  -204,  -231,  -231,  -202,
-  -199,  -231,  -228,  -231,   -71,  -218,  -231,  -231,   -85,  -231,
-  -218,  -231,  -231,  -231,  -207,  -188,  -231,  -206,  -231,   -54,
-   -62,   -61,  -231,  -231,  -231,  -215,  -216,  -231,  -124,  -231,
-   -55,  -217,  -231,  -231,   -28,  -231,  -120,  -119,   -35,   -34,
-  -166,  -231,  -164,  -158,  -167,  -159,  -165,   -73,  -231,  -123,
-  -116,  -231,  -150,  -216,  -212,  -231,  -231,  -220,  -135,  -137,
-  -136,  -131,  -138,  -142,  -139,  -144,  -149,  -146,  -143,  -132,
-  -148,  -145,  -141,  -133,  -231,  -127,  -134,  -231,  -152,  -231,
-  -156,  -175,  -231,  -197,  -231,  -198,  -231,  -231,  -178,   -45,
-   -69,   -87,   -46,   -88,  -217,   -89,   -94,   -48,  -231,  -209,
-  -208,  -210,  -231,  -182,   -58,   -60,   -97,   -98,   -63,  -102,
-   -99,  -100,  -101,   -64,   -96,   -47,  -231,  -230,   -29,  -121,
-  -231,  -161,  -217,  -115,  -213,  -225,  -221,  -224,  -127,  -231,
-  -126,  -153,  -151,  -231,  -231,  -203,  -200,  -201,  -177,   -67,
-  -231,  -180,  -181,   -52,  -163,  -216,  -231,  -231,  -125,  -231,
-  -157,  -231,  -179,  -162,  -160,  -231,  -129,  -231,  -155,  -128,
-  -154 ]
+  -196,  -233,  -233,   -50,  -233,    -8,    -9,  -233,  -233,   -22,
+   -10,  -187,  -188,   -11,  -185,   -12,  -233,  -233,   -13,    -1,
+   -14,    -2,  -233,  -186,   -15,    -3,  -233,   -16,    -5,  -233,
+  -233,   -17,    -6,  -233,   -18,    -7,  -196,  -188,  -186,  -233,
+   -51,   -26,   -27,  -233,   -24,   -25,  -233,  -233,  -233,   -85,
+   -92,  -196,  -233,  -195,  -193,  -196,  -189,  -191,  -192,  -221,
+  -194,    -4,  -196,  -233,   -85,  -196,   -53,  -231,   -42,  -174,
+   -43,  -213,  -117,   -33,  -233,  -233,   -44,   -31,   -74,   -32,
+  -233,   -36,  -233,  -122,   -37,  -233,   -73,   -38,  -172,   -72,
+   -39,   -40,  -173,   -41,  -233,  -103,  -111,  -233,  -132,  -112,
+  -233,  -104,  -233,  -108,  -110,  -105,  -233,  -114,  -106,  -113,
+  -109,  -233,  -125,  -107,  -233,  -233,   -49,  -175,  -176,  -178,
+  -233,  -233,  -197,  -198,   -83,   -19,   -22,  -186,   -21,   -23,
+   -82,   -84,  -233,   -75,   -86,   -81,   -70,   -74,   -76,  -219,
+   -79,   -68,   -77,   -73,  -233,  -171,  -170,   -80,   -78,   -90,
+   -91,   -93,  -233,  -219,  -196,   384,  -233,  -233,  -233,  -207,
+  -233,   -57,  -213,  -196,   -59,  -233,   -66,   -65,   -56,   -73,
+   -95,  -233,  -219,  -233,  -233,   -92,  -233,   -30,  -233,  -118,
+  -233,  -233,  -233,  -233,  -233,  -142,  -233,  -149,  -233,  -216,
+  -229,  -225,  -233,  -228,  -224,  -233,  -233,  -233,  -233,  -233,
+  -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,
+  -233,  -233,  -233,  -233,  -233,  -233,   -20,  -233,  -206,  -233,
+  -204,  -233,  -201,  -230,  -233,   -71,  -220,  -233,  -233,   -85,
+  -233,  -220,  -233,  -233,  -233,  -209,  -190,  -233,  -208,  -233,
+   -54,   -62,   -61,  -233,  -233,  -233,  -217,  -218,  -233,  -124,
+  -233,   -55,  -219,  -233,  -233,   -28,  -233,  -120,  -119,   -35,
+   -34,  -168,  -166,  -233,  -169,  -160,  -167,  -161,   -73,  -233,
+  -123,  -116,  -233,  -152,  -218,  -214,  -233,  -233,  -222,  -137,
+  -139,  -138,  -133,  -140,  -144,  -141,  -146,  -151,  -148,  -145,
+  -134,  -150,  -147,  -143,  -135,  -233,  -128,  -136,  -233,  -154,
+  -233,  -158,  -177,  -233,  -180,  -233,  -199,  -233,  -233,  -200,
+   -45,   -69,   -87,   -46,   -88,  -219,   -89,   -94,   -48,  -233,
+  -211,  -210,  -212,  -233,  -184,   -58,   -60,   -97,   -98,   -63,
+  -102,   -99,  -100,  -101,   -64,   -96,   -47,  -233,  -232,   -29,
+  -121,  -233,  -163,  -219,  -115,  -215,  -227,  -226,  -223,  -128,
+  -127,  -233,  -233,  -155,  -153,  -233,  -233,  -179,  -205,  -203,
+  -202,   -67,  -233,  -182,  -183,   -52,  -165,  -218,  -233,  -233,
+  -126,  -129,  -233,  -159,  -233,  -181,  -164,  -162,  -233,  -131,
+  -233,  -157,  -130,  -156 ]
 
 racc_goto_table = [
-     2,     9,   261,    53,   226,    69,    36,   220,    61,   265,
-   148,    77,   194,    19,   146,    70,   117,    51,   231,     2,
-     9,    22,   178,   140,    73,    21,    93,   152,    56,   159,
-   138,   132,   173,   124,   300,   115,   128,   249,   259,   298,
-    22,   134,   350,    91,   125,   171,   170,   297,   127,   366,
-    43,   114,   147,   122,   328,   333,    69,   257,   263,   316,
-   342,   121,   177,   135,    22,   182,    70,   118,   153,   145,
-   223,    81,   232,    54,   156,    73,   121,    93,    66,   158,
-   119,   237,   217,   218,   324,   187,   320,   193,   189,   261,
-    16,   nil,   nil,   nil,    91,   368,   341,   137,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   215,
-   165,   259,   128,   165,   nil,   nil,   nil,   336,   300,   nil,
-   125,   nil,    81,   351,   127,   nil,   nil,   nil,   nil,   242,
-   nil,   nil,   nil,   nil,   148,   nil,   nil,   nil,   nil,   nil,
-    22,    53,   nil,    53,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   251,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    69,   260,   nil,    69,   235,    88,   nil,   nil,
-   nil,   271,    70,   nil,   370,    70,   nil,   nil,   234,   nil,
-   359,   258,   347,    93,    73,   311,    93,   261,   nil,   146,
-   148,   356,   289,    88,   373,   260,   293,   301,   310,   nil,
-    91,   145,   339,    91,   nil,   nil,   132,   nil,   367,   314,
-   165,     2,     9,   nil,   nil,   nil,   134,   nil,    88,   nil,
-   nil,     2,     9,   nil,   294,   326,   326,   147,    81,   262,
-   nil,    81,    22,   145,   307,    69,     2,     9,   319,   nil,
-   nil,   nil,    22,   nil,   145,    70,   332,   332,    87,   322,
-   260,   nil,   nil,   nil,   258,   nil,    93,    22,   189,   nil,
-   nil,   262,   nil,   145,   145,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   137,    91,   141,   nil,   nil,   nil,   nil,   260,
-   nil,   nil,   nil,    61,   111,   nil,   165,    84,   145,   nil,
-   nil,   327,   327,   nil,     2,     9,    61,   123,   nil,    87,
-   nil,    81,   nil,   nil,   129,   130,   nil,     2,     9,   nil,
-   nil,    61,   nil,   139,    90,    22,   262,   145,     2,     9,
-   nil,   nil,     2,     9,    88,    88,   166,    88,    22,   166,
-   nil,   360,   nil,   nil,   nil,   260,   nil,   nil,    84,    22,
-   144,   nil,   nil,    22,   nil,   262,   nil,   nil,   260,    61,
-   nil,   nil,   184,   nil,   nil,   185,   nil,    88,   186,   nil,
-     2,     9,   nil,   nil,    61,    90,    61,   nil,    88,     2,
-     9,     2,     9,   145,   nil,     2,     9,     2,     9,   nil,
-   nil,    22,   375,   113,   377,   nil,   145,    88,    88,   nil,
-    22,   nil,    22,   nil,   nil,   nil,    22,    88,    22,   nil,
-   nil,   262,   131,   nil,   nil,    87,   266,   nil,    87,   nil,
-   nil,   nil,    88,   nil,   262,   nil,   nil,   169,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   166,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   169,   nil,   266,   nil,
-   nil,    88,   nil,   nil,    84,   264,   nil,    84,   nil,   141,
-   nil,   nil,   nil,   278,   279,   280,   169,   282,   283,   284,
-   285,   286,   287,   288,   nil,   290,   291,   292,   330,   330,
-   296,    90,   144,   nil,    90,   nil,   nil,   264,    87,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   139,   nil,
-   nil,   nil,   nil,   266,   nil,   nil,   nil,    88,   nil,   nil,
-   nil,   nil,   166,   nil,   144,   nil,   nil,   329,   329,   nil,
-    88,   nil,   nil,   nil,   nil,   144,   nil,    84,   nil,   nil,
-   nil,   nil,   266,   nil,   nil,   nil,   nil,   nil,   nil,   252,
-   nil,   nil,   264,   nil,   331,   331,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    90,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   281,   nil,   nil,   nil,   nil,   nil,   nil,   144,
-   nil,   264,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   266,   nil,
-   nil,   313,   nil,   315,   nil,   nil,   nil,   nil,   144,   nil,
-   nil,   266,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   334,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   264,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   345,
-   264,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   144,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   355,   144,   nil,   nil,
-   357,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    22,     9,    68,   112,    53,   118,    61,    36,    91,   222,
+    19,   267,    70,    93,     2,   227,   139,   191,    51,    22,
+     9,   179,    77,    56,    73,   149,    21,   141,   133,   232,
+   115,   172,   153,     2,   146,   263,   125,   116,   135,   148,
+   147,   299,   129,    22,   126,   260,   160,   350,   250,   174,
+   128,   171,    43,    68,   121,   329,   334,   298,   368,    91,
+   258,   265,   123,    70,    93,   317,   343,   301,   136,   154,
+   183,   119,   224,   178,   233,    73,    55,   123,   157,    66,
+   238,   159,   120,   219,   221,   190,   325,   321,   195,    16,
+   188,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   342,   nil,
+   370,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   216,   nil,   nil,   nil,   nil,   260,   129,
+    22,   126,   263,   nil,   nil,   353,   nil,   128,   337,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    81,
+   nil,   nil,   nil,    53,   nil,    53,   nil,   243,   nil,   nil,
+   149,   301,   nil,   nil,   nil,   nil,   nil,   252,   nil,   nil,
+    68,   261,   236,    68,   nil,   138,    91,   146,   nil,    91,
+    70,    93,   nil,    70,    93,   nil,   nil,   nil,   166,   nil,
+   235,   166,   259,   272,   nil,    73,   nil,   302,   347,   nil,
+    81,   361,   nil,   261,   290,   360,   315,   376,   294,   146,
+   nil,   312,   340,   311,   133,   nil,   149,   nil,   373,   nil,
+   146,   nil,    22,     9,   135,   148,   147,    22,     9,   369,
+   nil,   263,   295,   327,   327,   nil,     2,   303,   nil,   146,
+   146,     2,   nil,    68,   333,   333,   nil,    22,     9,    91,
+   320,    88,   nil,    70,    93,   nil,   nil,   323,   261,   nil,
+   nil,     2,   nil,   nil,   146,   259,   190,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    88,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    87,   nil,   261,   nil,   166,
+   nil,   nil,    61,   146,   nil,   nil,   nil,   nil,   nil,   nil,
+    61,   nil,    88,   nil,   nil,    22,     9,    81,   262,   nil,
+    81,   142,   nil,    22,     9,   nil,   nil,   nil,   nil,     2,
+    61,   nil,   nil,   nil,   nil,   nil,   nil,     2,   nil,    22,
+     9,   nil,   nil,    22,     9,   nil,    87,   nil,   371,   362,
+   262,   nil,   nil,     2,   261,   nil,   nil,     2,   nil,   nil,
+   146,   138,   nil,   nil,   nil,   nil,   nil,   261,   nil,    61,
+   nil,   nil,   nil,   146,   nil,   166,   nil,   nil,   nil,   nil,
+   328,   328,    22,     9,   114,    61,   nil,    61,   nil,    84,
+    81,   nil,    22,     9,    22,     9,     2,    90,    22,     9,
+    22,     9,   378,   132,   380,   262,     2,   nil,     2,   nil,
+   nil,   nil,     2,   nil,     2,   140,   nil,   nil,   170,    88,
+    88,   nil,    88,   145,   nil,   nil,   nil,   nil,   167,   nil,
+   nil,   167,   nil,   nil,   262,   nil,   nil,   170,   nil,   nil,
+    84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    90,   nil,
+   nil,   nil,    88,    87,   266,   nil,    87,   170,   nil,   nil,
+   nil,   nil,   nil,    88,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    88,    88,   nil,   nil,   266,   nil,   nil,   nil,
+   nil,   262,    88,   nil,   nil,   nil,   nil,   142,   nil,   nil,
+   nil,   nil,   nil,   nil,   262,   nil,   nil,    88,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   331,   331,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    87,   nil,   nil,   167,
+   nil,   253,   nil,   nil,   nil,   nil,    88,   nil,   nil,   nil,
+   nil,   266,   nil,   nil,   nil,   nil,   nil,    84,   264,   nil,
+    84,   nil,   nil,   nil,   282,    90,   145,   nil,    90,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   266,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   264,   nil,   nil,   314,   nil,   316,   nil,   124,   145,   nil,
+   nil,   140,   nil,    88,   130,   131,   nil,   nil,   nil,   145,
+   nil,   nil,   nil,   335,   nil,   167,    88,   nil,   nil,   nil,
+   330,   330,   nil,   nil,   nil,   nil,   nil,   nil,   332,   332,
+    84,   nil,   nil,   180,   nil,   nil,   nil,   266,    90,   nil,
+   nil,   346,   nil,   nil,   nil,   264,   nil,   nil,   nil,   nil,
+   266,   nil,   185,   145,   nil,   186,   nil,   nil,   187,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   358,   nil,   359,   nil,   264,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   145,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   366,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   264,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   145,
+   nil,   nil,   nil,   nil,   264,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   145,   nil,   279,   280,   281,   nil,   283,   284,
+   285,   286,   287,   288,   289,   nil,   291,   292,   293,   nil,
+   nil,   297,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   364 ]
+   nil,   nil,   nil,   nil,   180 ]
 
 racc_goto_check = [
-    52,    21,    67,    63,    36,    30,    32,    81,     4,    69,
-    53,    22,    84,     2,    50,    31,    71,    32,    36,    52,
-    21,    37,    60,    47,    21,     3,    29,    38,    77,    41,
-    35,    30,    41,    19,    67,     5,     7,    36,    23,    65,
-    37,    31,    62,    28,    21,    35,    57,    64,     5,    58,
-    20,    37,    29,    73,    46,    46,    30,    61,    68,    56,
-    70,     3,    22,    33,    37,    57,    31,    72,    73,    28,
-    34,    24,    74,    75,    76,    21,     3,    29,    40,     3,
-    20,    78,    79,    80,    42,    57,    82,    83,    30,    67,
-     1,   nil,   nil,   nil,    28,    62,    69,    24,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    19,
-    24,    23,     7,    24,   nil,   nil,   nil,    36,    67,   nil,
-    21,   nil,    24,    65,     5,   nil,   nil,   nil,   nil,    41,
-   nil,   nil,   nil,   nil,    53,   nil,   nil,   nil,   nil,   nil,
-    37,    63,   nil,    63,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    38,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    30,    30,   nil,    30,    77,    49,   nil,   nil,
-   nil,    22,    31,   nil,    67,    31,   nil,   nil,     3,   nil,
-    36,    21,    84,    29,    21,    53,    29,    67,   nil,    50,
-    53,    81,    63,    49,    69,    30,    63,    71,    47,   nil,
-    28,    28,    60,    28,   nil,   nil,    30,   nil,    36,    35,
-    24,    52,    21,   nil,   nil,   nil,    31,   nil,    49,   nil,
-   nil,    52,    21,   nil,     2,    30,    30,    29,    24,    24,
-   nil,    24,    37,    28,     2,    30,    52,    21,    32,   nil,
-   nil,   nil,    37,   nil,    28,    31,    29,    29,    26,     2,
-    30,   nil,   nil,   nil,    21,   nil,    29,    37,    30,   nil,
-   nil,    24,   nil,    28,    28,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    24,    28,    26,   nil,   nil,   nil,   nil,    30,
-   nil,   nil,   nil,     4,    51,   nil,    24,    25,    28,   nil,
-   nil,    24,    24,   nil,    52,    21,     4,    51,   nil,    26,
-   nil,    24,   nil,   nil,    51,    51,   nil,    52,    21,   nil,
-   nil,     4,   nil,    25,    27,    37,    24,    28,    52,    21,
-   nil,   nil,    52,    21,    49,    49,    25,    49,    37,    25,
-   nil,     2,   nil,   nil,   nil,    30,   nil,   nil,    25,    37,
-    27,   nil,   nil,    37,   nil,    24,   nil,   nil,    30,     4,
-   nil,   nil,    51,   nil,   nil,    51,   nil,    49,    51,   nil,
-    52,    21,   nil,   nil,     4,    27,     4,   nil,    49,    52,
-    21,    52,    21,    28,   nil,    52,    21,    52,    21,   nil,
-   nil,    37,     2,    54,     2,   nil,    28,    49,    49,   nil,
-    37,   nil,    37,   nil,   nil,   nil,    37,    49,    37,   nil,
-   nil,    24,    54,   nil,   nil,    26,    26,   nil,    26,   nil,
-   nil,   nil,    49,   nil,    24,   nil,   nil,    54,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    54,   nil,    26,   nil,
-   nil,    49,   nil,   nil,    25,    25,   nil,    25,   nil,    26,
-   nil,   nil,   nil,    51,    51,    51,    54,    51,    51,    51,
-    51,    51,    51,    51,   nil,    51,    51,    51,    26,    26,
-    51,    27,    27,   nil,    27,   nil,   nil,    25,    26,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    25,   nil,
-   nil,   nil,   nil,    26,   nil,   nil,   nil,    49,   nil,   nil,
-   nil,   nil,    25,   nil,    27,   nil,   nil,    25,    25,   nil,
-    49,   nil,   nil,   nil,   nil,    27,   nil,    25,   nil,   nil,
-   nil,   nil,    26,   nil,   nil,   nil,   nil,   nil,   nil,    54,
-   nil,   nil,    25,   nil,    27,    27,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    27,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    54,   nil,   nil,   nil,   nil,   nil,   nil,    27,
-   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    26,   nil,
-   nil,    54,   nil,    54,   nil,   nil,   nil,   nil,    27,   nil,
-   nil,    26,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    54,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,    25,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    54,
-    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    27,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    54,    27,   nil,   nil,
-    54,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    37,    21,    30,    62,    64,    72,     4,    32,    28,    82,
+     2,    70,    31,    29,    52,    36,    35,    85,    32,    37,
+    21,    60,    22,    78,    21,    53,     3,    47,    30,    36,
+    37,    35,    38,    52,    28,    68,    19,     5,    31,    29,
+    50,    66,     7,    37,    21,    23,    41,    63,    36,    41,
+     5,    57,    20,    30,    74,    46,    46,    65,    58,    28,
+    61,    69,     3,    31,    29,    56,    71,    68,    33,    74,
+    57,    73,    34,    22,    75,    21,    76,     3,    77,    40,
+    79,     3,    20,    80,    81,    30,    42,    83,    84,     1,
+    57,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    70,   nil,
+    63,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    19,   nil,   nil,   nil,   nil,    23,     7,
+    37,    21,    68,   nil,   nil,    66,   nil,     5,    36,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    24,
+   nil,   nil,   nil,    64,   nil,    64,   nil,    41,   nil,   nil,
+    53,    68,   nil,   nil,   nil,   nil,   nil,    38,   nil,   nil,
+    30,    30,    78,    30,   nil,    24,    28,    28,   nil,    28,
+    31,    29,   nil,    31,    29,   nil,   nil,   nil,    24,   nil,
+     3,    24,    21,    22,   nil,    21,   nil,    72,    85,   nil,
+    24,    36,   nil,    30,    64,    82,    35,    70,    64,    28,
+   nil,    53,    60,    47,    30,   nil,    53,   nil,    68,   nil,
+    28,   nil,    37,    21,    31,    29,    50,    37,    21,    36,
+   nil,    68,     2,    30,    30,   nil,    52,     2,   nil,    28,
+    28,    52,   nil,    30,    29,    29,   nil,    37,    21,    28,
+    32,    49,   nil,    31,    29,   nil,   nil,     2,    30,   nil,
+   nil,    52,   nil,   nil,    28,    21,    30,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    49,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    26,   nil,    30,   nil,    24,
+   nil,   nil,     4,    28,   nil,   nil,   nil,   nil,   nil,   nil,
+     4,   nil,    49,   nil,   nil,    37,    21,    24,    24,   nil,
+    24,    26,   nil,    37,    21,   nil,   nil,   nil,   nil,    52,
+     4,   nil,   nil,   nil,   nil,   nil,   nil,    52,   nil,    37,
+    21,   nil,   nil,    37,    21,   nil,    26,   nil,    62,     2,
+    24,   nil,   nil,    52,    30,   nil,   nil,    52,   nil,   nil,
+    28,    24,   nil,   nil,   nil,   nil,   nil,    30,   nil,     4,
+   nil,   nil,   nil,    28,   nil,    24,   nil,   nil,   nil,   nil,
+    24,    24,    37,    21,    54,     4,   nil,     4,   nil,    25,
+    24,   nil,    37,    21,    37,    21,    52,    27,    37,    21,
+    37,    21,     2,    54,     2,    24,    52,   nil,    52,   nil,
+   nil,   nil,    52,   nil,    52,    25,   nil,   nil,    54,    49,
+    49,   nil,    49,    27,   nil,   nil,   nil,   nil,    25,   nil,
+   nil,    25,   nil,   nil,    24,   nil,   nil,    54,   nil,   nil,
+    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,   nil,
+   nil,   nil,    49,    26,    26,   nil,    26,    54,   nil,   nil,
+   nil,   nil,   nil,    49,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    49,    49,   nil,   nil,    26,   nil,   nil,   nil,
+   nil,    24,    49,   nil,   nil,   nil,   nil,    26,   nil,   nil,
+   nil,   nil,   nil,   nil,    24,   nil,   nil,    49,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    26,    26,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    26,   nil,   nil,    25,
+   nil,    54,   nil,   nil,   nil,   nil,    49,   nil,   nil,   nil,
+   nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    25,   nil,
+    25,   nil,   nil,   nil,    54,    27,    27,   nil,    27,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    54 ]
+    26,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    25,   nil,   nil,    54,   nil,    54,   nil,    51,    27,   nil,
+   nil,    25,   nil,    49,    51,    51,   nil,   nil,   nil,    27,
+   nil,   nil,   nil,    54,   nil,    25,    49,   nil,   nil,   nil,
+    25,    25,   nil,   nil,   nil,   nil,   nil,   nil,    27,    27,
+    25,   nil,   nil,    51,   nil,   nil,   nil,    26,    27,   nil,
+   nil,    54,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,
+    26,   nil,    51,    27,   nil,    51,   nil,   nil,    51,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    54,   nil,    54,   nil,    25,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    27,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    54,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,
+   nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    27,   nil,    51,    51,    51,   nil,    51,    51,
+    51,    51,    51,    51,    51,   nil,    51,    51,    51,   nil,
+   nil,    51,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,    51 ]
 
 racc_goto_pointer = [
-   nil,    90,    13,    25,   -11,     5,   nil,    -7,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   -10,
-    46,     1,   -12,  -142,    48,   264,   225,   291,    20,     3,
-   -18,    -8,     5,    14,   -65,   -19,  -134,    21,   -23,   nil,
-    56,   -33,  -154,   nil,   nil,   nil,  -189,   -26,   nil,   144,
-   -35,   258,     0,   -40,   354,   nil,  -171,   -17,  -293,   nil,
-   -53,  -122,  -253,   -14,  -166,  -174,   nil,  -179,  -123,  -172,
-  -208,   -17,    34,    17,   -81,    56,    20,    11,   -76,   -38,
-   -37,  -113,  -147,   -19,   -94,   nil ]
+   nil,    89,    10,    26,   -13,     7,   nil,    -1,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    -7,
+    48,     1,    -1,  -136,   116,   346,   252,   354,   -15,   -10,
+   -21,   -11,     6,    19,   -64,   -33,  -124,     0,   -18,   nil,
+    57,   -16,  -153,   nil,   nil,   nil,  -189,   -22,   nil,   218,
+    -9,   528,    14,   -25,   335,   nil,  -166,   -12,  -285,   nil,
+   -54,  -120,   -23,  -249,   -13,  -157,  -173,   nil,  -147,  -121,
+  -171,  -203,   -28,    38,    18,   -80,    59,    23,     6,   -78,
+   -39,   -38,  -113,  -147,   -18,   -89,   nil ]
 
 racc_goto_default = [
-   nil,   nil,   nil,   167,    25,    28,    32,    35,     5,     6,
+   nil,   nil,   nil,   168,    25,    28,    32,    35,     5,     6,
     10,    13,    15,    18,    20,    24,    27,    31,    34,     4,
-   nil,    99,   nil,    80,   101,   103,   105,   108,   109,   112,
+   nil,    99,   nil,    79,   101,   103,   105,   108,   109,   113,
     95,    96,     8,   nil,   nil,   nil,   nil,    85,   nil,    30,
-   nil,   nil,   160,   238,   163,   164,   nil,   nil,   143,   107,
-   110,   179,    67,   133,    98,   149,   150,   nil,   247,   104,
-   nil,   nil,   nil,    68,   nil,   nil,   299,    78,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    57,   nil,
-   nil,   nil,   nil,   nil,   nil,   190 ]
+   nil,   nil,   161,   239,   164,   165,   nil,   nil,   144,   107,
+   110,   111,    67,   134,    98,   150,   151,   nil,   248,   104,
+   nil,   nil,   nil,   nil,    69,   nil,   nil,   300,    80,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    57,
+   nil,   nil,   nil,   nil,   nil,   nil,   192 ]
 
 racc_token_table = {
  false => 0,
@@ -1061,7 +1091,7 @@ Racc_token_to_s_table = [
 'collection',
 'assignment',
 'casestatement',
-'ifstatement',
+'ifstatement_begin',
 'import',
 'fstatement',
 'definition',
@@ -1113,6 +1143,7 @@ Racc_token_to_s_table = [
 'hash',
 'dqrval',
 'dqtail',
+'ifstatement',
 'else',
 'regex',
 'caseopts',
@@ -1843,16 +1874,23 @@ module_eval <<'.,.,', 'grammar.ra', 464
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 478
+module_eval <<'.,.,', 'grammar.ra', 468
   def _reduce_125( val, _values, result )
+    result = val[1]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 482
+  def _reduce_126( val, _values, result )
     @lexer.commentpop
     args = {
-        :test => val[1],
-        :statements => val[3]
+        :test => val[0],
+        :statements => val[2]
     }
 
-    if val[5]
-        args[:else] = val[5]
+    if val[4]
+        args[:else] = val[4]
     end
 
     result = ast AST::IfStatement, args
@@ -1860,16 +1898,16 @@ module_eval <<'.,.,', 'grammar.ra', 478
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 491
-  def _reduce_126( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 495
+  def _reduce_127( val, _values, result )
     @lexer.commentpop
     args = {
-        :test => val[1],
+        :test => val[0],
         :statements => ast(AST::Nop)
     }
 
-    if val[4]
-        args[:else] = val[4]
+    if val[3]
+        args[:else] = val[3]
     end
 
     result = ast AST::IfStatement, args
@@ -1877,168 +1915,176 @@ module_eval <<'.,.,', 'grammar.ra', 491
   end
 .,.,
 
- # reduce 127 omitted
+ # reduce 128 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 497
-  def _reduce_128( val, _values, result )
-    @lexer.commentpop
-    result = ast AST::Else, :statements => val[2]
+module_eval <<'.,.,', 'grammar.ra', 501
+  def _reduce_129( val, _values, result )
+                #@lexer.commentpop
+    result = ast AST::Else, :statements => val[1]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 501
-  def _reduce_129( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 505
+  def _reduce_130( val, _values, result )
     @lexer.commentpop
-    result = ast AST::Else, :statements => ast(AST::Nop)
+    result = ast AST::Else, :statements => val[2]
    result
   end
 .,.,
 
- # reduce 130 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 518
+module_eval <<'.,.,', 'grammar.ra', 509
   def _reduce_131( val, _values, result )
-    result = ast AST::InOperator, :lval => val[0], :rval => val[2]
+    @lexer.commentpop
+    result = ast AST::Else, :statements => ast(AST::Nop)
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 521
-  def _reduce_132( val, _values, result )
-    result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
-   result
-  end
-.,.,
+ # reduce 132 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 524
+module_eval <<'.,.,', 'grammar.ra', 526
   def _reduce_133( val, _values, result )
-    result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::InOperator, :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 527
+module_eval <<'.,.,', 'grammar.ra', 529
   def _reduce_134( val, _values, result )
-    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 530
+module_eval <<'.,.,', 'grammar.ra', 532
   def _reduce_135( val, _values, result )
-    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 533
+module_eval <<'.,.,', 'grammar.ra', 535
   def _reduce_136( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 536
+module_eval <<'.,.,', 'grammar.ra', 538
   def _reduce_137( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 539
+module_eval <<'.,.,', 'grammar.ra', 541
   def _reduce_138( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 542
+module_eval <<'.,.,', 'grammar.ra', 544
   def _reduce_139( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 545
+module_eval <<'.,.,', 'grammar.ra', 547
   def _reduce_140( val, _values, result )
-    result = ast AST::Minus, :value => val[1]
+    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 548
+module_eval <<'.,.,', 'grammar.ra', 550
   def _reduce_141( val, _values, result )
-    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 551
+module_eval <<'.,.,', 'grammar.ra', 553
   def _reduce_142( val, _values, result )
-    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::Minus, :value => val[1]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 554
+module_eval <<'.,.,', 'grammar.ra', 556
   def _reduce_143( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 557
+module_eval <<'.,.,', 'grammar.ra', 559
   def _reduce_144( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 560
+module_eval <<'.,.,', 'grammar.ra', 562
   def _reduce_145( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 563
+module_eval <<'.,.,', 'grammar.ra', 565
   def _reduce_146( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 566
+module_eval <<'.,.,', 'grammar.ra', 568
   def _reduce_147( val, _values, result )
-    result = ast AST::Not, :value => val[1]
+    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 569
+module_eval <<'.,.,', 'grammar.ra', 571
   def _reduce_148( val, _values, result )
-    result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 572
+module_eval <<'.,.,', 'grammar.ra', 574
   def _reduce_149( val, _values, result )
-    result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+    result = ast AST::Not, :value => val[1]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 575
+module_eval <<'.,.,', 'grammar.ra', 577
   def _reduce_150( val, _values, result )
-    result = val[1]
+    result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 584
+module_eval <<'.,.,', 'grammar.ra', 580
   def _reduce_151( val, _values, result )
+    result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 583
+  def _reduce_152( val, _values, result )
+    result = val[1]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 592
+  def _reduce_153( val, _values, result )
     @lexer.commentpop
     options = val[3]
     unless options.instance_of?(AST::ASTArray)
@@ -2049,10 +2095,10 @@ module_eval <<'.,.,', 'grammar.ra', 584
   end
 .,.,
 
- # reduce 152 omitted
+ # reduce 154 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 594
-  def _reduce_153( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 602
+  def _reduce_155( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push val[1]
         result = val[0]
@@ -2063,16 +2109,16 @@ module_eval <<'.,.,', 'grammar.ra', 594
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 599
-  def _reduce_154( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 607
+  def _reduce_156( val, _values, result )
     @lexer.commentpop
     result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 605
-  def _reduce_155( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 613
+  def _reduce_157( val, _values, result )
     @lexer.commentpop
     result = ast(AST::CaseOpt,
         :value => val[0],
@@ -2082,10 +2128,10 @@ module_eval <<'.,.,', 'grammar.ra', 605
   end
 .,.,
 
- # reduce 156 omitted
+ # reduce 158 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 615
-  def _reduce_157( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 623
+  def _reduce_159( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push(val[2])
         result = val[0]
@@ -2096,27 +2142,27 @@ module_eval <<'.,.,', 'grammar.ra', 615
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 619
-  def _reduce_158( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 627
+  def _reduce_160( val, _values, result )
     result = ast AST::Selector, :param => val[0], :values => val[2]
    result
   end
 .,.,
 
- # reduce 159 omitted
+ # reduce 161 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 625
-  def _reduce_160( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 633
+  def _reduce_162( val, _values, result )
     @lexer.commentpop
     result = val[1]
    result
   end
 .,.,
 
- # reduce 161 omitted
+ # reduce 163 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 635
-  def _reduce_162( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 643
+  def _reduce_164( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push(val[2])
         result = val[0]
@@ -2127,17 +2173,13 @@ module_eval <<'.,.,', 'grammar.ra', 635
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 639
-  def _reduce_163( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 647
+  def _reduce_165( val, _values, result )
     result = ast AST::ResourceParam, :param => val[0], :value => val[2]
    result
   end
 .,.,
 
- # reduce 164 omitted
-
- # reduce 165 omitted
-
  # reduce 166 omitted
 
  # reduce 167 omitted
@@ -2148,33 +2190,37 @@ module_eval <<'.,.,', 'grammar.ra', 639
 
  # reduce 170 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 650
-  def _reduce_171( val, _values, result )
+ # reduce 171 omitted
+
+ # reduce 172 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 658
+  def _reduce_173( val, _values, result )
     result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
    result
   end
 .,.,
 
- # reduce 172 omitted
+ # reduce 174 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 653
-  def _reduce_173( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 661
+  def _reduce_175( val, _values, result )
  result = [val[0][:value]]
    result
   end
 .,.,
 
- # reduce 174 omitted
+ # reduce 176 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 655
-  def _reduce_175( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 663
+  def _reduce_177( val, _values, result )
  result = val[0] += val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 664
-  def _reduce_176( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 672
+  def _reduce_178( val, _values, result )
     val[1].each do |file|
         import(file)
     end
@@ -2184,8 +2230,8 @@ module_eval <<'.,.,', 'grammar.ra', 664
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 675
-  def _reduce_177( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 683
+  def _reduce_179( val, _values, result )
     @lexer.commentpop
     newdefine classname(val[1]), :arguments => val[2], :code => val[4], :line => val[0][:line]
     @lexer.indefine = false
@@ -2196,8 +2242,8 @@ module_eval <<'.,.,', 'grammar.ra', 675
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 680
-  def _reduce_178( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 688
+  def _reduce_180( val, _values, result )
     @lexer.commentpop
     newdefine classname(val[1]), :arguments => val[2], :line => val[0][:line]
     @lexer.indefine = false
@@ -2206,8 +2252,8 @@ module_eval <<'.,.,', 'grammar.ra', 680
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 689
-  def _reduce_179( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 697
+  def _reduce_181( val, _values, result )
     @lexer.commentpop
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
@@ -2217,8 +2263,8 @@ module_eval <<'.,.,', 'grammar.ra', 689
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 695
-  def _reduce_180( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 703
+  def _reduce_182( val, _values, result )
     @lexer.commentpop
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
@@ -2228,8 +2274,8 @@ module_eval <<'.,.,', 'grammar.ra', 695
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 701
-  def _reduce_181( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 709
+  def _reduce_183( val, _values, result )
     @lexer.commentpop
     newnode val[1], :parent => val[2], :code => val[4], :line => val[0][:line]
     result = nil
@@ -2237,8 +2283,8 @@ module_eval <<'.,.,', 'grammar.ra', 701
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 705
-  def _reduce_182( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 713
+  def _reduce_184( val, _values, result )
     @lexer.commentpop
     newnode val[1], :parent => val[2], :line => val[0][:line]
     result = nil
@@ -2246,38 +2292,38 @@ module_eval <<'.,.,', 'grammar.ra', 705
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 706
-  def _reduce_183( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 714
+  def _reduce_185( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 708
-  def _reduce_184( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 716
+  def _reduce_186( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 709
-  def _reduce_185( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 717
+  def _reduce_187( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 710
-  def _reduce_186( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 718
+  def _reduce_188( val, _values, result )
  result = "class"
    result
   end
 .,.,
 
- # reduce 187 omitted
+ # reduce 189 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 720
-  def _reduce_188( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 728
+  def _reduce_190( val, _values, result )
     result = val[0]
     result = [result] unless result.is_a?(Array)
     result << val[2]
@@ -2285,71 +2331,71 @@ module_eval <<'.,.,', 'grammar.ra', 720
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 724
-  def _reduce_189( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 732
+  def _reduce_191( val, _values, result )
     result = ast AST::HostName, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 725
-  def _reduce_190( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 733
+  def _reduce_192( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 726
-  def _reduce_191( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 734
+  def _reduce_193( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 727
-  def _reduce_192( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 735
+  def _reduce_194( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
- # reduce 193 omitted
+ # reduce 195 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 733
-  def _reduce_194( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 741
+  def _reduce_196( val, _values, result )
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 737
-  def _reduce_195( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 745
+  def _reduce_197( val, _values, result )
     result = ast AST::ASTArray, :children => []
    result
   end
 .,.,
 
- # reduce 196 omitted
+ # reduce 198 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 742
-  def _reduce_197( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 750
+  def _reduce_199( val, _values, result )
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 746
-  def _reduce_198( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 754
+  def _reduce_200( val, _values, result )
     result = val[1]
     result = [result] unless result[0].is_a?(Array)
    result
   end
 .,.,
 
- # reduce 199 omitted
+ # reduce 201 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 753
-  def _reduce_200( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 761
+  def _reduce_202( val, _values, result )
     result = val[0]
     result = [result] unless result[0].is_a?(Array)
     result << val[2]
@@ -2357,67 +2403,67 @@ module_eval <<'.,.,', 'grammar.ra', 753
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 758
-  def _reduce_201( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 766
+  def _reduce_203( val, _values, result )
     Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
     result = [val[0][:value], val[2]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 762
-  def _reduce_202( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 770
+  def _reduce_204( val, _values, result )
     Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
     result = [val[0][:value]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 764
-  def _reduce_203( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 772
+  def _reduce_205( val, _values, result )
     result = [val[0][:value], val[2]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 766
-  def _reduce_204( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 774
+  def _reduce_206( val, _values, result )
     result = [val[0][:value]]
    result
   end
 .,.,
 
- # reduce 205 omitted
+ # reduce 207 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 771
-  def _reduce_206( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 779
+  def _reduce_208( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
- # reduce 207 omitted
+ # reduce 209 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 776
-  def _reduce_208( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 784
+  def _reduce_210( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
- # reduce 209 omitted
+ # reduce 211 omitted
 
- # reduce 210 omitted
+ # reduce 212 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 782
-  def _reduce_211( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 790
+  def _reduce_213( val, _values, result )
     result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 790
-  def _reduce_212( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 798
+  def _reduce_214( val, _values, result )
     if val[1].instance_of?(AST::ASTArray)
         result = val[1]
     else
@@ -2427,8 +2473,8 @@ module_eval <<'.,.,', 'grammar.ra', 790
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 797
-  def _reduce_213( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 805
+  def _reduce_215( val, _values, result )
     if val[1].instance_of?(AST::ASTArray)
         result = val[1]
     else
@@ -2438,35 +2484,35 @@ module_eval <<'.,.,', 'grammar.ra', 797
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 799
-  def _reduce_214( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 807
+  def _reduce_216( val, _values, result )
     result = ast AST::ASTArray
    result
   end
 .,.,
 
- # reduce 215 omitted
+ # reduce 217 omitted
 
- # reduce 216 omitted
+ # reduce 218 omitted
 
- # reduce 217 omitted
+ # reduce 219 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 804
-  def _reduce_218( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 812
+  def _reduce_220( val, _values, result )
  result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 809
-  def _reduce_219( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 817
+  def _reduce_221( val, _values, result )
     result = ast AST::Regex, :value => val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 817
-  def _reduce_220( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 825
+  def _reduce_222( val, _values, result )
     if val[1].instance_of?(AST::ASTHash)
         result = val[1]
     else
@@ -2476,8 +2522,8 @@ module_eval <<'.,.,', 'grammar.ra', 817
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 824
-  def _reduce_221( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 832
+  def _reduce_223( val, _values, result )
     if val[1].instance_of?(AST::ASTHash)
         result = val[1]
     else
@@ -2487,17 +2533,17 @@ module_eval <<'.,.,', 'grammar.ra', 824
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 826
-  def _reduce_222( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 834
+  def _reduce_224( val, _values, result )
     result = ast AST::ASTHash
    result
   end
 .,.,
 
- # reduce 223 omitted
+ # reduce 225 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 836
-  def _reduce_224( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 844
+  def _reduce_226( val, _values, result )
     if val[0].instance_of?(AST::ASTHash)
         result = val[0].merge(val[2])
     else
@@ -2508,38 +2554,38 @@ module_eval <<'.,.,', 'grammar.ra', 836
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 840
-  def _reduce_225( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 848
+  def _reduce_227( val, _values, result )
     result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 841
-  def _reduce_226( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 849
+  def _reduce_228( val, _values, result )
  result = val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 842
-  def _reduce_227( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 850
+  def _reduce_229( val, _values, result )
  result = val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 847
-  def _reduce_228( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 855
+  def _reduce_230( val, _values, result )
     result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
    result
   end
 .,.,
 
- # reduce 229 omitted
+ # reduce 231 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 852
-  def _reduce_230( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 860
+  def _reduce_232( val, _values, result )
     result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
    result
   end
diff --git a/spec/unit/parser/parser_spec.rb b/spec/unit/parser/parser_spec.rb
index ed4492a..2cbb80f 100755
--- a/spec/unit/parser/parser_spec.rb
+++ b/spec/unit/parser/parser_spec.rb
@@ -192,6 +192,12 @@ describe Puppet::Parser do
             @parser.parse("if true { notice('test') } else { }")
         end
 
+        it "should build a chain of 'ifs' if there's an 'elsif'" do
+            ast = @parser.parse(<<-PP)
+              if true { notice('test') } elsif true {} else { }
+            PP
+        end
+
     end
 
     describe "when parsing function calls" do

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list