[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 2.6.5-303-gfcfa26a

Nick Lewis nick at puppetlabs.com
Thu Mar 17 10:46:37 UTC 2011


The following commit has been merged in the upstream branch:
commit e3c59df2b246fe5e764272f21b631a5d2f28687f
Author: Nick Lewis <nick at puppetlabs.com>
Date:   Thu Feb 17 13:52:40 2011 -0800

    (#5935) Allow functions to accept negated values
    
    function(-1) was failing because the grammar wasn't allowing negated values in
    function calls. This fix makes the negation of any value which was previously
    legal as a function argument also now legal as a function argument.
    
    Paired-With: Max Martin
    Paired-With: Markus Roberts

diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra
index 98b8cfc..6360f50 100644
--- a/lib/puppet/parser/grammar.ra
+++ b/lib/puppet/parser/grammar.ra
@@ -139,6 +139,9 @@ funcvalues:       namestring
 # This is *almost* an rvalue, but I couldn't get a full
 # rvalue to work without scads of shift/reduce conflicts.
 namestring:       name
+  | MINUS namestring =UMINUS {
+    result = ast AST::Minus, :value => val[1]
+  }
   | variable
   | type
   | boolean
diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb
old mode 100644
new mode 100755
index c2fbf97..ff05996
--- a/lib/puppet/parser/parser.rb
+++ b/lib/puppet/parser/parser.rb
@@ -21,7 +21,7 @@ module Puppet
   module Parser
     class Parser < Racc::Parser
 
-module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 866)
+module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 869)
 
 # It got too annoying having code in a file that needs to be compiled.
 require 'puppet/parser/parser_support'
