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

test branch puppet-dev at googlegroups.com
Wed Jul 14 10:31:54 UTC 2010


The following commit has been merged in the upstream branch:
commit b7ea1806703df2976d5cd6fade5503c008332526
Author: Luke Kanies <luke at reductivelabs.com>
Date:   Thu Jan 21 21:46:12 2010 -0800

    Partially fixing #2954 - Adding class parameters
    
    This isn't 100% functional yet - I need to refactor
    some of the internals to make the class lookup work
    everywhere.
    
    Signed-off-by: Luke Kanies <luke at reductivelabs.com>

diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra
index 0e09018..b65e3d2 100644
--- a/lib/puppet/parser/grammar.ra
+++ b/lib/puppet/parser/grammar.ra
@@ -660,17 +660,17 @@ definition: DEFINE classname argumentlist LBRACE statements RBRACE {
 }
 
 #hostclass: CLASS NAME argumentlist parent LBRACE statements RBRACE {
-hostclass: CLASS classname classparent LBRACE statements RBRACE {
+hostclass: CLASS classname argumentlist classparent LBRACE statements RBRACE {
     @lexer.commentpop
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
-    newclass classname(val[1]), :code => val[4], :parent => val[2], :line => val[0][:line]
+    newclass classname(val[1]), :arguments => val[2], :code => val[5], :parent => val[3], :line => val[0][:line]
     result = nil
-}           | CLASS classname classparent LBRACE RBRACE {
+}           | CLASS classname argumentlist classparent LBRACE RBRACE {
     @lexer.commentpop
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
-    newclass classname(val[1]), :parent => val[2], :line => val[0][:line]
+    newclass classname(val[1]), :arguments => val[2], :parent => val[3], :line => val[0][:line]
     result = nil
 }
 
@@ -688,6 +688,7 @@ classref:       CLASSREF { result = val[0][:value] }
 
 classname:       NAME { result = val[0][:value] }
             | CLASSNAME { result = val[0][:value] }
+            | CLASS { result = "class" }
 
 # Multiple hostnames, as used for node names.  These are all literal
 # strings, not AST objects.
diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb
index a3dc5be..4f3c31c 100644
--- a/lib/puppet/parser/parser.rb
+++ b/lib/puppet/parser/parser.rb
@@ -28,7 +28,7 @@ module Puppet
 
     class Parser < Racc::Parser
 
-module_eval <<'..end grammar.ra modeval..id8da59540c6', 'grammar.ra', 852
+module_eval <<'..end grammar.ra modeval..id224179bc1a', 'grammar.ra', 853
 
 # It got too annoying having code in a file that needs to be compiled.
 require 'puppet/parser/parser_support'
@@ -40,7 +40,7 @@ require 'puppet/parser/parser_support'
 
 # $Id$
 
-..end grammar.ra modeval..id8da59540c6
+..end grammar.ra modeval..id224179bc1a
 
 ##### racc 1.4.5 generates ###
 
@@ -209,665 +209,634 @@ racc_reduce_table = [
  2, 73, :_reduce_161,
  6, 75, :_reduce_162,
  5, 75, :_reduce_163,
- 6, 76, :_reduce_164,
- 5, 76, :_reduce_165,
+ 7, 76, :_reduce_164,
+ 6, 76, :_reduce_165,
  6, 77, :_reduce_166,
  5, 77, :_reduce_167,
  1, 96, :_reduce_168,
  1, 91, :_reduce_169,
  1, 91, :_reduce_170,
+ 1, 91, :_reduce_171,
  1, 131, :_reduce_none,
- 3, 131, :_reduce_172,
- 1, 133, :_reduce_173,
- 1, 134, :_reduce_174,
+ 3, 131, :_reduce_173,
+ 1, 133, :_reduce_174,
  1, 134, :_reduce_175,
  1, 134, :_reduce_176,
  1, 134, :_reduce_177,
+ 1, 134, :_reduce_178,
  1, 134, :_reduce_none,
- 0, 65, :_reduce_179,
- 0, 135, :_reduce_180,
+ 0, 65, :_reduce_180,
+ 0, 135, :_reduce_181,
  1, 129, :_reduce_none,
- 3, 129, :_reduce_182,
  3, 129, :_reduce_183,
+ 3, 129, :_reduce_184,
  1, 136, :_reduce_none,
- 3, 136, :_reduce_185,
- 3, 137, :_reduce_186,
- 1, 137, :_reduce_187,
- 3, 137, :_reduce_188,
- 1, 137, :_reduce_189,
+ 3, 136, :_reduce_186,
+ 3, 137, :_reduce_187,
+ 1, 137, :_reduce_188,
+ 3, 137, :_reduce_189,
+ 1, 137, :_reduce_190,
  1, 132, :_reduce_none,
- 2, 132, :_reduce_191,
+ 2, 132, :_reduce_192,
  1, 130, :_reduce_none,
- 2, 130, :_reduce_193,
+ 2, 130, :_reduce_194,
  1, 138, :_reduce_none,
  1, 138, :_reduce_none,
- 1, 84, :_reduce_196,
- 3, 109, :_reduce_197,
- 4, 109, :_reduce_198,
- 2, 109, :_reduce_199,
+ 1, 84, :_reduce_197,
+ 3, 109, :_reduce_198,
+ 4, 109, :_reduce_199,
+ 2, 109, :_reduce_200,
  1, 117, :_reduce_none,
  1, 117, :_reduce_none,
  0, 95, :_reduce_none,
- 1, 95, :_reduce_203,
- 1, 120, :_reduce_204,
- 3, 118, :_reduce_205,
- 4, 118, :_reduce_206,
- 2, 118, :_reduce_207,
+ 1, 95, :_reduce_204,
+ 1, 120, :_reduce_205,
+ 3, 118, :_reduce_206,
+ 4, 118, :_reduce_207,
+ 2, 118, :_reduce_208,
  1, 139, :_reduce_none,
- 3, 139, :_reduce_209,
- 3, 140, :_reduce_210,
- 1, 141, :_reduce_211,
+ 3, 139, :_reduce_210,
+ 3, 140, :_reduce_211,
  1, 141, :_reduce_212,
  1, 141, :_reduce_213,
- 4, 111, :_reduce_214,
+ 1, 141, :_reduce_214,
+ 4, 111, :_reduce_215,
  1, 90, :_reduce_none,
- 4, 90, :_reduce_216 ]
+ 4, 90, :_reduce_217 ]
 
-racc_reduce_n = 217
+racc_reduce_n = 218
 
