[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, master, updated. debian/0.24.6-1-356-g5718585

James Turnbull james at lovedthanlost.net
Fri Jan 23 14:21:27 UTC 2009


The following commit has been merged in the master branch:
commit e6f99f92ec5bfba973a3f13c629a8ce263a0da7d
Author: Brice Figureau <brice-puppet at daysofwonder.com>
Date:   Thu Oct 16 20:24:30 2008 +0200

    Fix #636 - Allow extraneous comma in function argument list
    
    Signed-off-by: Brice Figureau <brice-puppet at daysofwonder.com>

diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra
index 7f07cc3..0a85c2c 100644
--- a/lib/puppet/parser/grammar.ra
+++ b/lib/puppet/parser/grammar.ra
@@ -79,7 +79,13 @@ fstatement:   NAME LPAREN funcvalues RPAREN {
         :arguments => args,
         :ftype => :statement
 }
-            | NAME LPAREN RPAREN {
+ | NAME LPAREN funcvalues COMMA RPAREN {
+    args = aryfy(val[2])
+    result = ast AST::Function,
+        :name => val[0],
+        :arguments => args,
+        :ftype => :statement
+}            | NAME LPAREN RPAREN {
     result = ast AST::Function,
         :name => val[0],
         :arguments => AST::ASTArray.new({}),
@@ -93,15 +99,22 @@ fstatement:   NAME LPAREN funcvalues RPAREN {
         :ftype => :statement
 }
 
-funcvalues:       namestrings
-                | resourcerefs
-
-namestrings:      namestring
-                | namestrings COMMA namestring {
+funcvalues:       namestring
+                | resourceref
+                | funcvalues COMMA namestring {
     result = aryfy(val[0], val[2])
     result.line = @lexer.line
     result.file = @lexer.file
 }
+                | funcvalues COMMA resourceref {
+    unless val[0].is_a?(AST::ASTArray)
+        val[0] = aryfy(val[0])
+    end
+
+    val[0].push(val[2])
+
+    result = val[0]
+}
 
 # This is *almost* an rvalue, but I couldn't get a full
 # rvalue to work without scads of shift/reduce conflicts.
@@ -116,17 +129,6 @@ namestring:       name
                     result = ast AST::Name, :value => val[0]
                 }
 
-resourcerefs:     resourceref
-                | resourcerefs COMMA resourceref {
-    unless val[0].is_a?(AST::ASTArray)
-        val[0] = aryfy(val[0])
-    end
-
-    val[0].push(val[2])
-
-    result = val[0]
-}
-
 resource:       classname LBRACE resourceinstances endsemi RBRACE {
     array = val[2]
     if array.instance_of?(AST::ResourceInstance)
diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb
index b025d52..356867b 100644
--- a/lib/puppet/parser/parser.rb
+++ b/lib/puppet/parser/parser.rb
@@ -29,7 +29,7 @@ module Puppet
 
     class Parser < Racc::Parser
 
-module_eval <<'..end grammar.ra modeval..idf5ced460e1', 'grammar.ra', 732
+module_eval <<'..end grammar.ra modeval..idf3068bc200', 'grammar.ra', 734
 
 # It got too annoying having code in a file that needs to be compiled.
 require 'puppet/parser/parser_support'
@@ -41,7 +41,7 @@ require 'puppet/parser/parser_support'
 
 # $Id$
 
-..end grammar.ra modeval..idf5ced460e1
+..end grammar.ra modeval..idf3068bc200
 
 ##### racc 1.4.5 generates ###
 
@@ -65,670 +65,679 @@ racc_reduce_table = [
  1, 63, :_reduce_none,
  1, 63, :_reduce_none,
  4, 71, :_reduce_18,
- 3, 71, :_reduce_19,
- 2, 71, :_reduce_20,
+ 5, 71, :_reduce_19,
+ 3, 71, :_reduce_20,
+ 2, 71, :_reduce_21,
  1, 77, :_reduce_none,
  1, 77, :_reduce_none,
+ 3, 77, :_reduce_24,
+ 3, 77, :_reduce_25,
  1, 78, :_reduce_none,
- 3, 78, :_reduce_24,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_none,
- 1, 80, :_reduce_32,
- 1, 79, :_reduce_none,
- 3, 79, :_reduce_34,
+ 1, 78, :_reduce_none,
+ 1, 78, :_reduce_none,
+ 1, 78, :_reduce_none,
+ 1, 78, :_reduce_none,
+ 1, 78, :_reduce_none,
+ 1, 78, :_reduce_none,
+ 1, 78, :_reduce_33,
+ 5, 64, :_reduce_34,
  5, 64, :_reduce_35,
  5, 64, :_reduce_36,
- 5, 64, :_reduce_37,
- 5, 75, :_reduce_38,
- 2, 65, :_reduce_39,
- 1, 96, :_reduce_40,
- 2, 96, :_reduce_41,
- 2, 66, :_reduce_42,
- 3, 97, :_reduce_43,
- 3, 97, :_reduce_44,
+ 5, 75, :_reduce_37,
+ 2, 65, :_reduce_38,
+ 1, 94, :_reduce_39,
+ 2, 94, :_reduce_40,
+ 2, 66, :_reduce_41,
+ 3, 95, :_reduce_42,
+ 3, 95, :_reduce_43,
+ 1, 96, :_reduce_none,
+ 1, 96, :_reduce_none,
+ 3, 96, :_reduce_46,
+ 1, 97, :_reduce_none,
+ 3, 97, :_reduce_48,
  1, 98, :_reduce_none,
  1, 98, :_reduce_none,
- 3, 98, :_reduce_47,
- 1, 99, :_reduce_none,
- 3, 99, :_reduce_49,
+ 3, 99, :_reduce_51,
+ 3, 99, :_reduce_52,
  1, 100, :_reduce_none,
  1, 100, :_reduce_none,
- 3, 101, :_reduce_52,
- 3, 101, :_reduce_53,
- 1, 102, :_reduce_none,
- 1, 102, :_reduce_none,
- 4, 104, :_reduce_56,
- 1, 90, :_reduce_none,
- 3, 90, :_reduce_58,
- 0, 91, :_reduce_none,
- 1, 91, :_reduce_none,
- 1, 106, :_reduce_61,
- 1, 81, :_reduce_62,
- 1, 83, :_reduce_63,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 1, 105, :_reduce_none,
- 3, 67, :_reduce_70,
- 3, 76, :_reduce_71,
- 0, 92, :_reduce_72,
- 1, 92, :_reduce_73,
- 3, 92, :_reduce_74,
- 3, 109, :_reduce_75,
- 3, 111, :_reduce_76,
- 1, 112, :_reduce_none,
- 1, 112, :_reduce_none,
- 0, 95, :_reduce_79,
- 1, 95, :_reduce_80,
- 3, 95, :_reduce_81,
- 1, 113, :_reduce_none,
- 3, 113, :_reduce_83,
+ 4, 102, :_reduce_55,
+ 1, 88, :_reduce_none,
+ 3, 88, :_reduce_57,
+ 0, 89, :_reduce_none,
+ 1, 89, :_reduce_none,
+ 1, 104, :_reduce_60,
+ 1, 80, :_reduce_61,
+ 1, 82, :_reduce_62,
  1, 103, :_reduce_none,
  1, 103, :_reduce_none,
  1, 103, :_reduce_none,
  1, 103, :_reduce_none,
  1, 103, :_reduce_none,
  1, 103, :_reduce_none,
+ 3, 67, :_reduce_69,
+ 3, 76, :_reduce_70,
+ 0, 90, :_reduce_71,
+ 1, 90, :_reduce_72,
+ 3, 90, :_reduce_73,
+ 3, 107, :_reduce_74,
+ 3, 109, :_reduce_75,
  1, 110, :_reduce_none,
  1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 1, 110, :_reduce_none,
- 4, 85, :_reduce_100,
- 3, 85, :_reduce_101,
- 1, 87, :_reduce_102,
- 1, 87, :_reduce_103,
- 1, 84, :_reduce_104,
- 4, 88, :_reduce_105,
- 4, 88, :_reduce_106,
- 6, 69, :_reduce_107,
- 5, 69, :_reduce_108,
- 0, 115, :_reduce_none,
- 4, 115, :_reduce_110,
- 3, 115, :_reduce_111,
+ 0, 93, :_reduce_78,
+ 1, 93, :_reduce_79,
+ 3, 93, :_reduce_80,
+ 1, 111, :_reduce_none,
+ 3, 111, :_reduce_82,
+ 1, 101, :_reduce_none,
+ 1, 101, :_reduce_none,
+ 1, 101, :_reduce_none,
+ 1, 101, :_reduce_none,
+ 1, 101, :_reduce_none,
+ 1, 101, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
  1, 108, :_reduce_none,
- 3, 108, :_reduce_113,
- 3, 108, :_reduce_114,
- 3, 108, :_reduce_115,
- 3, 108, :_reduce_116,
- 3, 108, :_reduce_117,
- 3, 108, :_reduce_118,
- 2, 108, :_reduce_119,
- 3, 108, :_reduce_120,
- 3, 108, :_reduce_121,
- 3, 108, :_reduce_122,
- 3, 108, :_reduce_123,
- 3, 108, :_reduce_124,
- 3, 108, :_reduce_125,
- 2, 108, :_reduce_126,
- 3, 108, :_reduce_127,
- 3, 108, :_reduce_128,
- 3, 108, :_reduce_129,
- 5, 68, :_reduce_130,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 1, 108, :_reduce_none,
+ 4, 84, :_reduce_99,
+ 3, 84, :_reduce_100,
+ 1, 86, :_reduce_101,
+ 1, 86, :_reduce_102,
+ 1, 83, :_reduce_103,
+ 4, 79, :_reduce_104,
+ 4, 79, :_reduce_105,
+ 6, 69, :_reduce_106,
+ 5, 69, :_reduce_107,
+ 0, 113, :_reduce_none,
+ 4, 113, :_reduce_109,
+ 3, 113, :_reduce_110,
+ 1, 106, :_reduce_none,
+ 3, 106, :_reduce_112,
+ 3, 106, :_reduce_113,
+ 3, 106, :_reduce_114,
+ 3, 106, :_reduce_115,
+ 3, 106, :_reduce_116,
+ 3, 106, :_reduce_117,
+ 2, 106, :_reduce_118,
+ 3, 106, :_reduce_119,
+ 3, 106, :_reduce_120,
+ 3, 106, :_reduce_121,
+ 3, 106, :_reduce_122,
+ 3, 106, :_reduce_123,
+ 3, 106, :_reduce_124,
+ 2, 106, :_reduce_125,
+ 3, 106, :_reduce_126,
+ 3, 106, :_reduce_127,
+ 3, 106, :_reduce_128,
+ 5, 68, :_reduce_129,
+ 1, 114, :_reduce_none,
+ 2, 114, :_reduce_131,
+ 5, 115, :_reduce_132,
+ 4, 115, :_reduce_133,
  1, 116, :_reduce_none,
- 2, 116, :_reduce_132,
- 5, 117, :_reduce_133,
- 4, 117, :_reduce_134,
+ 3, 116, :_reduce_135,
+ 3, 85, :_reduce_136,
  1, 118, :_reduce_none,
- 3, 118, :_reduce_136,
- 3, 86, :_reduce_137,
+ 4, 118, :_reduce_138,
  1, 120, :_reduce_none,
- 4, 120, :_reduce_139,
- 1, 122, :_reduce_none,
- 3, 122, :_reduce_141,
- 3, 121, :_reduce_142,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_none,
- 1, 119, :_reduce_150,
- 1, 123, :_reduce_151,
- 3, 123, :_reduce_152,
- 2, 70, :_reduce_153,
- 6, 72, :_reduce_154,
- 5, 72, :_reduce_155,
- 6, 73, :_reduce_156,
- 5, 73, :_reduce_157,
- 6, 74, :_reduce_158,
- 5, 74, :_reduce_159,
- 1, 94, :_reduce_none,
- 1, 89, :_reduce_none,
- 1, 89, :_reduce_none,
+ 3, 120, :_reduce_140,
+ 3, 119, :_reduce_141,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_none,
+ 1, 117, :_reduce_149,
+ 1, 121, :_reduce_150,
+ 3, 121, :_reduce_151,
+ 2, 70, :_reduce_152,
+ 6, 72, :_reduce_153,
+ 5, 72, :_reduce_154,
+ 6, 73, :_reduce_155,
+ 5, 73, :_reduce_156,
+ 6, 74, :_reduce_157,
+ 5, 74, :_reduce_158,
+ 1, 92, :_reduce_none,
+ 1, 87, :_reduce_none,
+ 1, 87, :_reduce_none,
+ 1, 124, :_reduce_none,
+ 3, 124, :_reduce_163,
  1, 126, :_reduce_none,
- 3, 126, :_reduce_164,
- 1, 128, :_reduce_none,
- 1, 128, :_reduce_none,
- 1, 128, :_reduce_none,
+ 1, 126, :_reduce_none,
+ 1, 126, :_reduce_none,
+ 1, 126, :_reduce_none,
+ 0, 62, :_reduce_168,
+ 0, 127, :_reduce_169,
+ 1, 122, :_reduce_none,
+ 3, 122, :_reduce_171,
+ 3, 122, :_reduce_172,
  1, 128, :_reduce_none,
- 0, 62, :_reduce_169,
- 0, 129, :_reduce_170,
- 1, 124, :_reduce_none,
- 3, 124, :_reduce_172,
- 3, 124, :_reduce_173,
- 1, 130, :_reduce_none,
- 3, 130, :_reduce_175,
- 3, 131, :_reduce_176,
- 1, 131, :_reduce_177,
- 3, 131, :_reduce_178,
- 1, 131, :_reduce_179,
- 1, 127, :_reduce_none,
- 2, 127, :_reduce_181,
+ 3, 128, :_reduce_174,
+ 3, 129, :_reduce_175,
+ 1, 129, :_reduce_176,
+ 3, 129, :_reduce_177,
+ 1, 129, :_reduce_178,
  1, 125, :_reduce_none,
- 2, 125, :_reduce_183,
- 1, 132, :_reduce_none,
- 1, 132, :_reduce_none,
- 1, 82, :_reduce_186,
- 3, 107, :_reduce_187,
- 2, 107, :_reduce_188,
- 1, 114, :_reduce_none,
- 1, 114, :_reduce_none,
- 0, 93, :_reduce_none,
- 1, 93, :_reduce_192 ]
+ 2, 125, :_reduce_180,
+ 1, 123, :_reduce_none,
+ 2, 123, :_reduce_182,
+ 1, 130, :_reduce_none,
+ 1, 130, :_reduce_none,
+ 1, 81, :_reduce_185,
+ 3, 105, :_reduce_186,
+ 2, 105, :_reduce_187,
+ 1, 112, :_reduce_none,
+ 1, 112, :_reduce_none,
+ 0, 91, :_reduce_none,
+ 1, 91, :_reduce_191 ]
 
-racc_reduce_n = 193
+racc_reduce_n = 192
 
-racc_shift_n = 317
+racc_shift_n = 315
 
 racc_action_table = [
-    75,    54,    57,   273,   178,    39,    40,   201,    88,   238,
-    51,   178,    89,   213,   245,     8,   265,   198,   199,   246,
-    72,    75,    54,    57,   136,    90,    39,    40,   236,   237,
-   136,    45,    39,    40,   129,    56,    59,   236,   237,    66,
-    41,    72,   154,    44,    52,    76,   177,   162,    62,    92,
-   146,    84,    45,    75,    54,    57,    56,    59,    45,   126,
-    66,    41,   250,   167,    44,    52,    76,    41,  -146,    62,
-    44,  -143,    84,    72,    75,    54,    57,   291,   156,   157,
-   158,   144,   145,   147,    45,   234,   253,   286,    56,    59,
-   290,   162,    66,   233,    72,   285,    37,    52,    76,   158,
-   144,    62,    45,     4,    84,    45,   154,   167,    37,    56,
-    59,   155,   162,    66,   146,     4,     8,    37,    52,    76,
-   150,   154,    62,    45,     4,    84,   158,   144,   167,   146,
-   148,   151,   153,   105,   230,    75,    54,    57,   198,   199,
-    33,    34,   156,   157,   158,   144,   145,   147,   156,   157,
-   158,   144,   138,   149,   152,    72,   154,   156,   157,   158,
-   144,   145,   147,   257,   146,   162,    45,    75,    54,    57,
-    56,    59,   245,  -145,    66,    37,    45,   246,   183,    52,
-    76,   167,     4,    62,    54,    57,    84,    72,    75,    54,
-    57,   259,   156,   157,   158,   144,   145,   147,    45,   161,
-   239,   161,    56,    59,   236,   237,    66,   137,    72,   154,
-   136,    52,    76,   198,   299,    62,  -147,   146,    84,    45,
-    75,    54,    57,    56,    59,   197,    51,    66,  -144,   198,
-   199,  -148,    52,    76,    54,    57,    62,   268,   178,    84,
-    72,    75,    54,    57,   188,   156,   157,   158,   144,   145,
-   147,    45,  -149,  -144,    88,    56,    59,  -146,  -148,    66,
-  -143,    72,   135,  -147,    52,    76,  -160,   271,    62,  -145,
-   161,    84,    45,    75,    54,    57,    56,    59,   272,   172,
-    66,   156,   157,   158,   144,    52,    76,   132,   173,    62,
-    89,   108,    84,    72,    75,    54,    57,   156,   157,   158,
-   144,   145,   147,   174,    45,   287,   288,   289,    56,    59,
-   180,   105,    66,   100,    72,   188,   184,    52,    76,   186,
-  -143,    62,   271,   302,    84,    45,    75,    54,    57,    56,
-    59,  -143,  -146,    66,  -144,  -148,  -145,   303,    52,    76,
-   188,  -146,    62,    71,   193,    84,    72,    75,    54,    57,
-   156,   157,   158,   144,   145,   147,   191,    45,    38,   310,
-  -192,    56,    59,  -145,    35,    66,   189,    72,  -144,   nil,
-    52,    76,   nil,   nil,    62,   nil,   nil,    84,    45,    75,
-    54,    57,    56,    59,   nil,   nil,    66,   nil,   nil,   nil,
-   nil,    52,    76,   nil,   nil,    62,   nil,   nil,    84,    72,
-    75,    54,    57,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    45,   nil,   nil,   nil,    56,    59,   nil,   nil,    66,   nil,
-    72,   nil,   nil,    52,    76,   nil,   nil,    62,   nil,   nil,
-    84,    45,    75,    54,    57,    56,    59,   nil,   nil,    66,
-   nil,   nil,   nil,   nil,    52,    76,   nil,   nil,    62,   nil,
-   nil,    84,    72,    75,    54,    57,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    45,   nil,   nil,   nil,    56,    59,   nil,
-   nil,    66,   nil,    72,   nil,   nil,    52,    76,   nil,   nil,
-    62,   nil,   nil,    84,    45,    75,    54,    57,    56,    59,
-   nil,   nil,    66,   nil,   nil,   nil,   nil,    52,    76,   nil,
-   nil,    62,   nil,   nil,    84,    72,    75,    54,    57,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    45,    75,    54,    57,
-    56,    59,   nil,   nil,    66,   nil,    72,   nil,   nil,    52,
-    76,   nil,   nil,    62,   nil,   nil,    84,    45,    75,    54,
-    57,    56,    59,   nil,   nil,    66,   nil,   nil,    45,   nil,
-    52,    76,    56,   116,    62,   nil,    66,    84,    72,   nil,
-   nil,   111,    75,    54,    57,    62,   nil,   nil,   nil,    45,
-   nil,   nil,   nil,    56,    59,   nil,   nil,    66,    75,    54,
-    57,   141,    52,    76,   nil,   nil,    62,   nil,   nil,    84,
-   nil,   nil,   nil,    45,    75,    54,    57,    56,    59,   nil,
-   nil,    66,   nil,   nil,   nil,   nil,    52,   nil,   nil,    45,
-    62,   nil,   nil,    56,    59,   nil,   nil,    66,    75,    54,
-    57,   nil,    52,   nil,   nil,    45,    62,   nil,   nil,    56,
-    59,   nil,   nil,    66,    75,    54,    57,   nil,    52,   nil,
-   nil,   nil,    62,   nil,    75,    54,    57,   nil,   nil,    45,
-    75,    54,    57,    56,    59,   nil,   nil,    66,   nil,   nil,
-   nil,   nil,    52,   nil,   nil,    45,    62,   nil,   nil,    56,
-    59,   nil,   nil,    66,   nil,    45,   nil,   nil,    52,    56,
-   195,    45,    62,    66,   nil,    56,    59,   nil,   111,    66,
-   nil,   nil,    62,   nil,    52,    75,    54,    57,    62,   nil,
-   nil,    51,    54,    57,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    75,    54,    57,   nil,   nil,   nil,    75,    54,    57,
-   nil,    48,   nil,   nil,   nil,   nil,    45,    75,    54,    57,
-    56,    59,    45,   nil,    66,   nil,    56,    59,   nil,    52,
-    66,   nil,    45,    62,    49,    52,    56,    59,    45,    62,
-    66,   nil,    56,    59,   nil,    52,    66,   nil,    45,    62,
-   nil,    52,    56,    59,   nil,    62,    66,    54,    57,    54,
-    57,    52,   nil,   nil,   nil,    62,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    54,    57,    54,    57,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,    45,   nil,    45,
-   nil,    56,   195,    56,   195,    66,   nil,    66,    54,    57,
-   111,    49,   111,    45,    62,    45,    62,    56,   195,    56,
-   195,    66,   nil,    66,   nil,   nil,   111,   nil,   111,   nil,
-    62,   nil,    62,    54,    57,    54,    57,   284,    45,   nil,
-   nil,   nil,    56,   195,   nil,   nil,    66,   nil,   nil,    54,
-    57,   111,   208,   nil,   nil,    62,    54,    57,   nil,   nil,
-   nil,   nil,   nil,    45,   nil,    45,   nil,    56,   195,    56,
-   195,    66,   nil,    66,   nil,   nil,   111,   nil,   111,    45,
-    62,   nil,    62,    56,   195,   nil,    45,    66,    54,    57,
-    56,   195,   111,   nil,    66,   nil,    62,   nil,   nil,   111,
-   nil,   nil,   nil,    62,    54,    57,   nil,   nil,   131,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    45,   nil,
-   nil,   nil,    56,    59,   203,   nil,    66,   nil,   nil,   nil,
-    49,    52,   nil,   nil,    45,    62,   nil,   nil,    56,    59,
-   nil,   nil,    66,   150,   154,   nil,    49,    52,   nil,   nil,
-   nil,    62,   146,   148,   151,   153,   150,   154,   nil,   nil,
-   nil,   nil,   nil,   nil,   212,   146,   148,   151,   153,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   156,   157,   158,   144,   145,   147,   nil,   nil,   nil,   149,
-   152,   150,   154,   156,   157,   158,   144,   145,   147,   nil,
-   146,   148,   151,   153,   150,   154,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   146,   148,   151,   153,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   149,   152,   nil,   nil,   156,   157,
-   158,   144,   145,   147,   nil,   nil,   296,   nil,   152,   150,
-   154,   156,   157,   158,   144,   145,   147,   nil,   146,   148,
-   151,   153,   nil,   nil,   nil,   nil,   nil,    16,   nil,    23,
-    27,   294,     1,     5,   nil,    10,   nil,    13,   nil,    20,
-   nil,    28,   149,   152,     4,     8,   156,   157,   158,   144,
-   145,   147,    16,   293,    23,    27,   nil,     1,     5,   nil,
-    10,   nil,    13,   nil,    20,   nil,    28,   nil,   nil,     4,
-     8,   nil,   269,   nil,    16,   nil,    23,    27,   nil,     1,
-     5,   nil,    10,   nil,    13,   nil,    20,   nil,    28,   nil,
-   nil,     4,     8,    16,   226,    23,    27,   nil,     1,     5,
-   nil,    10,   nil,    13,   nil,    20,   nil,    28,   nil,   nil,
-     4,     8,   nil,   308,   nil,    16,   nil,    23,    27,   nil,
-     1,     5,   nil,    10,   nil,    13,   nil,    20,   nil,    28,
-   nil,   nil,     4,     8,    16,   312,    23,    27,   nil,     1,
-     5,   nil,    10,   nil,    13,   nil,    20,   nil,    28,   nil,
-   nil,     4,     8,   nil,   314,   nil,    16,   nil,    23,    27,
-   nil,     1,     5,   nil,    10,   nil,    13,   nil,    20,   nil,
-    28,   nil,   nil,     4,     8,    16,   263,    23,    27,   nil,
-     1,     5,   nil,    10,   nil,    13,   nil,    20,   nil,    28,
-   nil,   nil,     4,     8,   nil,   315,   nil,    16,   nil,    23,
-    27,   nil,     1,     5,   nil,    10,   nil,    13,   nil,    20,
-   nil,    28,   nil,   nil,     4,     8,    16,   256,    23,    27,
-   nil,     1,     5,   nil,    10,   nil,    13,   nil,    20,   nil,
-    28,   nil,   nil,     4,     8,   nil,   316,   nil,    16,   nil,
-    23,    27,   nil,     1,     5,   nil,    10,   nil,    13,   nil,
-    20,   nil,    28,   nil,   nil,     4,     8,    16,   nil,    23,
-    27,   nil,     1,     5,   nil,    10,   nil,    13,   nil,    20,
-   nil,    28,   nil,   nil,     4,     8,    16,   nil,    23,    27,
-   nil,     1,     5,   nil,    10,   nil,    13,   nil,    20,   nil,
-    28,   nil,   nil,     4,     8,    16,   nil,    23,    27,   nil,
-     1,     5,   nil,    10,   nil,    13,   nil,    20,   nil,    28,
-   nil,   nil,     4,     8 ]
+    75,    57,    61,   259,   179,    38,    40,    35,    44,   196,
+    54,   285,    45,   238,     3,     6,   187,   296,   239,  -145,
+    74,    75,    57,    61,   284,    47,    38,    40,   194,   195,
+   132,    49,    38,    40,   112,    60,    64,   194,   195,    70,
+    41,    74,   149,    43,    55,    77,   178,   118,    66,    48,
+   141,    87,    49,    75,    57,    61,    60,    64,    49,   109,
+    70,    41,   252,   123,    43,    55,    77,    41,   105,    66,
+    43,  -146,    87,    74,    75,    57,    61,   202,   151,   152,
+   153,   139,   140,   142,    49,   280,   128,   133,    60,    64,
+   201,   238,    70,   279,    74,   149,   239,    55,    77,   270,
+   118,    66,   179,   141,    87,    49,    75,    57,    61,    60,
+    64,    49,   193,    70,    35,   132,   123,   174,    55,    77,
+   192,     3,    66,    35,   257,    87,    74,    75,    57,    61,
+     3,   151,   152,   153,   139,   140,   142,    49,   116,    35,
+   155,    60,    64,   153,   139,    70,     3,    74,   149,  -147,
+    55,    77,  -143,   118,    66,   156,   141,    87,    49,    75,
+    57,    61,    60,    64,    49,   157,    70,   153,   139,   123,
+   134,    55,    77,    57,    61,    66,    33,    34,    87,    74,
+    75,    57,    61,   132,   151,   152,   153,   139,   140,   142,
+    49,  -145,   203,   273,    60,    64,   187,   188,    70,  -142,
+    74,   149,  -144,    55,    77,    45,   118,    66,    44,   141,
+    87,    49,    75,    57,    61,    60,    64,    49,  -142,    70,
+    57,    61,   123,  -159,    55,    77,   128,   177,    66,   181,
+  -143,    87,    74,    75,    57,    61,   116,   151,   152,   153,
+   139,   140,   142,    49,   276,   198,   247,    60,    64,   194,
+   195,    70,  -145,    74,   186,   183,    55,    77,   187,   188,
+    66,   216,  -142,    87,    49,   187,   188,   281,    60,    64,
+   150,   282,    70,   151,   152,   153,   139,    55,    77,   145,
+   149,    66,   283,   190,    87,   105,   288,   101,   141,   143,
+   146,   148,   190,   116,    75,    57,    61,   151,   152,   153,
+   139,   140,   142,   151,   152,   153,   139,   140,   142,    98,
+    97,  -142,   144,   147,    74,  -144,   151,   152,   153,   139,
+   140,   142,  -143,  -147,  -144,    49,    75,    57,    61,    60,
+    64,   245,   243,    70,   151,   152,   153,   139,    55,    77,
+   276,   299,    66,   300,  -144,    87,    74,    75,    57,    61,
+   179,  -145,  -148,    73,   190,  -143,   308,    49,  -191,    37,
+  -147,    60,    64,  -146,   290,    70,   nil,    74,   nil,   nil,
+    55,    77,   nil,   nil,    66,   nil,   nil,    87,    49,    75,
+    57,    61,    60,    64,   nil,   nil,    70,   nil,   nil,   nil,
+   nil,    55,    77,   nil,   nil,    66,   nil,   nil,    87,    74,
+    75,    57,    61,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    49,   nil,   nil,   nil,    60,    64,   nil,   nil,    70,   nil,
+    74,   nil,   nil,    55,    77,   nil,   nil,    66,   nil,   nil,
+    87,    49,    75,    57,    61,    60,    64,   nil,   nil,    70,
+   nil,   nil,   nil,   nil,    55,    77,   nil,   nil,    66,   nil,
+   nil,    87,    74,    75,    57,    61,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    49,   nil,   nil,   nil,    60,    64,   nil,
+   nil,    70,   nil,    74,   nil,   nil,    55,    77,   nil,   nil,
+    66,   nil,   nil,    87,    49,    75,    57,    61,    60,    64,
+   nil,   nil,    70,   nil,   nil,   nil,   nil,    55,    77,   nil,
+   nil,    66,   nil,   nil,    87,    74,    75,    57,    61,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    49,    75,    57,    61,
+    60,    64,   nil,   nil,    70,   nil,    74,   nil,   nil,    55,
+    77,   nil,   nil,    66,   nil,   nil,    87,    49,    75,    57,
+    61,    60,    64,   nil,   nil,    70,   nil,   nil,    49,   nil,
+    55,    77,    60,    64,    66,   nil,    70,    87,    74,   nil,
+   nil,    55,   nil,   nil,   nil,    66,   nil,   nil,   nil,    49,
+    54,    57,    61,    60,    64,   nil,   nil,    70,   nil,   nil,
+   nil,   nil,    55,    77,   nil,   nil,    66,   nil,   nil,    87,
+    51,    75,    57,    61,   nil,   nil,   nil,    75,    57,    61,
+   nil,    49,   nil,   nil,   nil,    60,    64,   nil,   nil,    70,
+   nil,   nil,   nil,    52,    55,   nil,   nil,   nil,    66,    75,
+    57,    61,    49,   nil,   nil,   nil,    60,   168,    49,   nil,
+    70,   nil,    60,   209,   nil,   161,    70,   nil,   nil,    66,
+   nil,   161,   nil,   nil,   nil,    66,    75,    57,    61,   137,
+    49,   nil,   nil,   nil,    60,    64,   nil,   nil,    70,   nil,
+    75,    57,    61,    55,   nil,   nil,   nil,    66,   nil,   nil,
+    75,    57,    61,   nil,   nil,   nil,   nil,    49,   nil,   nil,
+   nil,    60,    64,   nil,   nil,    70,    75,    57,    61,   nil,
+    55,    49,   nil,   nil,    66,    60,    64,   nil,   nil,    70,
+   nil,    49,   nil,   nil,    55,    60,    64,   nil,    66,    70,
+    75,    57,    61,   nil,    55,   nil,   nil,    49,    66,   nil,
+   nil,    60,    64,   nil,   nil,    70,    75,    57,    61,   nil,
+    55,   nil,   nil,   nil,    66,   nil,    75,    57,    61,   nil,
+   nil,    49,    75,    57,    61,    60,    64,   nil,   nil,    70,
+   nil,   nil,   nil,   nil,    55,   nil,   nil,    49,    66,    57,
+    61,    60,    64,   nil,   nil,    70,   nil,    49,   nil,   nil,
+    55,    60,    64,    49,    66,    70,   nil,    60,    64,   nil,
+    55,    70,    57,    61,    66,   nil,    55,   nil,   nil,    49,
+    66,   nil,   nil,    60,   209,   nil,   nil,    70,    57,    61,
+    57,    61,   161,   nil,   nil,   nil,    66,   nil,   nil,   nil,
+   nil,   nil,    49,   nil,    57,    61,    60,   209,   269,   nil,
+    70,   nil,   nil,   nil,   nil,   161,   nil,   nil,    49,    66,
+    49,   nil,    60,    64,    60,   209,    70,   nil,    70,   nil,
+    52,    55,   nil,   161,    49,    66,   nil,    66,    60,   209,
+    57,    61,    70,   nil,   nil,   nil,   nil,   161,   nil,   nil,
+   nil,    66,   nil,   nil,    57,    61,   nil,   nil,   nil,   nil,
+   130,   nil,   nil,   nil,    57,    61,   nil,   nil,   278,   nil,
+    49,   nil,   nil,   nil,    60,    64,   nil,   nil,    70,    57,
+    61,   nil,    52,    55,    49,    57,    61,    66,    60,    64,
+   nil,   nil,    70,   nil,    49,   nil,    52,    55,    60,   209,
+   nil,    66,    70,    57,    61,   nil,   210,   161,   nil,    49,
+   nil,    66,   nil,    60,   209,    49,   nil,    70,   nil,    60,
+   209,   nil,   161,    70,    57,    61,    66,   nil,   161,   nil,
+   nil,   nil,    66,    49,   nil,   nil,   nil,    60,   209,   nil,
+   nil,    70,   nil,   nil,   205,   nil,   161,   nil,   nil,   nil,
+    66,   nil,   nil,   nil,    49,   nil,   nil,   nil,    60,    64,
+   nil,   nil,    70,   145,   149,   nil,    52,    55,   nil,   nil,
+   nil,    66,   141,   143,   146,   148,   145,   149,   nil,   nil,
+   nil,   nil,   145,   149,   215,   141,   143,   146,   148,   nil,
+   nil,   141,   143,   146,   148,   nil,   144,   147,   nil,   nil,
+   151,   152,   153,   139,   140,   142,   nil,   nil,   nil,   144,
+   147,   nil,   nil,   151,   152,   153,   139,   140,   142,   151,
+   152,   153,   139,   140,   142,   145,   149,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   141,   143,   146,   148,   145,   149,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   141,   143,   146,
+   148,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   147,
+   287,   nil,   151,   152,   153,   139,   140,   142,   nil,   nil,
+   nil,   144,   147,   nil,   nil,   151,   152,   153,   139,   140,
+   142,    16,   292,    23,    26,   nil,     1,     4,   nil,     9,
+   nil,    13,   nil,    20,   nil,    27,   nil,   nil,     3,     6,
+   nil,   293,   nil,    16,   nil,    23,    26,   nil,     1,     4,
+   nil,     9,   nil,    13,   nil,    20,   nil,    27,   nil,   nil,
+     3,     6,    16,   274,    23,    26,   nil,     1,     4,   nil,
+     9,   nil,    13,   nil,    20,   nil,    27,   nil,   nil,     3,
+     6,   nil,   305,   nil,    16,   nil,    23,    26,   nil,     1,
+     4,   nil,     9,   nil,    13,   nil,    20,   nil,    27,   nil,
+   nil,     3,     6,    16,   229,    23,    26,   nil,     1,     4,
+   nil,     9,   nil,    13,   nil,    20,   nil,    27,   nil,   nil,
+     3,     6,   nil,   310,   nil,    16,   nil,    23,    26,   nil,
+     1,     4,   nil,     9,   nil,    13,   nil,    20,   nil,    27,
+   nil,   nil,     3,     6,    16,   312,    23,    26,   nil,     1,
+     4,   nil,     9,   nil,    13,   nil,    20,   nil,    27,   nil,
+   nil,     3,     6,   nil,   255,   nil,    16,   nil,    23,    26,
+   nil,     1,     4,   nil,     9,   nil,    13,   nil,    20,   nil,
+    27,   nil,   nil,     3,     6,    16,   313,    23,    26,   nil,
+     1,     4,   nil,     9,   nil,    13,   nil,    20,   nil,    27,
+   nil,   nil,     3,     6,   nil,   249,   nil,    16,   nil,    23,
+    26,   nil,     1,     4,   nil,     9,   nil,    13,   nil,    20,
+   nil,    27,   nil,   nil,     3,     6,    16,   314,    23,    26,
+   nil,     1,     4,   nil,     9,   nil,    13,   nil,    20,   nil,
+    27,   nil,   nil,     3,     6,   nil,   nil,   nil,    16,   nil,
+    23,    26,   nil,     1,     4,   nil,     9,   nil,    13,   nil,
+    20,   nil,    27,   nil,   nil,     3,     6,    16,   nil,    23,
+    26,   nil,     1,     4,   nil,     9,   nil,    13,   nil,    20,
+   nil,    27,   nil,   nil,     3,     6,    16,   nil,    23,    26,
+   nil,     1,     4,   nil,     9,   nil,    13,   nil,    20,   nil,
+    27,   nil,   nil,     3,     6 ]
 
 racc_action_check = [
-   158,   158,   158,   232,   105,   129,   129,   135,    17,   170,
-    59,   116,    17,   140,   174,   135,   202,   140,   140,   174,
-   158,    84,    84,    84,   116,    17,    10,    10,   232,   232,
-    59,   158,   126,   126,    42,   158,   158,   170,   170,   158,
-   129,    84,   221,   129,   158,   158,   105,   162,   158,    17,
-   221,   158,    84,   144,   144,   144,    84,    84,   162,    42,
-    84,    10,   175,   162,    10,    84,    84,   126,    78,    84,
-   126,    77,    84,   144,   145,   145,   145,   248,   221,   221,
-   221,   221,   221,   221,   144,   165,   179,   242,   144,   144,
-   248,    92,   144,   165,   145,   242,     5,   144,   144,   227,
-   227,   144,    92,     5,   144,   145,   223,    92,    24,   145,
-   145,    85,    90,   145,   223,    24,    24,    27,   145,   145,
-    85,    85,   145,    90,    27,   145,   228,   228,    90,    85,
-    85,    85,    85,   180,   159,   146,   146,   146,   159,   159,
-     1,     1,   223,   223,   223,   223,   223,   223,   217,   217,
-   217,   217,    71,    85,    85,   146,   218,    85,    85,    85,
-    85,    85,    85,   185,   218,   235,   146,   157,   157,   157,
-   146,   146,   291,    70,   146,   108,   235,   291,   108,   146,
-   146,   235,   108,   146,    23,    23,   146,   157,   154,   154,
-   154,   187,   218,   218,   218,   218,   218,   218,   157,   188,
-   171,   189,   157,   157,   171,   171,   157,    68,   154,   220,
-   195,   157,   157,   267,   267,   157,    67,   220,   157,   154,
-    16,    16,    16,   154,   154,   134,   201,   154,    79,   134,
-   134,    65,   154,   154,   173,   173,   154,   209,   161,   154,
-    16,   147,   147,   147,   160,   220,   220,   220,   220,   220,
-   220,    16,    80,    63,    61,    16,    16,    60,    81,    16,
-    58,   147,    53,    82,    16,    16,    52,   226,    16,    87,
-    89,    16,   147,   153,   153,   153,   147,   147,   231,    94,
-   147,   215,   215,   215,   215,   147,   147,    50,    95,   147,
-    97,    36,   147,   153,   152,   152,   152,   224,   224,   224,
-   224,   224,   224,    99,   153,   245,   246,   247,   153,   153,
-   106,    35,   153,    28,   152,   261,   109,   153,   153,   112,
-   113,   153,   269,   271,   153,   152,    76,    76,    76,   152,
-   152,   274,   276,   152,   277,   278,   280,   285,   152,   152,
-   114,   115,   152,    15,   130,   152,    76,   151,   151,   151,
-   216,   216,   216,   216,   216,   216,   127,    76,     6,   298,
-   299,    76,    76,   125,     2,    76,   119,   151,   118,   nil,
-    76,    76,   nil,   nil,    76,   nil,   nil,    76,   151,   148,
-   148,   148,   151,   151,   nil,   nil,   151,   nil,   nil,   nil,
-   nil,   151,   151,   nil,   nil,   151,   nil,   nil,   151,   148,
-   149,   149,   149,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   148,   nil,   nil,   nil,   148,   148,   nil,   nil,   148,   nil,
-   149,   nil,   nil,   148,   148,   nil,   nil,   148,   nil,   nil,
-   148,   149,    72,    72,    72,   149,   149,   nil,   nil,   149,
-   nil,   nil,   nil,   nil,   149,   149,   nil,   nil,   149,   nil,
-   nil,   149,    72,    34,    34,    34,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    72,   nil,   nil,   nil,    72,    72,   nil,
-   nil,    72,   nil,    34,   nil,   nil,    72,    72,   nil,   nil,
-    72,   nil,   nil,    72,    34,   150,   150,   150,    34,    34,
-   nil,   nil,    34,   nil,   nil,   nil,   nil,    34,    34,   nil,
-   nil,    34,   nil,   nil,    34,   150,   156,   156,   156,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   150,    38,    38,    38,
-   150,   150,   nil,   nil,   150,   nil,   156,   nil,   nil,   150,
-   150,   nil,   nil,   150,   nil,   nil,   150,   156,    33,    33,
-    33,   156,   156,   nil,   nil,   156,   nil,   nil,    38,   nil,
-   156,   156,    38,    38,   156,   nil,    38,   156,    33,   nil,
-   nil,    38,   196,   196,   196,    38,   nil,   nil,   nil,    33,
-   nil,   nil,   nil,    33,    33,   nil,   nil,    33,    75,    75,
-    75,    75,    33,    33,   nil,   nil,    33,   nil,   nil,    33,
-   nil,   nil,   nil,   196,    51,    51,    51,   196,   196,   nil,
-   nil,   196,   nil,   nil,   nil,   nil,   196,   nil,   nil,    75,
-   196,   nil,   nil,    75,    75,   nil,   nil,    75,   268,   268,
-   268,   nil,    75,   nil,   nil,    51,    75,   nil,   nil,    51,
-    51,   nil,   nil,    51,    20,    20,    20,   nil,    51,   nil,
-   nil,   nil,    51,   nil,   186,   186,   186,   nil,   nil,   268,
-   287,   287,   287,   268,   268,   nil,   nil,   268,   nil,   nil,
-   nil,   nil,   268,   nil,   nil,    20,   268,   nil,   nil,    20,
-    20,   nil,   nil,    20,   nil,   186,   nil,   nil,    20,   186,
-   186,   287,    20,   186,   nil,   287,   287,   nil,   186,   287,
-   nil,   nil,   186,   nil,   287,   288,   288,   288,   287,   nil,
-   nil,    13,    13,    13,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   178,   178,   178,   nil,   nil,   nil,   177,   177,   177,
-   nil,    13,   nil,   nil,   nil,   nil,   288,    88,    88,    88,
-   288,   288,    13,   nil,   288,   nil,    13,    13,   nil,   288,
-    13,   nil,   178,   288,    13,    13,   178,   178,   177,    13,
-   178,   nil,   177,   177,   nil,   178,   177,   nil,    88,   178,
-   nil,   177,    88,    88,   nil,   177,    88,   208,   208,   132,
-   132,    88,   nil,   nil,   nil,    88,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   233,   233,   234,   234,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   208,   nil,   132,
-   nil,   208,   208,   132,   132,   208,   nil,   132,   286,   286,
-   208,   132,   132,   233,   208,   234,   132,   233,   233,   234,
-   234,   233,   nil,   234,   nil,   nil,   233,   nil,   234,   nil,
-   233,   nil,   234,   240,   240,   297,   297,   240,   286,   nil,
-   nil,   nil,   286,   286,   nil,   nil,   286,   nil,   nil,   137,
-   137,   286,   137,   nil,   nil,   286,   172,   172,   nil,   nil,
-   nil,   nil,   nil,   240,   nil,   297,   nil,   240,   240,   297,
-   297,   240,   nil,   297,   nil,   nil,   240,   nil,   297,   137,
-   240,   nil,   297,   137,   137,   nil,   172,   137,    48,    48,
-   172,   172,   137,   nil,   172,   nil,   137,   nil,   nil,   172,
-   nil,   nil,   nil,   172,   136,   136,   nil,   nil,    48,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    48,   nil,
-   nil,   nil,    48,    48,   136,   nil,    48,   nil,   nil,   nil,
-    48,    48,   nil,   nil,   136,    48,   nil,   nil,   136,   136,
-   nil,   nil,   136,   222,   222,   nil,   136,   136,   nil,   nil,
-   nil,   136,   222,   222,   222,   222,   139,   139,   nil,   nil,
-   nil,   nil,   nil,   nil,   139,   139,   139,   139,   139,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   222,   222,   222,   222,   222,   222,   nil,   nil,   nil,   139,
-   139,   102,   102,   139,   139,   139,   139,   139,   139,   nil,
-   102,   102,   102,   102,   219,   219,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   219,   219,   219,   219,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   102,   102,   nil,   nil,   102,   102,
-   102,   102,   102,   102,   nil,   nil,   262,   nil,   219,   101,
-   101,   219,   219,   219,   219,   219,   219,   nil,   101,   101,
-   101,   101,   nil,   nil,   nil,   nil,   nil,   262,   nil,   262,
-   262,   255,   262,   262,   nil,   262,   nil,   262,   nil,   262,
-   nil,   262,   101,   101,   262,   262,   101,   101,   101,   101,
-   101,   101,   255,   250,   255,   255,   nil,   255,   255,   nil,
-   255,   nil,   255,   nil,   255,   nil,   255,   nil,   nil,   255,
-   255,   nil,   225,   nil,   250,   nil,   250,   250,   nil,   250,
-   250,   nil,   250,   nil,   250,   nil,   250,   nil,   250,   nil,
-   nil,   250,   250,   225,   155,   225,   225,   nil,   225,   225,
-   nil,   225,   nil,   225,   nil,   225,   nil,   225,   nil,   nil,
-   225,   225,   nil,   292,   nil,   155,   nil,   155,   155,   nil,
-   155,   155,   nil,   155,   nil,   155,   nil,   155,   nil,   155,
-   nil,   nil,   155,   155,   292,   302,   292,   292,   nil,   292,
-   292,   nil,   292,   nil,   292,   nil,   292,   nil,   292,   nil,
-   nil,   292,   292,   nil,   303,   nil,   302,   nil,   302,   302,
-   nil,   302,   302,   nil,   302,   nil,   302,   nil,   302,   nil,
-   302,   nil,   nil,   302,   302,   303,   191,   303,   303,   nil,
-   303,   303,   nil,   303,   nil,   303,   nil,   303,   nil,   303,
-   nil,   nil,   303,   303,   nil,   311,   nil,   191,   nil,   191,
-   191,   nil,   191,   191,   nil,   191,   nil,   191,   nil,   191,
-   nil,   191,   nil,   nil,   191,   191,   311,   184,   311,   311,
-   nil,   311,   311,   nil,   311,   nil,   311,   nil,   311,   nil,
-   311,   nil,   nil,   311,   311,   nil,   313,   nil,   184,   nil,
-   184,   184,   nil,   184,   184,   nil,   184,   nil,   184,   nil,
-   184,   nil,   184,   nil,   nil,   184,   184,   313,   nil,   313,
-   313,   nil,   313,   313,   nil,   313,   nil,   313,   nil,   313,
-   nil,   313,   nil,   nil,   313,   313,     0,   nil,     0,     0,
+    34,    34,    34,   191,   105,   112,   112,    17,    11,   125,
+    64,   241,    11,   285,    17,    17,   272,   272,   285,   262,
+    34,   153,   153,   153,   241,    11,     9,     9,   191,   191,
+    64,    34,   109,   109,    39,    34,    34,   125,   125,    34,
+   112,   153,   221,   112,    34,    34,   105,    48,    34,    11,
+   221,    34,   153,   139,   139,   139,   153,   153,    48,    39,
+   153,     9,   180,    48,     9,   153,   153,   109,   181,   153,
+   109,    69,   153,   139,   140,   140,   140,   129,   221,   221,
+   221,   221,   221,   221,   139,   235,   204,    68,   139,   139,
+   129,   157,   139,   235,   140,   226,   157,   139,   139,   204,
+   197,   139,   168,   226,   139,   140,   151,   151,   151,   140,
+   140,   197,   120,   140,   101,   168,   197,   101,   140,   140,
+   120,   101,   140,    26,   189,   140,   151,   141,   141,   141,
+    26,   226,   226,   226,   226,   226,   226,   151,   190,     4,
+    93,   151,   151,   231,   231,   151,     4,   141,   223,    67,
+   151,   151,    65,   118,   151,    94,   223,   151,   141,    77,
+    77,    77,   141,   141,   118,    96,   141,   230,   230,   118,
+    73,   141,   141,    23,    23,   141,     1,     1,   141,    77,
+   142,   142,   142,   209,   223,   223,   223,   223,   223,   223,
+    77,    62,   131,   211,    77,    77,   131,   131,    77,    78,
+   142,   224,   173,    77,    77,    90,    47,    77,    59,   224,
+    77,   142,    16,    16,    16,   142,   142,    47,    58,   142,
+   156,   156,    47,    55,   142,   142,    50,   102,   142,   106,
+   167,   142,    16,    74,    74,    74,    45,   224,   224,   224,
+   224,   224,   224,    16,   229,   127,   166,    16,    16,   127,
+   127,    16,   165,    74,   113,   110,    16,    16,   113,   113,
+    16,   136,   163,    16,    74,   136,   136,   238,    74,    74,
+    84,   239,    74,   220,   220,   220,   220,    74,    74,    84,
+    84,    74,   240,   162,    74,    37,   244,    36,    84,    84,
+    84,    84,   115,   247,    87,    87,    87,   219,   219,   219,
+   219,   219,   219,   227,   227,   227,   227,   227,   227,    30,
+    27,   261,    84,    84,    87,    72,    84,    84,    84,    84,
+    84,    84,   263,   264,   266,    87,   149,   149,   149,    87,
+    87,   160,   158,    87,   218,   218,   218,   218,    87,    87,
+   274,   276,    87,   279,    89,    87,   149,   148,   148,   148,
+   116,    79,    80,    15,   291,    81,   295,   149,   296,     7,
+    83,   149,   149,    85,   246,   149,   nil,   148,   nil,   nil,
+   149,   149,   nil,   nil,   149,   nil,   nil,   149,   148,   143,
+   143,   143,   148,   148,   nil,   nil,   148,   nil,   nil,   nil,
+   nil,   148,   148,   nil,   nil,   148,   nil,   nil,   148,   143,
+   144,   144,   144,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   143,   nil,   nil,   nil,   143,   143,   nil,   nil,   143,   nil,
+   144,   nil,   nil,   143,   143,   nil,   nil,   143,   nil,   nil,
+   143,   144,    33,    33,    33,   144,   144,   nil,   nil,   144,
+   nil,   nil,   nil,   nil,   144,   144,   nil,   nil,   144,   nil,
+   nil,   144,    33,   152,   152,   152,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    33,   nil,   nil,   nil,    33,    33,   nil,
+   nil,    33,   nil,   152,   nil,   nil,    33,    33,   nil,   nil,
+    33,   nil,   nil,    33,   152,   147,   147,   147,   152,   152,
+   nil,   nil,   152,   nil,   nil,   nil,   nil,   152,   152,   nil,
+   nil,   152,   nil,   nil,   152,   147,   146,   146,   146,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   147,    44,    44,    44,
+   147,   147,   nil,   nil,   147,   nil,   146,   nil,   nil,   147,
+   147,   nil,   nil,   147,   nil,   nil,   147,   146,   145,   145,
+   145,   146,   146,   nil,   nil,   146,   nil,   nil,    44,   nil,
+   146,   146,    44,    44,   146,   nil,    44,   146,   145,   nil,
+   nil,    44,   nil,   nil,   nil,    44,   nil,   nil,   nil,   145,
+    13,    13,    13,   145,   145,   nil,   nil,   145,   nil,   nil,
+   nil,   nil,   145,   145,   nil,   nil,   145,   nil,   nil,   145,
+    13,    98,    98,    98,   nil,   nil,   nil,   245,   245,   245,
+   nil,    13,   nil,   nil,   nil,    13,    13,   nil,   nil,    13,
+   nil,   nil,   nil,    13,    13,   nil,   nil,   nil,    13,   282,
+   282,   282,    98,   nil,   nil,   nil,    98,    98,   245,   nil,
+    98,   nil,   245,   245,   nil,    98,   245,   nil,   nil,    98,
+   nil,   245,   nil,   nil,   nil,   245,    75,    75,    75,    75,
+   282,   nil,   nil,   nil,   282,   282,   nil,   nil,   282,   nil,
+    54,    54,    54,   282,   nil,   nil,   nil,   282,   nil,   nil,
+   273,   273,   273,   nil,   nil,   nil,   nil,    75,   nil,   nil,
+   nil,    75,    75,   nil,   nil,    75,   178,   178,   178,   nil,
+    75,    54,   nil,   nil,    75,    54,    54,   nil,   nil,    54,
+   nil,   273,   nil,   nil,    54,   273,   273,   nil,    54,   273,
+    20,    20,    20,   nil,   273,   nil,   nil,   178,   273,   nil,
+   nil,   178,   178,   nil,   nil,   178,   179,   179,   179,   nil,
+   178,   nil,   nil,   nil,   178,   nil,   281,   281,   281,   nil,
+   nil,    20,   185,   185,   185,    20,    20,   nil,   nil,    20,
+   nil,   nil,   nil,   nil,    20,   nil,   nil,   179,    20,   193,
+   193,   179,   179,   nil,   nil,   179,   nil,   281,   nil,   nil,
+   179,   281,   281,   185,   179,   281,   nil,   185,   185,   nil,
+   281,   185,   192,   192,   281,   nil,   185,   nil,   nil,   193,
+   185,   nil,   nil,   193,   193,   nil,   nil,   193,   202,   202,
+   210,   210,   193,   nil,   nil,   nil,   193,   nil,   nil,   nil,
+   nil,   nil,   192,   nil,   280,   280,   192,   192,   202,   nil,
+   192,   nil,   nil,   nil,   nil,   192,   nil,   nil,   202,   192,
+   210,   nil,   202,   202,   210,   210,   202,   nil,   210,   nil,
+   202,   202,   nil,   210,   280,   202,   nil,   210,   280,   280,
+    51,    51,   280,   nil,   nil,   nil,   nil,   280,   nil,   nil,
+   nil,   280,   nil,   nil,   128,   128,   nil,   nil,   nil,   nil,
+    51,   nil,   nil,   nil,   233,   233,   nil,   nil,   233,   nil,
+    51,   nil,   nil,   nil,    51,    51,   nil,   nil,    51,   294,
+   294,   nil,    51,    51,   128,   155,   155,    51,   128,   128,
+   nil,   nil,   128,   nil,   233,   nil,   128,   128,   233,   233,
+   nil,   128,   233,   133,   133,   nil,   133,   233,   nil,   294,
+   nil,   233,   nil,   294,   294,   155,   nil,   294,   nil,   155,
+   155,   nil,   294,   155,   132,   132,   294,   nil,   155,   nil,
+   nil,   nil,   155,   133,   nil,   nil,   nil,   133,   133,   nil,
+   nil,   133,   nil,   nil,   132,   nil,   133,   nil,   nil,   nil,
+   133,   nil,   nil,   nil,   132,   nil,   nil,   nil,   132,   132,
+   nil,   nil,   132,   100,   100,   nil,   132,   132,   nil,   nil,
+   nil,   132,   100,   100,   100,   100,   135,   135,   nil,   nil,
+   nil,   nil,   225,   225,   135,   135,   135,   135,   135,   nil,
+   nil,   225,   225,   225,   225,   nil,   100,   100,   nil,   nil,
+   100,   100,   100,   100,   100,   100,   nil,   nil,   nil,   135,
+   135,   nil,   nil,   135,   135,   135,   135,   135,   135,   225,
+   225,   225,   225,   225,   225,   222,   222,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   222,   222,   222,   222,    99,    99,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    99,    99,    99,
+    99,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   222,
+   243,   nil,   222,   222,   222,   222,   222,   222,   nil,   nil,
+   nil,    99,    99,   nil,   nil,    99,    99,    99,    99,    99,
+    99,   243,   248,   243,   243,   nil,   243,   243,   nil,   243,
+   nil,   243,   nil,   243,   nil,   243,   nil,   nil,   243,   243,
+   nil,   254,   nil,   248,   nil,   248,   248,   nil,   248,   248,
+   nil,   248,   nil,   248,   nil,   248,   nil,   248,   nil,   nil,
+   248,   248,   254,   228,   254,   254,   nil,   254,   254,   nil,
+   254,   nil,   254,   nil,   254,   nil,   254,   nil,   nil,   254,
+   254,   nil,   286,   nil,   228,   nil,   228,   228,   nil,   228,
+   228,   nil,   228,   nil,   228,   nil,   228,   nil,   228,   nil,
+   nil,   228,   228,   286,   150,   286,   286,   nil,   286,   286,
+   nil,   286,   nil,   286,   nil,   286,   nil,   286,   nil,   nil,
+   286,   286,   nil,   299,   nil,   150,   nil,   150,   150,   nil,
+   150,   150,   nil,   150,   nil,   150,   nil,   150,   nil,   150,
+   nil,   nil,   150,   150,   299,   300,   299,   299,   nil,   299,
+   299,   nil,   299,   nil,   299,   nil,   299,   nil,   299,   nil,
+   nil,   299,   299,   nil,   183,   nil,   300,   nil,   300,   300,
+   nil,   300,   300,   nil,   300,   nil,   300,   nil,   300,   nil,
+   300,   nil,   nil,   300,   300,   183,   309,   183,   183,   nil,
+   183,   183,   nil,   183,   nil,   183,   nil,   183,   nil,   183,
+   nil,   nil,   183,   183,   nil,   177,   nil,   309,   nil,   309,
+   309,   nil,   309,   309,   nil,   309,   nil,   309,   nil,   309,
+   nil,   309,   nil,   nil,   309,   309,   177,   311,   177,   177,
+   nil,   177,   177,   nil,   177,   nil,   177,   nil,   177,   nil,
+   177,   nil,   nil,   177,   177,   nil,   nil,   nil,   311,   nil,
+   311,   311,   nil,   311,   311,   nil,   311,   nil,   311,   nil,
+   311,   nil,   311,   nil,   nil,   311,   311,    19,   nil,    19,
+    19,   nil,    19,    19,   nil,    19,   nil,    19,   nil,    19,
+   nil,    19,   nil,   nil,    19,    19,     0,   nil,     0,     0,
    nil,     0,     0,   nil,     0,   nil,     0,   nil,     0,   nil,
-     0,   nil,   nil,     0,     0,    19,   nil,    19,    19,   nil,
-    19,    19,   nil,    19,   nil,    19,   nil,    19,   nil,    19,
-   nil,   nil,    19,    19 ]
+     0,   nil,   nil,     0,     0 ]
 
 racc_action_pointer = [
-  1278,   127,   358,   nil,   nil,    58,   352,   nil,   nil,   nil,
-    23,   nil,   nil,   699,   nil,   343,   218,     6,   nil,  1297,
-   632,   nil,   nil,   181,    70,   nil,   nil,    79,   271,   nil,
-   nil,   nil,   nil,   536,   451,   273,   256,   nil,   515,   nil,
-   nil,   nil,    24,   nil,   nil,   nil,   nil,   nil,   885,   nil,
-   277,   592,   264,   252,   nil,   nil,   nil,   nil,   239,     8,
-   236,   252,   nil,   232,   nil,   210,   nil,   195,   186,   nil,
-   152,   152,   430,   nil,   nil,   576,   324,    50,    47,   207,
-   231,   237,   242,   nil,    19,   105,   nil,   248,   725,   232,
-    90,   nil,    69,   nil,   273,   278,   nil,   284,   nil,   281,
-   nil,  1024,   976,   nil,   nil,    -5,   300,   nil,   137,   310,
-   nil,   nil,   280,   299,   330,   320,     2,   nil,   347,   348,
-   nil,   nil,   nil,   nil,   nil,   342,    29,   350,   nil,     2,
-   321,   nil,   766,   nil,   220,   -31,   901,   846,   nil,   941,
-     8,   nil,   nil,   nil,    51,    72,   133,   239,   377,   398,
-   483,   345,   292,   271,   186,  1117,   504,   165,    -2,   129,
-   234,   229,    25,   nil,   nil,    69,   nil,   nil,   nil,   nil,
-   -11,   156,   853,   231,   -19,    56,   nil,   715,   709,    79,
-    95,   nil,   nil,   nil,  1240,   156,   642,   184,   161,   163,
-   nil,  1199,   nil,   nil,   nil,   188,   560,   nil,   nil,   nil,
-   nil,   224,    -7,   nil,   nil,   nil,   nil,   nil,   764,   228,
-   nil,   nil,   nil,   nil,   nil,   229,   298,    96,   140,   989,
-   193,    26,   928,    90,   245,  1095,   238,    45,    72,   nil,
-   nil,   271,   -20,   780,   782,   143,   nil,   nil,   nil,   nil,
-   830,   nil,    77,   nil,   nil,   292,   293,   284,    67,   nil,
-  1076,   nil,   nil,   nil,   nil,  1054,   nil,   nil,   nil,   nil,
-   nil,   305,  1029,   nil,   nil,   nil,   nil,   204,   616,   293,
-   nil,   317,   nil,   nil,   310,   nil,   311,   313,   314,   nil,
-   315,   nil,   nil,   nil,   nil,   331,   805,   648,   693,   nil,
-   nil,   139,  1136,   nil,   nil,   nil,   nil,   832,   352,   353,
-   nil,   nil,  1158,  1177,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,  1218,   nil,  1259,   nil,   nil,   nil ]
+  1328,   163,   nil,   nil,   101,   nil,   nil,   353,   nil,    23,
+   nil,     6,   nil,   568,   nil,   353,   210,   -31,   nil,  1309,
+   708,   nil,   nil,   170,   nil,   nil,    85,   268,   nil,   nil,
+   303,   nil,   nil,   430,    -2,   nil,   252,   247,   nil,    24,
+   nil,   nil,   nil,   nil,   515,   198,   nil,   184,    25,   nil,
+   216,   847,   nil,   nil,   658,   221,   nil,   nil,   197,   206,
+   nil,   nil,   170,   nil,     8,   131,   nil,   128,    66,    50,
+   nil,   nil,   294,   170,   231,   644,   nil,   157,   178,   330,
+   331,   334,   nil,   339,   264,   342,   nil,   292,   nil,   323,
+   199,   nil,   nil,   134,   145,   nil,   143,   nil,   589,  1033,
+   958,    76,   221,   nil,   nil,    -5,   219,   nil,   nil,    29,
+   249,   nil,     2,   249,   nil,   282,   341,   nil,   131,   nil,
+    96,   nil,   nil,   nil,   nil,   -11,   nil,   201,   861,    67,
+   nil,   187,   931,   910,   nil,   971,   256,   nil,   nil,    51,
+    72,   125,   178,   377,   398,   536,   504,   483,   345,   324,
+  1167,   104,   451,    19,   nil,   892,   217,    58,   326,   nil,
+   292,   nil,   273,   241,   nil,   231,   228,   209,    93,   nil,
+   nil,   nil,   nil,   181,   nil,   nil,   nil,  1268,   684,   724,
+    55,    30,   nil,  1227,   nil,   740,   nil,   nil,   nil,   117,
+   100,   -20,   779,   756,   nil,   nil,   nil,    78,   nil,   nil,
+   nil,   nil,   795,   nil,    76,   nil,   nil,   nil,   nil,   161,
+   797,   184,   nil,   nil,   nil,   nil,   nil,   nil,   282,   245,
+   221,    26,  1020,   132,   185,   977,    79,   251,  1126,   215,
+   113,    89,   nil,   871,   nil,    75,   nil,   nil,   254,   258,
+   259,     1,   nil,  1063,   279,   595,   357,   255,  1085,   nil,
+   nil,   nil,   nil,   nil,  1104,   nil,   nil,   nil,   nil,   nil,
+   nil,   290,    -2,   301,   302,   nil,   303,   nil,   nil,   nil,
+   nil,   nil,     7,   668,   311,   nil,   335,   nil,   nil,   337,
+   811,   734,   617,   nil,   nil,   -20,  1145,   nil,   nil,   nil,
+   nil,   344,   nil,   nil,   886,   349,   351,   nil,   nil,  1186,
+  1208,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1249,
+   nil,  1290,   nil,   nil,   nil ]
 
 racc_action_default = [
-  -169,  -193,  -193,    -7,  -162,  -193,  -193,    -8,  -160,    -9,
-  -193,   -10,   -11,  -161,   -12,  -193,  -193,  -193,   -13,    -1,
-  -193,   -14,    -2,  -193,  -193,   -15,    -3,  -193,   -40,   -16,
-    -5,   -17,    -6,  -193,  -193,   -79,  -169,  -161,   -72,  -167,
-  -166,  -165,  -169,  -163,  -168,  -186,   -33,   -20,  -193,   -32,
-   -21,  -193,   -63,   -22,  -102,   -23,  -104,  -103,   -25,   -62,
-   -26,  -193,   -61,   -27,  -149,   -28,  -150,   -29,  -193,   -30,
-   -31,  -193,  -193,  -112,   -97,  -193,  -193,   -91,   -95,   -92,
-   -99,   -93,   -98,   -96,  -193,  -193,   -94,   -90,  -193,   -72,
-  -169,   -42,  -169,    -4,  -193,  -153,  -151,  -193,   -39,  -169,
-   -41,   -70,   -71,   -78,   -80,  -193,  -191,   -77,  -193,  -193,
-  -182,   -63,   -59,   -65,  -191,   -68,   -62,   -57,   -66,  -193,
-  -148,  -147,   -69,   -67,   -73,   -64,  -193,  -193,  -180,  -193,
-  -193,   -19,  -193,   -82,  -193,  -193,  -193,  -193,   317,  -193,
-  -193,  -188,  -126,  -119,  -193,  -193,  -193,  -193,  -193,  -193,
-  -193,  -193,  -193,  -193,  -193,  -193,  -193,  -193,  -193,  -193,
-  -191,  -193,  -169,   -46,   -48,  -193,   -55,   -62,   -54,   -45,
-  -193,  -193,  -193,  -193,  -170,  -193,  -171,  -193,  -193,  -193,
-  -192,  -183,  -184,  -185,  -193,  -193,   -60,  -193,  -192,   -72,
-  -181,  -193,  -164,   -18,   -24,   -62,  -193,  -105,  -189,  -190,
-   -34,  -193,  -193,  -101,  -138,  -143,  -146,  -144,  -193,  -193,
-  -145,  -137,  -129,  -187,  -115,  -117,  -121,  -118,  -123,  -128,
-  -125,  -122,  -127,  -124,  -120,  -193,  -109,  -113,  -114,  -116,
-  -106,  -193,  -193,  -193,  -193,  -193,   -51,   -50,   -44,   -43,
-  -193,  -131,  -193,  -135,  -152,  -179,  -177,  -193,  -193,  -174,
-  -193,   -76,   -75,   -38,   -81,  -193,  -157,   -35,   -58,   -36,
-   -74,  -191,  -193,  -159,   -83,  -100,  -140,  -191,  -193,  -109,
-  -108,  -193,   -37,   -49,   -85,   -52,   -89,   -86,   -87,   -88,
-   -84,   -53,   -47,  -132,  -130,  -193,  -193,  -193,  -193,  -172,
-  -173,  -193,  -193,  -155,  -156,   -56,  -158,  -193,  -193,  -190,
-  -142,  -107,  -193,  -193,  -136,  -178,  -176,  -175,  -154,  -141,
-  -139,  -193,  -111,  -193,  -134,  -110,  -133 ]
+  -168,  -192,    -7,  -161,  -192,    -8,  -159,  -192,    -9,  -192,
+   -10,  -192,   -11,  -160,   -12,  -192,  -192,  -192,   -13,    -1,
+  -192,   -14,    -2,  -192,   -15,    -3,  -192,   -39,   -16,    -5,
+  -192,   -17,    -6,  -192,  -192,  -160,  -168,   -78,  -166,  -168,
+  -165,  -164,  -162,  -167,  -192,   -71,   -41,  -168,  -168,  -185,
+   -21,  -192,   -33,   -22,  -192,   -62,   -23,  -101,   -26,  -192,
+  -103,  -102,   -27,  -148,   -61,   -28,   -60,   -29,  -192,   -30,
+  -149,   -31,   -32,  -192,  -192,  -192,   -96,  -192,   -90,   -94,
+   -98,   -91,   -95,   -92,  -192,   -97,   -93,  -192,  -111,   -89,
+  -192,   -38,    -4,  -192,  -152,  -150,  -168,   -40,   -71,   -69,
+   -70,  -192,  -192,  -181,   -79,  -192,  -190,   -76,   -77,  -192,
+  -192,  -179,  -192,  -192,   -81,  -190,  -192,   -72,  -168,   -47,
+  -192,   -54,   -53,   -61,   -44,  -192,   -45,  -192,  -192,  -192,
+   -20,  -192,  -192,  -192,   315,  -192,  -192,  -187,  -125,  -192,
+  -192,  -192,  -192,  -192,  -192,  -192,  -192,  -192,  -192,  -192,
+  -192,  -192,  -192,  -192,  -118,  -192,  -192,  -169,  -192,  -170,
+   -58,   -62,  -190,   -64,   -56,   -67,  -192,   -65,   -61,  -147,
+   -68,  -146,   -66,   -63,  -184,  -182,  -183,  -192,  -192,  -192,
+  -192,  -191,  -180,  -192,  -163,  -192,  -105,  -188,  -189,  -192,
+  -191,  -192,  -192,  -192,   -50,   -49,   -43,  -192,   -42,   -24,
+   -25,   -18,  -192,  -104,  -192,  -100,  -142,  -145,  -143,   -61,
+  -192,  -192,  -136,  -144,  -137,  -128,  -186,  -114,  -116,  -120,
+  -117,  -122,  -127,  -124,  -121,  -126,  -123,  -119,  -192,  -108,
+  -112,  -113,  -115,  -192,  -130,  -192,  -134,  -151,  -178,  -176,
+  -192,  -192,  -173,  -192,  -192,   -59,  -192,   -71,  -192,  -156,
+   -75,   -74,   -37,   -80,  -192,  -158,   -82,   -36,   -73,   -48,
+   -51,   -84,   -88,   -85,   -86,   -87,   -83,   -52,   -46,   -19,
+   -99,  -139,  -190,  -192,  -108,  -107,  -192,  -131,  -129,  -192,
+  -192,  -192,  -192,  -171,  -172,  -192,  -192,  -154,   -34,   -57,
+   -35,  -190,  -155,  -157,  -192,  -192,  -189,  -141,  -106,  -192,
+  -192,  -135,  -177,  -175,  -174,  -153,   -55,  -140,  -138,  -192,
+  -110,  -192,  -133,  -109,  -132 ]
 
 racc_goto_table = [
-     2,   179,    93,    17,   209,    43,    19,   204,    47,   187,
-   249,   122,   104,    46,    36,    70,    22,   114,   107,     2,
-   241,   170,    17,   171,   117,    96,   270,    97,    15,   134,
-   275,   281,   282,   297,    91,   240,    99,   106,   185,   243,
-   125,   211,   112,   130,   267,    95,    64,   175,    46,   109,
-    70,    42,   110,   140,   127,   231,   194,   247,   128,    67,
-   248,    98,   181,   nil,   nil,   nil,   159,   nil,   160,   301,
-    69,    64,   nil,   nil,   nil,   209,   nil,   nil,   266,   nil,
-   nil,    64,   nil,   nil,   121,   nil,   nil,   nil,   283,   nil,
-   nil,   nil,   nil,   232,    67,   123,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    69,   nil,   243,   nil,   nil,
-   nil,    94,   nil,   nil,   nil,   176,   nil,   182,   nil,   nil,
-   nil,   190,   nil,   nil,   192,    65,   nil,   307,   nil,   nil,
-   nil,   202,   nil,   nil,    70,   200,    46,   nil,    70,   210,
-   nil,   nil,   133,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   120,   nil,   nil,   304,   nil,     2,   295,   254,    17,   122,
-    65,   225,   298,   107,   209,    64,   133,   309,   261,    64,
-    64,   260,   258,   nil,   210,   244,   nil,   nil,    67,   133,
-   nil,   nil,    67,   121,     2,   nil,   nil,    17,   125,    69,
-   255,     2,   nil,    69,    17,   nil,   nil,   262,   nil,    60,
-   nil,   nil,    63,   nil,   nil,    64,   nil,   nil,    93,   nil,
-   210,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   121,    64,
-   nil,   nil,   nil,   nil,   115,     2,   nil,   118,    17,   nil,
-   nil,   nil,   121,   nil,    60,   280,   280,    63,    93,   nil,
-   nil,    64,   210,   123,    65,    93,   nil,   nil,    65,   120,
-     2,   nil,   nil,    17,   121,     2,   292,   nil,    17,   nil,
-   nil,   nil,     2,   nil,   nil,    17,    64,    64,   251,   252,
-   nil,   nil,   nil,    64,   nil,    93,   168,   nil,   168,   121,
-   121,   nil,   nil,   nil,   120,   nil,   121,   264,   210,   nil,
-   279,   279,     2,   nil,    93,    17,    93,   nil,   120,   210,
-   nil,   nil,     2,     2,   nil,    17,    17,   nil,   311,   313,
-   nil,     2,    58,     2,    17,   nil,    17,    85,    60,    64,
-   120,    63,    60,   206,   nil,    63,   207,   nil,   nil,   nil,
-    64,   nil,   121,   nil,   101,   102,   nil,   113,   nil,   nil,
-   nil,   nil,   nil,   121,   nil,   278,   278,    58,   168,   nil,
-   nil,   nil,   120,   nil,   nil,   nil,   nil,   nil,   206,   300,
-   nil,   207,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   115,   139,   nil,   118,   nil,   142,   305,   306,
-   nil,   nil,   nil,   nil,   nil,   143,   nil,   nil,   nil,   166,
-   nil,   166,   nil,   nil,   206,   nil,   nil,   207,   120,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   120,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   276,
-   276,   168,   277,   277,   nil,   nil,   206,   nil,   nil,   207,
-   nil,    58,   nil,   nil,   nil,    58,   205,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   214,   215,   216,   217,   218,
-   219,   220,   221,   222,   223,   224,   nil,   227,   228,   229,
-   nil,   166,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   205,   206,   nil,   nil,   207,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   206,   nil,   113,   207,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   205,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   274,   274,   166,   nil,   nil,   nil,   nil,   205,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   205,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   205 ]
+     7,    92,    65,    11,   115,    93,   214,    19,   107,   170,
+   104,   211,   164,    56,   242,    71,    50,   234,   199,     7,
+    90,    36,    11,   180,    42,   125,   127,    22,   275,   114,
+    15,   113,   189,   236,   260,   267,   294,   268,   233,   114,
+    65,   131,    46,    96,   106,   212,   244,   272,    94,   158,
+   102,    56,    39,    71,   129,   110,   160,   162,   240,   241,
+   114,    91,   136,   103,   175,   nil,   111,   nil,   nil,   nil,
+   nil,   nil,   nil,   298,   nil,   nil,   nil,   nil,   nil,   246,
+   nil,   nil,   nil,   271,   nil,   nil,   nil,   167,   211,   nil,
+   nil,   nil,   199,   nil,   nil,   277,   191,   nil,   nil,   nil,
+   172,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   236,   nil,   nil,   nil,   nil,   nil,    65,   176,   nil,
+   nil,    65,   208,   159,   182,   nil,   nil,   184,   200,   nil,
+    71,   nil,    56,   nil,    71,   204,   nil,   nil,   nil,   nil,
+    62,   nil,   304,   nil,   208,   nil,   nil,   nil,   nil,   nil,
+     7,   nil,   107,    11,   253,    63,   170,   228,   301,   289,
+   nil,   258,   nil,   250,   251,   nil,   nil,   307,   nil,   nil,
+   256,   nil,   211,   nil,   122,   122,   nil,     7,    62,   nil,
+    11,   263,   263,     7,   248,   nil,    11,   nil,   nil,   295,
+   254,    65,   nil,    63,   265,   265,   nil,   nil,   nil,   208,
+   nil,   nil,   200,    69,    71,   nil,   291,   nil,   306,   nil,
+    92,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   208,   nil,   nil,   165,   nil,   nil,     7,   nil,
+    92,    11,   nil,   nil,   167,   nil,    92,   nil,   nil,   nil,
+    63,    69,   nil,     7,   nil,   122,    11,   172,     7,   nil,
+   286,    11,   nil,   nil,     7,    62,   nil,    11,   297,    62,
+   207,   nil,   nil,   nil,   nil,   nil,   302,   303,    92,   208,
+    63,   nil,   nil,   nil,    63,    63,   nil,   nil,   nil,   nil,
+   nil,   nil,   207,   208,   nil,   nil,     7,   nil,   171,    11,
+   nil,    92,   nil,    92,   nil,   nil,   nil,    63,   nil,     7,
+     7,   nil,    11,    11,   nil,   nil,   309,   311,   nil,     7,
+   nil,     7,    11,    58,    11,   nil,   nil,   nil,    69,   262,
+   262,   nil,    69,   171,   122,   nil,    67,   nil,   nil,    62,
+   nil,   nil,    72,   nil,    63,    63,   nil,   207,   nil,   nil,
+   nil,   nil,    95,   nil,    63,   171,   nil,   121,   121,   nil,
+   nil,    58,    63,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   207,   nil,   nil,   nil,    67,   nil,   nil,   nil,   nil,   nil,
+    72,   nil,   165,   nil,   nil,    63,   nil,   nil,   nil,   nil,
+   nil,   nil,   171,   171,   nil,   nil,   nil,    63,   nil,   nil,
+   nil,   nil,    69,   nil,   nil,   nil,   nil,   nil,   163,   nil,
+   171,   nil,   nil,   nil,   nil,   nil,   nil,   207,   nil,   nil,
+   nil,   169,   nil,   nil,   nil,   nil,   nil,   173,   121,   nil,
+   nil,   207,    63,   171,   nil,   nil,   nil,   nil,    58,   nil,
+   nil,   nil,    58,   206,   nil,   171,    63,   nil,   nil,   nil,
+   nil,    67,    84,   nil,   nil,    67,   169,    72,   nil,   nil,
+   nil,    72,   213,   nil,   nil,   206,   nil,   nil,   nil,    99,
+   100,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   169,   nil,
+   171,   nil,   nil,   nil,   213,   237,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   171,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   261,   261,   nil,   nil,   nil,   121,   nil,   nil,
+   135,   nil,    58,   138,   nil,   264,   264,   nil,   nil,   nil,
+   206,   266,   266,   154,   nil,    67,   nil,   nil,   nil,   nil,
+   nil,    72,   nil,   169,   nil,   nil,   nil,   nil,   nil,   213,
+   nil,   nil,   nil,   206,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   163,   169,   nil,   nil,   nil,
+   nil,   nil,   213,   nil,   nil,   nil,   nil,   nil,   169,   nil,
+   nil,   nil,   nil,   nil,   173,   217,   218,   219,   220,   221,
+   222,   223,   224,   225,   226,   227,   nil,   230,   231,   232,
+   206,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   169,   206,   nil,   nil,   nil,   nil,   213,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   169,   nil,   nil,
+   nil,   nil,   nil,   213 ]
 
 racc_goto_check = [
-    29,    34,     4,    35,    60,    69,     2,    62,    18,    34,
-    72,    48,    53,    29,    30,    28,     3,    33,    50,    29,
-    58,    39,    35,    39,    45,    28,    56,    35,     1,    54,
-    44,    44,    40,    55,    38,    57,    30,    36,    32,    60,
-    28,    61,    31,    18,    63,    64,    47,    65,    29,    66,
-    28,    67,     3,    54,    68,    34,    21,    70,     3,    26,
-    71,     5,    73,   nil,   nil,   nil,    54,   nil,    33,    56,
-    27,    47,   nil,   nil,   nil,    60,   nil,   nil,    62,   nil,
-   nil,    47,   nil,   nil,    26,   nil,   nil,   nil,    58,   nil,
-   nil,   nil,   nil,    39,    26,    27,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    27,   nil,    60,   nil,   nil,
-   nil,    51,   nil,   nil,   nil,     3,   nil,    30,   nil,   nil,
-   nil,    69,   nil,   nil,    69,    25,   nil,    72,   nil,   nil,
-   nil,    18,   nil,   nil,    28,    29,    29,   nil,    28,    28,
-   nil,   nil,    51,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    25,   nil,   nil,    60,   nil,    29,    34,    53,    35,    48,
-    25,     2,    34,    50,    60,    47,    51,    62,    33,    47,
-    47,    50,    45,   nil,    28,    28,   nil,   nil,    26,    51,
-   nil,   nil,    26,    26,    29,   nil,   nil,    35,    28,    27,
-     2,    29,   nil,    27,    35,   nil,   nil,     2,   nil,    23,
-   nil,   nil,    24,   nil,   nil,    47,   nil,   nil,     4,   nil,
-    28,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    26,    47,
-   nil,   nil,   nil,   nil,    23,    29,   nil,    24,    35,   nil,
-   nil,   nil,    26,   nil,    23,    28,    28,    24,     4,   nil,
-   nil,    47,    28,    27,    25,     4,   nil,   nil,    25,    25,
-    29,   nil,   nil,    35,    26,    29,     2,   nil,    35,   nil,
-   nil,   nil,    29,   nil,   nil,    35,    47,    47,    51,    51,
-   nil,   nil,   nil,    47,   nil,     4,    23,   nil,    23,    26,
-    26,   nil,   nil,   nil,    25,   nil,    26,    51,    28,   nil,
-    27,    27,    29,   nil,     4,    35,     4,   nil,    25,    28,
-   nil,   nil,    29,    29,   nil,    35,    35,   nil,     2,     2,
-   nil,    29,    22,    29,    35,   nil,    35,    49,    23,    47,
-    25,    24,    23,    23,   nil,    24,    24,   nil,   nil,   nil,
-    47,   nil,    26,   nil,    49,    49,   nil,    22,   nil,   nil,
-   nil,   nil,   nil,    26,   nil,    25,    25,    22,    23,   nil,
-   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,    23,    51,
-   nil,    24,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    23,    49,   nil,    24,   nil,    49,    51,    51,
-   nil,   nil,   nil,   nil,   nil,    49,   nil,   nil,   nil,    22,
-   nil,    22,   nil,   nil,    23,   nil,   nil,    24,    25,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    25,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,
-    23,    23,    24,    24,   nil,   nil,    23,   nil,   nil,    24,
-   nil,    22,   nil,   nil,   nil,    22,    22,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    49,    49,    49,    49,    49,
-    49,    49,    49,    49,    49,    49,   nil,    49,    49,    49,
-   nil,    22,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    22,    23,   nil,   nil,    24,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    23,   nil,    22,    24,   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,   nil,    22,    22,    22,   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,   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,    22 ]
+    20,     4,    23,    33,    31,    49,    60,     2,    48,    46,
+    51,    58,    43,    20,    70,    26,    18,    56,    19,    20,
+    33,    28,    33,    32,    67,    37,    37,     3,    54,    49,
+     1,    52,    32,    58,    42,    42,    53,    38,    55,    49,
+    23,    52,    36,    28,    34,    59,    30,    61,    62,    63,
+    64,    20,    65,    26,    18,    66,    29,    31,    68,    69,
+    49,     5,    52,     3,    71,   nil,     3,   nil,   nil,   nil,
+   nil,   nil,   nil,    54,   nil,   nil,   nil,   nil,   nil,    32,
+   nil,   nil,   nil,    60,   nil,   nil,   nil,    23,    58,   nil,
+   nil,   nil,    19,   nil,   nil,    56,    37,   nil,   nil,   nil,
+    26,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    58,   nil,   nil,   nil,   nil,   nil,    23,    28,   nil,
+   nil,    23,    23,     3,    67,   nil,   nil,    67,    20,   nil,
+    26,   nil,    20,   nil,    26,    18,   nil,   nil,   nil,   nil,
+    22,   nil,    70,   nil,    23,   nil,   nil,   nil,   nil,   nil,
+    20,   nil,    48,    33,    51,    45,    46,     2,    58,    43,
+   nil,    48,   nil,    49,    49,   nil,   nil,    60,   nil,   nil,
+    49,   nil,    58,   nil,    22,    22,   nil,    20,    22,   nil,
+    33,    23,    23,    20,     2,   nil,    33,   nil,   nil,    32,
+     2,    23,   nil,    45,    26,    26,   nil,   nil,   nil,    23,
+   nil,   nil,    20,    25,    26,   nil,    31,   nil,    32,   nil,
+     4,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    23,   nil,   nil,    22,   nil,   nil,    20,   nil,
+     4,    33,   nil,   nil,    23,   nil,     4,   nil,   nil,   nil,
+    45,    25,   nil,    20,   nil,    22,    33,    26,    20,   nil,
+     2,    33,   nil,   nil,    20,    22,   nil,    33,    49,    22,
+    22,   nil,   nil,   nil,   nil,   nil,    49,    49,     4,    23,
+    45,   nil,   nil,   nil,    45,    45,   nil,   nil,   nil,   nil,
+   nil,   nil,    22,    23,   nil,   nil,    20,   nil,    25,    33,
+   nil,     4,   nil,     4,   nil,   nil,   nil,    45,   nil,    20,
+    20,   nil,    33,    33,   nil,   nil,     2,     2,   nil,    20,
+   nil,    20,    33,    21,    33,   nil,   nil,   nil,    25,    22,
+    22,   nil,    25,    25,    22,   nil,    24,   nil,   nil,    22,
+   nil,   nil,    27,   nil,    45,    45,   nil,    22,   nil,   nil,
+   nil,   nil,    27,   nil,    45,    25,   nil,    21,    21,   nil,
+   nil,    21,    45,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    22,   nil,   nil,   nil,    24,   nil,   nil,   nil,   nil,   nil,
+    27,   nil,    22,   nil,   nil,    45,   nil,   nil,   nil,   nil,
+   nil,   nil,    25,    25,   nil,   nil,   nil,    45,   nil,   nil,
+   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,    21,   nil,
+    25,   nil,   nil,   nil,   nil,   nil,   nil,    22,   nil,   nil,
+   nil,    24,   nil,   nil,   nil,   nil,   nil,    27,    21,   nil,
+   nil,    22,    45,    25,   nil,   nil,   nil,   nil,    21,   nil,
+   nil,   nil,    21,    21,   nil,    25,    45,   nil,   nil,   nil,
+   nil,    24,    47,   nil,   nil,    24,    24,    27,   nil,   nil,
+   nil,    27,    27,   nil,   nil,    21,   nil,   nil,   nil,    47,
+    47,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    24,   nil,
+    25,   nil,   nil,   nil,    27,    27,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    21,    21,   nil,   nil,   nil,    21,   nil,   nil,
+    47,   nil,    21,    47,   nil,    24,    24,   nil,   nil,   nil,
+    21,    27,    27,    47,   nil,    24,   nil,   nil,   nil,   nil,
+   nil,    27,   nil,    24,   nil,   nil,   nil,   nil,   nil,    27,
+   nil,   nil,   nil,    21,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    21,    24,   nil,   nil,   nil,
+   nil,   nil,    27,   nil,   nil,   nil,   nil,   nil,    24,   nil,
+   nil,   nil,   nil,   nil,    27,    47,    47,    47,    47,    47,
+    47,    47,    47,    47,    47,    47,   nil,    47,    47,    47,
+    21,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    24,    21,   nil,   nil,   nil,   nil,    27,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    24,   nil,   nil,
+   nil,   nil,   nil,    27 ]
 
 racc_goto_pointer = [
-   nil,    28,     6,    16,   -17,    37,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    -5,   nil,
-   nil,   -76,   299,   186,   189,   112,    46,    57,     2,     0,
-     9,     4,   -74,   -21,  -105,     3,     2,   nil,    17,   -69,
-  -203,   nil,   nil,   nil,  -203,   -14,   nil,    33,   -27,   301,
-   -17,    91,   nil,   -23,   -22,  -234,  -200,  -137,  -152,   nil,
-  -133,   -96,  -130,  -164,    22,   -52,    13,    41,    12,    -5,
-  -117,  -114,  -164,   -46 ]
+   nil,    30,     7,    27,   -18,    44,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     3,  -110,
+     0,   300,   127,   -11,   313,   190,     2,   319,    17,   -42,
+  -114,   -41,   -83,     3,     7,   nil,    31,   -22,  -160,   nil,
+   nil,   nil,  -158,   -86,   nil,   142,   -89,   426,   -29,   -15,
+   nil,   -27,   -13,  -236,  -201,  -117,  -138,   nil,  -122,   -88,
+  -127,  -163,    25,   -47,    14,    43,    16,    15,   -99,   -98,
+  -143,   -37 ]
 
 racc_goto_default = [
-   nil,   nil,   nil,   169,    26,    30,    32,     3,     7,     9,
-    11,    12,    14,    18,    21,    25,    29,    31,   nil,    50,
-    53,    55,    77,    78,    79,    81,    82,    86,    87,    74,
-     6,   nil,   nil,   nil,   nil,    61,   nil,    24,   nil,   nil,
-   163,   235,   164,   165,   nil,   nil,   119,    80,    83,   nil,
-   124,    73,   103,   nil,   nil,   196,   nil,   nil,   nil,   242,
-    68,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil ]
+   nil,   nil,   nil,   124,    25,    29,    32,     2,     5,     8,
+    10,    12,    14,    18,    21,    24,    28,    31,   nil,    53,
+    76,    78,    79,    81,    83,    85,    86,    89,    30,   nil,
+   nil,   nil,   nil,    59,   nil,    17,   nil,   nil,   126,   197,
+   119,   120,   nil,   nil,   166,    80,    82,   nil,   117,    88,
+   108,   nil,   nil,   185,   nil,   nil,   nil,   235,    68,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil ]
 
 racc_token_table = {
  false => 0,
@@ -890,9 +899,8 @@ Racc_token_to_s_table = [
 'resourceoverride',
 'append',
 'funcvalues',
-'namestrings',
-'resourcerefs',
 'namestring',
+'resourceref',
 'name',
 'variable',
 'type',
@@ -900,7 +908,6 @@ Racc_token_to_s_table = [
 'funcrvalue',
 'selector',
 'quotedtext',
-'resourceref',
 'classname',
 'resourceinstances',
 'endsemi',
@@ -1030,18 +1037,29 @@ module_eval <<'.,.,', 'grammar.ra', 81
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 87
+module_eval <<'.,.,', 'grammar.ra', 88
   def _reduce_19( val, _values, result )
+    args = aryfy(val[2])
     result = ast AST::Function,
         :name => val[0],
-        :arguments => AST::ASTArray.new({}),
+        :arguments => args,
         :ftype => :statement
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 94
+module_eval <<'.,.,', 'grammar.ra', 93
   def _reduce_20( val, _values, result )
+    result = ast AST::Function,
+        :name => val[0],
+        :arguments => AST::ASTArray.new({}),
+        :ftype => :statement
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 100
+  def _reduce_21( val, _values, result )
     args = aryfy(val[1])
     result = ast AST::Function,
         :name => val[0],
@@ -1051,13 +1069,11 @@ module_eval <<'.,.,', 'grammar.ra', 94
   end
 .,.,
 
- # reduce 21 omitted
-
  # reduce 22 omitted
 
  # reduce 23 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 104
+module_eval <<'.,.,', 'grammar.ra', 108
   def _reduce_24( val, _values, result )
     result = aryfy(val[0], val[2])
     result.line = @lexer.line
@@ -1066,7 +1082,18 @@ module_eval <<'.,.,', 'grammar.ra', 104
   end
 .,.,
 
- # reduce 25 omitted
+module_eval <<'.,.,', 'grammar.ra', 117
+  def _reduce_25( val, _values, result )
+    unless val[0].is_a?(AST::ASTArray)
+        val[0] = aryfy(val[0])
+    end
+
+    val[0].push(val[2])
+
+    result = val[0]
+   result
+  end
+.,.,
 
  # reduce 26 omitted
 
@@ -1080,30 +1107,17 @@ module_eval <<'.,.,', 'grammar.ra', 104
 
  # reduce 31 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 117
-  def _reduce_32( val, _values, result )
+ # reduce 32 omitted
+
+module_eval <<'.,.,', 'grammar.ra', 130
+  def _reduce_33( val, _values, result )
                     result = ast AST::Name, :value => val[0]
    result
   end
 .,.,
 
- # reduce 33 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 128
+module_eval <<'.,.,', 'grammar.ra', 151
   def _reduce_34( val, _values, result )
-    unless val[0].is_a?(AST::ASTArray)
-        val[0] = aryfy(val[0])
-    end
-
-    val[0].push(val[2])
-
-    result = val[0]
-   result
-  end
-.,.,
-
-module_eval <<'.,.,', 'grammar.ra', 149
-  def _reduce_35( val, _values, result )
     array = val[2]
     if array.instance_of?(AST::ResourceInstance)
         array = [array]
@@ -1126,31 +1140,31 @@ module_eval <<'.,.,', 'grammar.ra', 149
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 152
-  def _reduce_36( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 154
+  def _reduce_35( val, _values, result )
     # This is a deprecated syntax.
     error "All resource specifications require names"
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 155
-  def _reduce_37( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 157
+  def _reduce_36( val, _values, result )
     # a defaults setting for a type
     result = ast(AST::ResourceDefaults, :type => val[0], :params => val[2])
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 160
-  def _reduce_38( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 162
+  def _reduce_37( val, _values, result )
     result = ast AST::ResourceOverride, :object => val[0], :params => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 187
-  def _reduce_39( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 189
+  def _reduce_38( val, _values, result )
     type = val[0]
 
     if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly]
@@ -1177,22 +1191,22 @@ module_eval <<'.,.,', 'grammar.ra', 187
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 188
-  def _reduce_40( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 190
+  def _reduce_39( val, _values, result )
  result = :virtual
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 189
-  def _reduce_41( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 191
+  def _reduce_40( val, _values, result )
  result = :exported
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 212
-  def _reduce_42( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 214
+  def _reduce_41( val, _values, result )
     if val[0] =~ /^[a-z]/
         Puppet.warning addcontext("Collection names must now be capitalized")
     end
@@ -1214,8 +1228,8 @@ module_eval <<'.,.,', 'grammar.ra', 212
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 222
-  def _reduce_43( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 224
+  def _reduce_42( val, _values, result )
     if val[1]
         result = val[1]
         result.form = :virtual
@@ -1226,8 +1240,8 @@ module_eval <<'.,.,', 'grammar.ra', 222
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 230
-  def _reduce_44( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 232
+  def _reduce_43( val, _values, result )
     if val[1]
         result = val[1]
         result.form = :exported
@@ -1238,33 +1252,33 @@ module_eval <<'.,.,', 'grammar.ra', 230
   end
 .,.,
 
- # reduce 45 omitted
+ # reduce 44 omitted
 
- # reduce 46 omitted
+ # reduce 45 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 238
-  def _reduce_47( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 240
+  def _reduce_46( val, _values, result )
     result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
    result
   end
 .,.,
 
- # reduce 48 omitted
+ # reduce 47 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 244
-  def _reduce_49( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 246
+  def _reduce_48( val, _values, result )
     result = val[1]
     result.parens = true
    result
   end
 .,.,
 
- # reduce 50 omitted
+ # reduce 49 omitted
 
- # reduce 51 omitted
+ # reduce 50 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 252
-  def _reduce_52( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 254
+  def _reduce_51( val, _values, result )
     result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
     #result = ast AST::CollExpr
     #result.push *val
@@ -1272,8 +1286,8 @@ module_eval <<'.,.,', 'grammar.ra', 252
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 257
-  def _reduce_53( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 259
+  def _reduce_52( val, _values, result )
     result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
     #result = ast AST::CollExpr
     #result.push *val
@@ -1281,21 +1295,21 @@ module_eval <<'.,.,', 'grammar.ra', 257
   end
 .,.,
 
- # reduce 54 omitted
+ # reduce 53 omitted
 
- # reduce 55 omitted
+ # reduce 54 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 264
-  def _reduce_56( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 266
+  def _reduce_55( val, _values, result )
     result = ast AST::ResourceInstance, :children => [val[0],val[2]]
    result
   end
 .,.,
 
- # reduce 57 omitted
+ # reduce 56 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 274
-  def _reduce_58( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 276
+  def _reduce_57( val, _values, result )
     if val[0].instance_of?(AST::ResourceInstance)
         result = ast AST::ASTArray, :children => [val[0],val[2]]
     else
@@ -1306,31 +1320,33 @@ module_eval <<'.,.,', 'grammar.ra', 274
   end
 .,.,
 
- # reduce 59 omitted
+ # reduce 58 omitted
 
- # reduce 60 omitted
+ # reduce 59 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 281
-  def _reduce_61( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 283
+  def _reduce_60( val, _values, result )
     result = ast AST::Undef, :value => :undef
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 285
-  def _reduce_62( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 287
+  def _reduce_61( val, _values, result )
     result = ast AST::Name, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 289
-  def _reduce_63( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 291
+  def _reduce_62( val, _values, result )
     result = ast AST::Type, :value => val[0]
    result
   end
 .,.,
 
+ # reduce 63 omitted
+
  # reduce 64 omitted
 
  # reduce 65 omitted
@@ -1341,10 +1357,8 @@ module_eval <<'.,.,', 'grammar.ra', 289
 
  # reduce 68 omitted
 
- # reduce 69 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 305
-  def _reduce_70( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 307
+  def _reduce_69( val, _values, result )
     if val[0] =~ /::/
         raise Puppet::ParseError, "Cannot assign to variables in other namespaces"
     end
@@ -1355,30 +1369,30 @@ module_eval <<'.,.,', 'grammar.ra', 305
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 310
-  def _reduce_71( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 312
+  def _reduce_70( val, _values, result )
     variable = ast AST::Name, :value => val[0]
     result = ast AST::VarDef, :name => variable, :value => val[2], :append => true
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 315
-  def _reduce_72( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 317
+  def _reduce_71( val, _values, result )
     result = ast AST::ASTArray
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 315
-  def _reduce_73( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 317
+  def _reduce_72( val, _values, result )
  result = val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 324
-  def _reduce_74( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 326
+  def _reduce_73( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push(val[2])
         result = val[0]
@@ -1389,41 +1403,41 @@ module_eval <<'.,.,', 'grammar.ra', 324
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 328
-  def _reduce_75( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 330
+  def _reduce_74( val, _values, result )
     result = ast AST::ResourceParam, :param => val[0], :value => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 333
-  def _reduce_76( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 335
+  def _reduce_75( val, _values, result )
     result = ast AST::ResourceParam, :param => val[0], :value => val[2],
                                      :add => true
    result
   end
 .,.,
 
- # reduce 77 omitted
+ # reduce 76 omitted
 
- # reduce 78 omitted
+ # reduce 77 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 341
-  def _reduce_79( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 343
+  def _reduce_78( val, _values, result )
     result = ast AST::ASTArray
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 341
-  def _reduce_80( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 343
+  def _reduce_79( val, _values, result )
  result = val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 350
-  def _reduce_81( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 352
+  def _reduce_80( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push(val[2])
         result = val[0]
@@ -1434,10 +1448,10 @@ module_eval <<'.,.,', 'grammar.ra', 350
   end
 .,.,
 
- # reduce 82 omitted
+ # reduce 81 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 359
-  def _reduce_83( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 361
+  def _reduce_82( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         result = val[0].push(val[2])
     else
@@ -1447,6 +1461,8 @@ module_eval <<'.,.,', 'grammar.ra', 359
   end
 .,.,
 
+ # reduce 83 omitted
+
  # reduce 84 omitted
 
  # reduce 85 omitted
@@ -1477,10 +1493,8 @@ module_eval <<'.,.,', 'grammar.ra', 359
 
  # reduce 98 omitted
 
- # reduce 99 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 386
-  def _reduce_100( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 388
+  def _reduce_99( val, _values, result )
     args = aryfy(val[2])
     result = ast AST::Function,
         :name => val[0],
@@ -1490,8 +1504,8 @@ module_eval <<'.,.,', 'grammar.ra', 386
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 391
-  def _reduce_101( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 393
+  def _reduce_100( val, _values, result )
     result = ast AST::Function,
         :name => val[0],
         :arguments => AST::ASTArray.new({}),
@@ -1500,44 +1514,44 @@ module_eval <<'.,.,', 'grammar.ra', 391
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 395
-  def _reduce_102( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 397
+  def _reduce_101( val, _values, result )
     result = ast AST::String, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 397
-  def _reduce_103( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 399
+  def _reduce_102( val, _values, result )
     result = ast AST::FlatString, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 401
-  def _reduce_104( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 403
+  def _reduce_103( val, _values, result )
     result = ast AST::Boolean, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 406
-  def _reduce_105( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 408
+  def _reduce_104( val, _values, result )
     Puppet.warning addcontext("Deprecation notice:  Resource references should now be capitalized")
     result = ast AST::ResourceReference, :type => val[0], :title => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 408
-  def _reduce_106( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 410
+  def _reduce_105( val, _values, result )
     result = ast AST::ResourceReference, :type => val[0], :title => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 421
-  def _reduce_107( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 423
+  def _reduce_106( val, _values, result )
     args = {
         :test => val[1],
         :statements => val[3]
@@ -1552,8 +1566,8 @@ module_eval <<'.,.,', 'grammar.ra', 421
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 433
-  def _reduce_108( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 435
+  def _reduce_107( val, _values, result )
     args = {
         :test => val[1],
         :statements => ast(AST::Nop)
@@ -1568,145 +1582,145 @@ module_eval <<'.,.,', 'grammar.ra', 433
   end
 .,.,
 
- # reduce 109 omitted
+ # reduce 108 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 438
-  def _reduce_110( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 440
+  def _reduce_109( val, _values, result )
     result = ast AST::Else, :statements => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 441
-  def _reduce_111( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 443
+  def _reduce_110( val, _values, result )
     result = ast AST::Else, :statements => ast(AST::Nop)
    result
   end
 .,.,
 
- # reduce 112 omitted
+ # reduce 111 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 458
+module_eval <<'.,.,', 'grammar.ra', 460
+  def _reduce_112( val, _values, result )
+    result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
+   result
+  end
+.,.,
+
+module_eval <<'.,.,', 'grammar.ra', 463
   def _reduce_113( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 461
+module_eval <<'.,.,', 'grammar.ra', 466
   def _reduce_114( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 464
+module_eval <<'.,.,', 'grammar.ra', 469
   def _reduce_115( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 467
+module_eval <<'.,.,', 'grammar.ra', 472
   def _reduce_116( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 470
+module_eval <<'.,.,', 'grammar.ra', 475
   def _reduce_117( val, _values, result )
     result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 473
+module_eval <<'.,.,', 'grammar.ra', 478
   def _reduce_118( val, _values, result )
-    result = ast AST::ArithmeticOperator, :operator => val[1], :lval => val[0], :rval => val[2]
+    result = ast AST::Minus, :value => val[1]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 476
+module_eval <<'.,.,', 'grammar.ra', 481
   def _reduce_119( val, _values, result )
-    result = ast AST::Minus, :value => val[1]
+    result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 479
+module_eval <<'.,.,', 'grammar.ra', 484
   def _reduce_120( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 482
+module_eval <<'.,.,', 'grammar.ra', 487
   def _reduce_121( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 485
+module_eval <<'.,.,', 'grammar.ra', 490
   def _reduce_122( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 488
+module_eval <<'.,.,', 'grammar.ra', 493
   def _reduce_123( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 491
+module_eval <<'.,.,', 'grammar.ra', 496
   def _reduce_124( val, _values, result )
     result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 494
+module_eval <<'.,.,', 'grammar.ra', 499
   def _reduce_125( val, _values, result )
-    result = ast AST::ComparisonOperator, :operator => val[1], :lval => val[0], :rval => val[2]
+    result = ast AST::Not, :value => val[1]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 497
+module_eval <<'.,.,', 'grammar.ra', 502
   def _reduce_126( val, _values, result )
-    result = ast AST::Not, :value => val[1]
+    result = ast AST::BooleanOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 500
+module_eval <<'.,.,', 'grammar.ra', 505
   def _reduce_127( val, _values, result )
     result = ast AST::BooleanOperator, :operator => val[1], :lval => val[0], :rval => val[2]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 503
+module_eval <<'.,.,', 'grammar.ra', 508
   def _reduce_128( val, _values, result )
-    result = ast AST::BooleanOperator, :operator => val[1], :lval => val[0], :rval => val[2]
-   result
-  end
-.,.,
-
-module_eval <<'.,.,', 'grammar.ra', 506
-  def _reduce_129( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 514
-  def _reduce_130( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 516
+  def _reduce_129( val, _values, result )
     options = val[3]
     unless options.instance_of?(AST::ASTArray)
         options = ast AST::ASTArray, :children => [val[3]]
@@ -1716,10 +1730,10 @@ module_eval <<'.,.,', 'grammar.ra', 514
   end
 .,.,
 
- # reduce 131 omitted
+ # reduce 130 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 524
-  def _reduce_132( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 526
+  def _reduce_131( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push val[1]
         result = val[0]
@@ -1730,15 +1744,15 @@ module_eval <<'.,.,', 'grammar.ra', 524
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 528
-  def _reduce_133( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 530
+  def _reduce_132( val, _values, result )
     result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 533
-  def _reduce_134( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 535
+  def _reduce_133( val, _values, result )
     result = ast(AST::CaseOpt,
         :value => val[0],
         :statements => ast(AST::ASTArray)
@@ -1747,10 +1761,10 @@ module_eval <<'.,.,', 'grammar.ra', 533
   end
 .,.,
 
- # reduce 135 omitted
+ # reduce 134 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 543
-  def _reduce_136( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 545
+  def _reduce_135( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push(val[2])
         result = val[0]
@@ -1761,26 +1775,26 @@ module_eval <<'.,.,', 'grammar.ra', 543
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 547
-  def _reduce_137( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 549
+  def _reduce_136( val, _values, result )
     result = ast AST::Selector, :param => val[0], :values => val[2]
    result
   end
 .,.,
 
- # reduce 138 omitted
+ # reduce 137 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 549
-  def _reduce_139( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 551
+  def _reduce_138( val, _values, result )
  result = val[1]
    result
   end
 .,.,
 
- # reduce 140 omitted
+ # reduce 139 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 560
-  def _reduce_141( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 562
+  def _reduce_140( val, _values, result )
     if val[0].instance_of?(AST::ASTArray)
         val[0].push(val[2])
         result = val[0]
@@ -1791,13 +1805,15 @@ module_eval <<'.,.,', 'grammar.ra', 560
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 564
-  def _reduce_142( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 566
+  def _reduce_141( val, _values, result )
     result = ast AST::ResourceParam, :param => val[0], :value => val[2]
    result
   end
 .,.,
 
+ # reduce 142 omitted
+
  # reduce 143 omitted
 
  # reduce 144 omitted
@@ -1810,31 +1826,29 @@ module_eval <<'.,.,', 'grammar.ra', 564
 
  # reduce 148 omitted
 
- # reduce 149 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 575
-  def _reduce_150( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 577
+  def _reduce_149( val, _values, result )
     result = ast AST::Default, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 577
-  def _reduce_151( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 579
+  def _reduce_150( val, _values, result )
  result = [val[0].value]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 581
-  def _reduce_152( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 583
+  def _reduce_151( val, _values, result )
     results = val[0] << val[2].value
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 589
-  def _reduce_153( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 591
+  def _reduce_152( val, _values, result )
     val[1].each do |file|
         import(file)
     end
@@ -1844,8 +1858,8 @@ module_eval <<'.,.,', 'grammar.ra', 589
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 599
-  def _reduce_154( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 601
+  def _reduce_153( val, _values, result )
     newdefine classname(val[1]), :arguments => val[2], :code => val[4]
     @lexer.indefine = false
     result = nil
@@ -1855,8 +1869,8 @@ module_eval <<'.,.,', 'grammar.ra', 599
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 603
-  def _reduce_155( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 605
+  def _reduce_154( val, _values, result )
     newdefine classname(val[1]), :arguments => val[2]
     @lexer.indefine = false
     result = nil
@@ -1864,8 +1878,8 @@ module_eval <<'.,.,', 'grammar.ra', 603
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 611
-  def _reduce_156( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 613
+  def _reduce_155( val, _values, result )
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
     newclass classname(val[1]), :code => val[4], :parent => val[2]
@@ -1874,8 +1888,8 @@ module_eval <<'.,.,', 'grammar.ra', 611
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 616
-  def _reduce_157( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 618
+  def _reduce_156( val, _values, result )
     # Our class gets defined in the parent namespace, not our own.
     @lexer.namepop
     newclass classname(val[1]), :parent => val[2]
@@ -1884,32 +1898,32 @@ module_eval <<'.,.,', 'grammar.ra', 616
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 621
-  def _reduce_158( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 623
+  def _reduce_157( val, _values, result )
     newnode val[1], :parent => val[2], :code => val[4]
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 624
-  def _reduce_159( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 626
+  def _reduce_158( val, _values, result )
     newnode val[1], :parent => val[2]
     result = nil
    result
   end
 .,.,
 
+ # reduce 159 omitted
+
  # reduce 160 omitted
 
  # reduce 161 omitted
 
  # reduce 162 omitted
 
- # reduce 163 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 638
-  def _reduce_164( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 640
+  def _reduce_163( val, _values, result )
     result = val[0]
     result = [result] unless result.is_a?(Array)
     result << val[2]
@@ -1917,49 +1931,49 @@ module_eval <<'.,.,', 'grammar.ra', 638
   end
 .,.,
 
+ # reduce 164 omitted
+
  # reduce 165 omitted
 
  # reduce 166 omitted
 
  # reduce 167 omitted
 
- # reduce 168 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 647
-  def _reduce_169( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 649
+  def _reduce_168( val, _values, result )
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 651
-  def _reduce_170( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 653
+  def _reduce_169( val, _values, result )
     result = ast AST::ASTArray, :children => []
    result
   end
 .,.,
 
- # reduce 171 omitted
+ # reduce 170 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 656
-  def _reduce_172( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 658
+  def _reduce_171( val, _values, result )
     result = nil
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 660
-  def _reduce_173( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 662
+  def _reduce_172( val, _values, result )
     result = val[1]
     result = [result] unless result[0].is_a?(Array)
    result
   end
 .,.,
 
- # reduce 174 omitted
+ # reduce 173 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 667
-  def _reduce_175( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 669
+  def _reduce_174( val, _values, result )
     result = val[0]
     result = [result] unless result[0].is_a?(Array)
     result << val[2]
@@ -1967,67 +1981,67 @@ module_eval <<'.,.,', 'grammar.ra', 667
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 672
-  def _reduce_176( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 674
+  def _reduce_175( val, _values, result )
     Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
     result = [val[0], val[2]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 676
-  def _reduce_177( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 678
+  def _reduce_176( val, _values, result )
     Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
     result = [val[0]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 678
-  def _reduce_178( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 680
+  def _reduce_177( val, _values, result )
     result = [val[0], val[2]]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 680
-  def _reduce_179( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 682
+  def _reduce_178( val, _values, result )
     result = [val[0]]
    result
   end
 .,.,
 
- # reduce 180 omitted
+ # reduce 179 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 685
-  def _reduce_181( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 687
+  def _reduce_180( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
- # reduce 182 omitted
+ # reduce 181 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 690
-  def _reduce_183( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 692
+  def _reduce_182( val, _values, result )
     result = val[1]
    result
   end
 .,.,
 
- # reduce 184 omitted
+ # reduce 183 omitted
 
- # reduce 185 omitted
+ # reduce 184 omitted
 
-module_eval <<'.,.,', 'grammar.ra', 696
-  def _reduce_186( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 698
+  def _reduce_185( val, _values, result )
     result = ast AST::Variable, :value => val[0]
    result
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 704
-  def _reduce_187( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 706
+  def _reduce_186( val, _values, result )
     if val[1].instance_of?(AST::ASTArray)
         result = val[1]
     else
@@ -2037,21 +2051,21 @@ module_eval <<'.,.,', 'grammar.ra', 704
   end
 .,.,
 
-module_eval <<'.,.,', 'grammar.ra', 706
-  def _reduce_188( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 708
+  def _reduce_187( val, _values, result )
     result = ast AST::ASTArray
    result
   end
 .,.,
 
+ # reduce 188 omitted
+
  # reduce 189 omitted
 
  # reduce 190 omitted
 
- # reduce 191 omitted
-
-module_eval <<'.,.,', 'grammar.ra', 711
-  def _reduce_192( val, _values, result )
+module_eval <<'.,.,', 'grammar.ra', 713
+  def _reduce_191( val, _values, result )
  result = nil
    result
   end
diff --git a/spec/unit/parser/parser.rb b/spec/unit/parser/parser.rb
index c0d22a2..6ede8e6 100755
--- a/spec/unit/parser/parser.rb
+++ b/spec/unit/parser/parser.rb
@@ -142,4 +142,28 @@ describe Puppet::Parser do
 
     end
 
+    describe Puppet::Parser, "when parsing function calls" do
+
+        it "should not raise errors with no arguments" do
+            lambda { @parser.parse("tag()") }.should_not raise_error
+        end
+
+        it "should not raise errors with rvalue function with no args" do
+            lambda { @parser.parse("$a = template()") }.should_not raise_error
+        end
+
+        it "should not raise errors with arguments" do
+            lambda { @parser.parse("notice(1)") }.should_not raise_error
+        end
+
+        it "should not raise errors with multiple arguments" do
+            lambda { @parser.parse("notice(1,2)") }.should_not raise_error
+        end
+
+        it "should not raise errors with multiple arguments and a trailing comma" do
+            lambda { @parser.parse("notice(1,2,)") }.should_not raise_error
+        end
+
+    end
+
  end
diff --git a/test/data/snippets/funccomma.pp b/test/data/snippets/funccomma.pp
new file mode 100644
index 0000000..32e34f9
--- /dev/null
+++ b/test/data/snippets/funccomma.pp
@@ -0,0 +1,5 @@
+ at file {
+    ["/tmp/funccomma1","/tmp/funccomma2"]: content => "1"
+}
+
+realize( File["/tmp/funccomma1"], File["/tmp/funccomma2"] , )
diff --git a/test/language/snippets.rb b/test/language/snippets.rb
index 982ddfe..5ea436d 100755
--- a/test/language/snippets.rb
+++ b/test/language/snippets.rb
@@ -446,6 +446,13 @@ class TestSnippets < Test::Unit::TestCase
             "Did not make second file from duplicate subclass names")
     end
 
+    def snippet_funccomma
+        assert_file("/tmp/funccomma1",
+            "Did not make first file from trailing function comma")
+        assert_file("/tmp/funccomma2",
+            "Did not make second file from trailing function comma")
+    end
+
     # Iterate across each of the snippets and create a test.
     Dir.entries(snippetdir).sort.each { |file|
         next if file =~ /^\./

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list