@@ -36,634 +36,640 @@ require 'puppet/parser/parser_support'
 ##### State transition tables begin ###
 
 racc_action_table = [
-   256,   257,   228,    63,   327,    64,   156,    54,    82,   356,
-  -166,   245,   176,   205,   210,   254,    37,   357,    65,   244,
-    38,  -168,   201,   203,   206,   209,   184,    11,   255,   241,
-   242,   158,    54,   251,    72,    75,    72,    75,   102,   117,
-   106,  -170,    62,   194,   230,    58,   204,   208,    60,   306,
-   213,   196,   197,   198,   200,   202,    97,   207,   211,    72,
-    75,   241,   242,   102,   199,   106,   163,    71,    59,   307,
-    58,    83,    86,    60,   193,    92,    54,   162,    72,    75,
-    78,   100,   169,   163,    89,    72,    75,    94,   308,   102,
-   163,   106,    71,    59,   162,    59,    83,    86,    59,   169,
-    92,   162,   311,    72,    75,    78,   169,    97,   181,    89,
-   353,    71,   228,   352,    58,    83,   269,    60,    71,    92,
-    59,   345,    83,    86,   137,   184,    92,  -171,    89,    72,
-    75,    78,   100,   246,   368,    89,    71,    59,    94,    59,
-    83,    86,   309,   173,    92,   314,    59,   163,    76,    78,
-    72,    75,  -167,    89,   102,   310,   106,    37,   162,   173,
-   218,   127,    71,   169,    59,   220,    83,   269,    11,    14,
-    92,    63,    97,   152,    37,   137,    72,    75,   127,    89,
-   102,   319,   106,    71,   218,    11,    14,    83,    86,   220,
-    59,    92,    72,    75,    72,    75,    78,   100,   270,   279,
-    89,   349,   278,    94,   353,   207,   211,   352,   320,    71,
-  -169,    59,   199,    83,    86,   197,   198,    92,    72,    75,
-   207,   211,    78,  -169,    37,    71,    89,   199,    38,    83,
-   269,  -167,   193,    92,  -166,    11,    14,    59,   137,    72,
-    75,   272,    89,   102,   182,   106,    37,   207,   211,  -186,
-    38,    71,   181,    59,   199,    83,    86,    11,   337,    92,
-   231,    97,   339,    76,    78,    72,    75,    37,    89,    82,
-    48,    38,    71,    48,   323,   176,    83,    86,    11,    59,
-    92,   342,    46,    47,   184,    78,   100,    74,  -168,    89,
-    72,    75,    94,  -172,   102,   346,   106,  -173,    71,   175,
-    59,    59,    83,    86,   240,  -171,    92,  -170,   241,   242,
-    76,    78,    97,   197,   198,    89,    72,    75,   207,   211,
-   102,   214,   106,    71,    64,   199,    59,    83,    86,   276,
-   215,    92,   217,   246,   275,   173,    78,   100,    97,    82,
-    89,    72,    75,    94,   155,   102,   122,   106,   152,    71,
-   223,    59,  -168,    83,    86,   249,   277,    92,   176,   246,
-   247,   122,    78,   100,   225,  -166,    89,    72,    75,    94,
-   117,   102,   226,   106,    71,  -169,   271,    59,    83,    86,
-   246,   247,    92,   -21,   -21,   -21,   -21,    78,   226,    97,
-  -167,    89,    72,    75,    52,  -168,   102,  -166,   106,  -169,
-    71,  -167,    59,  -171,    83,    86,   366,   152,    92,   -23,
-   -23,   -23,   -23,    78,   100,   228,   226,    89,    72,    75,
-    94,    50,   102,   373,   106,    71,    49,   375,    59,    83,
-    86,   229,  -221,    92,   237,   378,    72,    75,    78,    40,
-    97,    39,    89,   355,    44,    45,    41,    42,   231,   234,
-   nil,    71,   nil,    59,   nil,    83,    86,   nil,   nil,    92,
-    44,    45,    41,    42,    78,   100,    72,    75,    89,    71,
-   102,    94,   106,    83,   269,   nil,   nil,    92,   nil,    59,
-   nil,   nil,   137,   nil,   nil,   nil,    89,   nil,    97,   nil,
-   nil,   nil,    72,    75,   nil,   nil,   102,    59,   106,    71,
-   nil,   nil,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,
-   nil,   nil,    78,   100,    97,   nil,    89,   nil,   nil,    94,
-   nil,   nil,    72,    75,   nil,    71,   102,    59,   106,    83,
-    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,
-   nil,   nil,    89,   nil,    97,    94,   nil,   nil,    72,    75,
-   nil,   nil,   102,    59,   106,    71,   nil,   nil,   nil,    83,
-    86,   nil,   nil,    92,   nil,   nil,    72,    75,    78,   100,
-    97,   nil,    89,    72,    75,    94,   nil,   102,   nil,   106,
-   nil,    71,   nil,    59,   nil,    83,    86,    72,    75,    92,
-   nil,   102,   nil,   nil,    78,   100,   nil,   nil,    89,    71,
-   nil,    94,   nil,    83,   269,   nil,    71,    92,   nil,    59,
-    83,    86,   137,   nil,    92,   nil,    89,   nil,   nil,    78,
-    71,   nil,   nil,    89,    83,   143,   nil,    59,    92,   nil,
-   nil,   nil,   nil,   137,    59,    72,    75,    89,   nil,   102,
-   nil,   106,   213,   196,   197,   198,   200,   202,    59,   207,
-   211,   nil,   213,   196,   197,   198,   199,    97,   nil,   207,
-   211,    72,    75,   nil,   nil,   102,   199,   106,    71,   nil,
-   nil,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,
-   nil,    78,   100,    97,   nil,    89,   nil,   nil,    94,   nil,
-   nil,    72,    75,   nil,    71,   102,    59,   106,    83,    86,
-   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,   nil,
-   nil,    89,   nil,    97,    94,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    59,   nil,    71,   nil,   nil,   nil,    83,    86,
-    72,    75,    92,   nil,   102,   189,   106,    78,   100,   nil,
-   nil,    89,   nil,   nil,    94,   nil,   nil,   nil,   nil,    72,
-    75,   nil,    59,   102,   nil,   106,    72,    75,   nil,   nil,
-   102,   nil,   106,    71,   nil,   nil,   nil,    83,    86,   nil,
-   nil,    92,   nil,   nil,   nil,   nil,    78,   nil,    97,   nil,
-    89,   nil,    71,   nil,   nil,   nil,    83,    86,   nil,    71,
-    92,    59,   nil,    83,    86,    78,   nil,    92,   nil,    89,
-   nil,   nil,    78,   100,   nil,   nil,    89,    72,    75,    94,
-    59,   102,   nil,   106,   nil,   nil,   nil,    59,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    72,    75,   nil,    97,
-   102,   nil,   106,    72,    75,   nil,   nil,   102,   nil,   106,
-    71,   nil,   nil,   nil,    83,    86,   nil,   nil,    92,   nil,
-   nil,   nil,   nil,    78,   100,    97,   nil,    89,   nil,    71,
-    94,   nil,   nil,    83,    86,   nil,    71,    92,    59,   nil,
-    83,    86,    78,   nil,    92,   nil,    89,   nil,   nil,    78,
-   100,   nil,   nil,    89,    72,    75,    94,    59,   102,   nil,
-   106,   nil,   nil,   nil,    59,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    72,    75,   nil,    97,   nil,   nil,    72,
-    75,   nil,   nil,   nil,   nil,   nil,   nil,    71,   nil,   nil,
-   nil,    83,    86,   nil,   nil,    92,   340,   nil,   nil,   nil,
-    78,   100,   177,   nil,    89,   nil,    71,    94,   nil,   nil,
-    83,    86,    71,   nil,    92,    59,    83,    86,    76,    78,
-    92,   nil,   nil,    89,    76,    78,    72,    75,   nil,    89,
-   102,   nil,   106,   nil,    59,   nil,   213,   196,   197,   198,
-    59,   nil,   nil,   207,   211,    72,    75,   nil,    97,   102,
-   199,   106,    72,    75,   nil,   nil,   nil,   nil,   nil,    71,
-   nil,   nil,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,
-    72,    75,    78,   100,   nil,   nil,    89,   nil,    71,    94,
-   nil,   nil,    83,    86,   nil,    71,    92,    59,   nil,    83,
-   269,    78,   nil,    92,   nil,    89,   nil,   nil,   137,   nil,
-   nil,   nil,    89,    71,   nil,   nil,    59,    83,   269,   nil,
-   nil,    92,   nil,    59,   nil,   nil,   137,    72,    75,   nil,
-    89,   102,   nil,   106,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    59,   nil,   nil,   nil,   nil,    72,    75,   nil,    97,
-   102,   nil,   106,    72,    75,   nil,   nil,   102,   nil,   106,
-    71,   nil,   nil,   nil,    83,    86,   nil,   nil,    92,   nil,
-   nil,   nil,   nil,    78,   100,    72,    75,    89,   nil,    71,
-    94,   nil,   nil,    83,    86,   nil,    71,    92,    59,   nil,
-    83,    86,    78,   nil,    92,   nil,    89,   nil,   nil,    78,
-    72,    75,   nil,    89,   102,   nil,   106,    59,    71,   nil,
-   nil,   nil,    83,   269,    59,   nil,    92,   nil,    72,    75,
-   nil,   137,   102,   nil,   106,    89,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    71,   nil,   nil,    59,    83,    86,   nil,
-    97,    92,   nil,    72,    75,   nil,    78,   102,   nil,   106,
-    89,    71,   nil,    72,    75,    83,    86,   102,   nil,    92,
-   nil,    59,   nil,   nil,    78,   100,   nil,   nil,    89,   nil,
-   nil,    94,   nil,   nil,   nil,   nil,    71,   nil,   nil,    59,
-    83,    86,   nil,   nil,    92,   nil,    71,   nil,   nil,    78,
-    83,   269,   nil,    89,    92,   nil,    72,    75,   nil,   137,
-   102,   nil,   106,    89,    59,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    59,    72,    75,   nil,    97,   102,
-   nil,   106,    72,    75,   nil,   nil,   102,   nil,   106,    71,
-   nil,   nil,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,
-   nil,   nil,    78,   100,    97,   nil,    89,   nil,    71,    94,
-   nil,   nil,    83,    86,   nil,    71,    92,    59,   nil,    83,
-    86,    78,   nil,    92,   nil,    89,   nil,   nil,    78,   100,
-   212,   nil,    89,   nil,   nil,    94,    59,   nil,   nil,   205,
-   210,   nil,   nil,    59,   nil,   nil,   nil,   nil,   201,   203,
-   206,   209,   nil,   nil,   205,   210,   nil,   nil,   nil,   nil,
-   nil,   nil,   274,   201,   203,   206,   209,   nil,   nil,   nil,
-   nil,   nil,   204,   208,   nil,   nil,   213,   196,   197,   198,
-   200,   202,   nil,   207,   211,   nil,   nil,   204,   208,   nil,
-   199,   213,   196,   197,   198,   200,   202,   nil,   207,   211,
-   205,   210,   nil,   nil,   nil,   199,   nil,   nil,   nil,   201,
-   203,   206,   209,   nil,   nil,   205,   210,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   201,   203,   206,   209,   nil,   nil,
-   nil,   nil,   nil,   nil,   208,   nil,   nil,   213,   196,   197,
-   198,   200,   202,   nil,   207,   211,   nil,   nil,   204,   208,
-   nil,   199,   213,   196,   197,   198,   200,   202,   nil,   207,
-   211,   205,   210,   nil,   nil,   nil,   199,   nil,   nil,   nil,
-   201,   203,   206,   209,   nil,   nil,   205,   210,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   201,   203,   206,   209,   nil,
-   nil,   nil,   nil,   nil,   204,   208,   nil,   nil,   213,   196,
-   197,   198,   200,   202,   nil,   207,   211,   nil,   nil,   nil,
-   nil,   nil,   199,   213,   196,   197,   198,   200,   202,   nil,
-   207,   211,   205,   210,   nil,   nil,   nil,   199,   nil,   nil,
-   nil,   201,   203,   206,   209,   nil,   nil,   nil,   210,   nil,
-   213,   196,   197,   198,   200,   202,   201,   207,   211,   nil,
-   nil,   nil,   nil,   nil,   199,   204,   208,   210,   nil,   213,
-   196,   197,   198,   200,   202,   201,   207,   211,   nil,   nil,
-   nil,   nil,   210,   199,   213,   196,   197,   198,   200,   202,
-   201,   207,   211,   nil,   nil,   nil,   nil,   nil,   199,   nil,
-   nil,   210,   nil,   213,   196,   197,   198,   200,   202,   201,
-   207,   211,   nil,   nil,   nil,   nil,   nil,   199,   213,   196,
-   197,   198,   200,   202,   nil,   207,   211,   nil,   nil,   384,
-   nil,   nil,   199,   nil,   nil,   nil,   nil,   213,   196,   197,
-   198,   200,   202,   nil,   207,   211,   nil,   nil,   297,   nil,
-    26,   199,    33,     1,   nil,     7,    12,   nil,    17,   nil,
+   259,   260,   231,    63,   329,    64,   157,    54,    83,   248,
+   321,   358,  -168,   208,   213,   231,    37,   247,    65,   359,
+    38,    63,   204,   206,   209,   212,   187,    11,   187,   244,
+   245,   159,    54,   254,    73,    76,    73,    76,   103,  -170,
+   107,   118,    62,   197,   233,    58,   207,   211,    60,  -167,
+   216,   199,   200,   201,   203,   205,    98,   210,   214,    73,
+    76,   244,   245,   103,   202,   107,   164,    72,    59,   308,
+    58,    84,    87,    60,   196,    93,    54,   163,    73,    76,
+    79,   101,   170,   164,    90,    73,    76,    95,   309,   103,
+   164,   107,    72,    59,   163,    59,    84,    87,   310,   170,
+    93,   163,  -172,    73,    76,    79,   170,    98,   257,    90,
+   355,    72,   311,   354,    58,    84,   178,    60,    72,    93,
+    59,   258,    84,    87,   138,   312,    93,   355,    90,   184,
+   354,    79,   101,   249,   370,    90,    72,    59,    95,    59,
+    84,   178,   347,   313,    93,   185,    59,   164,    37,   138,
+    73,    76,    38,    90,   103,   174,   107,   316,   163,    11,
+    14,    73,    76,   170,    59,  -187,   174,    37,   351,    73,
+    76,   128,    98,   103,   184,   107,    73,    76,    11,    14,
+   103,    37,   107,    72,   221,   128,   153,    84,    87,   223,
+    59,    93,    11,    14,    73,    76,    79,   101,    98,   196,
+    90,    37,    72,    95,   322,    38,    84,    87,   325,    72,
+    93,    59,    11,    84,    87,    79,   273,    93,  -171,    90,
+   249,   250,    79,   101,    73,    76,    90,    72,    83,    95,
+    59,    84,    87,   281,    37,    93,   280,    59,    38,    77,
+    79,    48,    73,    76,    90,    11,    75,    69,   272,   221,
+    46,    47,   210,   214,   223,    59,    48,    72,    59,   202,
+  -169,    84,    87,   179,  -169,    93,  -174,    73,    76,    77,
+    79,   103,   339,   107,    90,    72,   234,    69,   341,    84,
+   178,   176,   243,    93,   179,    59,   244,   245,   138,    98,
+   200,   201,    90,    73,    76,   210,   214,   103,   344,   107,
+    72,   174,   202,    59,    84,    87,   200,   201,    93,  -167,
+   348,   210,   214,    79,   101,    73,    76,    90,   202,   103,
+    95,   107,    73,    76,  -170,  -168,    72,  -173,    59,  -172,
+    84,    87,  -171,   217,    93,    64,    73,    76,   279,    79,
+   103,   218,   107,    90,   156,   274,   278,   123,    72,   153,
+   249,   277,    84,    87,    59,    72,    93,    73,    76,    84,
+    87,    79,   220,    93,   357,    90,   252,    77,    79,    72,
+   249,   250,    90,    84,    87,    69,    59,    93,   210,   214,
+   123,    83,    79,    59,   226,   202,    90,    73,    76,   187,
+    72,   103,   192,   107,    84,   178,   153,    59,    93,    44,
+    45,    41,    42,   138,   231,    73,    76,    90,   229,   103,
+   118,   107,   -23,   -23,   -23,   -23,  -169,   240,    59,   179,
+    72,   229,   237,    52,    84,    87,  -169,    98,    93,    44,
+    45,    41,    42,    79,  -167,    73,    76,    90,    72,   103,
+  -170,   107,    84,    87,  -168,  -172,    93,   368,    59,   234,
+   228,    79,   101,   232,    50,    90,   375,    98,    95,    49,
+   377,    73,    76,  -168,  -222,   103,    59,   107,    72,  -170,
+   380,    40,    84,    87,    39,   229,    93,   -21,   -21,   -21,
+   -21,    79,   101,    98,  -167,    90,   nil,   nil,    95,   nil,
+   nil,    73,    76,   nil,    72,   103,    59,   107,    84,    87,
+   nil,   nil,    93,   nil,   nil,   nil,   nil,    79,   101,   nil,
+   nil,    90,   nil,    98,    95,   nil,   nil,    73,    76,   nil,
+   nil,   103,    59,   107,    72,   nil,   nil,   nil,    84,    87,
+   nil,   nil,    93,   nil,   nil,    73,    76,    79,   101,    98,
+   nil,    90,    73,    76,    95,   nil,   103,   nil,   107,   nil,
+    72,   nil,    59,   nil,    84,    87,    73,    76,    93,   nil,
+   103,   nil,   nil,    79,   101,   nil,   nil,    90,    72,   nil,
+    95,   nil,    84,   178,   nil,    72,    93,   nil,    59,    84,
+    87,   138,   nil,    93,   nil,    90,   nil,   nil,    79,    72,
+   nil,   nil,    90,    84,   144,   nil,    59,    93,   nil,   nil,
+   nil,   nil,   138,    59,    73,    76,    90,   nil,   103,   nil,
+   107,   216,   199,   200,   201,   nil,   nil,    59,   210,   214,
+   nil,   216,   199,   200,   201,   202,    98,   nil,   210,   214,
+    73,    76,   nil,   nil,   103,   202,   107,    72,   nil,   nil,
+   nil,    84,    87,   nil,   nil,    93,   nil,   nil,   nil,   nil,
+    79,   101,    98,   nil,    90,   nil,   nil,    95,   nil,   nil,
+    73,    76,   nil,    72,   103,    59,   107,    84,    87,   nil,
+   nil,    93,   nil,   nil,   nil,   nil,    79,   101,   nil,   nil,
+    90,   nil,    98,    95,   nil,   nil,    73,    76,   nil,   nil,
+   103,    59,   107,    72,   nil,   nil,   nil,    84,    87,   nil,
+   nil,    93,   nil,   nil,   nil,   nil,    79,   101,    73,    76,
+    90,   nil,   103,    95,   107,   nil,   nil,   nil,   nil,    72,
+   nil,    59,   nil,    84,    87,   nil,   nil,    93,   nil,    73,
+    76,   nil,    79,   103,   nil,   107,    90,   nil,   nil,   nil,
+   nil,    72,   nil,   nil,   nil,    84,    87,    59,   nil,    93,
+   nil,    98,   nil,   nil,    79,    73,    76,   nil,    90,   nil,
+   nil,   nil,    72,   nil,   nil,   nil,    84,    87,   nil,    59,
+    93,   nil,   nil,    73,    76,    79,   101,   nil,   342,    90,
+    73,    76,    95,   nil,   103,   nil,   107,   nil,    72,   nil,
+    59,   nil,    84,    87,    73,    76,    93,   nil,   nil,   nil,
+    77,    79,   nil,   nil,   nil,    90,    72,   nil,    69,   nil,
+    84,   178,   nil,    72,    93,   nil,    59,    84,    87,   138,
+   nil,    93,   nil,    90,    73,    76,    79,    72,   nil,   nil,
+    90,    84,   178,   nil,    59,    93,   nil,   nil,   nil,    77,
+   138,    59,    73,    76,    90,   nil,   103,    69,   107,   nil,
+   nil,   nil,   nil,   nil,   nil,    59,   nil,    72,   nil,   nil,
+   nil,    84,   178,   nil,    98,    93,   nil,    73,    76,   nil,
+   138,   nil,   nil,   nil,    90,    72,   nil,   nil,   nil,    84,
+    87,   nil,   nil,    93,   nil,    59,   nil,   nil,    79,   101,
+   180,   nil,    90,    73,    76,    95,   nil,   103,   nil,   107,
+    72,   nil,   nil,    59,    84,    87,   nil,   nil,    93,   nil,
+   nil,   nil,    77,    79,   nil,    98,   nil,    90,    73,    76,
+    69,   nil,   103,   nil,   107,   nil,    72,   nil,    59,   nil,
+    84,    87,    73,    76,    93,   nil,   103,   nil,   107,    79,
+   101,   nil,   nil,    90,   nil,   nil,    95,   nil,    73,    76,
+   nil,    72,   103,   nil,    59,    84,    87,   nil,   nil,    93,
+   nil,   nil,   nil,   nil,    79,    72,   nil,   nil,    90,    84,
+    87,   nil,   nil,    93,   nil,    73,    76,   nil,    79,    59,
+   nil,    72,    90,   nil,   nil,    84,   178,   nil,   nil,    93,
+   nil,    73,    76,    59,   138,   103,   nil,   107,    90,   nil,
+   nil,    73,    76,   nil,   nil,   103,   nil,   107,    72,    59,
+   nil,   nil,    84,   178,   nil,   nil,    93,   nil,   nil,   nil,
+   nil,   138,   nil,    98,    72,    90,   nil,   nil,    84,    87,
+   nil,   nil,    93,   nil,    72,   nil,    59,    79,    84,    87,
+   nil,    90,    93,   nil,   nil,   nil,   nil,    79,   101,    73,
+    76,    90,    59,   103,    95,   107,   216,   199,   200,   201,
+   203,   205,    59,   210,   214,   nil,   nil,   nil,   nil,   nil,
+   202,    98,   nil,   nil,   nil,    73,    76,   nil,   nil,   103,
+   nil,   107,    72,   nil,   nil,   nil,    84,    87,   nil,   nil,
+    93,   nil,   nil,   nil,   nil,    79,   101,    98,   nil,    90,
+   nil,   nil,    95,   nil,   nil,    73,    76,   nil,    72,   103,
+    59,   107,    84,    87,   nil,   nil,    93,   nil,   nil,   nil,
+   nil,    79,   101,   nil,   nil,    90,   nil,    98,    95,   nil,
+   nil,    73,    76,   nil,   nil,   103,    59,   107,    72,   nil,
+   nil,   nil,    84,    87,   nil,   nil,    93,   nil,   nil,   nil,
+   nil,    79,   101,    98,   nil,    90,   nil,   nil,    95,   nil,
+   nil,    73,    76,   nil,    72,   103,    59,   107,    84,    87,
+   nil,   nil,    93,   nil,   nil,   nil,   nil,    79,   101,   nil,
+   nil,    90,   nil,    98,    95,   nil,   nil,    73,    76,   nil,
+   nil,   103,    59,   107,    72,   nil,   nil,   nil,    84,    87,
+   nil,   nil,    93,   nil,   nil,   nil,   nil,    79,   101,    98,
+   nil,    90,   nil,   nil,    95,   nil,   nil,    73,    76,   nil,
+    72,   103,    59,   107,    84,    87,   nil,   nil,    93,   nil,
+   nil,   nil,   nil,    79,   101,   nil,   nil,    90,   nil,    98,
+    95,   nil,   nil,    73,    76,   nil,   nil,   103,    59,   107,
+    72,   nil,   nil,   nil,    84,    87,   nil,   nil,    93,   nil,
+   nil,   nil,   nil,    79,   101,   nil,   nil,    90,   nil,   nil,
+    95,   nil,   nil,   nil,   nil,   nil,    72,   215,    59,   nil,
+    84,    87,   nil,   nil,    93,   nil,   208,   213,   nil,    79,
+   nil,   nil,   nil,    90,   nil,   204,   206,   209,   212,   nil,
+   nil,   208,   213,   nil,    59,   nil,   nil,   nil,   nil,   276,
+   204,   206,   209,   212,   nil,   nil,   nil,   nil,   nil,   207,
+   211,   nil,   nil,   216,   199,   200,   201,   203,   205,   nil,
+   210,   214,   nil,   nil,   207,   211,   nil,   202,   216,   199,
+   200,   201,   203,   205,   nil,   210,   214,   208,   213,   nil,
+   nil,   nil,   202,   nil,   nil,   nil,   204,   206,   209,   212,
+   nil,   nil,   208,   213,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   204,   206,   209,   212,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   216,   199,   200,   201,   203,   205,
+   nil,   210,   214,   nil,   nil,   nil,   211,   nil,   202,   216,
+   199,   200,   201,   203,   205,   nil,   210,   214,   208,   213,
+   nil,   nil,   nil,   202,   nil,   nil,   nil,   204,   206,   209,
+   212,   nil,   nil,   208,   213,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   204,   206,   209,   212,   nil,   nil,   nil,   nil,
+   nil,   207,   211,   nil,   nil,   216,   199,   200,   201,   203,
+   205,   nil,   210,   214,   nil,   nil,   207,   211,   nil,   202,
+   216,   199,   200,   201,   203,   205,   nil,   210,   214,   208,
+   213,   nil,   nil,   nil,   202,   nil,   nil,   nil,   204,   206,
+   209,   212,   nil,   nil,   nil,   213,   nil,   216,   199,   200,
+   201,   203,   205,   204,   210,   214,   nil,   nil,   nil,   nil,
+   nil,   202,   207,   211,   213,   nil,   216,   199,   200,   201,
+   203,   205,   204,   210,   214,   nil,   nil,   nil,   nil,   213,
+   202,   216,   199,   200,   201,   203,   205,   204,   210,   214,
+   nil,   nil,   nil,   nil,   nil,   202,   nil,   nil,   213,   nil,
+   216,   199,   200,   201,   203,   205,   204,   210,   214,   nil,
+   nil,   nil,   nil,   nil,   202,   216,   199,   200,   201,   203,
+   205,   nil,   210,   214,   nil,   nil,   352,   nil,   nil,   202,
+   nil,   nil,   nil,   nil,   216,   199,   200,   201,   203,   205,
+   nil,   210,   214,   nil,   nil,   360,   nil,    26,   202,    33,
+     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,
+   nil,     3,   nil,   nil,    11,    14,    26,   299,    33,     1,
+   nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,
+     3,   nil,   nil,    11,    14,   nil,   366,   nil,    26,   nil,
+    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,
+    29,   nil,     3,   nil,   nil,    11,    14,    26,   367,    33,
+     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,
+   nil,     3,   nil,   nil,    11,    14,   nil,   378,   nil,    26,
+   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,
+   nil,    29,   nil,     3,   nil,   nil,    11,    14,    26,   382,
+    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,
+    29,   nil,     3,   nil,   nil,    11,    14,   nil,   307,   nil,
+    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,
     23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,    26,
-   305,    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,
-   nil,    29,   nil,     3,   nil,   nil,    11,    14,   nil,   383,
+   384,    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,
+   nil,    29,   nil,     3,   nil,   nil,    11,    14,   nil,   385,
    nil,    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,
    nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,
-    26,   325,    33,     1,   nil,     7,    12,   nil,    17,   nil,
+    26,   327,    33,     1,   nil,     7,    12,   nil,    17,   nil,
     23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,   nil,
-   382,   nil,    26,   nil,    33,     1,   nil,     7,    12,   nil,
+   386,   nil,    26,   nil,    33,     1,   nil,     7,    12,   nil,
     17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
-    14,    26,   380,    33,     1,   nil,     7,    12,   nil,    17,
+    14,    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,
    nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,
-   nil,   376,   nil,    26,   nil,    33,     1,   nil,     7,    12,
-   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
-    11,    14,    26,   350,    33,     1,   nil,     7,    12,   nil,
-    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
-    14,   nil,   358,   nil,    26,   nil,    33,     1,   nil,     7,
-    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,
-   nil,    11,    14,    26,   365,    33,     1,   nil,     7,    12,
-   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
-    11,    14,   nil,   364,   nil,    26,   nil,    33,     1,   nil,
-     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,
-   nil,   nil,    11,    14,    26,   nil,    33,     1,   nil,     7,
-    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,
-   nil,    11,    14,    26,   nil,    33,     1,   nil,     7,    12,
-   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
-    11,    14,    26,   nil,    33,     1,   nil,     7,    12,   nil,
-    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
-    14 ]
+    26,   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,
+    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,    26,
+   nil,    33,     1,   nil,     7,    12,   nil,    17,   nil,    23,
+   nil,    29,   nil,     3,   nil,   nil,    11,    14 ]
 
 racc_action_check = [
-   180,   180,   152,    22,   243,    22,    55,    17,    86,   301,
-    81,   165,    96,   180,   180,   178,    12,   301,    22,   165,
-    12,    95,   180,   180,   180,   180,    86,    12,   178,   243,
-   243,    55,   156,   174,   208,   208,   106,   106,   208,   215,
-   208,    91,    22,   106,   152,    17,   180,   180,    17,   218,
-   180,   180,   180,   180,   180,   180,   208,   180,   180,   176,
-   176,   174,   174,   176,   180,   176,    62,   208,    17,   219,
-   156,   208,   208,   156,   106,   208,   158,    62,   369,   369,
-   208,   208,    62,   239,   208,   205,   205,   208,   220,   205,
-    65,   205,   176,   156,   239,   208,   176,   176,   211,   239,
-   176,    65,   224,   181,   181,   176,    65,   205,   273,   176,
-   350,   369,   143,   350,   158,   369,   369,   158,   205,   369,
-   176,   273,   205,   205,   369,   143,   205,    90,   369,   356,
-   356,   205,   205,   344,   344,   205,   181,   158,   205,   369,
-   181,   181,   221,   226,   181,   227,   205,   163,   181,   181,
-   352,   352,    87,   181,   352,   221,   352,   120,   163,   229,
-   309,   120,   356,   163,   181,   309,   356,   356,   120,   120,
-   356,    85,   352,   231,    43,   356,   342,   342,    43,   356,
-   342,   232,   342,   352,   122,    43,    43,   352,   352,   122,
-   356,   352,   182,   182,   278,   278,   352,   352,   182,   195,
-   352,   278,   195,   352,   297,   281,   281,   297,   233,   342,
-   103,   352,   281,   342,   342,   280,   280,   342,   184,   184,
-   280,   280,   342,    84,    30,   182,   342,   280,    30,   182,
-   182,   105,   278,   182,   101,    30,    30,   342,   182,   204,
-   204,   184,   182,   204,    80,   204,     1,   282,   282,    78,
-     1,   184,    77,   182,   282,   184,   184,     1,   250,   184,
-   252,   204,   253,   184,   184,    23,    23,   234,   184,    23,
-    71,   234,   204,     7,   234,    70,   204,   204,   234,   184,
-   204,   264,     7,     7,   269,   204,   204,    23,    68,   204,
-    26,    26,   204,   107,    26,   275,    26,    67,    23,    66,
-   204,   207,    23,    23,   160,   108,    23,   109,   160,   160,
-    23,    23,    26,   298,   298,    23,   196,   196,   298,   298,
-   196,   114,   196,    26,   115,   298,    23,    26,    26,   188,
-   119,    26,   121,   188,   188,    64,    26,    26,   196,   127,
-    26,    29,    29,    26,    52,    29,    51,    29,    50,   196,
-   132,    26,   133,   196,   196,   171,   192,   196,   135,   171,
-   171,    36,   196,   196,   136,   138,   196,   213,   213,   196,
-    33,   213,   139,   213,    29,   140,   183,   196,    29,    29,
-   183,   183,    29,    28,    28,    28,    28,    29,   316,   213,
-   142,    29,   306,   306,    16,   328,   306,   329,   306,   331,
-   213,   332,    29,   333,   213,   213,   338,   175,   213,    35,
-    35,    35,    35,   213,   213,   173,   172,   213,   197,   197,
-   213,     9,   197,   353,   197,   306,     8,   357,   213,   306,
-   306,   144,   368,   306,   157,   370,   299,   299,   306,     3,
-   197,     2,   306,   299,    34,    34,    34,    34,   153,   154,
-   nil,   197,   nil,   306,   nil,   197,   197,   nil,   nil,   197,
-     4,     4,     4,     4,   197,   197,    39,    39,   197,   299,
-    39,   197,    39,   299,   299,   nil,   nil,   299,   nil,   197,
-   nil,   nil,   299,   nil,   nil,   nil,   299,   nil,    39,   nil,
-   nil,   nil,   206,   206,   nil,   nil,   206,   299,   206,    39,
-   nil,   nil,   nil,    39,    39,   nil,   nil,    39,   nil,   nil,
-   nil,   nil,    39,    39,   206,   nil,    39,   nil,   nil,    39,
-   nil,   nil,    46,    46,   nil,   206,    46,    39,    46,   206,
-   206,   nil,   nil,   206,   nil,   nil,   nil,   nil,   206,   206,
-   nil,   nil,   206,   nil,    46,   206,   nil,   nil,    47,    47,
-   nil,   nil,    47,   206,    47,    46,   nil,   nil,   nil,    46,
-    46,   nil,   nil,    46,   nil,   nil,   270,   270,    46,    46,
-    47,   nil,    46,    48,    48,    46,   nil,    48,   nil,    48,
-   nil,    47,   nil,    46,   nil,    47,    47,    49,    49,    47,
-   nil,    49,   nil,   nil,    47,    47,   nil,   nil,    47,   270,
-   nil,    47,   nil,   270,   270,   nil,    48,   270,   nil,    47,
-    48,    48,   270,   nil,    48,   nil,   270,   nil,   nil,    48,
-    49,   nil,   nil,    48,    49,    49,   nil,   270,    49,   nil,
-   nil,   nil,   nil,    49,    48,   203,   203,    49,   nil,   203,
-   nil,   203,   294,   294,   294,   294,   294,   294,    49,   294,
-   294,   nil,   284,   284,   284,   284,   294,   203,   nil,   284,
-   284,   209,   209,   nil,   nil,   209,   284,   209,   203,   nil,
-   nil,   nil,   203,   203,   nil,   nil,   203,   nil,   nil,   nil,
-   nil,   203,   203,   209,   nil,   203,   nil,   nil,   203,   nil,
-   nil,   210,   210,   nil,   209,   210,   203,   210,   209,   209,
-   nil,   nil,   209,   nil,   nil,   nil,   nil,   209,   209,   nil,
-   nil,   209,   nil,   210,   209,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   209,   nil,   210,   nil,   nil,   nil,   210,   210,
-   102,   102,   210,   nil,   102,   102,   102,   210,   210,   nil,
-   nil,   210,   nil,   nil,   210,   nil,   nil,   nil,   nil,    63,
-    63,   nil,   210,    63,   nil,    63,   202,   202,   nil,   nil,
-   202,   nil,   202,   102,   nil,   nil,   nil,   102,   102,   nil,
-   nil,   102,   nil,   nil,   nil,   nil,   102,   nil,   202,   nil,
-   102,   nil,    63,   nil,   nil,   nil,    63,    63,   nil,   202,
-    63,   102,   nil,   202,   202,    63,   nil,   202,   nil,    63,
-   nil,   nil,   202,   202,   nil,   nil,   202,   100,   100,   202,
-    63,   100,   nil,   100,   nil,   nil,   nil,   202,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   277,   277,   nil,   100,
-   277,   nil,   277,   198,   198,   nil,   nil,   198,   nil,   198,
-   100,   nil,   nil,   nil,   100,   100,   nil,   nil,   100,   nil,
-   nil,   nil,   nil,   100,   100,   198,   nil,   100,   nil,   277,
-   100,   nil,   nil,   277,   277,   nil,   198,   277,   100,   nil,
-   198,   198,   277,   nil,   198,   nil,   277,   nil,   nil,   198,
-   198,   nil,   nil,   198,   256,   256,   198,   277,   256,   nil,
-   256,   nil,   nil,   nil,   198,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   254,   254,   nil,   256,   nil,   nil,    74,
-    74,   nil,   nil,   nil,   nil,   nil,   nil,   256,   nil,   nil,
-   nil,   256,   256,   nil,   nil,   256,   254,   nil,   nil,   nil,
-   256,   256,    74,   nil,   256,   nil,   254,   256,   nil,   nil,
-   254,   254,    74,   nil,   254,   256,    74,    74,   254,   254,
-    74,   nil,   nil,   254,    74,    74,    75,    75,   nil,    74,
-    75,   nil,    75,   nil,   254,   nil,   286,   286,   286,   286,
-    74,   nil,   nil,   286,   286,   248,   248,   nil,    75,   248,
-   286,   248,   245,   245,   nil,   nil,   nil,   nil,   nil,    75,
-   nil,   nil,   nil,    75,    75,   nil,   nil,    75,   nil,   nil,
-   244,   244,    75,    75,   nil,   nil,    75,   nil,   248,    75,
-   nil,   nil,   248,   248,   nil,   245,   248,    75,   nil,   245,
-   245,   248,   nil,   245,   nil,   248,   nil,   nil,   245,   nil,
-   nil,   nil,   245,   244,   nil,   nil,   248,   244,   244,   nil,
-   nil,   244,   nil,   245,   nil,   nil,   244,    97,    97,   nil,
-   244,    97,   nil,    97,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   244,   nil,   nil,   nil,   nil,    82,    82,   nil,    97,
-    82,   nil,    82,   199,   199,   nil,   nil,   199,   nil,   199,
-    97,   nil,   nil,   nil,    97,    97,   nil,   nil,    97,   nil,
-   nil,   nil,   nil,    97,    97,   214,   214,    97,   nil,    82,
-    97,   nil,   nil,    82,    82,   nil,   199,    82,    97,   nil,
-   199,   199,    82,   nil,   199,   nil,    82,   nil,   nil,   199,
-   230,   230,   nil,   199,   230,   nil,   230,    82,   214,   nil,
-   nil,   nil,   214,   214,   199,   nil,   214,   nil,   200,   200,
-   nil,   214,   200,   nil,   200,   214,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   230,   nil,   nil,   214,   230,   230,   nil,
-   200,   230,   nil,   228,   228,   nil,   230,   228,   nil,   228,
-   230,   200,   nil,   225,   225,   200,   200,   225,   nil,   200,
-   nil,   230,   nil,   nil,   200,   200,   nil,   nil,   200,   nil,
-   nil,   200,   nil,   nil,   nil,   nil,   228,   nil,   nil,   200,
-   228,   228,   nil,   nil,   228,   nil,   225,   nil,   nil,   228,
-   225,   225,   nil,   228,   225,   nil,   201,   201,   nil,   225,
-   201,   nil,   201,   225,   228,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   225,   308,   308,   nil,   201,   308,
-   nil,   308,    94,    94,   nil,   nil,    94,   nil,    94,   201,
-   nil,   nil,   nil,   201,   201,   nil,   nil,   201,   nil,   nil,
-   nil,   nil,   201,   201,    94,   nil,   201,   nil,   308,   201,
-   nil,   nil,   308,   308,   nil,    94,   308,   201,   nil,    94,
-    94,   308,   nil,    94,   nil,   308,   nil,   nil,    94,    94,
-   111,   nil,    94,   nil,   nil,    94,   308,   nil,   nil,   111,
-   111,   nil,   nil,    94,   nil,   nil,   nil,   nil,   111,   111,
-   111,   111,   nil,   nil,   186,   186,   nil,   nil,   nil,   nil,
-   nil,   nil,   186,   186,   186,   186,   186,   nil,   nil,   nil,
-   nil,   nil,   111,   111,   nil,   nil,   111,   111,   111,   111,
-   111,   111,   nil,   111,   111,   nil,   nil,   186,   186,   nil,
-   111,   186,   186,   186,   186,   186,   186,   nil,   186,   186,
-   288,   288,   nil,   nil,   nil,   186,   nil,   nil,   nil,   288,
-   288,   288,   288,   nil,   nil,   131,   131,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   131,   131,   131,   131,   nil,   nil,
-   nil,   nil,   nil,   nil,   288,   nil,   nil,   288,   288,   288,
-   288,   288,   288,   nil,   288,   288,   nil,   nil,   131,   131,
-   nil,   288,   131,   131,   131,   131,   131,   131,   nil,   131,
-   131,   130,   130,   nil,   nil,   nil,   131,   nil,   nil,   nil,
-   130,   130,   130,   130,   nil,   nil,   292,   292,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   292,   292,   292,   292,   nil,
-   nil,   nil,   nil,   nil,   130,   130,   nil,   nil,   130,   130,
-   130,   130,   130,   130,   nil,   130,   130,   nil,   nil,   nil,
-   nil,   nil,   130,   292,   292,   292,   292,   292,   292,   nil,
-   292,   292,   124,   124,   nil,   nil,   nil,   292,   nil,   nil,
-   nil,   124,   124,   124,   124,   nil,   nil,   nil,   293,   nil,
-   285,   285,   285,   285,   285,   285,   293,   285,   285,   nil,
-   nil,   nil,   nil,   nil,   285,   124,   124,   289,   nil,   124,
-   124,   124,   124,   124,   124,   289,   124,   124,   nil,   nil,
-   nil,   nil,   287,   124,   293,   293,   293,   293,   293,   293,
-   287,   293,   293,   nil,   nil,   nil,   nil,   nil,   293,   nil,
-   nil,   290,   nil,   289,   289,   289,   289,   289,   289,   290,
-   289,   289,   nil,   nil,   nil,   nil,   nil,   289,   287,   287,
-   287,   287,   287,   287,   nil,   287,   287,   nil,   nil,   381,
-   nil,   nil,   287,   nil,   nil,   nil,   nil,   290,   290,   290,
-   290,   290,   290,   nil,   290,   290,   nil,   nil,   212,   nil,
-   381,   290,   381,   381,   nil,   381,   381,   nil,   381,   nil,
-   381,   nil,   381,   nil,   381,   nil,   nil,   381,   381,   212,
-   217,   212,   212,   nil,   212,   212,   nil,   212,   nil,   212,
-   nil,   212,   nil,   212,   nil,   nil,   212,   212,   nil,   379,
-   nil,   217,   nil,   217,   217,   nil,   217,   217,   nil,   217,
-   nil,   217,   nil,   217,   nil,   217,   nil,   nil,   217,   217,
-   379,   237,   379,   379,   nil,   379,   379,   nil,   379,   nil,
-   379,   nil,   379,   nil,   379,   nil,   nil,   379,   379,   nil,
-   375,   nil,   237,   nil,   237,   237,   nil,   237,   237,   nil,
-   237,   nil,   237,   nil,   237,   nil,   237,   nil,   nil,   237,
-   237,   375,   373,   375,   375,   nil,   375,   375,   nil,   375,
-   nil,   375,   nil,   375,   nil,   375,   nil,   nil,   375,   375,
-   nil,   363,   nil,   373,   nil,   373,   373,   nil,   373,   373,
-   nil,   373,   nil,   373,   nil,   373,   nil,   373,   nil,   nil,
-   373,   373,   363,   296,   363,   363,   nil,   363,   363,   nil,
-   363,   nil,   363,   nil,   363,   nil,   363,   nil,   nil,   363,
-   363,   nil,   304,   nil,   296,   nil,   296,   296,   nil,   296,
-   296,   nil,   296,   nil,   296,   nil,   296,   nil,   296,   nil,
-   nil,   296,   296,   304,   324,   304,   304,   nil,   304,   304,
-   nil,   304,   nil,   304,   nil,   304,   nil,   304,   nil,   nil,
-   304,   304,   nil,   320,   nil,   324,   nil,   324,   324,   nil,
-   324,   324,   nil,   324,   nil,   324,   nil,   324,   nil,   324,
-   nil,   nil,   324,   324,   320,   nil,   320,   320,   nil,   320,
-   320,   nil,   320,   nil,   320,   nil,   320,   nil,   320,   nil,
-   nil,   320,   320,    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 ]
+   183,   183,   153,    22,   246,    22,    55,   157,    87,   166,
+   235,   303,    88,   183,   183,   144,    12,   166,    22,   303,
+    12,    86,   183,   183,   183,   183,    87,    12,   144,   246,
+   246,    55,    17,   175,   200,   200,   107,   107,   200,    85,
+   200,   218,    22,   107,   153,   157,   183,   183,   157,    82,
+   183,   183,   183,   183,   183,   183,   200,   183,   183,   179,
+   179,   175,   175,   179,   183,   179,    62,   200,   157,   221,
+    17,   200,   200,    17,   107,   200,   159,    62,   371,   371,
+   200,   200,    62,   164,   200,   205,   205,   200,   222,   205,
+   242,   205,   179,    17,   164,   200,   179,   179,   223,   164,
+   179,   242,    91,   358,   358,   179,   242,   205,   181,   179,
+   299,   371,   224,   299,   159,   371,   371,   159,   205,   371,
+   179,   181,   205,   205,   371,   224,   205,   352,   371,   275,
+   352,   205,   205,   346,   346,   205,   358,   159,   205,   371,
+   358,   358,   275,   227,   358,    81,   205,    65,    30,   358,
+   354,   354,    30,   358,   354,   229,   354,   230,    65,    30,
+    30,   280,   280,    65,   358,    79,   232,    43,   280,   344,
+   344,    43,   354,   344,    78,   344,   206,   206,    43,    43,
+   206,   121,   206,   354,   123,   121,   234,   354,   354,   123,
+   214,   354,   121,   121,   184,   184,   354,   354,   206,   280,
+   354,   237,   344,   354,   236,   237,   344,   344,   237,   206,
+   344,   354,   237,   206,   206,   344,   186,   206,    92,   344,
+   186,   186,   206,   206,    23,    23,   206,   184,    23,   206,
+   344,   184,   184,   198,     1,   184,   198,   206,     1,   184,
+   184,     7,   185,   185,   184,     1,    23,   184,   185,   311,
+     7,     7,   284,   284,   311,   184,    72,    23,   210,   284,
+    96,    23,    23,    71,    68,    23,    67,    26,    26,    23,
+    23,    26,   253,    26,    23,   185,   255,    23,   256,   185,
+   185,    66,   161,   185,    97,    23,   161,   161,   185,    26,
+   282,   282,   185,   310,   310,   282,   282,   310,   267,   310,
+    26,    64,   282,   185,    26,    26,   300,   300,    26,   102,
+   277,   300,   300,    26,    26,    29,    29,    26,   300,    29,
+    26,    29,   187,   187,   104,   106,   310,   108,    26,   109,
+   310,   310,   110,   115,   310,   116,   308,   308,   195,   310,
+   308,   120,   308,   310,    52,   187,   191,    51,    29,    50,
+   191,   191,    29,    29,   310,   187,    29,   301,   301,   187,
+   187,    29,   122,   187,   301,    29,   172,   187,   187,   308,
+   172,   172,   187,   308,   308,   187,    29,   308,   283,   283,
+    36,   128,   308,   187,   133,   283,   308,   103,   103,   178,
+   301,   103,   103,   103,   301,   301,   176,   308,   301,     4,
+     4,     4,     4,   301,   174,   199,   199,   301,   173,   199,
+    33,   199,    35,    35,    35,    35,   134,   158,   301,   136,
+   103,   318,   155,    16,   103,   103,   330,   199,   103,    34,
+    34,    34,    34,   103,   331,    39,    39,   103,   199,    39,
+   333,    39,   199,   199,   334,   335,   199,   340,   103,   154,
+   137,   199,   199,   145,     9,   199,   355,    39,   199,     8,
+   359,   207,   207,   143,   370,   207,   199,   207,    39,   141,
+   372,     3,    39,    39,     2,   140,    39,    28,    28,    28,
+    28,    39,    39,   207,   139,    39,   nil,   nil,    39,   nil,
+   nil,    46,    46,   nil,   207,    46,    39,    46,   207,   207,
+   nil,   nil,   207,   nil,   nil,   nil,   nil,   207,   207,   nil,
+   nil,   207,   nil,    46,   207,   nil,   nil,    47,    47,   nil,
+   nil,    47,   207,    47,    46,   nil,   nil,   nil,    46,    46,
+   nil,   nil,    46,   nil,   nil,   272,   272,    46,    46,    47,
+   nil,    46,    48,    48,    46,   nil,    48,   nil,    48,   nil,
+    47,   nil,    46,   nil,    47,    47,    49,    49,    47,   nil,
+    49,   nil,   nil,    47,    47,   nil,   nil,    47,   272,   nil,
+    47,   nil,   272,   272,   nil,    48,   272,   nil,    47,    48,
+    48,   272,   nil,    48,   nil,   272,   nil,   nil,    48,    49,
+   nil,   nil,    48,    49,    49,   nil,   272,    49,   nil,   nil,
+   nil,   nil,    49,    48,   101,   101,    49,   nil,   101,   nil,
+   101,   286,   286,   286,   286,   nil,   nil,    49,   286,   286,
+   nil,   288,   288,   288,   288,   286,   101,   nil,   288,   288,
+    98,    98,   nil,   nil,    98,   288,    98,   101,   nil,   nil,
+   nil,   101,   101,   nil,   nil,   101,   nil,   nil,   nil,   nil,
+   101,   101,    98,   nil,   101,   nil,   nil,   101,   nil,   nil,
+   201,   201,   nil,    98,   201,   101,   201,    98,    98,   nil,
+   nil,    98,   nil,   nil,   nil,   nil,    98,    98,   nil,   nil,
+    98,   nil,   201,    98,   nil,   nil,   279,   279,   nil,   nil,
+   279,    98,   279,   201,   nil,   nil,   nil,   201,   201,   nil,
+   nil,   201,   nil,   nil,   nil,   nil,   201,   201,    63,    63,
+   201,   nil,    63,   201,    63,   nil,   nil,   nil,   nil,   279,
+   nil,   201,   nil,   279,   279,   nil,   nil,   279,   nil,   259,
+   259,   nil,   279,   259,   nil,   259,   279,   nil,   nil,   nil,
+   nil,    63,   nil,   nil,   nil,    63,    63,   279,   nil,    63,
+   nil,   259,   nil,   nil,    63,   257,   257,   nil,    63,   nil,
+   nil,   nil,   259,   nil,   nil,   nil,   259,   259,   nil,    63,
+   259,   nil,   nil,   248,   248,   259,   259,   nil,   257,   259,
+   251,   251,   259,   nil,   251,   nil,   251,   nil,   257,   nil,
+   259,   nil,   257,   257,    69,    69,   257,   nil,   nil,   nil,
+   257,   257,   nil,   nil,   nil,   257,   248,   nil,   257,   nil,
+   248,   248,   nil,   251,   248,   nil,   257,   251,   251,   248,
+   nil,   251,   nil,   248,   247,   247,   251,    69,   nil,   nil,
+   251,    69,    69,   nil,   248,    69,   nil,   nil,   nil,    69,
+    69,   251,   204,   204,    69,   nil,   204,    69,   204,   nil,
+   nil,   nil,   nil,   nil,   nil,    69,   nil,   247,   nil,   nil,
+   nil,   247,   247,   nil,   204,   247,   nil,    75,    75,   nil,
+   247,   nil,   nil,   nil,   247,   204,   nil,   nil,   nil,   204,
+   204,   nil,   nil,   204,   nil,   247,   nil,   nil,   204,   204,
+    75,   nil,   204,    76,    76,   204,   nil,    76,   nil,    76,
+    75,   nil,   nil,   204,    75,    75,   nil,   nil,    75,   nil,
+   nil,   nil,    75,    75,   nil,    76,   nil,    75,   233,   233,
+    75,   nil,   233,   nil,   233,   nil,    76,   nil,    75,   nil,
+    76,    76,   231,   231,    76,   nil,   231,   nil,   231,    76,
+    76,   nil,   nil,    76,   nil,   nil,    76,   nil,   228,   228,
+   nil,   233,   228,   nil,    76,   233,   233,   nil,   nil,   233,
+   nil,   nil,   nil,   nil,   233,   231,   nil,   nil,   233,   231,
+   231,   nil,   nil,   231,   nil,   217,   217,   nil,   231,   233,
+   nil,   228,   231,   nil,   nil,   228,   228,   nil,   nil,   228,
+   nil,   202,   202,   231,   228,   202,   nil,   202,   228,   nil,
+   nil,   208,   208,   nil,   nil,   208,   nil,   208,   217,   228,
+   nil,   nil,   217,   217,   nil,   nil,   217,   nil,   nil,   nil,
+   nil,   217,   nil,   208,   202,   217,   nil,   nil,   202,   202,
+   nil,   nil,   202,   nil,   208,   nil,   217,   202,   208,   208,
+   nil,   202,   208,   nil,   nil,   nil,   nil,   208,   208,   216,
+   216,   208,   202,   216,   208,   216,   287,   287,   287,   287,
+   287,   287,   208,   287,   287,   nil,   nil,   nil,   nil,   nil,
+   287,   216,   nil,   nil,   nil,   203,   203,   nil,   nil,   203,
+   nil,   203,   216,   nil,   nil,   nil,   216,   216,   nil,   nil,
+   216,   nil,   nil,   nil,   nil,   216,   216,   203,   nil,   216,
+   nil,   nil,   216,   nil,   nil,   213,   213,   nil,   203,   213,
+   216,   213,   203,   203,   nil,   nil,   203,   nil,   nil,   nil,
+   nil,   203,   203,   nil,   nil,   203,   nil,   213,   203,   nil,
+   nil,   212,   212,   nil,   nil,   212,   203,   212,   213,   nil,
+   nil,   nil,   213,   213,   nil,   nil,   213,   nil,   nil,   nil,
+   nil,   213,   213,   212,   nil,   213,   nil,   nil,   213,   nil,
+   nil,   211,   211,   nil,   212,   211,   213,   211,   212,   212,
+   nil,   nil,   212,   nil,   nil,   nil,   nil,   212,   212,   nil,
+   nil,   212,   nil,   211,   212,   nil,   nil,    95,    95,   nil,
+   nil,    95,   212,    95,   211,   nil,   nil,   nil,   211,   211,
+   nil,   nil,   211,   nil,   nil,   nil,   nil,   211,   211,    95,
+   nil,   211,   nil,   nil,   211,   nil,   nil,   209,   209,   nil,
+    95,   209,   211,   209,    95,    95,   nil,   nil,    95,   nil,
+   nil,   nil,   nil,    95,    95,   nil,   nil,    95,   nil,   209,
+    95,   nil,   nil,    83,    83,   nil,   nil,    83,    95,    83,
+   209,   nil,   nil,   nil,   209,   209,   nil,   nil,   209,   nil,
+   nil,   nil,   nil,   209,   209,   nil,   nil,   209,   nil,   nil,
+   209,   nil,   nil,   nil,   nil,   nil,    83,   112,   209,   nil,
+    83,    83,   nil,   nil,    83,   nil,   112,   112,   nil,    83,
+   nil,   nil,   nil,    83,   nil,   112,   112,   112,   112,   nil,
+   nil,   189,   189,   nil,    83,   nil,   nil,   nil,   nil,   189,
+   189,   189,   189,   189,   nil,   nil,   nil,   nil,   nil,   112,
+   112,   nil,   nil,   112,   112,   112,   112,   112,   112,   nil,
+   112,   112,   nil,   nil,   189,   189,   nil,   112,   189,   189,
+   189,   189,   189,   189,   nil,   189,   189,   294,   294,   nil,
+   nil,   nil,   189,   nil,   nil,   nil,   294,   294,   294,   294,
+   nil,   nil,   290,   290,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   290,   290,   290,   290,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   294,   294,   294,   294,   294,   294,
+   nil,   294,   294,   nil,   nil,   nil,   290,   nil,   294,   290,
+   290,   290,   290,   290,   290,   nil,   290,   290,   125,   125,
+   nil,   nil,   nil,   290,   nil,   nil,   nil,   125,   125,   125,
+   125,   nil,   nil,   131,   131,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   131,   131,   131,   131,   nil,   nil,   nil,   nil,
+   nil,   125,   125,   nil,   nil,   125,   125,   125,   125,   125,
+   125,   nil,   125,   125,   nil,   nil,   131,   131,   nil,   125,
+   131,   131,   131,   131,   131,   131,   nil,   131,   131,   132,
+   132,   nil,   nil,   nil,   131,   nil,   nil,   nil,   132,   132,
+   132,   132,   nil,   nil,   nil,   289,   nil,   296,   296,   296,
+   296,   296,   296,   289,   296,   296,   nil,   nil,   nil,   nil,
+   nil,   296,   132,   132,   292,   nil,   132,   132,   132,   132,
+   132,   132,   292,   132,   132,   nil,   nil,   nil,   nil,   291,
+   132,   289,   289,   289,   289,   289,   289,   291,   289,   289,
+   nil,   nil,   nil,   nil,   nil,   289,   nil,   nil,   295,   nil,
+   292,   292,   292,   292,   292,   292,   295,   292,   292,   nil,
+   nil,   nil,   nil,   nil,   292,   291,   291,   291,   291,   291,
+   291,   nil,   291,   291,   nil,   nil,   298,   nil,   nil,   291,
+   nil,   nil,   nil,   nil,   295,   295,   295,   295,   295,   295,
+   nil,   295,   295,   nil,   nil,   306,   nil,   298,   295,   298,
+   298,   nil,   298,   298,   nil,   298,   nil,   298,   nil,   298,
+   nil,   298,   nil,   nil,   298,   298,   306,   215,   306,   306,
+   nil,   306,   306,   nil,   306,   nil,   306,   nil,   306,   nil,
+   306,   nil,   nil,   306,   306,   nil,   322,   nil,   215,   nil,
+   215,   215,   nil,   215,   215,   nil,   215,   nil,   215,   nil,
+   215,   nil,   215,   nil,   nil,   215,   215,   322,   326,   322,
+   322,   nil,   322,   322,   nil,   322,   nil,   322,   nil,   322,
+   nil,   322,   nil,   nil,   322,   322,   nil,   365,   nil,   326,
+   nil,   326,   326,   nil,   326,   326,   nil,   326,   nil,   326,
+   nil,   326,   nil,   326,   nil,   nil,   326,   326,   365,   375,
+   365,   365,   nil,   365,   365,   nil,   365,   nil,   365,   nil,
+   365,   nil,   365,   nil,   nil,   365,   365,   nil,   220,   nil,
+   375,   nil,   375,   375,   nil,   375,   375,   nil,   375,   nil,
+   375,   nil,   375,   nil,   375,   nil,   nil,   375,   375,   220,
+   377,   220,   220,   nil,   220,   220,   nil,   220,   nil,   220,
+   nil,   220,   nil,   220,   nil,   nil,   220,   220,   nil,   381,
+   nil,   377,   nil,   377,   377,   nil,   377,   377,   nil,   377,
+   nil,   377,   nil,   377,   nil,   377,   nil,   nil,   377,   377,
+   381,   240,   381,   381,   nil,   381,   381,   nil,   381,   nil,
+   381,   nil,   381,   nil,   381,   nil,   nil,   381,   381,   nil,
+   383,   nil,   240,   nil,   240,   240,   nil,   240,   240,   nil,
+   240,   nil,   240,   nil,   240,   nil,   240,   nil,   nil,   240,
+   240,   383,   nil,   383,   383,   nil,   383,   383,   nil,   383,
+   nil,   383,   nil,   383,   nil,   383,   nil,   nil,   383,   383,
+    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 ]
 
 racc_action_pointer = [
-  1832,   210,   426,   395,   396,   nil,   nil,   267,   418,   413,
-   nil,   nil,   -20,   nil,   nil,   nil,   394,     5,   nil,  1813,
-   nil,   nil,    -3,   263,   nil,   nil,   288,   nil,   319,   339,
-   188,   nil,   nil,   368,   380,   345,   337,   nil,   nil,   464,
-   nil,   nil,   nil,   138,   nil,   nil,   520,   546,   571,   585,
-   308,   322,   344,   nil,   nil,    -6,   nil,   nil,   nil,   nil,
-   nil,   nil,    42,   747,   295,    66,   291,   274,   265,   nil,
-   269,   264,   nil,   nil,   907,   954,   nil,   240,   243,   nil,
-   221,   -13,  1064,   nil,   200,   165,     2,   129,   nil,   nil,
-   104,    18,   nil,   nil,  1240,    -2,     6,  1045,   nil,   nil,
-   805,   211,   728,   187,   nil,   208,    34,   270,   282,   284,
-   nil,  1282,   nil,   nil,   313,   316,   nil,   nil,   nil,   318,
-   121,   324,   149,   nil,  1465,   nil,   nil,   333,   nil,   nil,
-  1404,  1358,   343,   329,   nil,   352,   323,   nil,   342,   360,
-   352,   nil,   367,   101,   411,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    -9,   436,   412,   nil,    30,   426,    74,   nil,
-   258,   nil,   nil,   123,   nil,    -7,   nil,   nil,   nil,   nil,
-   nil,   348,   404,   404,    11,   367,    57,   nil,     3,   nil,
-    -4,   101,   190,   369,   216,   nil,  1297,   nil,   322,   nil,
-   nil,   nil,   345,   nil,   nil,   190,   314,   416,   831,  1071,
-  1136,  1214,   754,   633,   237,    83,   490,   238,    32,   659,
-   689,    35,  1589,   365,  1093,    37,   nil,  1611,    34,    44,
-    73,   130,   nil,   nil,    93,  1171,   103,   136,  1161,   119,
-  1118,   133,   172,   200,   231,   nil,   nil,  1652,   nil,    59,
-   nil,   nil,   nil,   -21,   998,   980,   nil,   nil,   973,   nil,
-   249,   nil,   248,   255,   901,   nil,   882,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   270,   nil,   nil,   nil,   nil,   260,
-   564,   nil,   nil,    96,   nil,   288,   nil,   824,   192,   nil,
-   159,   144,   186,   nil,   598,  1446,   912,  1514,  1343,  1499,
-  1533,   nil,  1419,  1480,   588,   nil,  1734,   173,   257,   434,
-   nil,    -3,   nil,   nil,  1753,   nil,   390,   nil,  1233,   125,
-   nil,   nil,   nil,   nil,   nil,   nil,   376,   nil,   nil,   nil,
-  1794,   nil,   nil,   nil,  1775,   nil,   nil,   nil,   372,   374,
-   nil,   376,   378,   380,   nil,   nil,   nil,   nil,   397,   nil,
-   nil,   nil,   174,   nil,   122,   nil,   nil,   nil,   nil,   nil,
-    79,   nil,   148,   415,   nil,   nil,   127,   419,   nil,   nil,
-   nil,   nil,   nil,  1712,   nil,   nil,   nil,   nil,   423,    76,
-   426,   nil,   nil,  1693,   nil,  1671,   nil,   nil,   nil,  1630,
-   nil,  1570,   nil,   nil,   nil ]
+  1819,   198,   459,   427,   335,   nil,   nil,   235,   451,   446,
+   nil,   nil,   -20,   nil,   nil,   nil,   423,    30,   nil,  1800,
+   nil,   nil,    -3,   222,   nil,   nil,   265,   nil,   413,   313,
+   112,   nil,   nil,   408,   365,   348,   356,   nil,   nil,   433,
+   nil,   nil,   nil,   131,   nil,   nil,   489,   515,   540,   554,
+   309,   323,   344,   nil,   nil,    -6,   nil,   nil,   nil,   nil,
+   nil,   nil,    42,   706,   261,   123,   273,   243,   241,   792,
+   nil,   257,   250,   nil,   nil,   865,   891,   nil,   162,   159,
+   nil,   122,    26,  1241,   nil,    16,    15,     2,   -11,   nil,
+   nil,    79,   195,   nil,   nil,  1185,   237,   278,   628,   nil,
+   nil,   602,   286,   385,   301,   nil,   302,    34,   304,   306,
+   309,   nil,  1269,   nil,   nil,   325,   327,   nil,   nil,   nil,
+   329,   145,   354,   149,   nil,  1391,   nil,   nil,   375,   nil,
+   nil,  1406,  1452,   377,   393,   nil,   413,   409,   nil,   461,
+   463,   446,   nil,   440,     4,   433,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    -9,   437,   385,   nil,     5,   409,    74,
+   nil,   236,   nil,   nil,    59,   nil,    -9,   nil,   nil,   nil,
+   nil,   nil,   359,   396,   393,    11,   356,   nil,   365,    57,
+   nil,    96,   nil,    -4,   192,   240,   209,   320,   nil,  1284,
+   nil,   339,   nil,   nil,   nil,   327,   nil,   nil,   224,   403,
+    32,   658,   989,  1073,   840,    83,   174,   459,   999,  1215,
+   195,  1159,  1129,  1103,   127,  1598,  1047,   973,    39,   nil,
+  1699,    54,    63,    83,   100,   nil,   nil,   134,   946,   115,
+   148,   930,   126,   916,   146,     1,   196,   165,   nil,   nil,
+  1762,   nil,    66,   nil,   nil,   nil,   -21,   822,   771,   nil,
+   nil,   778,   nil,   263,   nil,   264,   271,   753,   nil,   727,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   287,   nil,   nil,
+   nil,   nil,   533,   nil,   nil,   117,   nil,   303,   nil,   684,
+   159,   nil,   234,   317,   191,   nil,   557,  1002,   567,  1467,
+  1345,  1501,  1486,   nil,  1330,  1520,  1433,   nil,  1557,    79,
+   250,   355,   nil,    -1,   nil,   nil,  1576,   nil,   334,   nil,
+   291,   214,   nil,   nil,   nil,   nil,   nil,   nil,   409,   nil,
+   nil,   nil,  1617,   nil,   nil,   nil,  1639,   nil,   nil,   nil,
+   403,   411,   nil,   417,   421,   422,   nil,   nil,   nil,   nil,
+   438,   nil,   nil,   nil,   167,   nil,   122,   nil,   nil,   nil,
+   nil,   nil,    96,   nil,   148,   448,   nil,   nil,   101,   452,
+   nil,   nil,   nil,   nil,   nil,  1658,   nil,   nil,   nil,   nil,
+   455,    76,   461,   nil,   nil,  1680,   nil,  1721,   nil,   nil,
+   nil,  1740,   nil,  1781,   nil,   nil,   nil ]
 
 racc_action_default = [
-  -197,  -234,  -234,   -50,  -234,    -8,    -9,  -234,  -234,   -22,
-   -10,  -188,  -189,   -11,  -186,   -12,  -234,  -234,   -13,    -1,
-   -14,    -2,  -234,  -187,   -15,    -3,  -234,   -16,    -5,  -234,
-  -234,   -17,    -6,  -234,   -18,    -7,  -197,  -189,  -187,  -234,
-   -51,   -26,   -27,  -234,   -24,   -25,  -234,  -234,  -234,   -85,
-   -92,  -197,  -234,  -196,  -194,  -197,  -190,  -192,  -193,  -222,
-  -195,    -4,  -197,  -234,   -85,  -197,   -53,  -232,   -42,  -175,
-   -43,  -214,  -117,   -33,  -234,  -234,   -44,   -31,   -74,   -32,
-  -234,   -36,  -234,  -122,   -37,  -234,   -73,   -38,  -172,   -72,
-   -39,   -40,  -174,   -41,  -234,  -103,  -111,  -234,  -132,  -112,
-  -234,  -104,  -234,  -108,  -110,  -105,  -234,  -114,  -106,  -113,
-  -109,  -234,  -125,  -107,  -234,  -234,   -49,  -176,  -177,  -179,
-  -234,  -234,  -198,  -199,   -83,   -19,   -22,  -187,   -21,   -23,
-   -82,   -84,  -234,   -75,   -86,   -81,   -70,   -74,   -76,  -220,
-   -79,   -68,   -77,   -73,  -234,  -171,  -170,   -80,   -78,   -90,
-   -91,   -93,  -234,  -220,  -197,   385,  -234,  -234,  -234,  -208,
-  -234,   -57,  -214,  -197,   -59,  -234,   -66,   -65,   -56,   -73,
-   -95,  -234,  -220,  -234,  -234,   -92,  -234,   -30,  -234,  -118,
-  -234,  -234,  -234,  -234,  -234,  -142,  -234,  -149,  -234,  -217,
-  -230,  -226,  -234,  -229,  -225,  -234,  -234,  -234,  -234,  -234,
-  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,
-  -234,  -234,  -234,  -234,  -234,  -234,   -20,  -234,  -207,  -234,
-  -205,  -234,  -202,  -231,  -234,   -71,  -221,  -234,  -234,   -85,
-  -234,  -221,  -234,  -234,  -234,  -210,  -191,  -234,  -209,  -234,
-   -54,   -62,   -61,  -234,  -234,  -234,  -218,  -219,  -234,  -124,
-  -234,   -55,  -220,  -234,  -234,   -28,  -234,  -120,  -119,   -35,
-   -34,  -173,  -168,  -166,  -234,  -169,  -160,  -167,  -161,   -73,
-  -234,  -123,  -116,  -234,  -152,  -219,  -215,  -234,  -234,  -223,
-  -137,  -139,  -138,  -133,  -140,  -144,  -141,  -146,  -151,  -148,
-  -145,  -134,  -150,  -147,  -143,  -135,  -234,  -128,  -136,  -234,
-  -154,  -234,  -158,  -178,  -234,  -181,  -234,  -200,  -234,  -234,
-  -201,   -45,   -69,   -87,   -46,   -88,  -220,   -89,   -94,   -48,
-  -234,  -212,  -211,  -213,  -234,  -185,   -58,   -60,   -97,   -98,
-   -63,  -102,   -99,  -100,  -101,   -64,   -96,   -47,  -234,  -233,
-   -29,  -121,  -234,  -163,  -220,  -115,  -216,  -228,  -227,  -224,
-  -128,  -127,  -234,  -234,  -155,  -153,  -234,  -234,  -180,  -206,
-  -204,  -203,   -67,  -234,  -183,  -184,   -52,  -165,  -219,  -234,
-  -234,  -126,  -129,  -234,  -159,  -234,  -182,  -164,  -162,  -234,
-  -131,  -234,  -157,  -130,  -156 ]
+  -198,  -235,  -235,   -51,  -235,    -8,    -9,  -235,  -235,   -22,
+   -10,  -189,  -190,   -11,  -187,   -12,  -235,  -235,   -13,    -1,
+   -14,    -2,  -235,  -188,   -15,    -3,  -235,   -16,    -5,  -235,
+  -235,   -17,    -6,  -235,   -18,    -7,  -198,  -190,  -188,  -235,
+   -52,   -26,   -27,  -235,   -24,   -25,  -235,  -235,  -235,   -86,
+   -93,  -198,  -235,  -197,  -195,  -198,  -191,  -193,  -194,  -223,
+  -196,    -4,  -198,  -235,   -86,  -198,   -54,  -233,   -43,  -235,
+  -176,   -44,  -215,  -118,   -33,  -235,  -235,   -45,   -31,   -75,
+   -32,  -235,   -36,  -235,  -123,   -38,  -235,   -74,   -39,  -173,
+   -73,   -40,   -41,  -175,   -42,  -235,  -104,  -112,  -235,  -133,
+  -113,  -235,  -105,  -235,  -109,  -111,  -106,  -235,  -115,  -107,
+  -114,  -110,  -235,  -126,  -108,  -235,  -235,   -50,  -177,  -178,
+  -180,  -235,  -235,  -199,  -200,   -84,   -19,   -22,  -188,   -21,
+   -23,   -83,   -85,  -235,   -76,   -87,   -82,   -71,   -75,   -77,
+  -221,   -80,   -69,   -78,   -74,  -235,  -172,  -171,   -81,   -79,
+   -91,   -92,   -94,  -235,  -221,  -198,   387,  -235,  -235,  -235,
+  -209,  -235,   -58,  -215,  -198,   -60,  -235,   -67,   -66,   -57,
+   -74,   -96,  -235,  -221,  -235,  -235,   -93,   -37,   -74,  -235,
+   -30,  -235,  -119,  -235,  -235,  -235,  -235,  -235,  -143,  -235,
+  -150,  -235,  -218,  -231,  -227,  -235,  -230,  -226,  -235,  -235,
+  -235,  -235,  -235,  -235,  -235,  -235,  -235,  -235,  -235,  -235,
+  -235,  -235,  -235,  -235,  -235,  -235,  -235,  -235,  -235,   -20,
+  -235,  -208,  -235,  -206,  -235,  -203,  -232,  -235,   -72,  -222,
+  -235,  -235,   -86,  -235,  -222,  -235,  -235,  -235,  -211,  -192,
+  -235,  -210,  -235,   -55,   -63,   -62,  -235,  -235,  -235,  -219,
+  -220,  -235,  -125,  -235,   -56,  -221,  -235,  -235,   -28,  -235,
+  -121,  -120,   -35,   -34,  -174,  -169,  -167,  -235,  -170,  -161,
+  -168,  -162,  -235,  -124,  -117,  -235,  -153,  -220,  -216,  -235,
+  -235,  -224,  -138,  -140,  -139,  -134,  -141,  -145,  -142,  -147,
+  -152,  -149,  -146,  -135,  -151,  -148,  -144,  -136,  -235,  -129,
+  -137,  -235,  -155,  -235,  -159,  -179,  -235,  -182,  -235,  -201,
+  -235,  -235,  -202,   -46,   -70,   -88,   -47,   -89,  -221,   -90,
+   -95,   -49,  -235,  -213,  -212,  -214,  -235,  -186,   -59,   -61,
+   -98,   -99,   -64,  -103,  -100,  -101,  -102,   -65,   -97,   -48,
+  -235,  -234,   -29,  -122,  -235,  -164,  -221,  -116,  -217,  -229,
+  -228,  -225,  -129,  -128,  -235,  -235,  -156,  -154,  -235,  -235,
+  -181,  -207,  -205,  -204,   -68,  -235,  -184,  -185,   -53,  -166,
+  -220,  -235,  -235,  -127,  -130,  -235,  -160,  -235,  -183,  -165,
+  -163,  -235,  -132,  -235,  -158,  -131,  -157 ]
 
 racc_goto_table = [
-    22,     9,    68,   112,   222,   264,    61,    36,    53,   179,
-   268,   141,    70,    19,     2,    77,   191,   118,    51,    22,
-     9,   139,   116,    21,    73,    91,    56,   147,   133,   149,
-   115,   227,   153,     2,   300,   128,   172,   302,   135,   160,
-   125,   129,   174,    22,   126,   232,   351,    43,   171,   299,
-   260,   146,   369,    68,   121,   330,   335,   258,   266,   123,
-   318,   344,   136,    70,   250,   119,   178,   183,   224,   154,
-   233,    55,   157,    66,   123,    73,    91,   120,   159,   238,
-   219,   221,   326,   322,   195,   190,    16,   188,   nil,   nil,
-   nil,   nil,   nil,   264,   nil,   nil,   nil,   nil,   343,   371,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   128,   nil,   nil,    88,   nil,   216,   129,   354,
-    22,   126,   302,   260,   nil,   nil,   nil,   nil,   nil,   nil,
+    22,     9,    68,   113,    53,   177,    61,    36,   267,   271,
+   225,   194,   230,    19,     2,    78,   154,   119,    51,    22,
+     9,    56,   182,   140,    74,   150,   235,    21,   134,   142,
+   116,   148,   161,     2,   117,   175,   126,   130,   173,    94,
+   304,   353,    43,    22,   127,   253,   122,   129,    68,   302,
+   172,   332,   337,   269,    68,   261,   137,   301,   371,   346,
+   320,   155,   120,   124,   227,   149,   236,   181,    55,   158,
+   186,    66,   121,   241,   222,   224,    74,   328,   124,   324,
+   198,    16,   160,   nil,    82,    94,   193,   nil,   nil,   nil,
+   191,    94,   nil,   nil,   373,   267,   345,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   243,    88,   nil,   nil,   338,   nil,   nil,    53,   nil,    53,
-   nil,   nil,   nil,   nil,   149,   nil,   nil,   252,   nil,   nil,
-    68,   262,   nil,    68,   nil,   236,    88,   nil,   nil,   nil,
-    70,   nil,   nil,    70,   nil,   nil,   273,   235,   nil,   374,
-   nil,   nil,   259,    91,   146,    73,    91,   312,   348,   nil,
-   341,   361,   264,   262,    87,   nil,   261,   377,   291,   303,
-   nil,   316,   295,   147,   133,   313,   nil,   nil,   362,   nil,
-   149,   nil,    22,     9,   135,   nil,   146,    22,     9,   nil,
-   142,   nil,   nil,   328,   328,   296,     2,   146,   261,   nil,
-   304,     2,   nil,    68,   nil,   nil,   370,    22,     9,   nil,
-   321,   nil,   nil,    70,   nil,    87,   146,   146,   nil,   262,
-   324,     2,   nil,   nil,   nil,   259,    91,   190,   261,   261,
-   nil,    81,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   146,    88,    88,   nil,    88,   nil,   262,   nil,
-   nil,   nil,   nil,    61,   261,   nil,   nil,   138,    84,   nil,
-   nil,    61,   nil,   nil,   nil,   nil,    22,     9,   nil,   nil,
-   166,   146,   nil,   166,    22,     9,    88,   nil,   nil,   nil,
-     2,    61,    81,   261,   140,   nil,   nil,    88,     2,   nil,
-    22,     9,   nil,   nil,    22,     9,   nil,   167,   nil,   372,
-   167,   nil,   nil,   363,     2,   262,    88,    88,     2,    84,
-   nil,    90,   nil,   nil,   nil,   nil,    88,   nil,   262,   nil,
-    61,   nil,    87,   267,   nil,    87,   nil,   nil,   146,   nil,
-   nil,   nil,    88,    22,     9,   nil,    61,   145,    61,   nil,
-   261,   146,   nil,    22,     9,    22,     9,     2,   114,    22,
-     9,    22,     9,   261,    93,   267,   379,     2,   381,     2,
-   nil,    88,    90,     2,   nil,     2,   142,   132,   nil,   nil,
-   nil,   166,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   148,   nil,   170,   nil,   nil,   332,   332,   nil,   nil,    81,
-   263,   nil,    81,   nil,   nil,    87,   nil,   nil,   167,   nil,
-   nil,   170,   nil,   nil,   nil,    93,   nil,   nil,   nil,   nil,
-   nil,   267,   nil,   nil,   nil,   nil,    84,   265,    88,    84,
-   nil,   170,   263,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    88,   nil,   138,   nil,   nil,   nil,   nil,   nil,   nil,
-   267,   nil,   nil,   nil,   nil,   nil,   nil,   166,   124,   265,
-   nil,   nil,   329,   329,   nil,   130,   131,   nil,   nil,   nil,
-   140,   nil,    81,   nil,   nil,   nil,   nil,   nil,   nil,    90,
-   145,   nil,    90,   nil,   167,   nil,   nil,   nil,   263,   331,
-   331,   nil,   nil,   nil,   180,   nil,   nil,   nil,   nil,    84,
-   nil,   nil,   nil,   nil,   nil,   253,   nil,   267,   nil,   nil,
-   nil,   nil,   145,   185,   nil,   265,   186,   263,   nil,   187,
-   267,   nil,    93,   145,   nil,    93,   nil,   nil,   283,   nil,
+   139,   nil,   nil,   nil,   219,   130,   nil,   nil,   nil,   nil,
+   263,    22,   127,   167,   304,   129,   167,   340,   nil,   nil,
+    82,   nil,   nil,   356,   246,   nil,    82,   115,   nil,   nil,
+   nil,   nil,   255,   nil,    53,   nil,    53,   nil,   nil,   nil,
+   nil,   150,   nil,   nil,   nil,   nil,   133,   nil,   nil,   nil,
+   nil,   239,   nil,    68,   265,   nil,    68,   nil,   nil,   nil,
+   nil,   171,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   275,
+   nil,   376,   238,   nil,   350,   262,   nil,   nil,    74,   nil,
+   364,   171,   nil,   263,   267,   379,   265,   293,   363,   264,
+    94,   297,   305,    94,   315,   343,   318,   134,   314,   150,
+   148,   171,   nil,   nil,   nil,    22,     9,   nil,   372,   nil,
+    22,     9,   nil,   nil,   nil,   167,   330,   330,   298,     2,
+   nil,   264,   nil,   306,     2,   nil,    68,   nil,   nil,   nil,
+    22,     9,    91,   323,   149,    82,   266,   nil,    82,    89,
+   nil,   265,   nil,   326,     2,   nil,   nil,   nil,   262,   193,
+   nil,   264,   264,   336,   336,    88,   nil,   nil,   146,   nil,
+   nil,   nil,   nil,    94,   nil,    89,   nil,   nil,   266,   nil,
+   265,   nil,   nil,   nil,   nil,    61,   264,   256,    91,   139,
+   nil,   143,   nil,    61,    91,    89,   nil,   nil,    22,     9,
+   nil,    89,   nil,   167,   nil,   nil,    22,     9,   331,   331,
+   285,    88,     2,    61,   nil,   264,   nil,    88,    82,   nil,
+     2,   nil,    22,     9,   nil,   nil,    22,     9,   nil,   nil,
+   nil,   374,   nil,   266,   nil,   365,     2,   265,   nil,   317,
+     2,   319,   nil,   nil,   nil,   nil,   nil,    92,   nil,   nil,
+   265,   nil,    61,   nil,   nil,   nil,   nil,   nil,   nil,   338,
+   nil,   nil,   266,   nil,   nil,    22,     9,   nil,    61,   nil,
+    61,   nil,   264,   147,   nil,    22,     9,    22,     9,     2,
+   nil,    22,     9,    22,     9,   264,   nil,   349,   381,     2,
+   383,     2,   nil,    92,   nil,     2,   nil,     2,    85,    92,
+   nil,   nil,   nil,    91,   146,    71,    91,   nil,   nil,   nil,
+    89,    89,   nil,    89,   nil,   nil,   361,   nil,   362,   266,
+   nil,   nil,   nil,   nil,   141,   nil,    88,   270,   nil,    88,
+   nil,   136,   266,   nil,   nil,   nil,   146,   168,   nil,   nil,
+   168,   nil,   nil,    89,    85,   nil,   nil,   146,   nil,   nil,
+    85,    71,   369,   nil,    89,   nil,   nil,    71,   nil,   270,
+   nil,   nil,   nil,   nil,   nil,   nil,   335,   335,   nil,   nil,
+   143,   nil,   nil,    89,    89,   nil,    91,   nil,   nil,   nil,
+   nil,   nil,   nil,    89,   nil,   nil,   nil,   nil,   125,   334,
+   334,   146,   nil,   nil,   nil,   131,   132,   nil,    89,    88,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    92,   147,
+   nil,    92,   nil,   nil,   270,   nil,   nil,   nil,   nil,   nil,
+   146,   nil,   nil,   nil,   nil,   183,   nil,    89,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   168,
+   nil,   147,   nil,   270,   188,   nil,   nil,   189,   nil,   nil,
+   190,   nil,   147,   nil,   nil,   nil,   nil,   nil,   nil,    85,
+   268,   nil,    85,   nil,   nil,   nil,    71,   nil,   nil,    71,
+   nil,   147,   147,   nil,   nil,   nil,   nil,   146,   nil,   nil,
+   nil,    92,   nil,   nil,    89,   nil,   nil,   nil,   nil,   nil,
+   146,   nil,   268,   nil,   nil,   nil,   147,    89,   nil,   nil,
+   270,   nil,   nil,   141,   nil,   nil,   nil,   nil,   nil,   nil,
+   136,   nil,   nil,   270,   nil,   nil,   nil,   168,   nil,   nil,
+   nil,   nil,   333,   333,   nil,   147,   nil,   nil,   nil,   nil,
+   nil,   nil,    85,   nil,   nil,   nil,   nil,   nil,   nil,    71,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   268,   282,   283,
+   284,   nil,   286,   287,   288,   289,   290,   291,   292,   nil,
+   294,   295,   296,   nil,   nil,   300,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   268,   nil,   nil,   nil,
+   nil,   nil,   147,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   147,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   183,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   333,   333,   265,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    90,   nil,   nil,   nil,   nil,   315,   nil,   317,
-   nil,   nil,   nil,   nil,   nil,   nil,   148,   nil,   145,   nil,
-   nil,   nil,   nil,   nil,   263,   nil,   nil,   336,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   334,   334,   263,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    93,   nil,   145,   nil,   nil,
-   nil,   265,   nil,   nil,   nil,   nil,   347,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   265,   280,   281,   282,   nil,   284,
-   285,   286,   287,   288,   289,   290,   nil,   292,   293,   294,
-   nil,   nil,   298,   nil,   nil,   359,   nil,   360,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   145,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   145,   nil,   nil,
-   nil,   367,   nil,   nil,   nil,   180 ]
+   nil,   nil,   nil,   268,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   268 ]
 
 racc_goto_check = [
-    37,    21,    30,    62,    82,    68,     4,    32,    64,    60,
-    70,    47,    31,     2,    52,    22,    85,    72,    32,    37,
-    21,    35,     5,     3,    21,    28,    78,    50,    30,    53,
-    37,    36,    38,    52,    66,     5,    35,    68,    31,    41,
-    19,     7,    41,    37,    21,    36,    63,    20,    57,    65,
-    23,    28,    58,    30,    74,    46,    46,    61,    69,     3,
-    56,    71,    33,    31,    36,    73,    22,    57,    34,    74,
-    75,    76,    77,    40,     3,    21,    28,    20,     3,    79,
-    80,    81,    42,    83,    84,    30,     1,    57,   nil,   nil,
-   nil,   nil,   nil,    68,   nil,   nil,   nil,   nil,    70,    63,
+    37,    21,    30,    62,    64,    23,     4,    32,    68,    70,
+    82,    85,    36,     2,    52,    22,    38,    72,    32,    37,
+    21,    78,    60,    35,    21,    53,    36,     3,    30,    47,
+    37,    50,    41,    52,     5,    41,    19,     7,    35,    29,
+    68,    63,    20,    37,    21,    36,    74,     5,    30,    66,
+    57,    46,    46,    69,    30,    61,    33,    65,    58,    71,
+    56,    74,    73,     3,    34,    29,    75,    22,    76,    77,
+    57,    40,    20,    79,    80,    81,    21,    42,     3,    83,
+    84,     1,     3,   nil,    24,    29,    30,   nil,   nil,   nil,
+    57,    29,   nil,   nil,    63,    68,    70,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,     5,   nil,   nil,    49,   nil,    19,     7,    66,
-    37,    21,    68,    23,   nil,   nil,   nil,   nil,   nil,   nil,
+    24,   nil,   nil,   nil,    19,     7,   nil,   nil,   nil,   nil,
+    23,    37,    21,    24,    68,     5,    24,    36,   nil,   nil,
+    24,   nil,   nil,    66,    41,   nil,    24,    54,   nil,   nil,
+   nil,   nil,    38,   nil,    64,   nil,    64,   nil,   nil,   nil,
+   nil,    53,   nil,   nil,   nil,   nil,    54,   nil,   nil,   nil,
+   nil,    78,   nil,    30,    30,   nil,    30,   nil,   nil,   nil,
+   nil,    54,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    22,
+   nil,    68,     3,   nil,    85,    21,   nil,   nil,    21,   nil,
+    36,    54,   nil,    23,    68,    70,    30,    64,    82,    52,
+    29,    64,    72,    29,    53,    60,    35,    30,    47,    53,
+    50,    54,   nil,   nil,   nil,    37,    21,   nil,    36,   nil,
+    37,    21,   nil,   nil,   nil,    24,    30,    30,     2,    52,
+   nil,    52,   nil,     2,    52,   nil,    30,   nil,   nil,   nil,
+    37,    21,    27,    32,    29,    24,    24,   nil,    24,    49,
+   nil,    30,   nil,     2,    52,   nil,   nil,   nil,    21,    30,
+   nil,    52,    52,    29,    29,    26,   nil,   nil,    27,   nil,
+   nil,   nil,   nil,    29,   nil,    49,   nil,   nil,    24,   nil,
+    30,   nil,   nil,   nil,   nil,     4,    52,    54,    27,    24,
+   nil,    26,   nil,     4,    27,    49,   nil,   nil,    37,    21,
+   nil,    49,   nil,    24,   nil,   nil,    37,    21,    24,    24,
+    54,    26,    52,     4,   nil,    52,   nil,    26,    24,   nil,
+    52,   nil,    37,    21,   nil,   nil,    37,    21,   nil,   nil,
+   nil,    62,   nil,    24,   nil,     2,    52,    30,   nil,    54,
+    52,    54,   nil,   nil,   nil,   nil,   nil,    28,   nil,   nil,
+    30,   nil,     4,   nil,   nil,   nil,   nil,   nil,   nil,    54,
+   nil,   nil,    24,   nil,   nil,    37,    21,   nil,     4,   nil,
+     4,   nil,    52,    28,   nil,    37,    21,    37,    21,    52,
+   nil,    37,    21,    37,    21,    52,   nil,    54,     2,    52,
+     2,    52,   nil,    28,   nil,    52,   nil,    52,    25,    28,
+   nil,   nil,   nil,    27,    27,    31,    27,   nil,   nil,   nil,
+    49,    49,   nil,    49,   nil,   nil,    54,   nil,    54,    24,
+   nil,   nil,   nil,   nil,    25,   nil,    26,    26,   nil,    26,
+   nil,    31,    24,   nil,   nil,   nil,    27,    25,   nil,   nil,
+    25,   nil,   nil,    49,    25,   nil,   nil,    27,   nil,   nil,
+    25,    31,    54,   nil,    49,   nil,   nil,    31,   nil,    26,
+   nil,   nil,   nil,   nil,   nil,   nil,    27,    27,   nil,   nil,
+    26,   nil,   nil,    49,    49,   nil,    27,   nil,   nil,   nil,
+   nil,   nil,   nil,    49,   nil,   nil,   nil,   nil,    51,    26,
+    26,    27,   nil,   nil,   nil,    51,    51,   nil,    49,    26,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    28,    28,
+   nil,    28,   nil,   nil,    26,   nil,   nil,   nil,   nil,   nil,
+    27,   nil,   nil,   nil,   nil,    51,   nil,    49,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    25,
+   nil,    28,   nil,    26,    51,   nil,   nil,    51,   nil,   nil,
+    51,   nil,    28,   nil,   nil,   nil,   nil,   nil,   nil,    25,
+    25,   nil,    25,   nil,   nil,   nil,    31,   nil,   nil,    31,
+   nil,    28,    28,   nil,   nil,   nil,   nil,    27,   nil,   nil,
+   nil,    28,   nil,   nil,    49,   nil,   nil,   nil,   nil,   nil,
+    27,   nil,    25,   nil,   nil,   nil,    28,    49,   nil,   nil,
+    26,   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,
+    31,   nil,   nil,    26,   nil,   nil,   nil,    25,   nil,   nil,
+   nil,   nil,    25,    25,   nil,    28,   nil,   nil,   nil,   nil,
+   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,    31,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    25,    51,    51,
+    51,   nil,    51,    51,    51,    51,    51,    51,    51,   nil,
+    51,    51,    51,   nil,   nil,    51,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,
+   nil,   nil,    28,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    28,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    51,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    41,    49,   nil,   nil,    36,   nil,   nil,    64,   nil,    64,
-   nil,   nil,   nil,   nil,    53,   nil,   nil,    38,   nil,   nil,
-    30,    30,   nil,    30,   nil,    78,    49,   nil,   nil,   nil,
-    31,   nil,   nil,    31,   nil,   nil,    22,     3,   nil,    68,
-   nil,   nil,    21,    28,    28,    21,    28,    47,    85,   nil,
-    60,    82,    68,    30,    26,   nil,    52,    70,    64,    72,
-   nil,    35,    64,    50,    30,    53,   nil,   nil,    36,   nil,
-    53,   nil,    37,    21,    31,   nil,    28,    37,    21,   nil,
-    26,   nil,   nil,    30,    30,     2,    52,    28,    52,   nil,
-     2,    52,   nil,    30,   nil,   nil,    36,    37,    21,   nil,
-    32,   nil,   nil,    31,   nil,    26,    28,    28,   nil,    30,
-     2,    52,   nil,   nil,   nil,    21,    28,    30,    52,    52,
-   nil,    24,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    28,    49,    49,   nil,    49,   nil,    30,   nil,
-   nil,   nil,   nil,     4,    52,   nil,   nil,    24,    25,   nil,
-   nil,     4,   nil,   nil,   nil,   nil,    37,    21,   nil,   nil,
-    24,    28,   nil,    24,    37,    21,    49,   nil,   nil,   nil,
-    52,     4,    24,    52,    25,   nil,   nil,    49,    52,   nil,
-    37,    21,   nil,   nil,    37,    21,   nil,    25,   nil,    62,
-    25,   nil,   nil,     2,    52,    30,    49,    49,    52,    25,
-   nil,    27,   nil,   nil,   nil,   nil,    49,   nil,    30,   nil,
-     4,   nil,    26,    26,   nil,    26,   nil,   nil,    28,   nil,
-   nil,   nil,    49,    37,    21,   nil,     4,    27,     4,   nil,
-    52,    28,   nil,    37,    21,    37,    21,    52,    54,    37,
-    21,    37,    21,    52,    29,    26,     2,    52,     2,    52,
-   nil,    49,    27,    52,   nil,    52,    26,    54,   nil,   nil,
-   nil,    24,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    29,   nil,    54,   nil,   nil,    26,    26,   nil,   nil,    24,
-    24,   nil,    24,   nil,   nil,    26,   nil,   nil,    25,   nil,
-   nil,    54,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,
-   nil,    26,   nil,   nil,   nil,   nil,    25,    25,    49,    25,
-   nil,    54,    24,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    49,   nil,    24,   nil,   nil,   nil,   nil,   nil,   nil,
-    26,   nil,   nil,   nil,   nil,   nil,   nil,    24,    51,    25,
-   nil,   nil,    24,    24,   nil,    51,    51,   nil,   nil,   nil,
-    25,   nil,    24,   nil,   nil,   nil,   nil,   nil,   nil,    27,
-    27,   nil,    27,   nil,    25,   nil,   nil,   nil,    24,    25,
-    25,   nil,   nil,   nil,    51,   nil,   nil,   nil,   nil,    25,
-   nil,   nil,   nil,   nil,   nil,    54,   nil,    26,   nil,   nil,
-   nil,   nil,    27,    51,   nil,    25,    51,    24,   nil,    51,
-    26,   nil,    29,    27,   nil,    29,   nil,   nil,    54,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    27,    27,    25,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    27,   nil,   nil,   nil,   nil,    54,   nil,    54,
-   nil,   nil,   nil,   nil,   nil,   nil,    29,   nil,    27,   nil,
-   nil,   nil,   nil,   nil,    24,   nil,   nil,    54,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    29,    29,    24,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    29,   nil,    27,   nil,   nil,
-   nil,    25,   nil,   nil,   nil,   nil,    54,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    25,    51,    51,    51,   nil,    51,
-    51,    51,    51,    51,    51,    51,   nil,    51,    51,    51,
-   nil,   nil,    51,   nil,   nil,    54,   nil,    54,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    27,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,   nil,   nil,
-   nil,    54,   nil,   nil,   nil,    51 ]
+   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    25 ]
 
 racc_goto_pointer = [
-   nil,    86,    13,    23,   -13,    -8,   nil,    -2,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    -3,
-    43,     1,    -8,  -131,   238,   265,   171,   318,     2,   361,
-   -21,   -11,     6,    13,   -68,   -28,  -108,     0,   -18,   nil,
-    51,   -23,  -157,   nil,   nil,   nil,  -189,   -38,   nil,    92,
-   -22,   439,    14,   -21,   349,   nil,  -171,   -15,  -292,   nil,
-   -66,  -123,   -23,  -251,    -9,  -165,  -180,   nil,  -177,  -124,
-  -172,  -209,   -16,    32,    18,   -84,    54,    17,     9,   -79,
-   -42,   -41,  -118,  -151,   -22,   -90,   nil ]
+   nil,    81,    13,    27,   -13,     4,   nil,    -6,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    -7,
+    38,     1,    -8,   -64,    61,   375,   242,   219,   324,    16,
+   -21,   382,     6,     7,   -73,   -26,  -128,     0,   -34,   nil,
+    49,   -30,  -165,   nil,   nil,   nil,  -196,   -20,   nil,   226,
+   -18,   449,    14,   -25,   108,   nil,  -174,   -13,  -288,   nil,
+   -54,  -128,   -23,  -258,   -13,  -160,  -168,   nil,  -177,  -132,
+  -176,  -213,   -16,    29,    10,   -89,    51,    14,     4,   -86,
+   -49,   -48,  -113,  -158,   -27,   -96,   nil ]
 
 racc_goto_default = [
-   nil,   nil,   nil,   168,    25,    28,    32,    35,     5,     6,
+   nil,   nil,   nil,   169,    25,    28,    32,    35,     5,     6,
     10,    13,    15,    18,    20,    24,    27,    31,    34,     4,
-   nil,    99,   nil,    79,   101,   103,   105,   108,   109,   113,
-    95,    96,     8,   nil,   nil,   nil,   nil,    85,   nil,    30,
-   nil,   nil,   161,   239,   164,   165,   nil,   nil,   144,   107,
-   110,   111,    67,   134,    98,   150,   151,   nil,   248,   104,
-   nil,   nil,   nil,   nil,    69,   nil,   nil,   301,    80,   nil,
+   nil,   100,   nil,    80,   102,   104,   106,   109,   110,   114,
+    96,    97,     8,   nil,   nil,   nil,   nil,    86,   nil,    30,
+   nil,   nil,   162,   242,   165,   166,   nil,   nil,   145,   108,
+   111,   112,    67,   135,    99,   151,   152,   nil,   251,   105,
+   nil,   nil,   nil,   nil,    70,   nil,   nil,   303,    81,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    57,
-   nil,   nil,   nil,   nil,   nil,   nil,   192 ]
+   nil,   nil,   nil,   nil,   nil,   nil,   195 ]
 
 racc_reduce_table = [
   0, 0, :racc_error,
@@ -703,6 +709,7 @@ racc_reduce_table = [
   3, 91, :_reduce_34,
   3, 91, :_reduce_35,
   1, 92, :_reduce_none,
+  2, 92, :_reduce_37,
   1, 92, :_reduce_none,
   1, 92, :_reduce_none,
   1, 92, :_reduce_none,
@@ -710,37 +717,37 @@ racc_reduce_table = [
   1, 92, :_reduce_none,
   1, 92, :_reduce_none,
   1, 92, :_reduce_none,
-  1, 92, :_reduce_44,
-  5, 74, :_reduce_45,
+  1, 92, :_reduce_45,
   5, 74, :_reduce_46,
   5, 74, :_reduce_47,
-  5, 85, :_reduce_48,
-  2, 75, :_reduce_49,
-  1, 108, :_reduce_50,
-  2, 108, :_reduce_51,
-  6, 76, :_reduce_52,
-  2, 76, :_reduce_53,
-  3, 109, :_reduce_54,
+  5, 74, :_reduce_48,
+  5, 85, :_reduce_49,
+  2, 75, :_reduce_50,
+  1, 108, :_reduce_51,
+  2, 108, :_reduce_52,
+  6, 76, :_reduce_53,
+  2, 76, :_reduce_54,
   3, 109, :_reduce_55,
+  3, 109, :_reduce_56,
   1, 110, :_reduce_none,
   1, 110, :_reduce_none,
-  3, 110, :_reduce_58,
+  3, 110, :_reduce_59,
   1, 111, :_reduce_none,
-  3, 111, :_reduce_60,
-  1, 112, :_reduce_61,
+  3, 111, :_reduce_61,
   1, 112, :_reduce_62,
-  3, 113, :_reduce_63,
+  1, 112, :_reduce_63,
   3, 113, :_reduce_64,
+  3, 113, :_reduce_65,
   1, 114, :_reduce_none,
   1, 114, :_reduce_none,
-  4, 116, :_reduce_67,
+  4, 116, :_reduce_68,
   1, 102, :_reduce_none,
-  3, 102, :_reduce_69,
+  3, 102, :_reduce_70,
   0, 103, :_reduce_none,
   1, 103, :_reduce_none,
-  1, 118, :_reduce_72,
-  1, 93, :_reduce_73,
-  1, 95, :_reduce_74,
+  1, 118, :_reduce_73,
+  1, 93, :_reduce_74,
+  1, 95, :_reduce_75,
   1, 117, :_reduce_none,
   1, 117, :_reduce_none,
   1, 117, :_reduce_none,
@@ -748,21 +755,21 @@ racc_reduce_table = [
   1, 117, :_reduce_none,
   1, 117, :_reduce_none,
   1, 117, :_reduce_none,
-  3, 77, :_reduce_82,
   3, 77, :_reduce_83,
-  3, 86, :_reduce_84,
-  0, 104, :_reduce_85,
-  1, 104, :_reduce_86,
-  3, 104, :_reduce_87,
-  3, 122, :_reduce_88,
-  3, 124, :_reduce_89,
+  3, 77, :_reduce_84,
+  3, 86, :_reduce_85,
+  0, 104, :_reduce_86,
+  1, 104, :_reduce_87,
+  3, 104, :_reduce_88,
+  3, 122, :_reduce_89,
+  3, 124, :_reduce_90,
   1, 125, :_reduce_none,
   1, 125, :_reduce_none,
-  0, 107, :_reduce_92,
-  1, 107, :_reduce_93,
-  3, 107, :_reduce_94,
+  0, 107, :_reduce_93,
+  1, 107, :_reduce_94,
+  3, 107, :_reduce_95,
   1, 126, :_reduce_none,
-  3, 126, :_reduce_96,
+  3, 126, :_reduce_97,
   1, 115, :_reduce_none,
   1, 115, :_reduce_none,
   1, 115, :_reduce_none,
@@ -781,25 +788,24 @@ racc_reduce_table = [
   1, 123, :_reduce_none,
   1, 123, :_reduce_none,
   1, 123, :_reduce_none,
-  4, 97, :_reduce_115,
-  3, 97, :_reduce_116,
-  1, 99, :_reduce_117,
-  2, 99, :_reduce_118,
-  2, 129, :_reduce_119,
-  1, 130, :_reduce_120,
-  2, 130, :_reduce_121,
-  1, 96, :_reduce_122,
-  4, 90, :_reduce_123,
+  4, 97, :_reduce_116,
+  3, 97, :_reduce_117,
+  1, 99, :_reduce_118,
+  2, 99, :_reduce_119,
+  2, 129, :_reduce_120,
+  1, 130, :_reduce_121,
+  2, 130, :_reduce_122,
+  1, 96, :_reduce_123,
   4, 90, :_reduce_124,
-  2, 79, :_reduce_125,
-  5, 131, :_reduce_126,
-  4, 131, :_reduce_127,
+  4, 90, :_reduce_125,
+  2, 79, :_reduce_126,
+  5, 131, :_reduce_127,
+  4, 131, :_reduce_128,
   0, 132, :_reduce_none,
-  2, 132, :_reduce_129,
-  4, 132, :_reduce_130,
-  3, 132, :_reduce_131,
+  2, 132, :_reduce_130,
+  4, 132, :_reduce_131,
+  3, 132, :_reduce_132,
   1, 120, :_reduce_none,
-  3, 120, :_reduce_133,
   3, 120, :_reduce_134,
   3, 120, :_reduce_135,
   3, 120, :_reduce_136,
@@ -808,30 +814,31 @@ racc_reduce_table = [
   3, 120, :_reduce_139,
   3, 120, :_reduce_140,
   3, 120, :_reduce_141,
-  2, 120, :_reduce_142,
-  3, 120, :_reduce_143,
+  3, 120, :_reduce_142,
+  2, 120, :_reduce_143,
   3, 120, :_reduce_144,
   3, 120, :_reduce_145,
   3, 120, :_reduce_146,
   3, 120, :_reduce_147,
   3, 120, :_reduce_148,
-  2, 120, :_reduce_149,
-  3, 120, :_reduce_150,
+  3, 120, :_reduce_149,
+  2, 120, :_reduce_150,
   3, 120, :_reduce_151,
   3, 120, :_reduce_152,
-  5, 78, :_reduce_153,
+  3, 120, :_reduce_153,
+  5, 78, :_reduce_154,
   1, 134, :_reduce_none,
-  2, 134, :_reduce_155,
-  5, 135, :_reduce_156,
-  4, 135, :_reduce_157,
+  2, 134, :_reduce_156,
+  5, 135, :_reduce_157,
+  4, 135, :_reduce_158,
   1, 136, :_reduce_none,
-  3, 136, :_reduce_159,
-  3, 98, :_reduce_160,
+  3, 136, :_reduce_160,
+  3, 98, :_reduce_161,
   1, 138, :_reduce_none,
-  4, 138, :_reduce_162,
+  4, 138, :_reduce_163,
   1, 140, :_reduce_none,
-  3, 140, :_reduce_164,
-  3, 139, :_reduce_165,
+  3, 140, :_reduce_165,
+  3, 139, :_reduce_166,
   1, 137, :_reduce_none,
   1, 137, :_reduce_none,
   1, 137, :_reduce_none,
@@ -840,70 +847,70 @@ racc_reduce_table = [
   1, 137, :_reduce_none,
   1, 137, :_reduce_none,
   1, 137, :_reduce_none,
-  1, 137, :_reduce_174,
+  1, 137, :_reduce_175,
   1, 137, :_reduce_none,
-  1, 141, :_reduce_176,
+  1, 141, :_reduce_177,
   1, 142, :_reduce_none,
-  3, 142, :_reduce_178,
-  2, 80, :_reduce_179,
-  6, 82, :_reduce_180,
-  5, 82, :_reduce_181,
-  7, 83, :_reduce_182,
-  6, 83, :_reduce_183,
-  6, 84, :_reduce_184,
-  5, 84, :_reduce_185,
-  1, 106, :_reduce_186,
-  1, 101, :_reduce_187,
+  3, 142, :_reduce_179,
+  2, 80, :_reduce_180,
+  6, 82, :_reduce_181,
+  5, 82, :_reduce_182,
+  7, 83, :_reduce_183,
+  6, 83, :_reduce_184,
+  6, 84, :_reduce_185,
+  5, 84, :_reduce_186,
+  1, 106, :_reduce_187,
   1, 101, :_reduce_188,
   1, 101, :_reduce_189,
+  1, 101, :_reduce_190,
   1, 145, :_reduce_none,
-  3, 145, :_reduce_191,
-  1, 147, :_reduce_192,
-  1, 148, :_reduce_193,
+  3, 145, :_reduce_192,
+  1, 147, :_reduce_193,
   1, 148, :_reduce_194,
   1, 148, :_reduce_195,
+  1, 148, :_reduce_196,
   1, 148, :_reduce_none,
-  0, 72, :_reduce_197,
-  0, 149, :_reduce_198,
+  0, 72, :_reduce_198,
+  0, 149, :_reduce_199,
   1, 143, :_reduce_none,
-  3, 143, :_reduce_200,
   3, 143, :_reduce_201,
+  3, 143, :_reduce_202,
   1, 150, :_reduce_none,
-  3, 150, :_reduce_203,
-  3, 151, :_reduce_204,
-  1, 151, :_reduce_205,
-  3, 151, :_reduce_206,
-  1, 151, :_reduce_207,
+  3, 150, :_reduce_204,
+  3, 151, :_reduce_205,
+  1, 151, :_reduce_206,
+  3, 151, :_reduce_207,
+  1, 151, :_reduce_208,
   1, 146, :_reduce_none,
-  2, 146, :_reduce_209,
+  2, 146, :_reduce_210,
   1, 144, :_reduce_none,
-  2, 144, :_reduce_211,
+  2, 144, :_reduce_212,
   1, 152, :_reduce_none,
   1, 152, :_reduce_none,
-  1, 94, :_reduce_214,
-  3, 119, :_reduce_215,
-  4, 119, :_reduce_216,
-  2, 119, :_reduce_217,
+  1, 94, :_reduce_215,
+  3, 119, :_reduce_216,
+  4, 119, :_reduce_217,
+  2, 119, :_reduce_218,
   1, 127, :_reduce_none,
   1, 127, :_reduce_none,
   0, 105, :_reduce_none,
-  1, 105, :_reduce_221,
-  1, 133, :_reduce_222,
-  3, 128, :_reduce_223,
-  4, 128, :_reduce_224,
-  2, 128, :_reduce_225,
+  1, 105, :_reduce_222,
+  1, 133, :_reduce_223,
+  3, 128, :_reduce_224,
+  4, 128, :_reduce_225,
+  2, 128, :_reduce_226,
   1, 153, :_reduce_none,
-  3, 153, :_reduce_227,
-  3, 154, :_reduce_228,
-  1, 155, :_reduce_229,
+  3, 153, :_reduce_228,
+  3, 154, :_reduce_229,
   1, 155, :_reduce_230,
-  4, 121, :_reduce_231,
+  1, 155, :_reduce_231,
+  4, 121, :_reduce_232,
   1, 100, :_reduce_none,
-  4, 100, :_reduce_233 ]
+  4, 100, :_reduce_234 ]
 
-racc_reduce_n = 234
+racc_reduce_n = 235
 
-racc_shift_n = 385
+racc_shift_n = 387
 
 racc_token_table = {
   false => 0,
@@ -1342,7 +1349,13 @@ module_eval(<<'.,.,', 'grammar.ra', 129)
 
 # reduce 36 omitted
 
-# reduce 37 omitted
+module_eval(<<'.,.,', 'grammar.ra', 142)
+  def _reduce_37(val, _values, result)
+        result = ast AST::Minus, :value => val[1]
+  
+    result
+  end
+.,.,
 
 # reduce 38 omitted
 
@@ -1356,16 +1369,18 @@ module_eval(<<'.,.,', 'grammar.ra', 129)
 
 # reduce 43 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 149)
-  def _reduce_44(val, _values, result)
+# reduce 44 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 152)
+  def _reduce_45(val, _values, result)
         result = ast AST::Name, :value => val[0][:value]
       
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 153)
-  def _reduce_45(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 156)
+  def _reduce_46(val, _values, result)
       @lexer.commentpop
   array = val[2]
   array = [array] if array.instance_of?(AST::ResourceInstance)
@@ -1389,8 +1404,8 @@ module_eval(<<'.,.,', 'grammar.ra', 153)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 172)
-  def _reduce_46(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 175)
+  def _reduce_47(val, _values, result)
       # This is a deprecated syntax.
   error "All resource specifications require names"
 
@@ -1398,8 +1413,8 @@ module_eval(<<'.,.,', 'grammar.ra', 172)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 175)
-  def _reduce_47(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 178)
+  def _reduce_48(val, _values, result)
       # a defaults setting for a type
   @lexer.commentpop
   result = ast(AST::ResourceDefaults, :type => val[0], :parameters => val[2])
@@ -1408,8 +1423,8 @@ module_eval(<<'.,.,', 'grammar.ra', 175)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 182)
-  def _reduce_48(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 185)
+  def _reduce_49(val, _values, result)
       @lexer.commentpop
   result = ast AST::ResourceOverride, :object => val[0], :parameters => val[2]
 
@@ -1417,8 +1432,8 @@ module_eval(<<'.,.,', 'grammar.ra', 182)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 189)
-  def _reduce_49(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 192)
+  def _reduce_50(val, _values, result)
       type = val[0]
 
   if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly]