-racc_shift_n = 358
+racc_shift_n = 360
 
 racc_action_table = [
-    82,    61,    64,   317,    87,   172,   173,   211,   187,   308,
-   276,   328,    42,    43,   330,   211,   121,   283,   275,   186,
-    78,    82,    61,    64,   191,    87,   101,   329,   272,   273,
-   102,    51,  -153,    42,    43,    63,    66,    42,    43,    71,
-   174,   119,  -150,   103,    58,    84,   288,    44,    68,   215,
-    46,    92,    51,    57,   172,   173,    63,    66,   175,    45,
-    71,   149,    82,    61,    64,    58,    87,   104,    44,    68,
-    45,    46,    44,   150,   303,    46,   274,   219,   314,   211,
-    45,   141,    78,    82,    61,    64,   313,    87,    34,   174,
-   218,    45,   150,    51,  -152,    45,   291,    63,    66,    35,
-    36,    71,   184,    78,   272,   273,    58,    84,   163,   187,
-    68,   184,   259,    92,    51,   260,   154,    38,    63,    66,
-   186,    45,    71,    38,     4,   191,   204,    58,    84,  -154,
-     4,    68,   295,    38,    92,    82,    61,    64,   141,    87,
-     4,     9,    45,   187,   166,   167,   168,   152,   153,   155,
-  -155,   160,   164,   187,   186,    78,    82,    61,    64,   191,
-    87,    38,   278,   298,   186,  -151,    51,   281,     4,   191,
-    63,    66,   168,   152,    71,   300,    78,   160,   164,    58,
-    84,   163,   150,    68,   101,   278,    92,    51,  -151,   154,
-   281,    63,    66,   261,    45,    71,  -156,   163,   221,  -155,
-    58,    84,   223,   224,    68,   154,  -154,    92,    82,    61,
-    64,  -153,    87,    61,    64,    45,  -150,   166,   167,   168,
-   152,   153,   155,   180,   160,   164,   160,   164,    78,    57,
-    61,    64,   149,   166,   167,   168,   152,   153,   155,    51,
-   160,   164,   148,    63,    66,  -168,   163,    71,    45,    53,
-    61,    64,    58,    84,   154,   304,    68,   168,   152,    92,
-    51,  -152,   160,   164,    63,    66,   277,    45,    71,   181,
-   272,   273,    55,    58,    82,    61,    64,    68,    87,   223,
-   340,   182,   166,   167,   168,   152,   153,   155,    45,   160,
-   164,   160,   164,   184,    78,    82,    61,    64,   307,    87,
-   166,   167,   168,   152,    45,    51,   145,   160,   164,    63,
-    66,   257,    34,    71,   197,   223,   258,   217,    58,    84,
-   316,   198,    68,   268,   102,    92,    51,   223,   224,   141,
-    63,    66,   201,    45,    71,   327,    82,    61,    64,    58,
-    87,   213,   205,    68,   331,   114,    82,    61,    64,   206,
-    87,  -152,   213,   107,    45,   166,   167,   168,   152,   153,
-   155,   210,   160,   164,   341,   304,    78,    51,   343,  -150,
-   345,    63,    66,  -152,  -150,    71,  -153,    51,  -151,  -155,
-    58,    63,    66,   105,    68,    71,   217,   213,    50,    49,
-    58,    84,   332,   351,    68,    45,  -203,    92,    82,    61,
-    64,    39,    87,   214,  -151,    45,  -153,   nil,    82,    61,
-    64,   nil,    87,    19,   nil,    23,    27,   nil,     1,     5,
-   nil,    12,   nil,    17,   nil,    21,   nil,    28,    78,    51,
-     4,     9,   nil,    63,    66,   nil,   nil,    71,   nil,    51,
-   nil,   nil,    58,    63,    66,   nil,    68,    71,   nil,   nil,
-   nil,   nil,    58,    84,   352,   nil,    68,    45,   nil,    92,
-    82,    61,    64,   nil,    87,   nil,   nil,    45,   nil,   nil,
-    82,    61,    64,   nil,    87,    19,   nil,    23,    27,   nil,
-     1,     5,   nil,    12,   nil,    17,   nil,    21,   nil,    28,
-    78,    51,     4,     9,   nil,    63,    66,   nil,   nil,    71,
-   nil,    51,   nil,   nil,    58,    63,    66,   nil,    68,    71,
-   nil,   nil,   nil,   nil,    58,    84,   nil,   nil,    68,    45,
-   nil,    92,    82,    61,    64,   nil,    87,   nil,   nil,    45,
-   166,   167,   168,   152,   nil,   nil,   nil,   160,   164,   nil,
-   nil,   nil,    78,    82,    61,    64,   nil,    87,   nil,   nil,
-   nil,   nil,   nil,    51,   nil,   nil,   nil,    63,    66,   nil,
-   nil,    71,   nil,   nil,   nil,   nil,    58,    84,   nil,   nil,
-    68,   nil,   nil,    92,    51,   nil,   nil,   nil,    63,    66,
-   nil,    45,    71,   nil,    82,    61,    64,    58,    87,   nil,
-   nil,    68,   166,   167,   168,   152,   153,   155,   nil,   160,
-   164,   nil,    45,   nil,    78,    82,    61,    64,   nil,    87,
-   nil,   nil,   nil,   nil,   nil,    51,   nil,   nil,   nil,    63,
-    66,   nil,   nil,    71,   nil,   nil,   nil,   nil,    58,    84,
-   nil,   nil,    68,   nil,   nil,    92,    51,   nil,   nil,   nil,
-    63,    66,   nil,    45,    71,   nil,    82,    61,    64,    58,
-    87,   nil,   nil,    68,   nil,   nil,    82,    61,    64,   nil,
-    87,   nil,   nil,   nil,    45,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    78,    51,   nil,   nil,
-   nil,    63,    66,   nil,   nil,    71,   nil,    51,   nil,   nil,
-    58,    63,    66,   nil,    68,    71,   nil,   nil,   nil,   nil,
-    58,    84,   nil,   nil,    68,    45,   nil,    92,    82,    61,
-    64,   nil,    87,   nil,   nil,    45,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    78,    82,
-    61,    64,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    51,
-   nil,   nil,   nil,    63,    66,   nil,   nil,    71,   nil,   nil,
-   nil,   nil,    58,    84,   nil,   nil,    68,   nil,   nil,    92,
-    51,   nil,   nil,   nil,    63,   128,   nil,    45,    71,   nil,
-    82,    61,    64,   126,    87,   nil,   nil,    68,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    45,   nil,
-    78,    82,    61,    64,   nil,    87,   nil,   nil,   nil,   nil,
-   nil,    51,   nil,   nil,   nil,    63,    66,   nil,   nil,    71,
-   nil,    78,   nil,   nil,    58,    84,   nil,   nil,    68,   nil,
-   nil,    92,    51,   nil,   nil,   nil,    63,    66,   nil,    45,
-    71,   nil,   nil,   nil,   nil,    58,    84,   nil,   nil,    68,
-   nil,   nil,    92,    82,    61,    64,   nil,    87,   nil,   nil,
-    45,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    78,    82,    61,    64,   nil,    87,   nil,
-   nil,   nil,   nil,   nil,    51,   nil,   nil,   nil,    63,    66,
-   nil,   nil,    71,   nil,   nil,   nil,   nil,    58,    84,   nil,
-   nil,    68,   nil,   nil,    92,    51,   nil,   nil,   nil,    63,
-    66,   nil,    45,    71,   nil,    82,    61,    64,    58,    87,
-   nil,   nil,    68,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    45,   nil,    78,    82,    61,    64,   nil,
-    87,   nil,    82,    61,    64,   nil,    51,   nil,   nil,   nil,
-    63,    66,   nil,   nil,    71,   nil,   nil,   nil,   nil,    58,
-    84,   nil,   nil,    68,   nil,   nil,    92,    51,   nil,   nil,
-   nil,    63,    66,    51,    45,    71,   nil,    63,   229,   nil,
-    58,    71,   nil,   nil,    68,   nil,   126,    82,    61,    64,
-    68,    87,   nil,   nil,   nil,    45,   nil,   nil,   nil,   nil,
-   nil,    45,   nil,   nil,   nil,   nil,   nil,    78,    82,    61,
-    64,   169,    87,   nil,   nil,   nil,   nil,   nil,    51,   nil,
-   nil,   nil,    63,    66,   nil,   nil,    71,   nil,   nil,   nil,
-   nil,    58,    84,   nil,   nil,    68,   nil,   nil,    92,    51,
-   nil,   nil,   nil,    63,    66,   nil,    45,    71,   nil,    82,
-    61,    64,    58,    87,   nil,   nil,    68,   nil,   nil,    82,
-    61,    64,   nil,    87,   nil,   nil,   nil,    45,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    78,
-    51,   nil,   nil,   nil,    63,    66,   nil,   nil,    71,   nil,
-    51,   nil,   nil,    58,    63,    66,   nil,    68,    71,   nil,
-   nil,   nil,   nil,    58,    84,   nil,   nil,    68,    45,   nil,
-    92,    82,    61,    64,   nil,    87,   nil,   nil,    45,   nil,
-   nil,    82,    61,    64,   nil,    87,   nil,   nil,   nil,   nil,
+    83,    62,    65,   322,    88,   173,   174,   214,   188,   313,
+   279,   216,    43,    44,   150,   281,   122,   282,   278,   187,
+    79,    83,    62,    65,   192,    88,   102,   308,   275,   276,
+   103,    52,   283,    43,    44,    64,    67,    43,    44,    72,
+   175,   120,  -156,   104,    59,    85,   286,    45,    69,   218,
+    47,    93,    52,    58,   173,   174,    64,    67,   176,    46,
+    72,   285,    83,    62,    65,    59,    88,   105,    45,    69,
+    46,    47,    45,   151,   284,    47,   277,   222,   319,   214,
+    46,  -155,    79,    83,    62,    65,   318,    88,    34,   175,
+   221,    46,   151,    52,   290,    46,  -153,    64,    67,    35,
+    36,    72,   293,    79,   275,   276,    59,    85,   164,   188,
+    69,  -150,   201,    93,    52,  -154,   155,   204,    64,    67,
+   187,    46,    72,   262,   296,   192,   263,    59,    85,    37,
+   185,    69,   185,    39,    93,    83,    62,    65,  -152,    88,
+     4,     9,    46,   188,   167,   168,   169,   153,   154,   156,
+   300,   161,   165,   188,   187,    79,    83,    62,    65,   192,
+    88,    37,   201,   142,   187,    39,    52,   204,   289,   192,
+    64,    67,     4,    37,    72,  -154,    79,    39,   303,    59,
+    85,   164,  -155,    69,     4,   305,    93,    52,   151,   155,
+  -151,    64,    67,   181,    46,    72,  -151,   164,    62,    65,
+    59,    85,    37,    46,    69,   155,    39,    93,    83,    62,
+    65,   182,    88,     4,   183,    46,   102,   167,   168,   169,
+   153,   154,   156,  -153,   161,   165,    62,    65,    79,    58,
+    62,    65,  -150,   167,   168,   169,   153,   154,   156,    52,
+   161,   165,   185,    64,    67,   150,   164,    72,   149,    54,
+   226,   344,    59,    85,   155,    46,    69,   169,   153,    93,
+    52,   309,   161,   165,    64,    67,   260,    46,    72,  -168,
+   226,   261,    56,    59,    83,    62,    65,    69,    88,   161,
+   165,   198,   167,   168,   169,   153,   154,   156,    46,   161,
+   165,   161,   165,   115,    79,    83,    62,    65,   214,    88,
+   167,   168,   169,   153,   312,    52,   103,   161,   165,    64,
+    67,   169,   153,    72,  -152,   146,   161,   165,    59,    85,
+   200,   220,    69,   271,   321,    93,    52,   226,   227,   206,
+    64,    67,   209,    46,    72,    34,    83,    62,    65,    59,
+    88,   142,  -152,    69,   167,   168,   169,   153,   154,   156,
+   115,   161,   165,   213,    46,  -150,    79,    83,    62,    65,
+   220,    88,   167,   168,   169,   153,   108,    52,   264,   161,
+   165,    64,    67,   216,   280,    72,   142,    79,   275,   276,
+    59,    85,   345,   309,    69,   224,   347,    93,    52,   226,
+   227,   106,    64,    67,   349,    46,    72,  -152,  -150,  -153,
+  -151,    59,    85,  -155,   216,    69,    51,    50,    93,    83,
+    62,    65,   353,    88,  -204,    40,    46,   167,   168,   169,
+   153,   154,   156,   217,   161,   165,  -151,  -153,   nil,    79,
+    83,    62,    65,   nil,    88,   nil,   nil,   nil,   nil,   nil,
+    52,   nil,   nil,   nil,    64,    67,   nil,   nil,    72,   nil,
+   nil,   nil,   nil,    59,    85,   nil,   nil,    69,   nil,   nil,
+    93,    52,   nil,   nil,   nil,    64,    67,   nil,    46,    72,
+   nil,    83,    62,    65,    59,    88,   nil,   nil,    69,   nil,
+   nil,    83,    62,    65,   nil,    88,   nil,   nil,   nil,    46,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    83,    62,    65,
+   nil,    88,    52,   nil,   nil,   nil,    64,    67,   nil,   nil,
+    72,   nil,    52,   nil,   nil,    59,    64,    67,   nil,    69,
+    72,   nil,    83,    62,    65,    59,    88,   nil,    52,    69,
+    46,   nil,    64,    67,   nil,   nil,    72,   nil,   nil,   nil,
+    46,    59,   nil,   nil,   nil,    69,   nil,    83,    62,    65,
+   nil,    88,   nil,    52,   nil,   nil,    46,    64,    67,   nil,
+   nil,    72,   nil,   nil,   nil,   nil,    59,    79,   nil,   nil,
+    69,   nil,   nil,    83,    62,    65,   nil,    88,    52,   nil,
+   nil,    46,    64,    67,   nil,   nil,    72,   nil,   nil,   nil,
+   nil,    59,    85,    79,   nil,    69,   nil,   nil,    93,    83,
+    62,    65,   nil,    88,    52,   nil,    46,   nil,    64,    67,
+   nil,   nil,    72,   nil,   nil,   nil,   nil,    59,    85,   nil,
+   nil,    69,   nil,   nil,    93,    83,    62,    65,   nil,    88,
+    52,   nil,    46,   nil,    64,    67,   nil,   nil,    72,   nil,
+   nil,   nil,   nil,    59,   nil,    79,   nil,    69,   nil,   nil,
+   nil,    83,    62,    65,   nil,    88,    52,   nil,    46,   nil,
+    64,    67,   nil,   nil,    72,   nil,   nil,   nil,   nil,    59,
+    85,    79,   nil,    69,   nil,   nil,    93,    83,    62,    65,
+   nil,   nil,    52,   nil,    46,   nil,    64,    67,   nil,   nil,
+    72,   nil,   nil,   nil,   nil,    59,    85,   nil,   nil,    69,
+   nil,   nil,    93,    83,    62,    65,   nil,    88,    52,   nil,
+    46,   nil,    64,   129,   nil,   nil,    72,   nil,   nil,   nil,
+   nil,   127,   nil,    79,   nil,    69,   nil,   nil,   nil,    83,
+    62,    65,   nil,    88,    52,   nil,    46,   nil,    64,    67,
+   nil,   nil,    72,   nil,   nil,   nil,   nil,    59,    85,    79,
+   nil,    69,   nil,   nil,    93,    83,    62,    65,   nil,    88,
+    52,   nil,    46,   nil,    64,    67,   nil,   nil,    72,   nil,
+   nil,   nil,   nil,    59,    85,    79,   nil,    69,   nil,   nil,
+    93,    83,    62,    65,   nil,    88,    52,   nil,    46,   nil,
+    64,    67,   nil,   nil,    72,   nil,   nil,   nil,   nil,    59,
+    85,    79,   nil,    69,   nil,   nil,    93,    83,    62,    65,
+   nil,    88,    52,   nil,    46,   nil,    64,    67,   nil,   nil,
+    72,   nil,   nil,   nil,   nil,    59,    85,    62,    65,    69,
+   nil,   nil,    93,    83,    62,    65,   nil,    88,    52,   nil,
+    46,   nil,    64,    67,   nil,   nil,    72,    83,    62,    65,
+   nil,    59,   nil,   nil,   nil,    69,   nil,   187,   nil,   nil,
+   nil,    64,   232,   nil,    52,    72,    46,   nil,    64,    67,
+   127,   nil,    72,   nil,    69,   nil,   nil,    59,    52,    62,
+    65,    69,    64,   232,   nil,    46,    72,   nil,   nil,   nil,
+   nil,   127,    46,   nil,   nil,    69,    83,    62,    65,   302,
+    88,   nil,   nil,    83,    62,    65,    46,    88,   nil,    52,
+   nil,   nil,   nil,    64,    67,   nil,   nil,    72,   nil,   nil,
+   nil,    56,    59,    79,   nil,   nil,    69,    52,   nil,   nil,
+   nil,    64,    67,   nil,    52,    72,   nil,    46,    64,    67,
+    59,   nil,    72,   nil,    69,   nil,   nil,    59,    85,   nil,
+   nil,    69,   nil,   nil,    93,    46,    83,    62,    65,   170,
+    88,   nil,    46,    83,    62,    65,   nil,    88,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    78,    51,    61,    64,   nil,    63,    66,   nil,   nil,
-    71,   nil,    51,   nil,   nil,    58,    63,    66,   nil,    68,
-    71,   nil,    61,    64,   nil,    58,    84,   nil,   nil,    68,
-    45,   nil,    92,   186,   nil,   nil,   nil,    63,   229,   nil,
-    45,    71,   297,    61,    64,   nil,   126,   nil,   nil,   nil,
-    68,   nil,    51,    61,    64,   nil,    63,    66,   nil,   nil,
-    71,    45,   nil,   nil,    55,    58,   nil,   nil,   nil,    68,
-   nil,   nil,   nil,   186,    61,    64,   nil,    63,   229,   nil,
-    45,    71,   nil,   186,    61,    64,   126,    63,   229,   nil,
-    68,    71,   nil,   nil,   nil,   nil,   126,   nil,   nil,   nil,
-    68,    45,   nil,   nil,   186,    61,    64,   nil,    63,   229,
-   nil,    45,    71,   nil,   186,   nil,   nil,   126,    63,   229,
-   nil,    68,    71,    61,    64,   nil,   231,   126,   nil,   nil,
-   nil,    68,    45,   nil,   nil,    51,   nil,    61,    64,    63,
-    66,   nil,    45,    71,   nil,   nil,   nil,    55,    58,   nil,
-   nil,   nil,    68,   186,   nil,    61,    64,    63,   229,   312,
-   nil,    71,   nil,    45,   nil,   nil,   126,   186,   nil,   nil,
-    68,    63,   229,   nil,   nil,    71,    61,    64,   nil,   nil,
-   126,    45,   nil,   nil,    68,   186,   nil,   nil,   nil,    63,
-   229,   nil,   nil,    71,   nil,    45,   236,   nil,   126,   nil,
-   nil,   nil,    68,   nil,   nil,   nil,    51,    61,    64,   nil,
-    63,    66,   nil,    45,    71,   nil,   nil,   nil,    55,    58,
-   nil,   nil,   nil,    68,   nil,   nil,   nil,   143,   nil,   nil,
-   nil,   nil,   nil,   nil,    45,   nil,   nil,    51,   165,   nil,
-   nil,    63,    66,   nil,   nil,    71,   nil,   158,   163,    55,
-    58,   nil,   nil,   nil,    68,   nil,   154,   156,   159,   162,
-   158,   163,   nil,   nil,   nil,    45,   nil,   nil,   nil,   154,
-   156,   159,   162,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   157,   161,   nil,   nil,   166,   167,   168,   152,   153,   155,
-   nil,   160,   164,   157,   161,   nil,   nil,   166,   167,   168,
-   152,   153,   155,   nil,   160,   164,   158,   163,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   154,   156,   159,   162,   158,
-   163,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   154,   156,
-   159,   162,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   166,   167,   168,   152,   153,   155,   nil,
-   160,   164,   nil,   161,   nil,   nil,   166,   167,   168,   152,
-   153,   155,   nil,   160,   164,   158,   163,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   154,   156,   159,   162,   158,   163,
-   nil,   nil,   nil,   nil,   nil,   nil,   238,   154,   156,   159,
-   162,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   157,   161,
-   nil,   nil,   166,   167,   168,   152,   153,   155,   nil,   160,
-   164,   157,   161,   nil,   nil,   166,   167,   168,   152,   153,
-   155,   354,   160,   164,   158,   163,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   154,   156,   159,   162,   nil,   nil,   nil,
-   nil,   nil,    19,   nil,    23,    27,   nil,     1,     5,   335,
-    12,   nil,    17,   nil,    21,   nil,    28,   157,   161,     4,
-     9,   166,   167,   168,   152,   153,   155,   nil,   160,   164,
-    19,   334,    23,    27,   nil,     1,     5,   nil,    12,   nil,
-    17,   nil,    21,   nil,    28,   nil,   nil,     4,     9,   nil,
-   349,   nil,    19,   nil,    23,    27,   nil,     1,     5,   nil,
-    12,   nil,    17,   nil,    21,   nil,    28,   nil,   nil,     4,
-     9,    19,   252,    23,    27,   nil,     1,     5,   nil,    12,
-   nil,    17,   nil,    21,   nil,    28,   nil,   nil,     4,     9,
-   nil,   306,   nil,    19,   nil,    23,    27,   nil,     1,     5,
-   nil,    12,   nil,    17,   nil,    21,   nil,    28,   nil,   nil,
-     4,     9,    19,   284,    23,    27,   nil,     1,     5,   nil,
-    12,   nil,    17,   nil,    21,   nil,    28,   nil,   nil,     4,
-     9,   nil,   286,   nil,    19,   nil,    23,    27,   nil,     1,
-     5,   nil,    12,   nil,    17,   nil,    21,   nil,    28,   nil,
-   nil,     4,     9,    19,   356,    23,    27,   nil,     1,     5,
-   nil,    12,   nil,    17,   nil,    21,   nil,    28,   nil,   nil,
-     4,     9,   nil,   357,   nil,    19,   nil,    23,    27,   nil,
+   nil,    83,    62,    65,   nil,    88,   nil,    52,   nil,   nil,
+   nil,    64,    67,   nil,    52,    72,   nil,   nil,    64,    67,
+    59,    79,    72,   nil,    69,   nil,   nil,    59,    62,    65,
+   nil,    69,    52,   nil,   nil,    46,    64,    67,   nil,   nil,
+    72,   nil,    46,   nil,   nil,    59,    85,    62,    65,    69,
+   nil,   nil,    93,    83,    62,    65,   nil,    88,   187,   nil,
+    46,   nil,    64,   232,   nil,   nil,    72,   nil,   nil,   nil,
+   nil,   127,   nil,    79,   nil,    69,   nil,   187,   nil,    62,
+    65,    64,   232,   nil,    52,    72,    46,   nil,    64,    67,
+   127,   nil,    72,   nil,    69,   nil,   nil,    59,    85,   nil,
+   nil,    69,   nil,   nil,    93,    46,   nil,   nil,   nil,   187,
+    62,    65,    46,    64,   232,   nil,   nil,    72,   nil,   nil,
+    62,    65,   127,   234,   nil,   nil,    69,   nil,   nil,   nil,
+   239,   nil,   nil,   nil,   nil,   nil,   nil,    46,   nil,   nil,
+    52,    62,    65,   nil,    64,    67,   nil,   nil,    72,   nil,
+   187,   nil,    56,    59,    64,   232,   nil,    69,    72,    62,
+    65,   nil,   nil,   127,   nil,   nil,   nil,    69,    46,   nil,
+   nil,    52,   nil,    62,    65,    64,    67,   nil,    46,    72,
+   nil,   nil,   nil,    56,    59,   nil,   nil,   nil,    69,   187,
+   nil,    62,    65,    64,   232,   317,   nil,    72,   nil,    46,
+   nil,   nil,   127,   187,   nil,   nil,    69,    64,   232,   nil,
+   nil,    72,    62,    65,   nil,   nil,   127,    46,   nil,   nil,
+    69,   187,   nil,   nil,   nil,    64,   232,   nil,   nil,    72,
+   nil,    46,   144,   nil,   127,   nil,   nil,   nil,    69,   nil,
+   nil,   nil,    52,   166,   nil,   nil,    64,    67,   nil,    46,
+    72,   nil,   159,   164,    56,    59,   nil,   nil,   nil,    69,
+   nil,   155,   157,   160,   163,   159,   164,   nil,   nil,   nil,
+    46,   nil,   nil,   nil,   155,   157,   160,   163,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   158,   162,   nil,   nil,   167,
+   168,   169,   153,   154,   156,   nil,   161,   165,   nil,   162,
+   nil,   nil,   167,   168,   169,   153,   154,   156,   nil,   161,
+   165,   159,   164,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   155,   157,   160,   163,   159,   164,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   155,   157,   160,   163,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   167,   168,
+   169,   153,   154,   156,   nil,   161,   165,   158,   162,   nil,
+   nil,   167,   168,   169,   153,   154,   156,   nil,   161,   165,
+   159,   164,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   155,
+   157,   160,   163,   159,   164,   nil,   nil,   nil,   nil,   nil,
+   nil,   241,   155,   157,   160,   163,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   158,   162,   nil,   nil,   167,   168,   169,
+   153,   154,   156,   nil,   161,   165,   158,   162,   nil,   nil,
+   167,   168,   169,   153,   154,   156,   337,   161,   165,   159,
+   164,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   155,   157,
+   160,   163,   nil,   nil,   nil,   nil,   nil,    19,   nil,    23,
+    27,   nil,     1,     5,   354,    12,   nil,    17,   nil,    21,
+   nil,    28,   158,   162,     4,     9,   167,   168,   169,   153,
+   154,   156,   nil,   161,   165,    19,   356,    23,    27,   nil,
      1,     5,   nil,    12,   nil,    17,   nil,    21,   nil,    28,
-   nil,   nil,     4,     9,    19,   nil,    23,    27,   nil,     1,
-     5,   nil,    12,   nil,    17,   nil,    21,   nil,    28,   nil,
-   nil,     4,     9,    19,   nil,    23,    27,   nil,     1,     5,
-   nil,    12,   nil,    17,   nil,    21,   nil,    28,   nil,   nil,
-     4,     9,    19,   nil,    23,    27,   nil,     1,     5,   nil,
-    12,   nil,    17,   nil,    21,   nil,    28,   nil,   nil,     4,
-     9 ]
+   nil,   nil,     4,     9,   nil,   350,   nil,    19,   nil,    23,
+    27,   nil,     1,     5,   nil,    12,   nil,    17,   nil,    21,
+   nil,    28,   nil,   nil,     4,     9,    19,   339,    23,    27,
+   nil,     1,     5,   nil,    12,   nil,    17,   nil,    21,   nil,
+    28,   nil,   nil,     4,     9,   nil,   351,   nil,    19,   nil,
+    23,    27,   nil,     1,     5,   nil,    12,   nil,    17,   nil,
+    21,   nil,    28,   nil,   nil,     4,     9,    19,   332,    23,
+    27,   nil,     1,     5,   nil,    12,   nil,    17,   nil,    21,
+   nil,    28,   nil,   nil,     4,     9,   nil,   255,   nil,    19,
+   nil,    23,    27,   nil,     1,     5,   nil,    12,   nil,    17,
+   nil,    21,   nil,    28,   nil,   nil,     4,     9,    19,   291,
+    23,    27,   nil,     1,     5,   nil,    12,   nil,    17,   nil,
+    21,   nil,    28,   nil,   nil,     4,     9,   nil,   311,   nil,
+    19,   nil,    23,    27,   nil,     1,     5,   nil,    12,   nil,
+    17,   nil,    21,   nil,    28,   nil,   nil,     4,     9,    19,
+   358,    23,    27,   nil,     1,     5,   nil,    12,   nil,    17,
+   nil,    21,   nil,    28,   nil,   nil,     4,     9,   nil,   359,
+   nil,    19,   nil,    23,    27,   nil,     1,     5,   nil,    12,
+   nil,    17,   nil,    21,   nil,    28,   nil,   nil,     4,     9,
+    19,   nil,    23,    27,   nil,     1,     5,   nil,    12,   nil,
+    17,   nil,    21,   nil,    28,   nil,   nil,     4,     9,    19,
+   nil,    23,    27,   nil,     1,     5,   nil,    12,   nil,    17,
+   nil,    21,   nil,    28,   nil,   nil,     4,     9,    19,   nil,
+    23,    27,   nil,     1,     5,   nil,    12,   nil,    17,   nil,
+    21,   nil,    28,   nil,   nil,     4,     9 ]
 
 racc_action_check = [
-    92,    92,    92,   270,    92,   260,   260,   141,   187,   260,
-   192,   279,    12,    12,   280,   184,    48,   199,   192,   187,
-    92,   145,   145,   145,   187,   145,    24,   280,   270,   270,
-    24,    92,    89,   119,   119,    92,    92,   121,   121,    92,
-   260,    48,    88,    24,    92,    92,   209,    12,    92,   141,
-    12,    92,   145,    66,    87,    87,   145,   145,    87,    92,
-   145,   237,   152,   152,   152,   145,   152,    24,   119,   145,
-    12,   119,   121,    66,   237,   121,   188,   144,   264,   128,
-   145,   182,   152,   153,   153,   153,   264,   153,     1,    87,
-   144,   119,   128,   152,    81,   121,   212,   152,   152,     1,
-     1,   152,   213,   153,   188,   188,   152,   152,   245,   104,
-   152,   214,   176,   152,   153,   176,   245,    27,   153,   153,
-   104,   152,   153,   114,    27,   104,   114,   153,   153,    77,
-   114,   153,   216,    31,   153,   154,   154,   154,   217,   154,
-    31,    31,   153,   271,   245,   245,   245,   245,   245,   245,
-    75,   245,   245,   103,   271,   154,   155,   155,   155,   271,
-   155,     5,   330,   220,   103,    73,   154,   330,     5,   103,
-   154,   154,   255,   255,   154,   226,   155,   255,   255,   154,
-   154,   243,   229,   154,    72,   198,   154,   155,    91,   243,
-   198,   155,   155,   178,   154,   155,    93,   246,   147,    94,
-   155,   155,   147,   147,   155,   246,    95,   155,   156,   156,
-   156,    70,   156,    23,    23,   155,    69,   243,   243,   243,
-   243,   243,   243,    97,   243,   243,   239,   239,   156,    17,
-    17,    17,    62,   246,   246,   246,   246,   246,   246,   156,
-   246,   246,    60,   156,   156,    58,   249,   156,   164,    17,
-   181,   181,   156,   156,   249,   252,   156,   254,   254,   156,
-    17,    56,   254,   254,    17,    17,   196,   156,    17,    99,
-   196,   196,    17,    17,    19,    19,    19,    17,    19,   302,
-   302,   100,   249,   249,   249,   249,   249,   249,    17,   249,
-   249,   256,   256,   102,    19,    21,    21,    21,   258,    21,
-   240,   240,   240,   240,   160,    19,    54,   240,   240,    19,
-    19,   170,    51,    19,   105,   170,   170,   267,    19,    19,
-   269,   106,    19,   183,   110,    19,    21,   183,   183,    50,
-    21,    21,   111,    19,    21,   278,   331,   331,   331,    21,
-   331,   185,   115,    21,   281,    37,   157,   157,   157,   118,
-   157,   123,   293,    28,    21,   241,   241,   241,   241,   241,
-   241,   127,   241,   241,   304,   306,   157,   331,   313,   129,
-   315,   331,   331,   320,   321,   331,   323,   157,   324,   325,
-   331,   157,   157,    26,   331,   157,   142,   130,    16,    13,
-   157,   157,   283,   339,   157,   331,   340,   157,   327,   327,
-   327,     6,   327,   134,   133,   157,   131,   nil,   158,   158,
-   158,   nil,   158,   283,   nil,   283,   283,   nil,   283,   283,
-   nil,   283,   nil,   283,   nil,   283,   nil,   283,   158,   327,
-   283,   283,   nil,   327,   327,   nil,   nil,   327,   nil,   158,
-   nil,   nil,   327,   158,   158,   nil,   327,   158,   nil,   nil,
-   nil,   nil,   158,   158,   341,   nil,   158,   327,   nil,   158,
-   300,   300,   300,   nil,   300,   nil,   nil,   158,   nil,   nil,
-   159,   159,   159,   nil,   159,   341,   nil,   341,   341,   nil,
-   341,   341,   nil,   341,   nil,   341,   nil,   341,   nil,   341,
-   159,   300,   341,   341,   nil,   300,   300,   nil,   nil,   300,
-   nil,   159,   nil,   nil,   300,   159,   159,   nil,   300,   159,
-   nil,   nil,   nil,   nil,   159,   159,   nil,   nil,   159,   300,
-   nil,   159,   161,   161,   161,   nil,   161,   nil,   nil,   159,
-   242,   242,   242,   242,   nil,   nil,   nil,   242,   242,   nil,
-   nil,   nil,   161,    34,    34,    34,   nil,    34,   nil,   nil,
-   nil,   nil,   nil,   161,   nil,   nil,   nil,   161,   161,   nil,
-   nil,   161,   nil,   nil,   nil,   nil,   161,   161,   nil,   nil,
-   161,   nil,   nil,   161,    34,   nil,   nil,   nil,    34,    34,
-   nil,   161,    34,   nil,    35,    35,    35,    34,    35,   nil,
-   nil,    34,   250,   250,   250,   250,   250,   250,   nil,   250,
-   250,   nil,    34,   nil,    35,   222,   222,   222,   nil,   222,
-   nil,   nil,   nil,   nil,   nil,    35,   nil,   nil,   nil,    35,
-    35,   nil,   nil,    35,   nil,   nil,   nil,   nil,    35,    35,
-   nil,   nil,    35,   nil,   nil,    35,   222,   nil,   nil,   nil,
-   222,   222,   nil,    35,   222,   nil,   101,   101,   101,   222,
-   101,   nil,   nil,   222,   nil,   nil,    39,    39,    39,   nil,
-    39,   nil,   nil,   nil,   222,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    39,   101,   nil,   nil,
-   nil,   101,   101,   nil,   nil,   101,   nil,    39,   nil,   nil,
-   101,    39,    39,   nil,   101,    39,   nil,   nil,   nil,   nil,
-    39,    39,   nil,   nil,    39,   101,   nil,    39,   162,   162,
-   162,   nil,   162,   nil,   nil,    39,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   162,    49,
-    49,    49,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   162,
-   nil,   nil,   nil,   162,   162,   nil,   nil,   162,   nil,   nil,
-   nil,   nil,   162,   162,   nil,   nil,   162,   nil,   nil,   162,
-    49,   nil,   nil,   nil,    49,    49,   nil,   162,    49,   nil,
-   163,   163,   163,    49,   163,   nil,   nil,    49,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    49,   nil,
-   163,   166,   166,   166,   nil,   166,   nil,   nil,   nil,   nil,
-   nil,   163,   nil,   nil,   nil,   163,   163,   nil,   nil,   163,
-   nil,   166,   nil,   nil,   163,   163,   nil,   nil,   163,   nil,
-   nil,   163,   166,   nil,   nil,   nil,   166,   166,   nil,   163,
-   166,   nil,   nil,   nil,   nil,   166,   166,   nil,   nil,   166,
-   nil,   nil,   166,   167,   167,   167,   nil,   167,   nil,   nil,
-   166,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   167,   261,   261,   261,   nil,   261,   nil,
-   nil,   nil,   nil,   nil,   167,   nil,   nil,   nil,   167,   167,
-   nil,   nil,   167,   nil,   nil,   nil,   nil,   167,   167,   nil,
-   nil,   167,   nil,   nil,   167,   261,   nil,   nil,   nil,   261,
-   261,   nil,   167,   261,   nil,   168,   168,   168,   261,   168,
-   nil,   nil,   261,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   261,   nil,   168,    57,    57,    57,   nil,
-    57,   nil,   210,   210,   210,   nil,   168,   nil,   nil,   nil,
+    93,    93,    93,   273,    93,   263,   263,   142,   274,   263,
+   193,   298,    12,    12,   240,   199,    49,   201,   193,   274,
+    93,   146,   146,   146,   274,   146,    24,   240,   273,   273,
+    24,    93,   202,   120,   120,    93,    93,   122,   122,    93,
+   263,    49,    94,    24,    93,    93,   204,    12,    93,   142,
+    12,    93,   146,    67,    88,    88,   146,   146,    88,    93,
+   146,   203,   153,   153,   153,   146,   153,    24,   120,   146,
+    12,   120,   122,    67,   203,   122,   189,   145,   267,   129,
+   146,    95,   153,   154,   154,   154,   267,   154,     1,    88,
+   145,   120,   129,   153,   207,   122,    90,   153,   153,     1,
+     1,   153,   212,   154,   189,   189,   153,   153,   252,   105,
+   153,    89,   115,   153,   154,    96,   252,   115,   154,   154,
+   105,   153,   154,   177,   215,   105,   177,   154,   154,    31,
+   216,   154,   217,    31,   154,   155,   155,   155,    82,   155,
+    31,    31,   154,   104,   252,   252,   252,   252,   252,   252,
+   219,   252,   252,   188,   104,   155,   156,   156,   156,   104,
+   156,   206,   285,   220,   188,   206,   155,   285,   206,   188,
+   155,   155,   206,     5,   155,    78,   156,     5,   223,   155,
+   155,   248,    76,   155,     5,   229,   155,   156,   232,   248,
+    74,   156,   156,    98,   155,   156,    92,   249,   182,   182,
+   156,   156,    27,   165,   156,   249,    27,   156,   157,   157,
+   157,   100,   157,    27,   101,   156,    73,   248,   248,   248,
+   248,   248,   248,    71,   248,   248,    23,    23,   157,    17,
+    17,    17,    70,   249,   249,   249,   249,   249,   249,   157,
+   249,   249,   103,   157,   157,    63,   246,   157,    61,    17,
+   307,   307,   157,   157,   246,   161,   157,   258,   258,   157,
+    17,   255,   258,   258,    17,    17,   171,   157,    17,    59,
+   171,   171,    17,    17,    19,    19,    19,    17,    19,   259,
+   259,   106,   246,   246,   246,   246,   246,   246,    17,   246,
+   246,   242,   242,   107,    19,    21,    21,    21,   185,    21,
+   245,   245,   245,   245,   261,    19,   111,   245,   245,    19,
+    19,   257,   257,    19,    57,    55,   257,   257,    19,    19,
+   112,   270,    19,   184,   272,    19,    21,   184,   184,   116,
+    21,    21,   119,    19,    21,    52,   158,   158,   158,    21,
+   158,    51,   124,    21,   253,   253,   253,   253,   253,   253,
+    38,   253,   253,   128,    21,   130,   158,   159,   159,   159,
+   143,   159,   243,   243,   243,   243,    28,   158,   179,   243,
+   243,   158,   158,   131,   197,   158,   183,   159,   197,   197,
+   158,   158,   309,   311,   158,   148,   318,   158,   159,   148,
+   148,    26,   159,   159,   320,   158,   159,   325,   326,   328,
+   329,   159,   159,   330,   186,   159,    16,    13,   159,   160,
+   160,   160,   343,   160,   344,     6,   159,   244,   244,   244,
+   244,   244,   244,   135,   244,   244,   134,   132,   nil,   160,
+   305,   305,   305,   nil,   305,   nil,   nil,   nil,   nil,   nil,
+   160,   nil,   nil,   nil,   160,   160,   nil,   nil,   160,   nil,
+   nil,   nil,   nil,   160,   160,   nil,   nil,   160,   nil,   nil,
+   160,   305,   nil,   nil,   nil,   305,   305,   nil,   160,   305,
+   nil,   225,   225,   225,   305,   225,   nil,   nil,   305,   nil,
+   nil,   102,   102,   102,   nil,   102,   nil,   nil,   nil,   305,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   286,   286,   286,
+   nil,   286,   225,   nil,   nil,   nil,   225,   225,   nil,   nil,
+   225,   nil,   102,   nil,   nil,   225,   102,   102,   nil,   225,
+   102,   nil,    34,    34,    34,   102,    34,   nil,   286,   102,
+   225,   nil,   286,   286,   nil,   nil,   286,   nil,   nil,   nil,
+   102,   286,   nil,   nil,   nil,   286,   nil,    35,    35,    35,
+   nil,    35,   nil,    34,   nil,   nil,   286,    34,    34,   nil,
+   nil,    34,   nil,   nil,   nil,   nil,    34,    35,   nil,   nil,
+    34,   nil,   nil,    36,    36,    36,   nil,    36,    35,   nil,
+   nil,    34,    35,    35,   nil,   nil,    35,   nil,   nil,   nil,
+   nil,    35,    35,    36,   nil,    35,   nil,   nil,    35,   282,
+   282,   282,   nil,   282,    36,   nil,    35,   nil,    36,    36,
+   nil,   nil,    36,   nil,   nil,   nil,   nil,    36,    36,   nil,
+   nil,    36,   nil,   nil,    36,    40,    40,    40,   nil,    40,
+   282,   nil,    36,   nil,   282,   282,   nil,   nil,   282,   nil,
+   nil,   nil,   nil,   282,   nil,    40,   nil,   282,   nil,   nil,
+   nil,   163,   163,   163,   nil,   163,    40,   nil,   282,   nil,
+    40,    40,   nil,   nil,    40,   nil,   nil,   nil,   nil,    40,
+    40,   163,   nil,    40,   nil,   nil,    40,    50,    50,    50,
+   nil,   nil,   163,   nil,    40,   nil,   163,   163,   nil,   nil,
+   163,   nil,   nil,   nil,   nil,   163,   163,   nil,   nil,   163,
+   nil,   nil,   163,   164,   164,   164,   nil,   164,    50,   nil,
+   163,   nil,    50,    50,   nil,   nil,    50,   nil,   nil,   nil,
+   nil,    50,   nil,   164,   nil,    50,   nil,   nil,   nil,   167,
+   167,   167,   nil,   167,   164,   nil,    50,   nil,   164,   164,
+   nil,   nil,   164,   nil,   nil,   nil,   nil,   164,   164,   167,
+   nil,   164,   nil,   nil,   164,   168,   168,   168,   nil,   168,
+   167,   nil,   164,   nil,   167,   167,   nil,   nil,   167,   nil,
+   nil,   nil,   nil,   167,   167,   168,   nil,   167,   nil,   nil,
+   167,   169,   169,   169,   nil,   169,   168,   nil,   167,   nil,
    168,   168,   nil,   nil,   168,   nil,   nil,   nil,   nil,   168,
-   168,   nil,   nil,   168,   nil,   nil,   168,    57,   nil,   nil,
-   nil,    57,    57,   210,   168,    57,   nil,   210,   210,   nil,
-    57,   210,   nil,   nil,    57,   nil,   210,    84,    84,    84,
-   210,    84,   nil,   nil,   nil,    57,   nil,   nil,   nil,   nil,
-   nil,   210,   nil,   nil,   nil,   nil,   nil,    84,    82,    82,
-    82,    82,    82,   nil,   nil,   nil,   nil,   nil,    84,   nil,
-   nil,   nil,    84,    84,   nil,   nil,    84,   nil,   nil,   nil,
-   nil,    84,    84,   nil,   nil,    84,   nil,   nil,    84,    82,
-   nil,   nil,   nil,    82,    82,   nil,    84,    82,   nil,   211,
-   211,   211,    82,   211,   nil,   nil,    82,   nil,   nil,    78,
-    78,    78,   nil,    78,   nil,   nil,   nil,    82,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    78,
-   211,   nil,   nil,   nil,   211,   211,   nil,   nil,   211,   nil,
-    78,   nil,   nil,   211,    78,    78,   nil,   211,    78,   nil,
-   nil,   nil,   nil,    78,    78,   nil,   nil,    78,   211,   nil,
-    78,   215,   215,   215,   nil,   215,   nil,   nil,    78,   nil,
-   nil,    36,    36,    36,   nil,    36,   nil,   nil,   nil,   nil,
+   168,   169,   nil,   168,   nil,   nil,   168,   264,   264,   264,
+   nil,   264,   169,   nil,   168,   nil,   169,   169,   nil,   nil,
+   169,   nil,   nil,   nil,   nil,   169,   169,   234,   234,   169,
+   nil,   nil,   169,    58,    58,    58,   nil,    58,   264,   nil,
+   169,   nil,   264,   264,   nil,   nil,   264,   213,   213,   213,
+   nil,   264,   nil,   nil,   nil,   264,   nil,   234,   nil,   nil,
+   nil,   234,   234,   nil,    58,   234,   264,   nil,    58,    58,
+   234,   nil,    58,   nil,   234,   nil,   nil,    58,   213,   222,
+   222,    58,   213,   213,   nil,   234,   213,   nil,   nil,   nil,
+   nil,   213,    58,   nil,   nil,   213,   214,   214,   214,   222,
+   214,   nil,   nil,    85,    85,    85,   213,    85,   nil,   222,
+   nil,   nil,   nil,   222,   222,   nil,   nil,   222,   nil,   nil,
+   nil,   222,   222,    85,   nil,   nil,   222,   214,   nil,   nil,
+   nil,   214,   214,   nil,    85,   214,   nil,   222,    85,    85,
+   214,   nil,    85,   nil,   214,   nil,   nil,    85,    85,   nil,
+   nil,    85,   nil,   nil,    85,   214,    83,    83,    83,    83,
+    83,   nil,    85,   218,   218,   218,   nil,   218,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    36,   215,   231,   231,   nil,   215,   215,   nil,   nil,
-   215,   nil,    36,   nil,   nil,   215,    36,    36,   nil,   215,
-    36,   nil,   219,   219,   nil,    36,    36,   nil,   nil,    36,
-   215,   nil,    36,   231,   nil,   nil,   nil,   231,   231,   nil,
-    36,   231,   219,   338,   338,   nil,   231,   nil,   nil,   nil,
-   231,   nil,   219,   314,   314,   nil,   219,   219,   nil,   nil,
-   219,   231,   nil,   nil,   219,   219,   nil,   nil,   nil,   219,
-   nil,   nil,   nil,   338,   276,   276,   nil,   338,   338,   nil,
-   219,   338,   nil,   314,   275,   275,   338,   314,   314,   nil,
-   338,   314,   nil,   nil,   nil,   nil,   314,   nil,   nil,   nil,
-   314,   338,   nil,   nil,   276,   149,   149,   nil,   276,   276,
-   nil,   314,   276,   nil,   275,   nil,   nil,   276,   275,   275,
-   nil,   276,   275,   148,   148,   nil,   148,   275,   nil,   nil,
-   nil,   275,   276,   nil,   nil,   149,   nil,   180,   180,   149,
-   149,   nil,   275,   149,   nil,   nil,   nil,   149,   149,   nil,
-   nil,   nil,   149,   148,   nil,   262,   262,   148,   148,   262,
-   nil,   148,   nil,   149,   nil,   nil,   148,   180,   nil,   nil,
-   148,   180,   180,   nil,   nil,   180,   150,   150,   nil,   nil,
-   180,   148,   nil,   nil,   180,   262,   nil,   nil,   nil,   262,
-   262,   nil,   nil,   262,   nil,   180,   150,   nil,   262,   nil,
-   nil,   nil,   262,   nil,   nil,   nil,   150,    53,    53,   nil,
-   150,   150,   nil,   262,   150,   nil,   nil,   nil,   150,   150,
-   nil,   nil,   nil,   150,   nil,   nil,   nil,    53,   nil,   nil,
-   nil,   nil,   nil,   nil,   150,   nil,   nil,    53,    79,   nil,
-   nil,    53,    53,   nil,   nil,    53,   nil,    79,    79,    53,
-    53,   nil,   nil,   nil,    53,   nil,    79,    79,    79,    79,
-   113,   113,   nil,   nil,   nil,    53,   nil,   nil,   nil,   113,
-   113,   113,   113,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    79,    79,   nil,   nil,    79,    79,    79,    79,    79,    79,
-   nil,    79,    79,   113,   113,   nil,   nil,   113,   113,   113,
-   113,   113,   113,   nil,   113,   113,   248,   248,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   248,   248,   248,   248,   244,
-   244,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   244,   244,
-   244,   244,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   248,   248,   248,   248,   248,   248,   nil,
-   248,   248,   nil,   244,   nil,   nil,   244,   244,   244,   244,
-   244,   244,   nil,   244,   244,   112,   112,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   112,   112,   112,   112,   151,   151,
-   nil,   nil,   nil,   nil,   nil,   nil,   151,   151,   151,   151,
-   151,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   112,   112,
-   nil,   nil,   112,   112,   112,   112,   112,   112,   nil,   112,
-   112,   151,   151,   nil,   nil,   151,   151,   151,   151,   151,
-   151,   343,   151,   151,   117,   117,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   117,   117,   117,   117,   nil,   nil,   nil,
-   nil,   nil,   343,   nil,   343,   343,   nil,   343,   343,   287,
-   343,   nil,   343,   nil,   343,   nil,   343,   117,   117,   343,
-   343,   117,   117,   117,   117,   117,   117,   nil,   117,   117,
-   287,   285,   287,   287,   nil,   287,   287,   nil,   287,   nil,
-   287,   nil,   287,   nil,   287,   nil,   nil,   287,   287,   nil,
-   333,   nil,   285,   nil,   285,   285,   nil,   285,   285,   nil,
-   285,   nil,   285,   nil,   285,   nil,   285,   nil,   nil,   285,
-   285,   333,   165,   333,   333,   nil,   333,   333,   nil,   333,
-   nil,   333,   nil,   333,   nil,   333,   nil,   nil,   333,   333,
-   nil,   253,   nil,   165,   nil,   165,   165,   nil,   165,   165,
-   nil,   165,   nil,   165,   nil,   165,   nil,   165,   nil,   nil,
-   165,   165,   253,   205,   253,   253,   nil,   253,   253,   nil,
-   253,   nil,   253,   nil,   253,   nil,   253,   nil,   nil,   253,
-   253,   nil,   206,   nil,   205,   nil,   205,   205,   nil,   205,
-   205,   nil,   205,   nil,   205,   nil,   205,   nil,   205,   nil,
-   nil,   205,   205,   206,   353,   206,   206,   nil,   206,   206,
-   nil,   206,   nil,   206,   nil,   206,   nil,   206,   nil,   nil,
-   206,   206,   nil,   355,   nil,   353,   nil,   353,   353,   nil,
-   353,   353,   nil,   353,   nil,   353,   nil,   353,   nil,   353,
-   nil,   nil,   353,   353,   355,   nil,   355,   355,   nil,   355,
-   355,   nil,   355,   nil,   355,   nil,   355,   nil,   355,   nil,
-   nil,   355,   355,     0,   nil,     0,     0,   nil,     0,     0,
-   nil,     0,   nil,     0,   nil,     0,   nil,     0,   nil,   nil,
-     0,     0,    30,   nil,    30,    30,   nil,    30,    30,   nil,
-    30,   nil,    30,   nil,    30,   nil,    30,   nil,   nil,    30,
-    30 ]
+   nil,    79,    79,    79,   nil,    79,   nil,    83,   nil,   nil,
+   nil,    83,    83,   nil,   218,    83,   nil,   nil,   218,   218,
+    83,    79,   218,   nil,    83,   nil,   nil,   218,   342,   342,
+   nil,   218,    79,   nil,   nil,    83,    79,    79,   nil,   nil,
+    79,   nil,   218,   nil,   nil,    79,    79,   319,   319,    79,
+   nil,   nil,    79,   162,   162,   162,   nil,   162,   342,   nil,
+    79,   nil,   342,   342,   nil,   nil,   342,   nil,   nil,   nil,
+   nil,   342,   nil,   162,   nil,   342,   nil,   319,   nil,   279,
+   279,   319,   319,   nil,   162,   319,   342,   nil,   162,   162,
+   319,   nil,   162,   nil,   319,   nil,   nil,   162,   162,   nil,
+   nil,   162,   nil,   nil,   162,   319,   nil,   nil,   nil,   279,
+   151,   151,   162,   279,   279,   nil,   nil,   279,   nil,   nil,
+   149,   149,   279,   149,   nil,   nil,   279,   nil,   nil,   nil,
+   151,   nil,   nil,   nil,   nil,   nil,   nil,   279,   nil,   nil,
+   151,   150,   150,   nil,   151,   151,   nil,   nil,   151,   nil,
+   149,   nil,   151,   151,   149,   149,   nil,   151,   149,   181,
+   181,   nil,   nil,   149,   nil,   nil,   nil,   149,   151,   nil,
+   nil,   150,   nil,   278,   278,   150,   150,   nil,   149,   150,
+   nil,   nil,   nil,   150,   150,   nil,   nil,   nil,   150,   181,
+   nil,   265,   265,   181,   181,   265,   nil,   181,   nil,   150,
+   nil,   nil,   181,   278,   nil,   nil,   181,   278,   278,   nil,
+   nil,   278,    54,    54,   nil,   nil,   278,   181,   nil,   nil,
+   278,   265,   nil,   nil,   nil,   265,   265,   nil,   nil,   265,
+   nil,   278,    54,   nil,   265,   nil,   nil,   nil,   265,   nil,
+   nil,   nil,    54,    80,   nil,   nil,    54,    54,   nil,   265,
+    54,   nil,    80,    80,    54,    54,   nil,   nil,   nil,    54,
+   nil,    80,    80,    80,    80,   247,   247,   nil,   nil,   nil,
+    54,   nil,   nil,   nil,   247,   247,   247,   247,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    80,    80,   nil,   nil,    80,
+    80,    80,    80,    80,    80,   nil,    80,    80,   nil,   247,
+   nil,   nil,   247,   247,   247,   247,   247,   247,   nil,   247,
+   247,   251,   251,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   251,   251,   251,   251,   114,   114,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   114,   114,   114,   114,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   251,   251,
+   251,   251,   251,   251,   nil,   251,   251,   114,   114,   nil,
+   nil,   114,   114,   114,   114,   114,   114,   nil,   114,   114,
+   118,   118,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   118,
+   118,   118,   118,   152,   152,   nil,   nil,   nil,   nil,   nil,
+   nil,   152,   152,   152,   152,   152,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   118,   118,   nil,   nil,   118,   118,   118,
+   118,   118,   118,   nil,   118,   118,   152,   152,   nil,   nil,
+   152,   152,   152,   152,   152,   152,   290,   152,   152,   113,
+   113,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   113,   113,
+   113,   113,   nil,   nil,   nil,   nil,   nil,   290,   nil,   290,
+   290,   nil,   290,   290,   345,   290,   nil,   290,   nil,   290,
+   nil,   290,   113,   113,   290,   290,   113,   113,   113,   113,
+   113,   113,   nil,   113,   113,   345,   347,   345,   345,   nil,
+   345,   345,   nil,   345,   nil,   345,   nil,   345,   nil,   345,
+   nil,   nil,   345,   345,   nil,   333,   nil,   347,   nil,   347,
+   347,   nil,   347,   347,   nil,   347,   nil,   347,   nil,   347,
+   nil,   347,   nil,   nil,   347,   347,   333,   292,   333,   333,
+   nil,   333,   333,   nil,   333,   nil,   333,   nil,   333,   nil,
+   333,   nil,   nil,   333,   333,   nil,   338,   nil,   292,   nil,
+   292,   292,   nil,   292,   292,   nil,   292,   nil,   292,   nil,
+   292,   nil,   292,   nil,   nil,   292,   292,   338,   281,   338,
+   338,   nil,   338,   338,   nil,   338,   nil,   338,   nil,   338,
+   nil,   338,   nil,   nil,   338,   338,   nil,   166,   nil,   281,
+   nil,   281,   281,   nil,   281,   281,   nil,   281,   nil,   281,
+   nil,   281,   nil,   281,   nil,   nil,   281,   281,   166,   209,
+   166,   166,   nil,   166,   166,   nil,   166,   nil,   166,   nil,
+   166,   nil,   166,   nil,   nil,   166,   166,   nil,   256,   nil,
+   209,   nil,   209,   209,   nil,   209,   209,   nil,   209,   nil,
+   209,   nil,   209,   nil,   209,   nil,   nil,   209,   209,   256,
+   355,   256,   256,   nil,   256,   256,   nil,   256,   nil,   256,
+   nil,   256,   nil,   256,   nil,   nil,   256,   256,   nil,   357,
+   nil,   355,   nil,   355,   355,   nil,   355,   355,   nil,   355,
+   nil,   355,   nil,   355,   nil,   355,   nil,   nil,   355,   355,
+   357,   nil,   357,   357,   nil,   357,   357,   nil,   357,   nil,
+   357,   nil,   357,   nil,   357,   nil,   nil,   357,   357,    30,
+   nil,    30,    30,   nil,    30,    30,   nil,    30,   nil,    30,
+   nil,    30,   nil,    30,   nil,   nil,    30,    30,     0,   nil,
+     0,     0,   nil,     0,     0,   nil,     0,   nil,     0,   nil,
+     0,   nil,     0,   nil,   nil,     0,     0 ]
 
 racc_action_pointer = [
-  1755,    86,   nil,   nil,   nil,   123,   388,   nil,   nil,   nil,
-   nil,   nil,     9,   383,   nil,   nil,   382,   227,   nil,   272,
-   nil,   293,   nil,   210,    24,   nil,   383,    79,   311,   nil,
-  1774,    95,   nil,   nil,   541,   582,  1109,   310,   nil,   654,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     6,   727,
-   291,   310,   nil,  1334,   304,   nil,   240,   924,   243,   nil,
-   221,   nil,   222,   nil,   nil,   nil,    51,   nil,   nil,   195,
-   190,   nil,   182,   144,   nil,   129,   nil,   108,  1047,  1362,
-   nil,    73,   996,   nil,   975,   nil,   nil,    51,    21,    11,
-   nil,   167,    -2,   175,   178,   185,   nil,   217,   nil,   259,
-   275,   644,   255,   131,    87,   314,   299,   nil,   nil,   nil,
-   318,   327,  1480,  1375,    85,   336,   nil,  1539,   343,    30,
-   nil,    34,   nil,   330,   nil,   nil,   nil,   322,    70,   348,
-   377,   385,   nil,   383,   385,   nil,   nil,   nil,   nil,   nil,
-   nil,    -2,   376,   nil,    67,    19,   nil,   193,  1250,  1232,
-  1303,  1493,    60,    81,   133,   154,   206,   344,   406,   468,
-   243,   520,   706,   768,   187,  1635,   789,   841,   903,   nil,
-   306,   nil,   nil,   nil,   nil,   nil,   105,   nil,   184,   nil,
-  1264,   247,    43,   318,     6,   331,   nil,   -14,    56,   nil,
-   nil,   nil,    -6,   nil,   nil,   nil,   222,   nil,   152,    11,
-   nil,   nil,   nil,   nil,   nil,  1676,  1695,   nil,   nil,    39,
-   930,  1037,    89,    64,    73,  1099,   125,   100,   nil,  1149,
-   158,   nil,   603,   nil,   nil,   nil,   166,   nil,   nil,   160,
-   nil,  1130,   nil,   nil,   nil,   nil,   nil,    51,   nil,   167,
-   248,   303,   478,   165,  1434,    92,   181,   nil,  1421,   230,
-   540,   nil,   226,  1654,   203,   118,   232,   nil,   293,   nil,
-     2,   862,  1282,   nil,    68,   nil,   nil,   307,   nil,   313,
-   -20,   121,   nil,   nil,   nil,  1211,  1201,   nil,   322,   -12,
-     4,   331,   nil,   385,   nil,  1594,   nil,  1572,   nil,   nil,
-   nil,   nil,   nil,   342,   nil,   nil,   nil,   nil,   nil,   nil,
-   458,   nil,   270,   nil,   358,   nil,   336,   nil,   nil,   nil,
-   nil,   nil,   nil,   362,  1180,   363,   nil,   nil,   nil,   nil,
-   352,   353,   nil,   355,   357,   358,   nil,   396,   nil,   nil,
-   129,   334,   nil,  1613,   nil,   nil,   nil,   nil,  1170,   386,
-   389,   447,   nil,  1544,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,  1717,   nil,  1736,   nil,   nil ]
+  1670,    86,   nil,   nil,   nil,   139,   402,   nil,   nil,   nil,
+   nil,   nil,     9,   401,   nil,   nil,   400,   227,   nil,   272,
+   nil,   293,   nil,   223,    24,   nil,   391,   168,   324,   nil,
+  1651,    95,   nil,   nil,   520,   545,   571,   nil,   328,   nil,
+   623,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     6,
+   675,   303,   333,   nil,  1189,   313,   nil,   293,   831,   267,
+   nil,   227,   nil,   235,   nil,   nil,   nil,    51,   nil,   nil,
+   211,   202,   nil,   214,   169,   nil,   161,   nil,   154,   979,
+  1217,   nil,   117,   954,   nil,   901,   nil,   nil,    51,    90,
+    75,   nil,   175,    -2,    21,    60,    94,   nil,   187,   nil,
+   201,   208,   479,   204,   121,    87,   281,   271,   nil,   nil,
+   nil,   300,   315,  1394,  1289,    79,   294,   nil,  1335,   326,
+    30,   nil,    34,   nil,   321,   nil,   nil,   nil,   314,    70,
+   334,   363,   406,   nil,   405,   405,   nil,   nil,   nil,   nil,
+   nil,   nil,    -2,   350,   nil,    67,    19,   nil,   380,  1097,
+  1118,  1087,  1348,    60,    81,   133,   154,   206,   334,   355,
+   407,   194,  1031,   649,   701,   142,  1550,   727,   753,   779,
+   nil,   261,   nil,   nil,   nil,   nil,   nil,   116,   nil,   359,
+   nil,  1136,   195,   338,   318,   289,   394,   nil,   131,    56,
+   nil,   nil,   nil,    -6,   nil,   nil,   nil,   330,   nil,     9,
+   nil,     4,     9,    51,    33,   nil,   127,    88,   nil,  1572,
+   nil,   nil,    95,   845,   894,   117,    92,    94,   961,   143,
+   125,   nil,   876,   173,   nil,   469,   nil,   nil,   nil,   176,
+   nil,   nil,   166,   nil,   824,   nil,   nil,   nil,   nil,   nil,
+     4,   nil,   232,   310,   365,   248,   230,  1230,   165,   181,
+   nil,  1276,    92,   292,   nil,   232,  1591,   257,   203,   220,
+   nil,   299,   nil,     2,   805,  1168,   nil,    68,   nil,   nil,
+   311,   nil,   317,   -20,   -14,   nil,   nil,   nil,  1150,  1056,
+   nil,  1531,   597,   nil,   nil,   129,   495,   nil,   nil,   nil,
+  1399,   nil,  1490,   nil,   nil,   nil,   nil,   nil,     1,   nil,
+   nil,   nil,   nil,   nil,   nil,   428,   nil,   241,   nil,   376,
+   nil,   354,   nil,   nil,   nil,   nil,   nil,   nil,   380,  1024,
+   387,   nil,   nil,   nil,   nil,   376,   377,   nil,   378,   379,
+   382,   nil,   nil,  1468,   nil,   nil,   nil,   nil,  1509,   nil,
+   nil,   nil,  1005,   405,   407,  1427,   nil,  1449,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,  1613,   nil,  1632,   nil,   nil ]
 
 racc_action_default = [
-  -179,  -217,   -15,    -3,  -170,  -217,  -217,   -16,    -5,  -168,
-   -17,    -6,  -217,  -217,    -7,    -8,  -217,  -169,    -9,  -217,
-   -10,  -217,   -11,  -217,  -217,   -12,  -217,  -217,   -40,   -13,
-    -1,  -217,   -14,    -2,  -217,  -217,  -217,  -179,  -169,  -217,
-  -171,  -173,  -176,  -175,  -174,  -204,  -177,  -178,  -179,   -75,
-   -82,  -196,   -31,  -217,  -215,   -34,   -32,  -217,   -64,   -33,
-  -217,  -107,   -21,  -109,  -108,   -22,   -63,   -23,   -62,   -26,
-   -27,  -157,  -217,   -28,  -156,   -29,  -158,   -30,  -217,  -217,
-   -97,   -93,  -217,  -101,  -217,  -117,  -102,  -217,   -94,   -98,
-  -100,   -95,  -217,  -104,   -96,  -103,   -99,  -217,  -159,  -161,
-   -43,  -217,   -75,  -179,  -179,  -217,  -179,   -41,    -4,   -39,
-  -217,  -217,   -72,   -74,  -217,  -217,  -192,   -73,  -217,  -217,
-  -190,  -217,   -68,   -65,   -76,   -71,   -64,   -60,   -63,   -66,
-  -202,   -69,   -58,   -67,  -217,  -155,  -154,   -70,   -80,   -81,
-   -83,  -217,  -202,   -20,  -217,  -217,   -85,  -217,  -217,  -217,
-  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
-  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -199,
-  -217,  -133,  -213,  -212,  -211,  -207,  -217,  -208,  -217,  -126,
-  -217,  -217,   -82,  -217,  -217,  -202,  -196,  -179,  -217,   -47,
-   -49,   -63,  -217,   -56,   -55,   -46,  -217,   358,  -180,  -217,
-  -181,  -214,  -194,  -193,  -195,  -217,  -217,  -191,  -172,  -217,
-   -61,  -217,  -217,  -203,   -75,  -217,  -217,  -203,   -18,  -217,
-  -217,  -110,  -217,  -200,  -201,  -152,  -217,  -144,  -145,   -63,
-  -150,  -217,  -153,  -151,   -24,   -25,  -106,  -217,  -136,  -122,
-  -124,  -128,  -125,  -130,  -135,  -132,  -129,  -118,  -134,  -131,
-  -127,  -119,  -114,  -217,  -120,  -121,  -123,  -197,  -201,  -205,
-  -217,  -217,  -217,  -138,  -217,  -142,  -160,  -202,  -111,  -217,
-  -217,  -217,   -52,   -51,   -45,  -217,  -217,   -44,  -189,  -217,
-  -217,  -187,  -184,  -217,  -165,  -217,  -167,  -217,   -35,   -59,
-   -78,   -36,   -77,  -202,   -79,   -38,   -84,   -19,  -216,   -86,
-  -217,  -147,  -202,  -105,  -217,  -113,  -114,  -198,  -206,  -209,
-  -210,  -139,  -137,  -217,  -217,  -217,   -37,   -50,   -48,   -91,
-   -87,   -88,   -53,   -92,   -89,   -90,   -54,  -217,  -182,  -183,
-  -217,  -217,  -163,  -217,  -164,  -166,   -57,  -149,  -217,  -217,
-  -201,  -217,  -112,  -217,  -143,   -42,  -188,  -185,  -186,  -162,
-  -148,  -146,  -116,  -217,  -141,  -217,  -115,  -140 ]
+  -180,  -218,   -15,    -3,  -170,  -171,  -218,   -16,    -5,  -168,
+   -17,    -6,  -218,  -218,    -7,    -8,  -218,  -169,    -9,  -218,
+   -10,  -218,   -11,  -218,  -218,   -12,  -218,  -218,   -40,   -13,
+    -1,  -218,   -14,    -2,  -218,  -218,  -218,  -171,  -180,  -169,
+  -218,  -172,  -174,  -177,  -176,  -175,  -205,  -178,  -179,  -180,
+   -75,   -82,  -197,   -31,  -218,  -216,   -34,   -32,  -218,   -64,
+   -33,  -218,  -107,   -21,  -109,  -108,   -22,   -63,   -23,   -62,
+   -26,   -27,  -157,  -218,   -28,  -156,   -29,  -158,   -30,  -218,
+  -218,   -97,   -93,  -218,  -101,  -218,  -117,  -102,  -218,   -94,
+   -98,  -100,   -95,  -218,  -104,   -96,  -103,   -99,  -218,  -159,
+  -161,   -43,  -218,   -75,  -180,  -180,  -218,  -180,   -41,    -4,
+   -39,  -218,  -218,   -72,   -74,  -181,  -180,  -182,   -73,  -218,
+  -218,  -191,  -218,   -68,   -65,   -76,   -71,   -64,   -60,   -63,
+   -66,  -203,   -69,   -58,   -67,  -218,  -155,  -154,   -70,   -80,
+   -81,   -83,  -218,  -203,   -20,  -218,  -218,   -85,  -218,  -218,
+  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,
+  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,  -218,
+  -200,  -218,  -133,  -214,  -213,  -212,  -208,  -218,  -209,  -218,
+  -126,  -218,  -218,   -82,  -218,  -218,  -203,  -197,  -180,  -218,
+   -47,   -49,   -63,  -218,   -56,   -55,   -46,  -218,   360,  -218,
+  -215,  -190,  -218,  -218,  -188,  -185,  -218,  -218,  -193,  -218,
+  -192,  -173,  -218,   -61,  -218,  -218,  -204,   -75,  -218,  -218,
+  -204,   -18,  -218,  -218,  -110,  -218,  -201,  -202,  -152,  -218,
+  -144,  -145,   -63,  -150,  -218,  -153,  -151,   -24,   -25,  -106,
+  -218,  -136,  -122,  -124,  -128,  -125,  -130,  -135,  -132,  -129,
+  -118,  -134,  -131,  -127,  -119,  -114,  -218,  -120,  -121,  -123,
+  -198,  -202,  -206,  -218,  -218,  -218,  -138,  -218,  -142,  -160,
+  -203,  -111,  -218,  -218,  -218,   -52,   -51,   -45,  -218,  -218,
+   -44,  -218,  -218,  -183,  -184,  -218,  -218,  -195,  -194,  -196,
+  -218,  -167,  -218,   -35,   -59,   -78,   -36,   -77,  -203,   -79,
+   -38,   -84,   -19,  -217,   -86,  -218,  -147,  -203,  -105,  -218,
+  -113,  -114,  -199,  -207,  -210,  -211,  -139,  -137,  -218,  -218,
+  -218,   -37,   -50,   -48,   -91,   -87,   -88,   -53,   -92,   -89,
+   -90,   -54,  -163,  -218,  -189,  -186,  -187,  -165,  -218,  -166,
+   -57,  -149,  -218,  -218,  -202,  -218,  -112,  -218,  -143,   -42,
+  -162,  -164,  -148,  -146,  -116,  -218,  -141,  -218,  -115,  -140 ]
 
 racc_goto_table = [
-    24,   228,    59,     6,   130,   108,    16,   226,   177,    30,
-    62,   132,   138,    40,   282,   137,   142,   212,    47,   263,
-    37,   188,   196,    67,   234,    33,   305,   147,    97,   216,
-    24,   110,   100,     6,   125,   296,    16,   262,    59,   265,
-   338,   111,   106,   322,   326,    52,   144,   109,   227,   127,
-   302,    99,   170,   199,   115,    48,   118,   185,   209,    67,
-   207,   279,   116,   280,   146,   318,   203,   176,    56,    26,
-   nil,   183,   269,   120,    98,   nil,   nil,   122,   nil,   nil,
-   342,    52,   nil,   nil,   301,   nil,   nil,   nil,   nil,   146,
-   226,   nil,   nil,   nil,   234,   nil,   nil,   nil,   nil,   nil,
-   123,   311,   nil,   nil,    56,   270,   nil,   nil,   146,    77,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,    74,   nil,   nil,
-   nil,   265,   208,   nil,   nil,    47,   nil,    47,   nil,   202,
-   nil,   200,   nil,   nil,    59,    59,   nil,   nil,   nil,   nil,
-   nil,   136,   nil,   237,   138,    77,   347,   nil,   267,    74,
-   nil,   nil,   220,    74,   315,   235,    67,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    24,   247,   nil,     6,   293,
-   251,    16,   289,   344,   253,   292,   137,    52,    52,   138,
-   336,   309,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   339,
-   nil,   350,   nil,   nil,   nil,   125,   nil,   226,   nil,   225,
-    56,    56,   nil,   nil,    59,    24,    24,   nil,     6,     6,
-   nil,    16,    16,   nil,   285,   287,   nil,   nil,   290,   nil,
-   nil,   nil,   294,   nil,   nil,   235,   nil,   nil,   108,   299,
-   nil,   225,   266,   nil,   nil,   nil,   nil,   nil,   122,   nil,
-   136,    77,    77,   nil,   nil,   nil,   nil,    52,    74,    74,
-    74,   nil,   nil,    24,   nil,   nil,     6,   nil,   nil,    16,
-   108,   123,   108,   nil,    73,   nil,   nil,   nil,   310,    75,
-    56,   nil,   136,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    74,   nil,   225,    24,    69,    24,     6,    24,     6,    16,
-     6,    16,   333,    16,   nil,   nil,   133,   nil,   nil,   nil,
-    73,   135,   136,   319,   319,    75,   nil,   337,   108,   nil,
-    74,    77,   nil,   225,   nil,   nil,   129,   nil,   nil,    74,
-    69,   nil,   nil,   136,   nil,   nil,   320,   320,   108,   nil,
-   108,    74,   nil,    24,   346,   nil,     6,    70,   348,    16,
-   nil,    24,   nil,    24,     6,   nil,     6,    16,   nil,    16,
-   353,   nil,   355,    24,   136,    24,     6,   nil,     6,    16,
-   nil,    16,    74,   nil,   nil,   225,   nil,   136,   136,   131,
-   193,   193,   nil,    70,   nil,    74,    74,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   225,
-   nil,   nil,   nil,   nil,   nil,   233,    73,    73,   nil,   nil,
-   135,    75,    75,   nil,   nil,   nil,   136,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    74,   230,    69,    69,   nil,   nil,
-    79,   nil,   nil,   194,   194,   nil,   nil,   233,   nil,   nil,
-   136,   nil,   135,   nil,   nil,   nil,   112,   113,    74,   nil,
-   117,   nil,   nil,   nil,   nil,   nil,   nil,   230,   nil,   nil,
-   nil,   nil,   nil,   nil,   193,   nil,   nil,   133,   nil,   nil,
-   nil,   nil,   135,   nil,   nil,   nil,    73,   nil,   232,    70,
-    70,    75,   nil,   nil,   nil,   nil,   nil,   129,   233,   151,
-   nil,   nil,   nil,   135,   nil,   171,    69,   nil,   nil,   nil,
-   nil,   nil,   nil,   179,   nil,   nil,   nil,   nil,   230,   nil,
-   232,   nil,   nil,   nil,   nil,   nil,   nil,   194,   nil,   233,
-   nil,   nil,   nil,   nil,   135,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   324,   324,   nil,   nil,   nil,   325,   325,   230,
-   131,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   193,    70,
-   nil,   nil,   321,   321,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   232,   nil,   239,   240,   241,   242,   243,   244,   245,
-   246,   233,   248,   249,   250,   nil,   135,   254,   255,   256,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   230,   232,   nil,   nil,   233,   nil,   nil,   nil,   nil,
-   135,   194,   nil,   nil,   nil,   323,   323,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   230,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+     6,    16,   109,   231,    24,    30,    38,   229,   178,   131,
+    57,   215,   205,   143,    41,    76,    99,   133,    68,    48,
+   266,    60,   138,   219,   139,   237,    63,   116,   107,   310,
+     6,    16,   189,   197,    24,   111,    98,   327,   331,   268,
+   148,   323,   265,   124,   301,   342,   230,    57,   136,   112,
+   110,   307,    76,   100,   126,    68,   128,    33,    60,   207,
+    49,   119,   186,   145,   212,   171,   272,   210,   202,   203,
+    75,   101,   288,   147,   177,    26,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   184,   346,   nil,   nil,   306,   nil,
+   nil,   nil,   229,   nil,   nil,   117,   199,   237,   147,   nil,
+   nil,   nil,   nil,    75,   316,   nil,   121,    75,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   273,   147,   nil,   nil,
+    53,   nil,   nil,   268,   211,   nil,   nil,    48,   nil,    48,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   232,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   228,    57,    57,   270,   nil,   136,    76,    76,
+   320,   238,    68,   123,    60,    60,   139,    53,   nil,   nil,
+   240,   223,   nil,   nil,   117,   nil,     6,    16,   250,   nil,
+    24,   256,   254,   208,   228,   269,   298,   348,   340,   136,
+   294,   nil,   335,   314,   nil,   138,   nil,   343,   nil,   297,
+   nil,   nil,   nil,   139,   nil,   nil,   352,   nil,   nil,   nil,
+   229,   nil,    75,    75,    75,   nil,   124,   287,   nil,     6,
+    16,   136,   nil,    24,   292,    57,   nil,   126,   nil,   nil,
+    76,   nil,   nil,   238,   nil,   nil,    60,   228,   109,   295,
+   nil,   nil,   136,   299,    75,   nil,    70,   nil,   nil,   nil,
+   304,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    74,   nil,    53,    53,   nil,     6,    16,   228,   nil,
+    24,   nil,   nil,   136,   109,   nil,    75,   nil,   nil,   130,
+    78,   325,   325,    70,   nil,    75,   330,   330,    71,   315,
+   nil,     6,    16,   nil,   134,    24,   333,    75,    74,   nil,
+     6,    16,     6,    16,    24,   338,    24,   334,   nil,   nil,
+   nil,   336,   nil,   137,   nil,   109,   nil,    78,   nil,   nil,
+   109,   132,   228,   nil,   nil,    71,   123,   136,    75,   nil,
+   341,   nil,   nil,   194,   194,    53,   nil,   109,   nil,   109,
+   nil,    75,    75,     6,    16,   228,   nil,    24,     6,    16,
+   136,   nil,    24,   nil,   nil,     6,    16,     6,    16,    24,
+   355,    24,   357,   nil,   nil,     6,    16,     6,    16,    24,
+   nil,    24,   nil,   nil,   nil,   195,   195,   nil,   233,    70,
+    70,   nil,    75,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   324,   324,   236,    74,    74,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    75,   nil,   nil,   nil,   nil,
+   233,   nil,   137,    78,    78,   nil,   nil,   194,   nil,   nil,
+   235,    71,    71,   nil,   nil,   236,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   232 ]
+   nil,   nil,   130,   nil,   137,   nil,   nil,   nil,   nil,   nil,
+   nil,    70,   235,   nil,   nil,   nil,   nil,   134,    80,   195,
+   nil,   nil,   nil,   233,   nil,   nil,    74,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   113,   114,   137,   nil,   236,   118,
+   nil,   nil,   nil,   nil,   132,    78,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    71,   233,   nil,   nil,   137,   nil,   nil,
+   nil,   nil,   nil,   194,   nil,   235,   nil,   326,   326,   236,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   152,   nil,
+   nil,   nil,   329,   329,   172,   nil,   nil,   nil,   137,   nil,
+   nil,   nil,   180,   nil,   nil,   nil,   235,   nil,   nil,   nil,
+   nil,   137,   137,   nil,   nil,   195,   nil,   nil,   233,   328,
+   328,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   236,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   233,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   137,   nil,   nil,   nil,   236,   nil,   nil,   nil,
+   235,   nil,   242,   243,   244,   245,   246,   247,   248,   249,
+   nil,   251,   252,   253,   nil,   137,   257,   258,   259,   nil,
+   nil,   nil,   nil,   235 ]
 
 racc_goto_check = [
-    34,    64,    28,    49,    32,     4,    20,    62,    78,     2,
-    18,    44,    50,    71,    75,    47,    35,    33,    58,    60,
-    29,    38,    38,    20,    19,     3,    57,    54,    51,    33,
-    34,    34,    37,    49,    28,    53,    20,    59,    28,    62,
-    55,    51,    29,    43,    43,    26,    18,     5,    63,    30,
-    65,    66,    54,    67,    68,    69,    70,    32,    31,    20,
-    72,    73,     3,    74,    51,    39,    76,    77,    27,     1,
-   nil,    54,    33,     3,    27,   nil,   nil,    26,   nil,   nil,
-    57,    26,   nil,   nil,    64,   nil,   nil,   nil,   nil,    51,
-    62,   nil,   nil,   nil,    19,   nil,   nil,   nil,   nil,   nil,
-    27,    60,   nil,   nil,    27,    38,   nil,   nil,    51,    25,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,    46,   nil,   nil,
-   nil,    62,    71,   nil,   nil,    58,   nil,    58,   nil,    29,
-   nil,     3,   nil,   nil,    28,    28,   nil,   nil,   nil,   nil,
-   nil,    25,   nil,    18,    50,    25,    75,   nil,    35,    46,
-   nil,   nil,    51,    46,    33,    20,    20,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    34,    58,   nil,    49,    32,
-    58,    20,    44,    62,     2,    50,    47,    26,    26,    50,
-    33,    78,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    33,
-   nil,    64,   nil,   nil,   nil,    28,   nil,    62,   nil,    27,
-    27,    27,   nil,   nil,    28,    34,    34,   nil,    49,    49,
-   nil,    20,    20,   nil,     2,     2,   nil,   nil,    51,   nil,
-   nil,   nil,    51,   nil,   nil,    20,   nil,   nil,     4,    51,
-   nil,    27,    27,   nil,   nil,   nil,   nil,   nil,    26,   nil,
-    25,    25,    25,   nil,   nil,   nil,   nil,    26,    46,    46,
-    46,   nil,   nil,    34,   nil,   nil,    49,   nil,   nil,    20,
-     4,    27,     4,   nil,    23,   nil,   nil,   nil,    51,    24,
-    27,   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    46,   nil,    27,    34,    21,    34,    49,    34,    49,    20,
-    49,    20,     2,    20,   nil,   nil,    23,   nil,   nil,   nil,
-    23,    24,    25,    26,    26,    24,   nil,    51,     4,   nil,
-    46,    25,   nil,    27,   nil,   nil,    21,   nil,   nil,    46,
-    21,   nil,   nil,    25,   nil,   nil,    27,    27,     4,   nil,
-     4,    46,   nil,    34,    51,   nil,    49,    22,    51,    20,
-   nil,    34,   nil,    34,    49,   nil,    49,    20,   nil,    20,
-     2,   nil,     2,    34,    25,    34,    49,   nil,    49,    20,
-   nil,    20,    46,   nil,   nil,    27,   nil,    25,    25,    22,
-    21,    21,   nil,    22,   nil,    46,    46,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,
-   nil,   nil,   nil,   nil,   nil,    23,    23,    23,   nil,   nil,
-    24,    24,    24,   nil,   nil,   nil,    25,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    46,    21,    21,    21,   nil,   nil,
-    48,   nil,   nil,    22,    22,   nil,   nil,    23,   nil,   nil,
-    25,   nil,    24,   nil,   nil,   nil,    48,    48,    46,   nil,
-    48,   nil,   nil,   nil,   nil,   nil,   nil,    21,   nil,   nil,
-   nil,   nil,   nil,   nil,    21,   nil,   nil,    23,   nil,   nil,
-   nil,   nil,    24,   nil,   nil,   nil,    23,   nil,    22,    22,
-    22,    24,   nil,   nil,   nil,   nil,   nil,    21,    23,    48,
-   nil,   nil,   nil,    24,   nil,    48,    21,   nil,   nil,   nil,
-   nil,   nil,   nil,    48,   nil,   nil,   nil,   nil,    21,   nil,
-    22,   nil,   nil,   nil,   nil,   nil,   nil,    22,   nil,    23,
-   nil,   nil,   nil,   nil,    24,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    23,    23,   nil,   nil,   nil,    24,    24,    21,
-    22,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    21,    22,
-   nil,   nil,    21,    21,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    22,   nil,    48,    48,    48,    48,    48,    48,    48,
-    48,    23,    48,    48,    48,   nil,    24,    48,    48,    48,
+    49,    20,     4,    64,    34,     2,    29,    62,    78,    32,
+    27,    33,    75,    35,    71,    24,    27,    44,    20,    58,
+    60,    28,    47,    33,    50,    19,    18,    67,    29,    57,
+    49,    20,    38,    38,    34,    34,    51,    43,    43,    62,
+    54,    39,    59,    27,    53,    55,    63,    27,    24,    51,
+     5,    65,    24,    66,    28,    20,    30,     3,    28,    68,
+    69,    70,    32,    18,    31,    54,    33,    72,    73,    74,
+    46,    37,    76,    51,    77,     1,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,    54,    57,   nil,   nil,    64,   nil,
+   nil,   nil,    62,   nil,   nil,     3,    67,    19,    51,   nil,
+   nil,   nil,   nil,    46,    60,   nil,     3,    46,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    38,    51,   nil,   nil,
+    26,   nil,   nil,    62,    71,   nil,   nil,    58,   nil,    58,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    21,    22,   nil,   nil,    23,   nil,   nil,   nil,   nil,
-    24,    22,   nil,   nil,   nil,    22,    22,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    21,   nil,   nil,   nil,   nil,
+   nil,   nil,    27,    27,    27,    35,   nil,    24,    24,    24,
+    33,    20,    20,    26,    28,    28,    50,    26,   nil,   nil,
+    18,    51,   nil,   nil,     3,   nil,    49,    20,    58,   nil,
+    34,     2,    58,     3,    27,    27,    32,    62,    33,    24,
+    44,   nil,    75,    78,   nil,    47,   nil,    33,   nil,    50,
+   nil,   nil,   nil,    50,   nil,   nil,    64,   nil,   nil,   nil,
+    62,   nil,    46,    46,    46,   nil,    27,    29,   nil,    49,
+    20,    24,   nil,    34,     2,    27,   nil,    28,   nil,   nil,
+    24,   nil,   nil,    20,   nil,   nil,    28,    27,     4,    51,
+   nil,   nil,    24,    51,    46,   nil,    21,   nil,   nil,   nil,
+    51,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    23,   nil,    26,    26,   nil,    49,    20,    27,   nil,
+    34,   nil,   nil,    24,     4,   nil,    46,   nil,   nil,    21,
+    25,    27,    27,    21,   nil,    46,    24,    24,    22,    51,
+   nil,    49,    20,   nil,    23,    34,     2,    46,    23,   nil,
+    49,    20,    49,    20,    34,     2,    34,    51,   nil,   nil,
+   nil,    51,   nil,    25,   nil,     4,   nil,    25,   nil,   nil,
+     4,    22,    27,   nil,   nil,    22,    26,    24,    46,   nil,
+    51,   nil,   nil,    21,    21,    26,   nil,     4,   nil,     4,
+   nil,    46,    46,    49,    20,    27,   nil,    34,    49,    20,
+    24,   nil,    34,   nil,   nil,    49,    20,    49,    20,    34,
+     2,    34,     2,   nil,   nil,    49,    20,    49,    20,    34,
+   nil,    34,   nil,   nil,   nil,    22,    22,   nil,    21,    21,
+    21,   nil,    46,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    26,    26,    23,    23,    23,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    46,   nil,   nil,   nil,   nil,
+    21,   nil,    25,    25,    25,   nil,   nil,    21,   nil,   nil,
+    22,    22,    22,   nil,   nil,    23,   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,    22,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    22 ]
+   nil,   nil,    21,   nil,    25,   nil,   nil,   nil,   nil,   nil,
+   nil,    21,    22,   nil,   nil,   nil,   nil,    23,    48,    22,
+   nil,   nil,   nil,    21,   nil,   nil,    23,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,    48,    48,    25,   nil,    23,    48,
+   nil,   nil,   nil,   nil,    22,    25,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    22,    21,   nil,   nil,    25,   nil,   nil,
+   nil,   nil,   nil,    21,   nil,    22,   nil,    21,    21,    23,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    48,   nil,
+   nil,   nil,    23,    23,    48,   nil,   nil,   nil,    25,   nil,
+   nil,   nil,    48,   nil,   nil,   nil,    22,   nil,   nil,   nil,
+   nil,    25,    25,   nil,   nil,    22,   nil,   nil,    21,    22,
+    22,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    23,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    21,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    25,   nil,   nil,   nil,    23,   nil,   nil,   nil,
+    22,   nil,    48,    48,    48,    48,    48,    48,    48,    48,
+   nil,    48,    48,    48,   nil,    25,    48,    48,    48,   nil,
+   nil,   nil,   nil,    22 ]
 
 racc_goto_pointer = [
-   nil,    69,     9,    25,   -25,    16,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    -7,  -125,
-     6,   267,   320,   247,   252,    92,    28,    51,   -15,    15,
-     0,   -69,   -45,  -113,     0,   -34,   nil,     8,   -82,  -206,
-   nil,   nil,   nil,  -232,   -38,   nil,   100,   -34,   401,     3,
-   -38,     7,   nil,  -182,   -30,  -262,   nil,  -226,     6,  -143,
-  -161,   nil,  -141,  -100,  -147,  -181,    28,   -53,    17,    43,
-     8,     1,   -59,  -137,  -135,  -184,   -48,   -20,   -79,   nil ]
+   nil,    75,     5,    57,   -28,    19,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     9,  -125,
+     1,   219,   261,   234,    -2,   253,   103,    -7,     4,     1,
+     6,   -64,   -41,  -120,     4,   -38,   nil,    47,   -72,  -233,
+   nil,   nil,   nil,  -241,   -33,   nil,    53,   -28,   429,     0,
+   -27,    15,   nil,  -176,   -18,  -262,   nil,  -226,     7,  -139,
+  -161,   nil,  -142,  -103,  -146,  -183,    30,   -11,   -57,    48,
+    12,     2,   -53,   -47,   -46,  -103,  -134,   -14,   -80,   nil ]
 
 racc_goto_default = [
-   nil,   nil,   nil,   195,     3,     8,    11,    14,    15,    18,
-    20,    22,    25,    29,    32,     2,     7,    10,   nil,    65,
-    86,    88,    89,    91,    94,    95,    80,    81,    83,    13,
-   nil,   nil,   nil,   nil,    72,   nil,    31,   nil,   nil,   189,
-   271,   190,   192,   nil,   nil,   134,    93,    96,   nil,    54,
-   124,    85,   139,   140,   nil,   222,    90,   nil,    76,   nil,
-   nil,   264,    60,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    41,   nil,   nil,   nil,   nil,   nil,   nil,   178 ]
+   nil,   nil,   nil,   196,     3,     8,    11,    14,    15,    18,
+    20,    22,    25,    29,    32,     2,     7,    10,   nil,    66,
+    87,    89,    90,    92,    95,    96,    81,    82,    84,    13,
+   nil,   nil,   nil,   nil,    73,   nil,    31,   nil,   nil,   190,
+   274,   191,   193,   nil,   nil,   135,    94,    97,   nil,    55,
+   125,    86,   140,   141,   nil,   225,    91,   nil,    77,   nil,
+   nil,   267,    61,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    42,   nil,   nil,   nil,   nil,   nil,   nil,   179 ]
 
 racc_token_table = {
  false => 0,
@@ -2108,7 +2077,7 @@ module_eval <<'.,.,', 'grammar.ra', 669
     @lexer.commentpop
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
-    newclass classname(val[1]), :code => val[4], :parent => val[2], :line => val[0][:line]
+    newclass classname(val[1]), :arguments => val[2], :code => val[5], :parent => val[3], :line => val[0][:line]
     result = nil
    result
   end
@@ -2119,7 +2088,7 @@ module_eval <<'.,.,', 'grammar.ra', 675
     @lexer.commentpop
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
-    newclass classname(val[1]), :parent => val[2], :line => val[0][:line]
+    newclass classname(val[1]), :arguments => val[2], :parent => val[3], :line => val[0][:line]
     result = nil
    result
   end
@@ -2164,27 +2133,27 @@ module_eval <<'.,.,', 'grammar.ra', 689
   end
 .,.,
 
- # reduce 171 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 699
-  def _reduce_172( val, _values, result )
-    result = val[0]
-    result = [result] unless result.is_a?(Array)
-    result << val[2]
+module_eval <<'.,.,', 'grammar.ra', 690
+  def _reduce_171( val, _values, result )
+ result = "class"
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 703
+ # reduce 172 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 700
   def _reduce_173( val, _values, result )
-    result = ast AST::HostName, :value => val[0]
+    result = val[0]
+    result = [result] unless result.is_a?(Array)
+    result << val[2]
    result
   end
 .,.,
 
 module_eval <<'.,.,', 'grammar.ra', 704
   def _reduce_174( val, _values, result )
- result = val[0][:value]
+    result = ast AST::HostName, :value => val[0]
    result
   end
 .,.,
@@ -2210,43 +2179,50 @@ module_eval <<'.,.,', 'grammar.ra', 707
   end
 .,.,
 
- # reduce 178 omitted
+module_eval <<'.,.,', 'grammar.ra', 708
+  def _reduce_178( val, _values, result )
+ result = val[0][:value]
+   result
+  end
+.,.,
 
-module_eval <<'.,.,', 'grammar.ra', 713
-  def _reduce_179( val, _values, result )
+ # reduce 179 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 714
+  def _reduce_180( val, _values, result )
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 717
-  def _reduce_180( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 718
+  def _reduce_181( val, _values, result )
     result = ast AST::ASTArray, :children => []
    result
   end
 .,.,
 
- # reduce 181 omitted
+ # reduce 182 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 722
-  def _reduce_182( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 723
+  def _reduce_183( val, _values, result )
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 726
-  def _reduce_183( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 727
+  def _reduce_184( val, _values, result )
     result = val[1]
     result = [result] unless result[0].is_a?(Array)
    result
   end
 .,.,
 
- # reduce 184 omitted
+ # reduce 185 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 733
-  def _reduce_185( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 734
+  def _reduce_186( val, _values, result )
     result = val[0]
     result = [result] unless result[0].is_a?(Array)
     result << val[2]
@@ -2254,67 +2230,67 @@ module_eval <<'.,.,', 'grammar.ra', 733
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 738
-  def _reduce_186( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 739
+  def _reduce_187( 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', 742
-  def _reduce_187( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 743
+  def _reduce_188( val, _values, result )
     Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
     result = [val[0][:value]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 744
-  def _reduce_188( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 745
+  def _reduce_189( val, _values, result )
     result = [val[0][:value], val[2]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 746
-  def _reduce_189( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 747
+  def _reduce_190( val, _values, result )
     result = [val[0][:value]]
    result
   end
 .,.,
 
- # reduce 190 omitted
+ # reduce 191 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 751
-  def _reduce_191( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 752
+  def _reduce_192( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
- # reduce 192 omitted
+ # reduce 193 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 756
-  def _reduce_193( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 757
+  def _reduce_194( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
- # reduce 194 omitted
-
  # reduce 195 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 762
-  def _reduce_196( val, _values, result )
+ # reduce 196 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 763
+  def _reduce_197( val, _values, result )
     result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 770
-  def _reduce_197( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 771
+  def _reduce_198( val, _values, result )
     if val[1].instance_of?(AST::ASTArray)
         result = val[1]
     else
@@ -2324,8 +2300,8 @@ module_eval <<'.,.,', 'grammar.ra', 770
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 777
-  def _reduce_198( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 778
+  def _reduce_199( val, _values, result )
     if val[1].instance_of?(AST::ASTArray)
         result = val[1]
     else
@@ -2335,35 +2311,35 @@ module_eval <<'.,.,', 'grammar.ra', 777
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 779
-  def _reduce_199( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 780
+  def _reduce_200( val, _values, result )
     result = ast AST::ASTArray
    result
   end
 .,.,
 
- # reduce 200 omitted
-
  # reduce 201 omitted
 
  # reduce 202 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 784
-  def _reduce_203( val, _values, result )
+ # reduce 203 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 785
+  def _reduce_204( val, _values, result )
  result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 789
-  def _reduce_204( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 790
+  def _reduce_205( val, _values, result )
     result = ast AST::Regex, :value => val[0][:value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 797
-  def _reduce_205( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 798
+  def _reduce_206( val, _values, result )
     if val[1].instance_of?(AST::ASTHash)
         result = val[1]
     else
@@ -2373,8 +2349,8 @@ module_eval <<'.,.,', 'grammar.ra', 797
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 804
-  def _reduce_206( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 805
+  def _reduce_207( val, _values, result )
     if val[1].instance_of?(AST::ASTHash)
         result = val[1]
     else
@@ -2384,17 +2360,17 @@ module_eval <<'.,.,', 'grammar.ra', 804
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 806
-  def _reduce_207( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 807
+  def _reduce_208( val, _values, result )
     result = ast AST::ASTHash
    result
   end
 .,.,
 
- # reduce 208 omitted
+ # reduce 209 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 816
-  def _reduce_209( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 817
+  def _reduce_210( val, _values, result )
     if val[0].instance_of?(AST::ASTHash)
         result = val[0].merge(val[2])
     else
@@ -2405,16 +2381,9 @@ module_eval <<'.,.,', 'grammar.ra', 816
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 820
-  def _reduce_210( val, _values, result )
-    result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
-   result
-  end
-.,.,
-
 module_eval <<'.,.,', 'grammar.ra', 821
   def _reduce_211( val, _values, result )
- result = val[0][:value]
+    result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
    result
   end
 .,.,
@@ -2433,17 +2402,24 @@ module_eval <<'.,.,', 'grammar.ra', 823
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 828
+module_eval <<'.,.,', 'grammar.ra', 824
   def _reduce_214( val, _values, result )
+ result = val[0][:value]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 829
+  def _reduce_215( val, _values, result )
     result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
    result
   end
 .,.,
 
- # reduce 215 omitted
+ # reduce 216 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 833
-  def _reduce_216( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 834
+  def _reduce_217( val, _values, result )
     result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
    result
   end
diff --git a/spec/unit/parser/parser.rb b/spec/unit/parser/parser.rb
index bb0fa0a..84749c3 100755
--- a/spec/unit/parser/parser.rb
+++ b/spec/unit/parser/parser.rb
@@ -411,4 +411,45 @@ describe Puppet::Parser do
             @parser.load("").should == false
         end
     end
+
+    describe "when parsing classes" do
+        before :each do
+            @krt = Puppet::Resource::TypeCollection.new("development")
+            @parser = Puppet::Parser::Parser.new "development"
+            @parser.stubs(:known_resource_types).returns @krt
+        end
+
+        it "should create new classes" do
+            @parser.parse("class foobar {}")
+            @krt.hostclass("foobar").should be_instance_of(Puppet::Resource::Type)
+        end
+
+        it "should correctly set the parent class when one is provided" do
+            @parser.parse("class foobar inherits yayness {}")
+            @krt.hostclass("foobar").parent.should == "yayness"
+        end
+
+        it "should define the code when some is provided" do
+            @parser.parse("class foobar { $var = val }")
+            @krt.hostclass("foobar").code.should_not be_nil
+        end
+
+        it "should define parameters when provided" do
+            @parser.parse("class foobar($biz,$baz) {}")
+            @krt.hostclass("foobar").arguments.should == {"biz" => nil, "baz" => nil}
+        end
+    end
+
+    describe "when parsing resources" do
+        before :each do
+            @krt = Puppet::Resource::TypeCollection.new("development")
+            @parser = Puppet::Parser::Parser.new "development"
+            @parser.stubs(:known_resource_types).returns @krt
+        end
+
+        it "should be able to parse class resources" do
+            @krt.add(Puppet::Resource::Type.new(:hostclass, "foobar", :arguments => {"biz" => nil}))
+            lambda { @parser.parse("class { foobar: biz => stuff }") }.should_not raise_error
+        end
+    end
 end

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list