@@ -1444,22 +1459,22 @@ module_eval(<<'.,.,', 'grammar.ra', 189)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 211)
-  def _reduce_50(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 214)
+  def _reduce_51(val, _values, result)
      result = :virtual 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 212)
-  def _reduce_51(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 215)
+  def _reduce_52(val, _values, result)
      result = :exported 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 217)
-  def _reduce_52(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 220)
+  def _reduce_53(val, _values, result)
       @lexer.commentpop
   Puppet.warning addcontext("Collection names must now be capitalized") if val[0] =~ /^[a-z]/
   type = val[0].downcase
@@ -1482,8 +1497,8 @@ module_eval(<<'.,.,', 'grammar.ra', 217)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 236)
-  def _reduce_53(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 239)
+  def _reduce_54(val, _values, result)
         if val[0] =~ /^[a-z]/
     Puppet.warning addcontext("Collection names must now be capitalized")
   end
@@ -1506,8 +1521,8 @@ module_eval(<<'.,.,', 'grammar.ra', 236)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 257)
-  def _reduce_54(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 260)
+  def _reduce_55(val, _values, result)
       if val[1]
     result = val[1]
     result.form = :virtual
@@ -1519,8 +1534,8 @@ module_eval(<<'.,.,', 'grammar.ra', 257)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 265)
-  def _reduce_55(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 268)
+  def _reduce_56(val, _values, result)
         if val[1]
     result = val[1]
     result.form = :exported
@@ -1532,22 +1547,22 @@ module_eval(<<'.,.,', 'grammar.ra', 265)
   end
 .,.,
 
-# reduce 56 omitted
-
 # reduce 57 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 278)
-  def _reduce_58(val, _values, result)
+# reduce 58 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 281)
+  def _reduce_59(val, _values, result)
         result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
 
     result
   end
 .,.,
 
-# reduce 59 omitted
+# reduce 60 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 283)
-  def _reduce_60(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 286)
+  def _reduce_61(val, _values, result)
         result = val[1]
     result.parens = true
 
@@ -1555,22 +1570,22 @@ module_eval(<<'.,.,', 'grammar.ra', 283)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 287)
-  def _reduce_61(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 290)
+  def _reduce_62(val, _values, result)
      result=val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 288)
-  def _reduce_62(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 291)
+  def _reduce_63(val, _values, result)
      result=val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 291)
-  def _reduce_63(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 294)
+  def _reduce_64(val, _values, result)
       result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
   #result = ast AST::CollExpr
   #result.push *val
@@ -1579,8 +1594,8 @@ module_eval(<<'.,.,', 'grammar.ra', 291)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 296)
-  def _reduce_64(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 299)
+  def _reduce_65(val, _values, result)
         result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
     #result = ast AST::CollExpr
     #result.push *val
@@ -1589,22 +1604,22 @@ module_eval(<<'.,.,', 'grammar.ra', 296)
   end
 .,.,
 
-# reduce 65 omitted
-
 # reduce 66 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 305)
-  def _reduce_67(val, _values, result)
+# reduce 67 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 308)
+  def _reduce_68(val, _values, result)
       result = ast AST::ResourceInstance, :children => [val[0],val[2]]
 
     result
   end
 .,.,
 
-# reduce 68 omitted
+# reduce 69 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 310)
-  def _reduce_69(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 313)
+  def _reduce_70(val, _values, result)
         if val[0].instance_of?(AST::ResourceInstance)
     result = ast AST::ASTArray, :children => [val[0],val[2]]
   else
@@ -1616,36 +1631,34 @@ module_eval(<<'.,.,', 'grammar.ra', 310)
   end
 .,.,
 
-# reduce 70 omitted
-
 # reduce 71 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 322)
-  def _reduce_72(val, _values, result)
+# reduce 72 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 325)
+  def _reduce_73(val, _values, result)
       result = ast AST::Undef, :value => :undef
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 326)
-  def _reduce_73(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 329)
+  def _reduce_74(val, _values, result)
       result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 330)
-  def _reduce_74(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 333)
+  def _reduce_75(val, _values, result)
       result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
 
     result
   end
 .,.,
 
-# reduce 75 omitted
-
 # reduce 76 omitted
 
 # reduce 77 omitted
@@ -1658,8 +1671,10 @@ module_eval(<<'.,.,', 'grammar.ra', 330)
 
 # reduce 81 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 342)
-  def _reduce_82(val, _values, result)
+# reduce 82 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 345)
+  def _reduce_83(val, _values, result)
       raise Puppet::ParseError, "Cannot assign to variables in other namespaces" if val[0][:value] =~ /::/
   # this is distinct from referencing a variable
   variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
@@ -1669,16 +1684,16 @@ module_eval(<<'.,.,', 'grammar.ra', 342)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 348)
-  def _reduce_83(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 351)
+  def _reduce_84(val, _values, result)
         result = ast AST::VarDef, :name => val[0], :value => val[2]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 352)
-  def _reduce_84(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 355)
+  def _reduce_85(val, _values, result)
       variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
   result = ast AST::VarDef, :name => variable, :value => val[2], :append => true, :line => val[0][:line]
 
@@ -1686,23 +1701,23 @@ module_eval(<<'.,.,', 'grammar.ra', 352)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 358)
-  def _reduce_85(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 361)
+  def _reduce_86(val, _values, result)
       result = ast AST::ASTArray
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 360)
-  def _reduce_86(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 363)
+  def _reduce_87(val, _values, result)
      result = val[0] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 362)
-  def _reduce_87(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 365)
+  def _reduce_88(val, _values, result)
         if val[0].instance_of?(AST::ASTArray)
     val[0].push(val[2])
     result = val[0]
@@ -1714,16 +1729,16 @@ module_eval(<<'.,.,', 'grammar.ra', 362)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 371)
-  def _reduce_88(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 374)
+  def _reduce_89(val, _values, result)
       result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 375)
-  def _reduce_89(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 378)
+  def _reduce_90(val, _values, result)
       result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
     :add => true
 
@@ -1731,27 +1746,27 @@ module_eval(<<'.,.,', 'grammar.ra', 375)
   end
 .,.,
 
-# reduce 90 omitted
-
 # reduce 91 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 384)
-  def _reduce_92(val, _values, result)
+# reduce 92 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 387)
+  def _reduce_93(val, _values, result)
       result = ast AST::ASTArray
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 386)
-  def _reduce_93(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 389)
+  def _reduce_94(val, _values, result)
      result = val[0] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 388)
-  def _reduce_94(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 391)
+  def _reduce_95(val, _values, result)
         if val[0].instance_of?(AST::ASTArray)
     val[0].push(val[2])
     result = val[0]
@@ -1763,10 +1778,10 @@ module_eval(<<'.,.,', 'grammar.ra', 388)
   end
 .,.,
 
-# reduce 95 omitted
+# reduce 96 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 398)
-  def _reduce_96(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 401)
+  def _reduce_97(val, _values, result)
         if val[0].instance_of?(AST::ASTArray)
     result = val[0].push(val[2])
   else
@@ -1777,8 +1792,6 @@ module_eval(<<'.,.,', 'grammar.ra', 398)
   end
 .,.,
 
-# reduce 97 omitted
-
 # reduce 98 omitted
 
 # reduce 99 omitted
@@ -1813,8 +1826,10 @@ module_eval(<<'.,.,', 'grammar.ra', 398)
 
 # reduce 114 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 427)
-  def _reduce_115(val, _values, result)
+# reduce 115 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 430)
+  def _reduce_116(val, _values, result)
       args = aryfy(val[2])
   result = ast AST::Function,
     :name => val[0][:value], :line => val[0][:line],
@@ -1825,8 +1840,8 @@ module_eval(<<'.,.,', 'grammar.ra', 427)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 433)
-  def _reduce_116(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 436)
+  def _reduce_117(val, _values, result)
       result = ast AST::Function,
     :name => val[0][:value], :line => val[0][:line],
     :arguments => AST::ASTArray.new({}),
@@ -1836,51 +1851,51 @@ module_eval(<<'.,.,', 'grammar.ra', 433)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 439)
-  def _reduce_117(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 442)
+  def _reduce_118(val, _values, result)
      result = ast AST::String, :value => val[0][:value],                  :line => val[0][:line] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 440)
-  def _reduce_118(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 443)
+  def _reduce_119(val, _values, result)
      result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 442)
-  def _reduce_119(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 445)
+  def _reduce_120(val, _values, result)
      result = [val[0]] + val[1] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 444)
-  def _reduce_120(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 447)
+  def _reduce_121(val, _values, result)
      result = [ast(AST::String,val[0])]          
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 445)
-  def _reduce_121(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 448)
+  def _reduce_122(val, _values, result)
      result = [ast(AST::String,val[0])] + val[1] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 448)
-  def _reduce_122(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 451)
+  def _reduce_123(val, _values, result)
       result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 452)
-  def _reduce_123(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 455)
+  def _reduce_124(val, _values, result)
       Puppet.warning addcontext("Deprecation notice:  Resource references should now be capitalized")
   result = ast AST::ResourceReference, :type => val[0][:value], :line => val[0][:line], :title => val[2]
 
@@ -1888,24 +1903,24 @@ module_eval(<<'.,.,', 'grammar.ra', 452)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 455)
-  def _reduce_124(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 458)
+  def _reduce_125(val, _values, result)
       result = ast AST::ResourceReference, :type => val[0], :title => val[2]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 459)
-  def _reduce_125(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 462)
+  def _reduce_126(val, _values, result)
       result = val[1]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 463)
-  def _reduce_126(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 466)
+  def _reduce_127(val, _values, result)
       @lexer.commentpop
   args = {
     :test => val[0],
@@ -1920,8 +1935,8 @@ module_eval(<<'.,.,', 'grammar.ra', 463)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 474)
-  def _reduce_127(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 477)
+  def _reduce_128(val, _values, result)
         @lexer.commentpop
     args = {
       :test => val[0],
@@ -1936,18 +1951,18 @@ module_eval(<<'.,.,', 'grammar.ra', 474)
   end
 .,.,
 
-# reduce 128 omitted
+# reduce 129 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 487)
-  def _reduce_129(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 490)
+  def _reduce_130(val, _values, result)
         result = ast AST::Else, :statements => val[1]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 490)
-  def _reduce_130(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 493)
+  def _reduce_131(val, _values, result)
         @lexer.commentpop
     result = ast AST::Else, :statements => val[2]
 
@@ -1955,8 +1970,8 @@ module_eval(<<'.,.,', 'grammar.ra', 490)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 494)
-  def _reduce_131(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 497)
+  def _reduce_132(val, _values, result)
         @lexer.commentpop
     result = ast AST::Else, :statements => ast(AST::Nop)
 
@@ -1964,19 +1979,11 @@ module_eval(<<'.,.,', 'grammar.ra', 494)
   end
 .,.,
 
-# reduce 132 omitted
-
-module_eval(<<'.,.,', 'grammar.ra', 512)
-  def _reduce_133(val, _values, result)
-        result = ast AST::InOperator, :lval => val[0], :rval => val[2]
-
-    result
-  end
-.,.,
+# reduce 133 omitted
 
 module_eval(<<'.,.,', 'grammar.ra', 515)
   def _reduce_134(val, _values, result)
-        result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+        result = ast AST::InOperator, :lval => val[0], :rval => val[2]
 
     result
   end
@@ -1992,7 +1999,7 @@ module_eval(<<'.,.,', 'grammar.ra', 518)
 
 module_eval(<<'.,.,', 'grammar.ra', 521)
   def _reduce_136(val, _values, result)
-        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+        result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 
     result
   end
@@ -2040,7 +2047,7 @@ module_eval(<<'.,.,', 'grammar.ra', 536)
 
 module_eval(<<'.,.,', 'grammar.ra', 539)
   def _reduce_142(val, _values, result)
-        result = ast AST::Minus, :value => val[1]
+        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 
     result
   end
@@ -2048,7 +2055,7 @@ module_eval(<<'.,.,', 'grammar.ra', 539)
 
 module_eval(<<'.,.,', 'grammar.ra', 542)
   def _reduce_143(val, _values, result)
-        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+        result = ast AST::Minus, :value => val[1]
 
     result
   end
@@ -2096,7 +2103,7 @@ module_eval(<<'.,.,', 'grammar.ra', 557)
 
 module_eval(<<'.,.,', 'grammar.ra', 560)
   def _reduce_149(val, _values, result)
-        result = ast AST::Not, :value => val[1]
+        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 
     result
   end
@@ -2104,7 +2111,7 @@ module_eval(<<'.,.,', 'grammar.ra', 560)
 
 module_eval(<<'.,.,', 'grammar.ra', 563)
   def _reduce_150(val, _values, result)
-        result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
+        result = ast AST::Not, :value => val[1]
 
     result
   end
@@ -2120,14 +2127,22 @@ module_eval(<<'.,.,', 'grammar.ra', 566)
 
 module_eval(<<'.,.,', 'grammar.ra', 569)
   def _reduce_152(val, _values, result)
-        result = val[1]
+        result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 573)
+module_eval(<<'.,.,', 'grammar.ra', 572)
   def _reduce_153(val, _values, result)
+        result = val[1]
+
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'grammar.ra', 576)
+  def _reduce_154(val, _values, result)
       @lexer.commentpop
   options = val[3]
   options = ast AST::ASTArray, :children => [val[3]] unless options.instance_of?(AST::ASTArray)
@@ -2137,10 +2152,10 @@ module_eval(<<'.,.,', 'grammar.ra', 573)
   end
 .,.,
 
-# reduce 154 omitted
+# reduce 155 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 581)
-  def _reduce_155(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 584)
+  def _reduce_156(val, _values, result)
         if val[0].instance_of?(AST::ASTArray)
     val[0].push val[1]
     result = val[0]
@@ -2152,8 +2167,8 @@ module_eval(<<'.,.,', 'grammar.ra', 581)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 590)
-  def _reduce_156(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 593)
+  def _reduce_157(val, _values, result)
       @lexer.commentpop
   result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
 
@@ -2161,8 +2176,8 @@ module_eval(<<'.,.,', 'grammar.ra', 590)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 593)
-  def _reduce_157(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 596)
+  def _reduce_158(val, _values, result)
       @lexer.commentpop
 
     result = ast(
@@ -2176,10 +2191,10 @@ module_eval(<<'.,.,', 'grammar.ra', 593)
   end
 .,.,
 
-# reduce 158 omitted
+# reduce 159 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 605)
-  def _reduce_159(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 608)
+  def _reduce_160(val, _values, result)
         if val[0].instance_of?(AST::ASTArray)
     val[0].push(val[2])
     result = val[0]
@@ -2191,18 +2206,18 @@ module_eval(<<'.,.,', 'grammar.ra', 605)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 614)
-  def _reduce_160(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 617)
+  def _reduce_161(val, _values, result)
       result = ast AST::Selector, :param => val[0], :values => val[2]
 
     result
   end
 .,.,
 
-# reduce 161 omitted
+# reduce 162 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 619)
-  def _reduce_162(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 622)
+  def _reduce_163(val, _values, result)
         @lexer.commentpop
     result = val[1]
 
@@ -2210,10 +2225,10 @@ module_eval(<<'.,.,', 'grammar.ra', 619)
   end
 .,.,
 
-# reduce 163 omitted
+# reduce 164 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 625)
-  def _reduce_164(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 628)
+  def _reduce_165(val, _values, result)
         if val[0].instance_of?(AST::ASTArray)
     val[0].push(val[2])
     result = val[0]
@@ -2225,16 +2240,14 @@ module_eval(<<'.,.,', 'grammar.ra', 625)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 634)
-  def _reduce_165(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 637)
+  def _reduce_166(val, _values, result)
       result = ast AST::ResourceParam, :param => val[0], :value => val[2]
 
     result
   end
 .,.,
 
-# reduce 166 omitted
-
 # reduce 167 omitted
 
 # reduce 168 omitted
@@ -2249,34 +2262,36 @@ module_eval(<<'.,.,', 'grammar.ra', 634)
 
 # reduce 173 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 646)
-  def _reduce_174(val, _values, result)
+# reduce 174 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 649)
+  def _reduce_175(val, _values, result)
         result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
 
     result
   end
 .,.,
 
-# reduce 175 omitted
+# reduce 176 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 651)
-  def _reduce_176(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 654)
+  def _reduce_177(val, _values, result)
      result = [val[0][:value]] 
     result
   end
 .,.,
 
-# reduce 177 omitted
+# reduce 178 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 653)
-  def _reduce_178(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 656)
+  def _reduce_179(val, _values, result)
      result = val[0] += val[2] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 656)
-  def _reduce_179(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 659)
+  def _reduce_180(val, _values, result)
       val[1].each do |file|
     import(file)
   end
@@ -2287,8 +2302,8 @@ module_eval(<<'.,.,', 'grammar.ra', 656)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 666)
-  def _reduce_180(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 669)
+  def _reduce_181(val, _values, result)
       @lexer.commentpop
   newdefine classname(val[1]), :arguments => val[2], :code => val[4], :line => val[0][:line]
   @lexer.indefine = false
@@ -2300,8 +2315,8 @@ module_eval(<<'.,.,', 'grammar.ra', 666)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 673)
-  def _reduce_181(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 676)
+  def _reduce_182(val, _values, result)
       @lexer.commentpop
   newdefine classname(val[1]), :arguments => val[2], :line => val[0][:line]
   @lexer.indefine = false
@@ -2311,8 +2326,8 @@ module_eval(<<'.,.,', 'grammar.ra', 673)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 681)
-  def _reduce_182(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 684)
+  def _reduce_183(val, _values, result)
       @lexer.commentpop
   # Our class gets defined in the parent namespace, not our own.
   @lexer.namepop
@@ -2323,8 +2338,8 @@ module_eval(<<'.,.,', 'grammar.ra', 681)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 687)
-  def _reduce_183(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 690)
+  def _reduce_184(val, _values, result)
       @lexer.commentpop
   # Our class gets defined in the parent namespace, not our own.
   @lexer.namepop
@@ -2335,8 +2350,8 @@ module_eval(<<'.,.,', 'grammar.ra', 687)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 695)
-  def _reduce_184(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 698)
+  def _reduce_185(val, _values, result)
       @lexer.commentpop
   newnode val[1], :parent => val[2], :code => val[4], :line => val[0][:line]
   result = nil
@@ -2345,8 +2360,8 @@ module_eval(<<'.,.,', 'grammar.ra', 695)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 699)
-  def _reduce_185(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 702)
+  def _reduce_186(val, _values, result)
       @lexer.commentpop
   newnode val[1], :parent => val[2], :line => val[0][:line]
   result = nil
@@ -2355,38 +2370,38 @@ module_eval(<<'.,.,', 'grammar.ra', 699)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 704)
-  def _reduce_186(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 707)
+  def _reduce_187(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 706)
-  def _reduce_187(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 709)
+  def _reduce_188(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 707)
-  def _reduce_188(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 710)
+  def _reduce_189(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 708)
-  def _reduce_189(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 711)
+  def _reduce_190(val, _values, result)
      result = "class" 
     result
   end
 .,.,
 
-# reduce 190 omitted
+# reduce 191 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 714)
-  def _reduce_191(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 717)
+  def _reduce_192(val, _values, result)
         result = val[0]
     result = [result] unless result.is_a?(Array)
     result << val[2]
@@ -2395,65 +2410,65 @@ module_eval(<<'.,.,', 'grammar.ra', 714)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 720)
-  def _reduce_192(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 723)
+  def _reduce_193(val, _values, result)
       result = ast AST::HostName, :value => val[0]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 723)
-  def _reduce_193(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 726)
+  def _reduce_194(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 724)
-  def _reduce_194(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 727)
+  def _reduce_195(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 725)
-  def _reduce_195(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 728)
+  def _reduce_196(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-# reduce 196 omitted
+# reduce 197 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 729)
-  def _reduce_197(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 732)
+  def _reduce_198(val, _values, result)
       result = nil
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 733)
-  def _reduce_198(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 736)
+  def _reduce_199(val, _values, result)
       result = ast AST::ASTArray, :children => []
 
     result
   end
 .,.,
 
-# reduce 199 omitted
+# reduce 200 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 738)
-  def _reduce_200(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 741)
+  def _reduce_201(val, _values, result)
         result = nil
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 741)
-  def _reduce_201(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 744)
+  def _reduce_202(val, _values, result)
         result = val[1]
     result = [result] unless result[0].is_a?(Array)
 
@@ -2461,10 +2476,10 @@ module_eval(<<'.,.,', 'grammar.ra', 741)
   end
 .,.,
 
-# reduce 202 omitted
+# reduce 203 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 747)
-  def _reduce_203(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 750)
+  def _reduce_204(val, _values, result)
         result = val[0]
     result = [result] unless result[0].is_a?(Array)
     result << val[2]
@@ -2473,8 +2488,8 @@ module_eval(<<'.,.,', 'grammar.ra', 747)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 753)
-  def _reduce_204(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 756)
+  def _reduce_205(val, _values, result)
       Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
   result = [val[0][:value], val[2]]
 
@@ -2482,8 +2497,8 @@ module_eval(<<'.,.,', 'grammar.ra', 753)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 757)
-  def _reduce_205(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 760)
+  def _reduce_206(val, _values, result)
         Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
     result = [val[0][:value]]
 
@@ -2491,56 +2506,56 @@ module_eval(<<'.,.,', 'grammar.ra', 757)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 760)
-  def _reduce_206(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 763)
+  def _reduce_207(val, _values, result)
       result = [val[0][:value], val[2]]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 762)
-  def _reduce_207(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 765)
+  def _reduce_208(val, _values, result)
       result = [val[0][:value]]
 
     result
   end
 .,.,
 
-# reduce 208 omitted
+# reduce 209 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 767)
-  def _reduce_209(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 770)
+  def _reduce_210(val, _values, result)
         result = val[1]
 
     result
   end
 .,.,
 
-# reduce 210 omitted
+# reduce 211 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 772)
-  def _reduce_211(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 775)
+  def _reduce_212(val, _values, result)
         result = val[1]
 
     result
   end
 .,.,
 
-# reduce 212 omitted
-
 # reduce 213 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 778)
-  def _reduce_214(val, _values, result)
+# reduce 214 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 781)
+  def _reduce_215(val, _values, result)
       result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 782)
-  def _reduce_215(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 785)
+  def _reduce_216(val, _values, result)
       if val[1].instance_of?(AST::ASTArray)
     result = val[1]
   else
@@ -2551,8 +2566,8 @@ module_eval(<<'.,.,', 'grammar.ra', 782)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 789)
-  def _reduce_216(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 792)
+  def _reduce_217(val, _values, result)
         if val[1].instance_of?(AST::ASTArray)
     result = val[1]
   else
@@ -2563,37 +2578,37 @@ module_eval(<<'.,.,', 'grammar.ra', 789)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 795)
-  def _reduce_217(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 798)
+  def _reduce_218(val, _values, result)
       result = ast AST::ASTArray
 
     result
   end
 .,.,
 
-# reduce 218 omitted
-
 # reduce 219 omitted
 
 # reduce 220 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 802)
-  def _reduce_221(val, _values, result)
+# reduce 221 omitted
+
+module_eval(<<'.,.,', 'grammar.ra', 805)
+  def _reduce_222(val, _values, result)
      result = nil 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 805)
-  def _reduce_222(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 808)
+  def _reduce_223(val, _values, result)
       result = ast AST::Regex, :value => val[0][:value]
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 809)
-  def _reduce_223(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 812)
+  def _reduce_224(val, _values, result)
       if val[1].instance_of?(AST::ASTHash)
     result = val[1]
   else
@@ -2604,8 +2619,8 @@ module_eval(<<'.,.,', 'grammar.ra', 809)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 816)
-  def _reduce_224(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 819)
+  def _reduce_225(val, _values, result)
         if val[1].instance_of?(AST::ASTHash)
     result = val[1]
   else
@@ -2616,18 +2631,18 @@ module_eval(<<'.,.,', 'grammar.ra', 816)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 822)
-  def _reduce_225(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 825)
+  def _reduce_226(val, _values, result)
       result = ast AST::ASTHash
 
     result
   end
 .,.,
 
-# reduce 226 omitted
+# reduce 227 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 827)
-  def _reduce_227(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 830)
+  def _reduce_228(val, _values, result)
         if val[0].instance_of?(AST::ASTHash)
     result = val[0].merge(val[2])
   else
@@ -2639,40 +2654,40 @@ module_eval(<<'.,.,', 'grammar.ra', 827)
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 836)
-  def _reduce_228(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 839)
+  def _reduce_229(val, _values, result)
       result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 839)
-  def _reduce_229(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 842)
+  def _reduce_230(val, _values, result)
      result = val[0][:value] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 840)
-  def _reduce_230(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 843)
+  def _reduce_231(val, _values, result)
      result = val[0] 
     result
   end
 .,.,
 
-module_eval(<<'.,.,', 'grammar.ra', 843)
-  def _reduce_231(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 846)
+  def _reduce_232(val, _values, result)
       result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
 
     result
   end
 .,.,
 
-# reduce 232 omitted
+# reduce 233 omitted
 
-module_eval(<<'.,.,', 'grammar.ra', 848)
-  def _reduce_233(val, _values, result)
+module_eval(<<'.,.,', 'grammar.ra', 851)
+  def _reduce_234(val, _values, result)
         result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
 
     result
diff --git a/spec/integration/parser/parser_spec.rb b/spec/integration/parser/parser_spec.rb
index 20d87c2..000e68d 100755
--- a/spec/integration/parser/parser_spec.rb
+++ b/spec/integration/parser/parser_spec.rb
@@ -116,5 +116,18 @@ describe Puppet::Parser::Parser do
         $out = $hash['a']['b']['c']
       }.should parse_with { |v| v.value.is_a?(Puppet::Parser::AST::ASTHash) }
     end
+
+    it "should be able to pass numbers to functions" do
+      %q{
+        my_function(1)
+      }.should parse_as(Puppet::Parser::AST::Function)
+    end
+
+    it "should be able to pass negative numbers to functions" do
+      %q{
+        my_function(-1)
+      }.should parse_as(Puppet::Parser::AST::Function)
+    end
+
   end
 end

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list