[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, experimental, updated. debian/2.6.8-1-844-g7ec39d5

Jesse Wolfe jes5199 at gmail.com
Tue May 10 07:59:08 UTC 2011


The following commit has been merged in the experimental branch:
commit 1d93c4dd86181eb2663dd8df2e84719c2e1ffcdf
Merge: 6860594c4d95855d5106fbf664a473e1ac4d3935 ce9bf1edcaac4901de6e0a7da413d1742d216eb0
Author: Jesse Wolfe <jes5199 at gmail.com>
Date:   Thu Sep 9 16:29:26 2010 -0700

    Merge remote branch 'paul/ticket/next/4685' into next
    
    Conflicts resolved manually, by Paul Berry:
      lib/puppet/parser/ast/astarray.rb
      lib/puppet/parser/grammar.ra
      lib/puppet/parser/parser.rb (by rebuilding from grammar.ra)

diff --combined lib/puppet/parser/ast/astarray.rb
index b62c820,e856570..7283a1f
--- a/lib/puppet/parser/ast/astarray.rb
+++ b/lib/puppet/parser/ast/astarray.rb
@@@ -9,11 -9,6 +9,6 @@@ class Puppet::Parser::AS
    class ASTArray < Branch
      include Enumerable
  
-     # True if this ASTArray represents a list of statements in a
-     # context that defines a namespace.  Classes and definitions may
-     # only appear in such a context.
-     attr_accessor :is_a_namespace
- 
      # Return a child by index.  Probably never used.
      def [](index)
        @children[index]
@@@ -21,27 -16,30 +16,20 @@@
  
      # Evaluate our children.
      def evaluate(scope)
 -      # Make a new array, so we don't have to deal with the details of
 -      # flattening and such
 -      items = []
 -
 -      # First clean out any AST::ASTArrays
 -      @children.each { |child|
 -        if child.instance_of?(AST::ASTArray)
 -          child.each do |ac|
 -            items << ac
 -          end
 -        else
 -          items << child
 -        end
 -      }
 -
 -      rets = items.flatten.collect { |child|
 +      result = []
 +      @children.each do |child|
-         if child.respond_to? :instantiate
-           if is_a_namespace
-             # no problem, just don't evaluate it.
-           else
-             msg = "Classes, definitions, and nodes may only appear at toplevel or inside other classes"
-             error = Puppet::Error.new(msg)
-             error.line = child.line
-             error.file = child.file
-             raise error
-           end
-         else
+         # Skip things that respond to :instantiate (classes, nodes,
+         # and definitions), because they have already been
+         # instantiated.
+         if !child.respond_to?(:instantiate)
 -          child.safeevaluate(scope)
 +          item = child.safeevaluate(scope)
 +          if !item.nil?
 +            # nil values are implicitly removed.
 +            result.push(item)
 +          end
          end
 -      }
 -      rets.reject { |o| o.nil? }
 +      end
 +      result
      end
  
      def push(*ary)
@@@ -59,4 -57,10 +47,4 @@@
        "[" + @children.collect { |c| c.to_s }.join(', ') + "]"
      end
    end
 -
 -  # A simple container class, containing the parameters for an object.
 -  # Used for abstracting the grammar declarations.  Basically unnecessary
 -  # except that I kept finding bugs because I had too many arrays that
 -  # meant completely different things.
 -  class ResourceInstance < ASTArray; end
  end
diff --combined lib/puppet/parser/grammar.ra
index 1f1ec15,3d77d2d..ecb27f3
--- a/lib/puppet/parser/grammar.ra
+++ b/lib/puppet/parser/grammar.ra
@@@ -28,24 -28,31 +28,33 @@@ prechig
  preclow
  
  rule
- program:    statements {
-   val[0].is_a_namespace = true
-   result = val[0]
- }
+ program:    statements_and_declarations
    | nil
  
-   statements:   statement {
+   statements_and_declarations:   statement_or_declaration {
 -    result = ast AST::ASTArray, :children => [val[0]]
 +    result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : [])
    }
-   | statements statement {
+   | statements_and_declarations statement_or_declaration {
 -    val[0].push(val[1])
 +    if val[1]
 +      val[0].push(val[1])
 +    end
      result = val[0]
    }
  
+ # statements is like statements_and_declarations, but it doesn't allow
+ # nested definitions, classes, or nodes.
+ statements: statements_and_declarations {
+   val[0].each do |stmt|
+     if stmt.is_a?(AST::TopLevelConstruct)
+       error "Classes, definitions, and nodes may only appear at toplevel or inside other classes", \
+           :line => stmt.context[:line], :file => stmt.context[:file]
+     end
+   end
+   result = val[0]
+ }
+ 
  # The main list of valid statements
- statement:    resource
+ statement_or_declaration:    resource
    | virtualresource
    | collection
    | assignment
@@@ -72,17 -79,19 +81,17 @@@ relationship_side: resource | resourcer
  edge: IN_EDGE | OUT_EDGE | IN_EDGE_SUB | OUT_EDGE_SUB
  
  fstatement:   NAME LPAREN funcvalues RPAREN {
    result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[2],
      :ftype => :statement
  }
  | NAME LPAREN funcvalues COMMA RPAREN {
    result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[2],
      :ftype => :statement
  }            | NAME LPAREN RPAREN {
    result = ast AST::Function,
@@@ -92,22 -101,29 +101,22 @@@
      :ftype => :statement
  }
    | NAME funcvalues {
      result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[1],
      :ftype => :statement
  }
  
 -funcvalues:       namestring
 -  | resourceref
 +funcvalues: namestring { result = aryfy(val[0]) }
 +  | resourceref        { result = aryfy(val[0]) }
    | funcvalues COMMA namestring {
 -    result = aryfy(val[0], val[2])
 -    result.line = @lexer.line
 -    result.file = @lexer.file
 +    val[0].push(val[2])
 +    result = val[0]
  }
    | funcvalues COMMA resourceref {
 -    unless val[0].is_a?(AST::ASTArray)
 -    val[0] = aryfy(val[0])
 -  end
 -
 -  val[0].push(val[2])
 -
 -  result = val[0]
 +    val[0].push(val[2])
 +    result = val[0]
  }
  
  # This is *almost* an rvalue, but I couldn't get a full
@@@ -126,7 -142,23 +135,7 @@@ namestring:       nam
  
  resource:       classname LBRACE resourceinstances endsemi RBRACE {
    @lexer.commentpop
 -  array = val[2]
 -  array = [array] if array.instance_of?(AST::ResourceInstance)
 -  result = ast AST::ASTArray
 -
 -  # this iterates across each specified resourceinstance
 -  array.each { |instance|
 -    raise Puppet::Dev, "Got something that isn't an instance" unless instance.instance_of?(AST::ResourceInstance)
 -    # now, i need to somehow differentiate between those things with
 -    # arrays in their names, and normal things
 -
 -      result.push ast(
 -        AST::Resource,
 -      :type => val[0],
 -      :title => instance[0],
 -
 -      :parameters => instance[1])
 -  }
 +  result = ast(AST::Resource, :type => val[0], :instances => val[2])
  }           | classname LBRACE params endcomma RBRACE {
    # This is a deprecated syntax.
    error "All resource specifications require names"
@@@ -155,8 -187,14 +164,8 @@@ virtualresource:  at resource 
  
    method = type.to_s + "="
  
 -  # Just mark our resources as exported and pass them through.
 -  if val[1].instance_of?(AST::ASTArray)
 -    val[1].each do |obj|
 -      obj.send(method, true)
 -    end
 -  else
 -    val[1].send(method, true)
 -  end
 +  # Just mark our resource as exported and pass it through.
 +  val[1].send(method, true)
  
    result = val[1]
  }
@@@ -255,13 -293,17 +264,13 @@@ colllval:                 variabl
    | name
  
  resourceinst:   resourcename COLON params endcomma {
 -  result = ast AST::ResourceInstance, :children => [val[0],val[2]]
 +  result = ast AST::ResourceInstance, :title => val[0], :parameters => val[2]
  }
  
 -resourceinstances:   resourceinst
 +resourceinstances:   resourceinst { result = aryfy(val[0]) }
    | resourceinstances SEMIC resourceinst {
 -    if val[0].instance_of?(AST::ResourceInstance)
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  else
      val[0].push val[2]
      result = val[0]
 -  end
  }
  
  endsemi:      # nothing
@@@ -306,10 -348,14 +315,10 @@@ params:   # nothin
  {
    result = ast AST::ASTArray
  }
 -  | param { result = val[0] }
 +  | param { result = aryfy(val[0]) }
    | params COMMA param {
 -    if val[0].instance_of?(AST::ASTArray)
      val[0].push(val[2])
      result = val[0]
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
  }
  
  param:        NAME FARROW rvalue {
@@@ -328,14 -374,24 +337,14 @@@ anyparams:   # nothin
  {
    result = ast AST::ASTArray
  }
 -  | anyparam { result = val[0] }
 +  | anyparam { result = aryfy(val[0]) }
    | anyparams COMMA anyparam {
 -    if val[0].instance_of?(AST::ASTArray)
      val[0].push(val[2])
      result = val[0]
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
  }
  
 -rvalues:      rvalue
 -  | rvalues comma rvalue {
 -    if val[0].instance_of?(AST::ASTArray)
 -    result = val[0].push(val[2])
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
 -}
 +rvalues: rvalue               { result = aryfy(val[0]) }
 +       | rvalues comma rvalue { result = val[0].push(val[2]) }
  
  simplervalue:       quotedtext
    | name
@@@ -359,9 -415,10 +368,9 @@@ rvalue:       quotedtex
  
  # We currently require arguments in these functions.
  funcrvalue:   NAME LPAREN funcvalues RPAREN {
 -  args = aryfy(val[2])
    result = ast AST::Function,
      :name => val[0][:value], :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[2],
      :ftype => :rvalue
  }           | NAME LPAREN RPAREN {
    result = ast AST::Function,
@@@ -505,13 -562,19 +514,13 @@@ expression:   rvalu
  
  casestatement:  CASE rvalue LBRACE caseopts RBRACE {
    @lexer.commentpop
 -  options = val[3]
 -  options = ast AST::ASTArray, :children => [val[3]] unless options.instance_of?(AST::ASTArray)
 -  result = ast AST::CaseStatement, :test => val[1], :options => options
 +  result = ast AST::CaseStatement, :test => val[1], :options => val[3]
  }
  
 -caseopts:     caseopt
 +caseopts:     caseopt { result = aryfy(val[0]) }
    | caseopts caseopt {
 -    if val[0].instance_of?(AST::ASTArray)
      val[0].push val[1]
      result = val[0]
 -  else
 -    result = ast AST::ASTArray, :children => [val[0], val[1]]
 -  end
  }
  
  caseopt:        casevalues COLON LBRACE statements RBRACE {
@@@ -528,10 -591,14 +537,10 @@@
    )
  }
  
 -casevalues:       selectlhand
 +casevalues:       selectlhand { result = aryfy(val[0]) }
    | casevalues COMMA selectlhand {
 -    if val[0].instance_of?(AST::ASTArray)
      val[0].push(val[2])
      result = val[0]
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
  }
  
  selector:     selectlhand QMARK svalues {
@@@ -580,7 -647,7 +589,7 @@@ import: IMPORT strings 
      import(file)
    end
  
 -  result = AST::ASTArray.new(:children => [])
 +  result = nil
  }
  
  # Disable definition inheritance for now. 8/27/06, luke
@@@ -601,11 -668,10 +610,10 @@@ definition: DEFINE classname argumentli
  }
  
  #hostclass: CLASS NAME argumentlist parent LBRACE statements RBRACE {
- hostclass: CLASS classname argumentlist classparent LBRACE statements RBRACE {
+ hostclass: CLASS classname argumentlist classparent LBRACE statements_and_declarations RBRACE {
    @lexer.commentpop
    # Our class gets defined in the parent namespace, not our own.
    @lexer.namepop
-   val[5].is_a_namespace = true
    result = Puppet::Parser::AST::Hostclass.new(classname(val[1]),
                                                ast_context(true).merge(:arguments => val[2], :parent => val[3],
                                                                        :code => val[5], :line => val[0][:line]))
@@@ -706,9 -772,22 +714,9 @@@ variable:     VARIABLE 
    result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
  }
  
 -array:        LBRACK rvalues RBRACK {
 -  if val[1].instance_of?(AST::ASTArray)
 -    result = val[1]
 -  else
 -    result = ast AST::ASTArray, :children => [val[1]]
 -  end
 -}
 -  | LBRACK rvalues COMMA RBRACK {
 -    if val[1].instance_of?(AST::ASTArray)
 -    result = val[1]
 -  else
 -    result = ast AST::ASTArray, :children => [val[1]]
 -  end
 -}           | LBRACK RBRACK {
 -  result = ast AST::ASTArray
 -}
 +array: LBRACK rvalues       RBRACK { result = val[1] }
 +     | LBRACK rvalues COMMA RBRACK { result = val[1] }
 +     | LBRACK               RBRACK { result = ast AST::ASTArray }
  
  comma:        FARROW
    | COMMA
diff --combined lib/puppet/parser/parser.rb
index 0f851a5,5b24d84..60b272e
--- a/lib/puppet/parser/parser.rb
+++ b/lib/puppet/parser/parser.rb
@@@ -1,10 -1,10 +1,11 @@@
  #
  # DO NOT MODIFY!!!!
--# This file is automatically generated by Racc 1.4.6
--# from Racc grammer file "".
++# This file is automatically generated by racc 1.4.5
++# from racc grammer file "grammar.ra".
  #
  
--require 'racc/parser.rb'
++require 'racc/parser'
++
  
  require 'puppet'
  require 'puppet/util/loadedfile'
@@@ -17,11 -17,11 +18,14 @@@ module Puppe
    class AlreadyImportedError < ImportError; end
  end
  
++
  module Puppet
++
    module Parser
++
      class Parser < Racc::Parser
  
- module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 780)
 -module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 859)
++module_eval <<'..end grammar.ra modeval..id6362f948d9', 'grammar.ra', 788
  
  # It got too annoying having code in a file that needs to be compiled.
  require 'puppet/parser/parser_support'
@@@ -32,1375 -32,1353 +36,1326 @@@
  # End:
  
  # $Id$
--...end grammar.ra/module_eval...
--##### State transition tables begin ###
++
++..end grammar.ra modeval..id6362f948d9
++
++##### racc 1.4.5 generates ###
++
++racc_reduce_table = [
++ 0, 0, :racc_error,
++ 1, 70, :_reduce_none,
++ 1, 70, :_reduce_none,
++ 1, 71, :_reduce_3,
++ 2, 71, :_reduce_4,
++ 1, 74, :_reduce_5,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 1, 73, :_reduce_none,
++ 3, 88, :_reduce_20,
++ 3, 88, :_reduce_21,
++ 1, 89, :_reduce_none,
++ 1, 89, :_reduce_none,
++ 1, 89, :_reduce_none,
++ 1, 90, :_reduce_none,
++ 1, 90, :_reduce_none,
++ 1, 90, :_reduce_none,
++ 1, 90, :_reduce_none,
++ 4, 82, :_reduce_29,
++ 5, 82, :_reduce_30,
++ 3, 82, :_reduce_31,
++ 2, 82, :_reduce_32,
++ 1, 92, :_reduce_33,
++ 1, 92, :_reduce_34,
++ 3, 92, :_reduce_35,
++ 3, 92, :_reduce_36,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_none,
++ 1, 93, :_reduce_45,
++ 5, 75, :_reduce_46,
++ 5, 75, :_reduce_47,
++ 5, 75, :_reduce_48,
++ 5, 86, :_reduce_49,
++ 2, 76, :_reduce_50,
++ 1, 109, :_reduce_51,
++ 2, 109, :_reduce_52,
++ 6, 77, :_reduce_53,
++ 2, 77, :_reduce_54,
++ 3, 110, :_reduce_55,
++ 3, 110, :_reduce_56,
++ 1, 111, :_reduce_none,
++ 1, 111, :_reduce_none,
++ 3, 111, :_reduce_59,
++ 1, 112, :_reduce_none,
++ 3, 112, :_reduce_61,
++ 1, 113, :_reduce_62,
++ 1, 113, :_reduce_63,
++ 3, 114, :_reduce_64,
++ 3, 114, :_reduce_65,
++ 1, 115, :_reduce_none,
++ 1, 115, :_reduce_none,
++ 4, 117, :_reduce_68,
++ 1, 103, :_reduce_69,
++ 3, 103, :_reduce_70,
++ 0, 104, :_reduce_none,
++ 1, 104, :_reduce_none,
++ 1, 119, :_reduce_73,
++ 1, 94, :_reduce_74,
++ 1, 96, :_reduce_75,
++ 1, 118, :_reduce_none,
++ 1, 118, :_reduce_none,
++ 1, 118, :_reduce_none,
++ 1, 118, :_reduce_none,
++ 1, 118, :_reduce_none,
++ 1, 118, :_reduce_none,
++ 1, 118, :_reduce_none,
++ 3, 78, :_reduce_83,
++ 3, 78, :_reduce_84,
++ 3, 87, :_reduce_85,
++ 0, 105, :_reduce_86,
++ 1, 105, :_reduce_87,
++ 3, 105, :_reduce_88,
++ 3, 123, :_reduce_89,
++ 3, 125, :_reduce_90,
++ 1, 126, :_reduce_none,
++ 1, 126, :_reduce_none,
++ 0, 108, :_reduce_93,
++ 1, 108, :_reduce_94,
++ 3, 108, :_reduce_95,
++ 1, 127, :_reduce_96,
++ 3, 127, :_reduce_97,
++ 1, 116, :_reduce_none,
++ 1, 116, :_reduce_none,
++ 1, 116, :_reduce_none,
++ 1, 116, :_reduce_none,
++ 1, 116, :_reduce_none,
++ 1, 116, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 1, 124, :_reduce_none,
++ 4, 98, :_reduce_116,
++ 3, 98, :_reduce_117,
++ 1, 100, :_reduce_118,
++ 2, 100, :_reduce_119,
++ 2, 130, :_reduce_120,
++ 1, 131, :_reduce_121,
++ 2, 131, :_reduce_122,
++ 1, 97, :_reduce_123,
++ 4, 91, :_reduce_124,
++ 4, 91, :_reduce_125,
++ 2, 80, :_reduce_126,
++ 5, 132, :_reduce_127,
++ 4, 132, :_reduce_128,
++ 0, 133, :_reduce_none,
++ 2, 133, :_reduce_130,
++ 4, 133, :_reduce_131,
++ 3, 133, :_reduce_132,
++ 1, 121, :_reduce_none,
++ 3, 121, :_reduce_134,
++ 3, 121, :_reduce_135,
++ 3, 121, :_reduce_136,
++ 3, 121, :_reduce_137,
++ 3, 121, :_reduce_138,
++ 3, 121, :_reduce_139,
++ 3, 121, :_reduce_140,
++ 3, 121, :_reduce_141,
++ 3, 121, :_reduce_142,
++ 2, 121, :_reduce_143,
++ 3, 121, :_reduce_144,
++ 3, 121, :_reduce_145,
++ 3, 121, :_reduce_146,
++ 3, 121, :_reduce_147,
++ 3, 121, :_reduce_148,
++ 3, 121, :_reduce_149,
++ 2, 121, :_reduce_150,
++ 3, 121, :_reduce_151,
++ 3, 121, :_reduce_152,
++ 3, 121, :_reduce_153,
++ 5, 79, :_reduce_154,
++ 1, 135, :_reduce_155,
++ 2, 135, :_reduce_156,
++ 5, 136, :_reduce_157,
++ 4, 136, :_reduce_158,
++ 1, 137, :_reduce_159,
++ 3, 137, :_reduce_160,
++ 3, 99, :_reduce_161,
++ 1, 139, :_reduce_none,
++ 4, 139, :_reduce_163,
++ 1, 141, :_reduce_none,
++ 3, 141, :_reduce_165,
++ 3, 140, :_reduce_166,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_none,
++ 1, 138, :_reduce_174,
++ 1, 138, :_reduce_none,
++ 1, 142, :_reduce_176,
++ 1, 143, :_reduce_none,
++ 3, 143, :_reduce_178,
++ 2, 81, :_reduce_179,
++ 6, 83, :_reduce_180,
++ 5, 83, :_reduce_181,
++ 7, 84, :_reduce_182,
++ 6, 84, :_reduce_183,
++ 6, 85, :_reduce_184,
++ 5, 85, :_reduce_185,
++ 1, 107, :_reduce_186,
++ 1, 102, :_reduce_187,
++ 1, 102, :_reduce_188,
++ 1, 102, :_reduce_189,
++ 1, 146, :_reduce_190,
++ 3, 146, :_reduce_191,
++ 1, 148, :_reduce_192,
++ 1, 149, :_reduce_193,
++ 1, 149, :_reduce_194,
++ 1, 149, :_reduce_195,
++ 1, 149, :_reduce_none,
++ 0, 72, :_reduce_197,
++ 0, 150, :_reduce_198,
++ 1, 144, :_reduce_none,
++ 3, 144, :_reduce_200,
++ 3, 144, :_reduce_201,
++ 1, 151, :_reduce_none,
++ 3, 151, :_reduce_203,
++ 3, 152, :_reduce_204,
++ 1, 152, :_reduce_205,
++ 3, 152, :_reduce_206,
++ 1, 152, :_reduce_207,
++ 1, 147, :_reduce_none,
++ 2, 147, :_reduce_209,
++ 1, 145, :_reduce_none,
++ 2, 145, :_reduce_211,
++ 1, 153, :_reduce_none,
++ 1, 153, :_reduce_none,
++ 1, 95, :_reduce_214,
++ 3, 120, :_reduce_215,
++ 4, 120, :_reduce_216,
++ 2, 120, :_reduce_217,
++ 1, 128, :_reduce_none,
++ 1, 128, :_reduce_none,
++ 0, 106, :_reduce_none,
++ 1, 106, :_reduce_221,
++ 1, 134, :_reduce_222,
++ 3, 129, :_reduce_223,
++ 4, 129, :_reduce_224,
++ 2, 129, :_reduce_225,
++ 1, 154, :_reduce_none,
++ 3, 154, :_reduce_227,
++ 3, 155, :_reduce_228,
++ 1, 156, :_reduce_229,
++ 1, 156, :_reduce_230,
++ 4, 122, :_reduce_231,
++ 1, 101, :_reduce_none,
++ 4, 101, :_reduce_233 ]
++
++racc_reduce_n = 234
++
++racc_shift_n = 385
  
  racc_action_table = [
-    256,   257,   228,    82,    54,    72,    75,   181,   251,    48,
-     72,    75,   194,   205,   210,   163,   156,   348,    46,    47,
-    344,   184,   201,   203,   206,   209,   162,   352,    54,   182,
-    351,   169,    54,  -168,    72,    75,   241,   242,   102,   305,
-    106,   158,    58,   193,   230,    60,   204,   208,   193,   306,
-    213,   196,   197,   198,   200,   202,    97,   207,   211,    72,
-     75,    72,    75,   163,   199,    59,    58,    71,   245,    60,
-     58,    83,    86,    60,   162,    92,   244,    72,    75,   169,
-     78,   100,   352,   269,    89,   351,    63,    94,    64,    59,
-    228,   326,    71,    59,   162,    59,    83,    86,    83,   268,
-     92,    65,    92,   184,    76,    78,   307,   137,   163,    89,
-    162,    89,    72,    75,    83,   268,   241,   242,    92,   162,
-     59,   163,    59,   137,   169,    62,   254,    89,   207,   211,
-     72,    75,   162,   308,   102,   199,   106,   169,    59,   255,
-    213,   196,   197,   198,  -166,   162,   309,   207,   211,    83,
-    268,   310,    97,    92,   199,    72,    75,   355,   137,   102,
-   -170,   106,    89,    71,   218,   356,   173,    83,    86,   220,
-    313,    92,  -171,    59,    72,    75,    78,   100,    37,   218,
-     89,   249,    38,    94,   220,   246,   247,   173,    71,    11,
-    210,    59,    83,    86,   246,   367,    92,   271,   201,    37,
-   -167,    78,    37,    38,   270,    89,    38,    71,   246,   247,
-     11,    83,    86,    11,    14,    92,    59,    72,    75,    76,
-     78,   102,   278,   106,    89,   277,   213,   196,   197,   198,
-    200,   202,   275,   207,   211,    59,   246,   274,   152,    97,
-    199,    37,   318,    72,    75,   127,   319,   102,  -169,   106,
-     71,    63,    11,    14,    83,    86,  -167,    37,    92,   207,
-    211,   127,  -169,    78,   100,    97,   199,    89,    11,    14,
-     94,  -166,   117,    72,    75,  -185,    71,    82,    59,   336,
-     83,    86,   197,   198,    92,   231,   338,   207,   211,    78,
-    100,   181,    48,    89,   199,    74,    94,   240,  -168,    72,
-     75,   241,   242,   102,    59,   106,    71,   184,   176,    37,
-     83,    86,    59,    38,    92,   345,   322,   175,    76,    78,
-     11,    97,  -172,    89,  -171,    72,    75,  -170,    59,   102,
-    214,   106,    71,    64,    59,   215,    83,    86,   173,   217,
-     92,   -23,   -23,   -23,   -23,    78,   100,    97,   155,    89,
-     72,    75,    94,   122,   102,   152,   106,    82,    71,   223,
-     59,   122,    83,    86,    72,    75,    92,  -168,   102,   225,
-    106,    78,   100,  -166,   276,    89,   226,   117,    94,    44,
-     45,    41,    42,    71,  -169,  -167,    59,    83,    86,    72,
-     75,    92,   226,   102,   229,   106,    78,    71,    52,  -168,
-     89,    83,    86,    72,    75,    92,  -166,   102,  -169,   106,
-     78,    59,   197,   198,    89,  -167,  -171,   207,   211,   365,
-    231,   152,    71,   234,   199,    59,    83,    86,    50,   210,
-     92,   -21,   -21,   -21,   -21,    78,    71,   201,   372,    89,
-     83,    86,    49,   374,    92,    72,    75,   228,  -220,    78,
-     59,   226,   354,    89,   377,    72,    75,    40,    39,   102,
-    237,   106,   341,   nil,    59,   213,   196,   197,   198,   200,
-    202,   nil,   207,   211,   nil,   nil,   nil,    97,   162,   199,
-    nil,   nil,    83,   268,   nil,   nil,    92,   nil,    71,   nil,
-    nil,   137,    83,    86,   nil,    89,    92,    44,    45,    41,
-     42,    78,   100,    72,    75,    89,    59,   102,    94,   106,
-    213,   196,   197,   198,   200,   202,    59,   207,   211,   nil,
-    213,   196,   197,   198,   199,    97,   nil,   207,   211,    72,
-     75,   nil,   nil,   102,   199,   106,    71,   nil,   nil,   nil,
-     83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,
-    100,    97,   nil,    89,   nil,   nil,    94,   nil,   nil,    72,
-     75,   nil,    71,   102,    59,   106,    83,    86,   nil,   nil,
-     92,   nil,   nil,   nil,   nil,    78,   100,   nil,   nil,    89,
-    nil,    97,    94,   nil,   nil,    72,    75,   nil,   nil,   102,
-     59,   106,    71,   nil,   nil,   nil,    83,    86,   nil,   nil,
-     92,   nil,   nil,   nil,   nil,    78,   100,    97,   nil,    89,
-     72,    75,    94,   nil,   102,   nil,   106,   nil,    71,   nil,
-     59,   nil,    83,    86,    72,    75,    92,   nil,   102,   nil,
-    nil,    78,   100,   nil,   nil,    89,   nil,   nil,    94,   nil,
-    nil,   nil,   nil,    71,   nil,   nil,    59,    83,    86,    72,
-     75,    92,   nil,   102,   nil,   106,    78,    71,   nil,   nil,
-     89,    83,   143,   nil,   nil,    92,   nil,   nil,   nil,   nil,
-    137,    59,   nil,   nil,    89,    72,    75,   nil,   nil,   102,
-    nil,   106,    71,   nil,   nil,    59,    83,    86,   nil,   nil,
-     92,   nil,   nil,   nil,   nil,    78,   nil,    97,   nil,    89,
-    nil,    72,    75,   nil,   nil,   102,   nil,   106,    71,   nil,
-     59,   nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,
-    nil,    78,   100,    97,   nil,    89,   nil,   nil,    94,   nil,
-    nil,    72,    75,   nil,    71,   102,    59,   106,    83,    86,
-    nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,   nil,
-    nil,    89,   nil,    97,    94,   nil,   nil,    72,    75,   nil,
-    nil,   102,    59,   106,    71,   nil,   nil,   nil,    83,    86,
-    nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,    97,
-    nil,    89,    72,    75,    94,   nil,   102,   nil,   106,   nil,
-     71,   nil,    59,   nil,    83,    86,   nil,   nil,    92,   nil,
-    nil,   nil,   nil,    78,   100,   nil,   nil,    89,    72,    75,
-     94,   nil,   102,   nil,   106,    71,   nil,   nil,    59,    83,
-     86,   nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   nil,
-     97,   nil,    89,   nil,    72,    75,   nil,   nil,   102,   nil,
-    106,    71,   nil,    59,   nil,    83,    86,   nil,   nil,    92,
-    nil,   nil,    72,    75,    78,   100,    97,   nil,    89,    72,
-     75,    94,   nil,   102,   nil,   106,   nil,    71,   nil,    59,
-    nil,    83,    86,   nil,   nil,    92,   nil,   nil,   nil,   nil,
-     78,   100,   nil,   nil,    89,   162,   nil,    94,   nil,    83,
-    268,   nil,    71,    92,   nil,    59,    83,    86,   137,   nil,
-     92,   nil,    89,   nil,   nil,    78,    72,    75,   nil,    89,
-    102,   nil,   106,    59,   nil,   nil,   nil,   nil,   nil,   nil,
-     59,   nil,   nil,   nil,   nil,    72,    75,   nil,    97,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    71,
-    nil,   nil,   nil,    83,    86,   nil,   nil,    92,   177,   nil,
-     72,    75,    78,   100,   nil,   nil,    89,   nil,    71,    94,
-    nil,   nil,    83,    86,   nil,   nil,    92,    59,    72,    75,
-     76,    78,   102,   339,   106,    89,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,    71,   nil,   nil,    59,    83,    86,   nil,
-     97,    92,   nil,    72,    75,    76,    78,   102,   nil,   106,
-     89,    71,   nil,    72,    75,    83,    86,   nil,   nil,    92,
-    nil,    59,   nil,   nil,    78,   100,   nil,   nil,    89,    72,
-     75,    94,   nil,   nil,   nil,   nil,    71,   nil,   nil,    59,
-     83,    86,   nil,   nil,    92,   nil,   162,   nil,   nil,    78,
-     83,   268,   nil,    89,    92,   nil,    72,    75,   nil,   137,
-    102,   nil,   162,    89,    59,   nil,    83,   268,   nil,   nil,
-     92,   nil,    72,    75,    59,   137,   102,   nil,   106,    89,
-    nil,   nil,    72,    75,   nil,   nil,   102,   nil,   106,    71,
-     59,   nil,   nil,    83,   268,   nil,   nil,    92,   nil,   nil,
-    nil,   nil,   137,   nil,    97,    71,    89,   nil,   nil,    83,
-     86,   nil,   nil,    92,   nil,    71,   nil,    59,    78,    83,
-     86,   nil,    89,    92,   nil,   nil,   nil,   nil,    78,   100,
-     72,    75,    89,    59,   102,    94,   106,   213,   196,   197,
-    198,   200,   202,    59,   207,   211,   nil,   nil,   nil,    72,
-     75,   199,    97,   102,   189,   106,    72,    75,   nil,   nil,
-    102,   nil,   106,    71,   nil,   nil,   nil,    83,    86,   nil,
-    nil,    92,   nil,   nil,   nil,   nil,    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,   162,   nil,   nil,   nil,    83,   268,    59,   nil,    92,
-    nil,    72,    75,   nil,   137,   102,   nil,   106,    89,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,    71,   nil,   nil,    59,
-     83,    86,   nil,    97,    92,   nil,   nil,   nil,   nil,    78,
-    nil,    72,    75,    89,    71,   102,   nil,   106,    83,    86,
-    nil,   nil,    92,   nil,    59,   nil,   nil,    78,   100,   nil,
-    nil,    89,   nil,    97,    94,   nil,   nil,    72,    75,   nil,
-    nil,   102,    59,   106,    71,   nil,   nil,   nil,    83,    86,
-    nil,   nil,    92,   nil,   nil,   nil,   nil,    78,   100,    97,
-    nil,    89,   nil,   nil,    94,   nil,   nil,   nil,   nil,   nil,
-     71,   nil,    59,   nil,    83,    86,   212,   nil,    92,   nil,
-    nil,   nil,   nil,    78,   100,   205,   210,    89,   nil,   nil,
-     94,   nil,   nil,   nil,   201,   203,   206,   209,    59,   nil,
-    205,   210,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   201,
-    203,   206,   209,   nil,   nil,   nil,   nil,   nil,   204,   208,
-    nil,   nil,   213,   196,   197,   198,   200,   202,   nil,   207,
-    211,   nil,   nil,   204,   208,   nil,   199,   213,   196,   197,
-    198,   200,   202,   nil,   207,   211,   205,   210,   nil,   nil,
-    nil,   199,   nil,   nil,   nil,   201,   203,   206,   209,   nil,
-    nil,   205,   210,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    201,   203,   206,   209,   nil,   nil,   nil,   nil,   nil,   204,
-    208,   nil,   nil,   213,   196,   197,   198,   200,   202,   nil,
-    207,   211,   nil,   nil,   204,   208,   nil,   199,   213,   196,
-    197,   198,   200,   202,   nil,   207,   211,   205,   210,   nil,
-    nil,   nil,   199,   nil,   nil,   nil,   201,   203,   206,   209,
-    nil,   nil,   205,   210,   nil,   nil,   nil,   nil,   nil,   nil,
-    273,   201,   203,   206,   209,   nil,   nil,   nil,   nil,   nil,
-    nil,   208,   nil,   nil,   213,   196,   197,   198,   200,   202,
-    nil,   207,   211,   nil,   nil,   204,   208,   nil,   199,   213,
-    196,   197,   198,   200,   202,   nil,   207,   211,   205,   210,
-    nil,   nil,   nil,   199,   nil,   nil,   nil,   201,   203,   206,
-    209,   nil,   nil,    26,   210,    33,     1,   nil,     7,    12,
-    nil,    17,   201,    23,   nil,    29,   nil,     3,   nil,   nil,
-     11,    14,   nil,   210,   nil,   213,   196,   197,   198,   200,
-    202,   201,   207,   211,   nil,   nil,   nil,   nil,   nil,   199,
-    213,   196,   197,   198,   200,   202,   nil,   207,   211,   nil,
-    nil,   324,   nil,   nil,   199,   nil,   nil,   nil,   nil,   213,
-    196,   197,   198,   200,   202,   nil,   207,   211,   nil,   nil,
-    379,   nil,    26,   199,    33,     1,   nil,     7,    12,   nil,
-     17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
-     14,    26,   382,    33,     1,   nil,     7,    12,   nil,    17,
-    nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,    14,
-    nil,   296,   nil,    26,   nil,    33,     1,   nil,     7,    12,
-    nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
-     11,    14,    26,   364,    33,     1,   nil,     7,    12,   nil,
-     17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,    11,
-     14,   nil,   381,   nil,    26,   nil,    33,     1,   nil,     7,
-     12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,
-    nil,    11,    14,    26,   383,    33,     1,   nil,     7,    12,
-    nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,   nil,
-     11,    14,   nil,   357,   nil,    26,   nil,    33,     1,   nil,
-      7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,
-    nil,   nil,    11,    14,    26,   363,    33,     1,   nil,     7,
-     12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,   nil,
-    nil,    11,    14,   nil,   375,   nil,    26,   nil,    33,     1,
-    nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,
-      3,   nil,   nil,    11,    14,    26,   304,    33,     1,   nil,
-      7,    12,   nil,    17,   nil,    23,   nil,    29,   nil,     3,
-    nil,   nil,    11,    14,   nil,   349,   nil,    26,   nil,    33,
-      1,   nil,     7,    12,   nil,    17,   nil,    23,   nil,    29,
-    nil,     3,   nil,   nil,    11,    14,    26,   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 ]
+    242,   243,    55,   231,   356,   112,   157,   113,    78,   298,
+     68,    71,   357,   181,   186,   326,   344,   340,    55,   295,
+    114,   231,   177,   179,   182,   185,   170,   294,    68,    71,
+    286,   158,   100,   285,   103,    68,    71,   291,   292,    55,
+     59,   291,   292,    61,   111,   233,   180,   184,   198,   231,
+    189,   172,   173,   174,   176,   178,    59,   183,   187,    61,
+   -168,    66,   170,    60,   175,    79,    81,   186,   202,    88,
+    112,   166,    79,   252,    74,   177,    88,    59,    84,    60,
+     61,   139,    68,    71,   333,    84,   100,   117,   103,    60,
+     36,  -170,    68,    71,    38,   306,    60,   307,   203,   240,
+     60,    10,   203,   189,   172,   173,   174,   176,   178,   202,
+    183,   187,   241,   202,   209,    66,   218,   175,   209,    79,
+     81,   219,   284,    88,   309,   202,   256,   283,    74,    79,
+    252,   308,    84,    88,   203,    68,    71,   310,   139,   100,
+    203,   103,    84,    60,   218,   202,   256,   367,    36,   219,
+    209,   202,    38,    60,    68,    71,   209,    95,   100,    10,
+    103,    68,    71,    68,    71,   100,   337,   103,    66,   335,
+    199,   154,    79,    81,   173,   174,    88,   183,   187,   183,
+    187,    74,    99,    95,   175,    84,   175,    66,    90,   311,
+    337,    79,    81,   335,    66,    88,    60,   287,    79,    81,
+     74,   198,    88,   315,    84,    68,    71,    74,    99,  -172,
+    213,    84,    68,    71,    90,    60,   100,    36,   103,    68,
+     71,    38,    60,   100,   318,   103,    68,    71,    10,    15,
+     36,  -167,   213,   355,    38,   167,    36,   313,   202,   154,
+    127,    10,    79,   252,   323,    66,    88,    10,    15,    79,
+     81,   139,    66,    88,   166,    84,    79,    81,    74,   202,
+     88,   229,    84,    79,   252,    74,    60,    88,    49,    84,
+     68,    71,   139,    60,    78,  -186,    84,    47,    48,    49,
+     60,   329,    36,   170,   183,   187,   127,    60,  -169,    68,
+     71,   175,    70,    10,    15,    68,    71,   161,  -171,   100,
+    289,   103,  -169,    66,   291,   292,    60,    79,    81,   258,
+   -167,    88,  -170,   256,   257,    72,    74,    95,  -168,    60,
+     84,   156,    66,   154,    68,    71,    79,    81,    66,   122,
+     88,    60,    79,    81,    72,    74,    88,  -170,  -173,    84,
+   -172,    74,    99,    68,    71,    84,  -171,   100,    90,   103,
+     60,   200,   334,    68,    71,   213,    60,   202,   215,   254,
+    338,    79,   252,   173,   174,    88,   122,   296,   183,   187,
+    139,   256,   257,   216,    84,   175,    66,   234,    68,    71,
+     79,    81,   113,   117,    88,    60,   202,   217,    78,    74,
+     79,   252,   353,    84,    88,    53,    68,    71,   223,   139,
+    100,   260,   103,    84,    60,    43,    44,    40,    41,   358,
+     52,    66,    51,   225,    60,    79,    81,  -169,   229,    88,
+    365,    68,    71,    72,    74,   100,   238,   103,    84,    66,
+    228,  -167,   234,    79,    81,   372,   373,    88,  -169,    60,
+   -167,  -170,    74,    95,  -168,  -172,    84,    68,    71,    45,
+    375,   100,   229,   103,    66,  -221,   232,    60,    79,    81,
+    378,    39,    88,   -24,   -24,   -24,   -24,    74,    99,    95,
+   -168,    84,   383,   384,    90,   nil,   nil,    68,    71,   nil,
+     66,   100,    60,   103,    79,    81,   nil,   nil,    88,   -22,
+    -22,   -22,   -22,    74,    99,   nil,   nil,    84,   nil,    95,
+     90,   nil,   nil,    68,    71,   nil,   nil,   100,    60,   103,
+     66,   nil,   nil,   nil,    79,    81,   nil,   nil,    88,    43,
+     44,    40,    41,    74,    99,    95,   nil,    84,   nil,   nil,
+     90,   nil,   nil,    68,    71,   nil,    66,   100,    60,   103,
+     79,    81,   nil,   nil,    88,   nil,   nil,   nil,   nil,    74,
+     99,   nil,   nil,    84,   nil,    95,    90,   nil,   nil,    68,
+     71,   nil,   nil,   100,    60,   103,    66,   nil,   nil,   nil,
+     79,    81,   nil,   nil,    88,   nil,   nil,    68,    71,    74,
+     99,   100,   nil,    84,    68,    71,    90,   nil,   100,   nil,
+    103,   nil,    66,   nil,    60,   nil,    79,    81,   nil,   nil,
+     88,   nil,   nil,   nil,   nil,    74,    95,   nil,   nil,    84,
+     66,   nil,   nil,   nil,    79,   144,   nil,    66,    88,   nil,
+     60,    79,    81,   139,   nil,    88,   nil,    84,   nil,   nil,
+     74,    99,   nil,   nil,    84,    68,    71,    90,    60,   100,
+    nil,   103,   nil,   nil,   nil,    60,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,    68,    71,   nil,    95,   100,   nil,
+    103,    68,    71,   nil,   nil,   100,   nil,   103,    66,   nil,
+    nil,   nil,    79,    81,   nil,   nil,    88,   nil,   nil,    68,
+     71,    74,    99,   nil,   nil,    84,   nil,    66,    90,   nil,
+    nil,    79,    81,   nil,    66,    88,    60,   nil,    79,    81,
+     74,   nil,    88,   nil,    84,    68,    71,    74,   nil,   nil,
+    nil,    84,   202,   nil,   nil,    60,    79,   252,   nil,   nil,
+     88,   nil,    60,   nil,   nil,   139,    68,    71,   162,    84,
+    100,   nil,   103,   nil,   nil,   nil,   nil,   nil,    66,   nil,
+     60,   nil,    79,    81,   nil,   nil,    88,   nil,    95,   nil,
+     72,    74,    68,    71,   nil,    84,   100,   nil,   103,    66,
+    nil,   nil,   nil,    79,    81,   nil,    60,    88,   nil,   nil,
+    nil,   nil,    74,    99,    95,   nil,    84,    68,    71,    90,
+    nil,   nil,   nil,   nil,   nil,    66,   nil,    60,   nil,    79,
+     81,   nil,   nil,    88,   nil,   nil,   nil,   nil,    74,    99,
+    327,   nil,    84,    68,    71,    90,   nil,   100,   nil,   103,
+     66,   nil,   nil,    60,    79,    81,   nil,   nil,    88,   nil,
+    nil,   nil,    72,    74,   nil,    95,   nil,    84,    68,    71,
+    nil,   nil,   100,   nil,   103,   nil,    66,   nil,    60,   nil,
+     79,    81,    68,    71,    88,   nil,   100,   nil,   103,    74,
+     99,   nil,   nil,    84,   nil,   nil,    90,   nil,   nil,   nil,
+    nil,    66,   nil,   nil,    60,    79,    81,    68,    71,    88,
+    nil,   100,   nil,   103,    74,    66,   nil,   nil,    84,    79,
+     81,    68,    71,    88,   nil,   100,   nil,   nil,    74,    60,
+    nil,   nil,    84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+     66,   nil,   nil,    60,    79,    81,   nil,   nil,    88,   nil,
+    nil,    68,    71,    74,    66,   nil,   nil,    84,    79,   252,
+    nil,   nil,    88,   nil,   nil,   nil,   nil,   139,    60,    68,
+     71,    84,   nil,   100,   nil,   103,   nil,   nil,   nil,   nil,
+    nil,   nil,    60,   nil,   202,   nil,   nil,   nil,    79,   252,
+    nil,    95,    88,   nil,   nil,   nil,   nil,   139,   nil,    68,
+     71,    84,    66,   100,   nil,   103,    79,    81,   nil,   nil,
+     88,   nil,    60,   nil,   nil,    74,    99,   nil,   nil,    84,
+    nil,    95,    90,   nil,   nil,    68,    71,   nil,   nil,   100,
+     60,   103,    66,   nil,   nil,   nil,    79,    81,   nil,   nil,
+     88,   nil,   nil,   nil,   nil,    74,    99,    95,   nil,    84,
+    nil,   nil,    90,   nil,   nil,    68,    71,   nil,    66,   100,
+     60,   103,    79,    81,   nil,   nil,    88,   nil,   nil,   nil,
+    nil,    74,    99,   nil,   nil,    84,   nil,    95,    90,   nil,
+    nil,    68,    71,   nil,   nil,   100,    60,   103,    66,   nil,
+    nil,   nil,    79,    81,   nil,   nil,    88,   nil,   nil,   nil,
+    nil,    74,    99,    95,   nil,    84,   nil,   nil,    90,   nil,
+    nil,    68,    71,   nil,    66,   100,    60,   103,    79,    81,
+    nil,   nil,    88,   nil,   nil,   nil,   nil,    74,    99,   nil,
+    nil,    84,   nil,    95,    90,   nil,   nil,    68,    71,   nil,
+    nil,   100,    60,   103,    66,   nil,   nil,   nil,    79,    81,
+    nil,   nil,    88,   nil,   nil,   nil,   nil,    74,    99,    95,
+    nil,    84,   nil,   nil,    90,   nil,   nil,    68,    71,   nil,
+     66,   100,    60,   103,    79,    81,   nil,   nil,    88,   nil,
+    nil,   nil,   nil,    74,    99,   nil,   nil,    84,   nil,    95,
+     90,   nil,   nil,    68,    71,   nil,   nil,   100,    60,   103,
+     66,   nil,   nil,   nil,    79,    81,   nil,   nil,    88,   nil,
+    nil,   nil,   nil,    74,    99,    95,   nil,    84,    68,    71,
+     90,   nil,   100,   193,   103,   nil,    66,   nil,    60,   nil,
+     79,    81,   nil,   nil,    88,   nil,   nil,   nil,   nil,    74,
+     99,   nil,   nil,    84,    68,    71,    90,   nil,   100,   nil,
+    103,    66,   nil,   nil,    60,    79,    81,   nil,   nil,    88,
+    nil,   nil,   nil,   nil,    74,   nil,    95,   nil,    84,   nil,
+     68,    71,   nil,   nil,   100,   nil,   103,    66,   nil,    60,
+    nil,    79,    81,   nil,   nil,    88,   nil,   nil,   nil,   nil,
+     74,    99,    95,   nil,    84,   nil,   nil,    90,   nil,   nil,
+    nil,   nil,   nil,    66,   nil,    60,   nil,    79,    81,   188,
+    nil,    88,   nil,   nil,   nil,   nil,    74,    99,   181,   186,
+     84,   nil,   nil,    90,   nil,   nil,   nil,   177,   179,   182,
+    185,    60,   nil,   181,   186,   nil,   nil,   nil,   nil,   nil,
+    nil,   282,   177,   179,   182,   185,   nil,   nil,   nil,   nil,
+    nil,   180,   184,   nil,   nil,   189,   172,   173,   174,   176,
+    178,   nil,   183,   187,   nil,   nil,   180,   184,   nil,   175,
+    189,   172,   173,   174,   176,   178,   nil,   183,   187,   181,
+    186,   nil,   nil,   nil,   175,   nil,   nil,   nil,   177,   179,
+    182,   185,   nil,   nil,   181,   186,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   177,   179,   182,   185,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   189,   172,   173,   174,
+    176,   178,   nil,   183,   187,   nil,   nil,   180,   184,   nil,
+    175,   189,   172,   173,   174,   176,   178,   nil,   183,   187,
+    181,   186,   nil,   nil,   nil,   175,   nil,   nil,   nil,   177,
+    179,   182,   185,   nil,   nil,   181,   186,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   177,   179,   182,   185,   nil,   nil,
+    nil,   nil,   nil,   180,   184,   nil,   nil,   189,   172,   173,
+    174,   176,   178,   nil,   183,   187,   nil,   nil,   nil,   184,
+    nil,   175,   189,   172,   173,   174,   176,   178,   nil,   183,
+    187,   181,   186,   nil,   nil,   nil,   175,   nil,   nil,   nil,
+    177,   179,   182,   185,   nil,   nil,   nil,   186,   nil,   189,
+    172,   173,   174,   176,   178,   177,   183,   187,   nil,   nil,
+    nil,   nil,   nil,   175,   180,   184,   186,   nil,   189,   172,
+    173,   174,   176,   178,   177,   183,   187,   nil,   nil,   nil,
+    nil,   186,   175,   189,   172,   173,   174,   176,   178,   177,
+    183,   187,   nil,   nil,   nil,   nil,   nil,   175,   nil,   nil,
+    nil,   nil,   189,   172,   173,   174,   176,   178,   nil,   183,
+    187,   280,   nil,   nil,   nil,   nil,   175,   189,   172,   173,
+    174,   176,   178,   nil,   183,   187,   nil,   nil,   nil,   nil,
+    325,   175,    26,   nil,    32,     1,   nil,     8,    11,   nil,
+     18,   nil,    23,   nil,    29,   nil,     2,   nil,   nil,    10,
+     15,    26,   363,    32,     1,   nil,     8,    11,   nil,    18,
+    nil,    23,   nil,    29,   nil,     2,   nil,   nil,    10,    15,
+    nil,   382,   nil,    26,   nil,    32,     1,   nil,     8,    11,
+    nil,    18,   nil,    23,   nil,    29,   nil,     2,   nil,   nil,
+     10,    15,    26,   380,    32,     1,   nil,     8,    11,   nil,
+     18,   nil,    23,   nil,    29,   nil,     2,   nil,   nil,    10,
+     15,   nil,   376,   nil,    26,   nil,    32,     1,   nil,     8,
+     11,   nil,    18,   nil,    23,   nil,    29,   nil,     2,   nil,
+    nil,    10,    15,    26,   305,    32,     1,   nil,     8,    11,
+    nil,    18,   nil,    23,   nil,    29,   nil,     2,   nil,   nil,
+     10,    15,   nil,   nil,   nil,    26,   nil,    32,     1,   nil,
+      8,    11,   nil,    18,   nil,    23,   nil,    29,   nil,     2,
+    nil,   nil,    10,    15,    26,   nil,    32,     1,   nil,     8,
+     11,   nil,    18,   nil,    23,   nil,    29,   nil,     2,   nil,
+    nil,    10,    15,    26,   nil,    32,     1,   nil,     8,    11,
+    nil,    18,   nil,    23,   nil,    29,   nil,     2,   nil,   nil,
+     10,    15,    26,   nil,    32,     1,   nil,     8,    11,   nil,
+     18,   nil,    23,   nil,    29,   nil,     2,   nil,   nil,    10,
+     15,   189,   172,   173,   174,   176,   178,   nil,   183,   187,
+    189,   172,   173,   174,   nil,   175,   nil,   183,   187,   189,
+    172,   173,   174,   nil,   175,   nil,   183,   187,   nil,   nil,
+    nil,   nil,   nil,   175 ]
  
  racc_action_check = [
-    180,   180,   152,    86,   156,   106,   106,   272,   174,     7,
-    277,   277,   106,   180,   180,    65,    55,   277,     7,     7,
-    272,    86,   180,   180,   180,   180,    65,   296,    17,    80,
-    296,    65,   158,    95,   202,   202,   174,   174,   202,   218,
-    202,    55,   156,   106,   152,   156,   180,   180,   277,   219,
-    180,   180,   180,   180,   180,   180,   202,   180,   180,   181,
-    181,   368,   368,   239,   180,   156,    17,   202,   165,    17,
-    158,   202,   202,   158,   239,   202,   165,   182,   182,   239,
-    202,   202,   349,   182,   202,   349,    22,   202,    22,    17,
-    143,   243,   181,   158,   368,   202,   181,   181,   368,   368,
-    181,    22,   368,   143,   181,   181,   220,   368,   163,   181,
-    182,   368,   355,   355,   182,   182,   243,   243,   182,   163,
-    181,    62,   368,   182,   163,    22,   178,   182,   281,   281,
-    351,   351,    62,   221,   351,   281,   351,    62,   182,   178,
-    285,   285,   285,   285,   101,   355,   221,   285,   285,   355,
-    355,   224,   351,   355,   285,   341,   341,   300,   355,   341,
-     91,   341,   355,   351,   308,   300,   226,   351,   351,   308,
-    227,   351,    90,   355,   184,   184,   351,   351,    12,   122,
-    351,   171,    12,   351,   122,   171,   171,   229,   341,    12,
-    286,   351,   341,   341,   343,   343,   341,   184,   286,     1,
-     87,   341,    30,     1,   183,   341,    30,   184,   183,   183,
-      1,   184,   184,    30,    30,   184,   341,   196,   196,   184,
-    184,   196,   195,   196,   184,   195,   286,   286,   286,   286,
-    286,   286,   188,   286,   286,   184,   188,   188,   231,   196,
-    286,   120,   232,   197,   197,   120,   233,   197,   103,   197,
-    196,    85,   120,   120,   196,   196,   105,    43,   196,   280,
-    280,    43,    84,   196,   196,   197,   280,   196,    43,    43,
-    196,    81,   215,    23,    23,    78,   197,    23,   196,   250,
-    197,   197,   279,   279,   197,   252,   253,   279,   279,   197,
-    197,    77,    71,   197,   279,    23,   197,   160,    68,    26,
-     26,   160,   160,    26,   197,    26,    23,   268,    67,   234,
-     23,    23,   211,   234,    23,   274,   234,    66,    23,    23,
-    234,    26,   107,    23,   108,   198,   198,   109,   207,   198,
-    114,   198,    26,   115,    23,   119,    26,    26,    64,   121,
-     26,    35,    35,    35,    35,    26,    26,   198,    52,    26,
-     29,    29,    26,    51,    29,    50,    29,   127,   198,   132,
-     26,    36,   198,   198,   307,   307,   198,   133,   307,   136,
-    307,   198,   198,   138,   192,   198,   139,    33,   198,    34,
-     34,    34,    34,    29,   140,   142,   198,    29,    29,   305,
-    305,    29,   315,   305,   144,   305,    29,   307,    16,   327,
-     29,   307,   307,   199,   199,   307,   328,   199,   330,   199,
-    307,    29,   297,   297,   307,   331,   332,   297,   297,   337,
-    153,   175,   305,   154,   297,   307,   305,   305,     9,   288,
-    305,    28,    28,    28,    28,   305,   199,   288,   352,   305,
-    199,   199,     8,   356,   199,   298,   298,   173,   367,   199,
-    305,   172,   298,   199,   369,   200,   200,     3,     2,   200,
-    157,   200,   263,   nil,   199,   288,   288,   288,   288,   288,
-    288,   nil,   288,   288,   nil,   nil,   nil,   200,   298,   288,
-    nil,   nil,   298,   298,   nil,   nil,   298,   nil,   200,   nil,
-    nil,   298,   200,   200,   nil,   298,   200,     4,     4,     4,
-      4,   200,   200,    39,    39,   200,   298,    39,   200,    39,
-    293,   293,   293,   293,   293,   293,   200,   293,   293,   nil,
-    283,   283,   283,   283,   293,    39,   nil,   283,   283,   201,
-    201,   nil,   nil,   201,   283,   201,    39,   nil,   nil,   nil,
-     39,    39,   nil,   nil,    39,   nil,   nil,   nil,   nil,    39,
-     39,   201,   nil,    39,   nil,   nil,    39,   nil,   nil,    46,
-     46,   nil,   201,    46,    39,    46,   201,   201,   nil,   nil,
-    201,   nil,   nil,   nil,   nil,   201,   201,   nil,   nil,   201,
-    nil,    46,   201,   nil,   nil,    47,    47,   nil,   nil,    47,
-    201,    47,    46,   nil,   nil,   nil,    46,    46,   nil,   nil,
-     46,   nil,   nil,   nil,   nil,    46,    46,    47,   nil,    46,
-     48,    48,    46,   nil,    48,   nil,    48,   nil,    47,   nil,
-     46,   nil,    47,    47,    49,    49,    47,   nil,    49,   nil,
-    nil,    47,    47,   nil,   nil,    47,   nil,   nil,    47,   nil,
-    nil,   nil,   nil,    48,   nil,   nil,    47,    48,    48,   176,
-    176,    48,   nil,   176,   nil,   176,    48,    49,   nil,   nil,
-     48,    49,    49,   nil,   nil,    49,   nil,   nil,   nil,   nil,
-     49,    48,   nil,   nil,    49,   203,   203,   nil,   nil,   203,
-    nil,   203,   176,   nil,   nil,    49,   176,   176,   nil,   nil,
-    176,   nil,   nil,   nil,   nil,   176,   nil,   203,   nil,   176,
-    nil,   204,   204,   nil,   nil,   204,   nil,   204,   203,   nil,
-    176,   nil,   203,   203,   nil,   nil,   203,   nil,   nil,   nil,
-    nil,   203,   203,   204,   nil,   203,   nil,   nil,   203,   nil,
-    nil,   205,   205,   nil,   204,   205,   203,   205,   204,   204,
-    nil,   nil,   204,   nil,   nil,   nil,   nil,   204,   204,   nil,
-    nil,   204,   nil,   205,   204,   nil,   nil,   100,   100,   nil,
-    nil,   100,   204,   100,   205,   nil,   nil,   nil,   205,   205,
-    nil,   nil,   205,   nil,   nil,   nil,   nil,   205,   205,   100,
-    nil,   205,    63,    63,   205,   nil,    63,   nil,    63,   nil,
-    100,   nil,   205,   nil,   100,   100,   nil,   nil,   100,   nil,
-    nil,   nil,   nil,   100,   100,   nil,   nil,   100,   208,   208,
-    100,   nil,   208,   nil,   208,    63,   nil,   nil,   100,    63,
-     63,   nil,   nil,    63,   nil,   nil,   nil,   nil,    63,   nil,
-    208,   nil,    63,   nil,   209,   209,   nil,   nil,   209,   nil,
-    209,   208,   nil,    63,   nil,   208,   208,   nil,   nil,   208,
-    nil,   nil,   269,   269,   208,   208,   209,   nil,   208,   276,
-    276,   208,   nil,   276,   nil,   276,   nil,   209,   nil,   208,
-    nil,   209,   209,   nil,   nil,   209,   nil,   nil,   nil,   nil,
-    209,   209,   nil,   nil,   209,   269,   nil,   209,   nil,   269,
-    269,   nil,   276,   269,   nil,   209,   276,   276,   269,   nil,
-    276,   nil,   269,   nil,   nil,   276,   256,   256,   nil,   276,
-    256,   nil,   256,   269,   nil,   nil,   nil,   nil,   nil,   nil,
-    276,   nil,   nil,   nil,   nil,    74,    74,   nil,   256,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   256,
-    nil,   nil,   nil,   256,   256,   nil,   nil,   256,    74,   nil,
-    254,   254,   256,   256,   nil,   nil,   256,   nil,    74,   256,
-    nil,   nil,    74,    74,   nil,   nil,    74,   256,    75,    75,
-     74,    74,    75,   254,    75,    74,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   254,   nil,   nil,    74,   254,   254,   nil,
-     75,   254,   nil,   248,   248,   254,   254,   248,   nil,   248,
-    254,    75,   nil,   245,   245,    75,    75,   nil,   nil,    75,
-    nil,   254,   nil,   nil,    75,    75,   nil,   nil,    75,   244,
-    244,    75,   nil,   nil,   nil,   nil,   248,   nil,   nil,    75,
-    248,   248,   nil,   nil,   248,   nil,   245,   nil,   nil,   248,
-    245,   245,   nil,   248,   245,   nil,   225,   225,   nil,   245,
-    225,   nil,   244,   245,   248,   nil,   244,   244,   nil,   nil,
-    244,   nil,    82,    82,   245,   244,    82,   nil,    82,   244,
-    nil,   nil,   210,   210,   nil,   nil,   210,   nil,   210,   225,
-    244,   nil,   nil,   225,   225,   nil,   nil,   225,   nil,   nil,
-    nil,   nil,   225,   nil,   210,    82,   225,   nil,   nil,    82,
-     82,   nil,   nil,    82,   nil,   210,   nil,   225,    82,   210,
-    210,   nil,    82,   210,   nil,   nil,   nil,   nil,   210,   210,
-    213,   213,   210,    82,   213,   210,   213,   284,   284,   284,
-    284,   284,   284,   210,   284,   284,   nil,   nil,   nil,   102,
-    102,   284,   213,   102,   102,   102,   230,   230,   nil,   nil,
-    230,   nil,   230,   213,   nil,   nil,   nil,   213,   213,   nil,
-    nil,   213,   nil,   nil,   nil,   nil,   213,   213,   214,   214,
-    213,   nil,   102,   213,   nil,   nil,   102,   102,   nil,   230,
-    102,   213,   nil,   230,   230,   102,   nil,   230,   nil,   102,
-    nil,   nil,   230,   228,   228,   nil,   230,   228,   nil,   228,
-    102,   214,   nil,   nil,   nil,   214,   214,   230,   nil,   214,
-    nil,    94,    94,   nil,   214,    94,   nil,    94,   214,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   228,   nil,   nil,   214,
-    228,   228,   nil,    94,   228,   nil,   nil,   nil,   nil,   228,
-    nil,    97,    97,   228,    94,    97,   nil,    97,    94,    94,
-    nil,   nil,    94,   nil,   228,   nil,   nil,    94,    94,   nil,
-    nil,    94,   nil,    97,    94,   nil,   nil,   206,   206,   nil,
-    nil,   206,    94,   206,    97,   nil,   nil,   nil,    97,    97,
-    nil,   nil,    97,   nil,   nil,   nil,   nil,    97,    97,   206,
-    nil,    97,   nil,   nil,    97,   nil,   nil,   nil,   nil,   nil,
-    206,   nil,    97,   nil,   206,   206,   111,   nil,   206,   nil,
-    nil,   nil,   nil,   206,   206,   111,   111,   206,   nil,   nil,
-    206,   nil,   nil,   nil,   111,   111,   111,   111,   206,   nil,
-    124,   124,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   124,
-    124,   124,   124,   nil,   nil,   nil,   nil,   nil,   111,   111,
-    nil,   nil,   111,   111,   111,   111,   111,   111,   nil,   111,
-    111,   nil,   nil,   124,   124,   nil,   111,   124,   124,   124,
-    124,   124,   124,   nil,   124,   124,   130,   130,   nil,   nil,
-    nil,   124,   nil,   nil,   nil,   130,   130,   130,   130,   nil,
-    nil,   131,   131,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    131,   131,   131,   131,   nil,   nil,   nil,   nil,   nil,   130,
-    130,   nil,   nil,   130,   130,   130,   130,   130,   130,   nil,
-    130,   130,   nil,   nil,   131,   131,   nil,   130,   131,   131,
-    131,   131,   131,   131,   nil,   131,   131,   287,   287,   nil,
-    nil,   nil,   131,   nil,   nil,   nil,   287,   287,   287,   287,
-    nil,   nil,   186,   186,   nil,   nil,   nil,   nil,   nil,   nil,
-    186,   186,   186,   186,   186,   nil,   nil,   nil,   nil,   nil,
-    nil,   287,   nil,   nil,   287,   287,   287,   287,   287,   287,
-    nil,   287,   287,   nil,   nil,   186,   186,   nil,   287,   186,
-    186,   186,   186,   186,   186,   nil,   186,   186,   291,   291,
-    nil,   nil,   nil,   186,   nil,   nil,   nil,   291,   291,   291,
-    291,   nil,   nil,    19,   292,    19,    19,   nil,    19,    19,
-    nil,    19,   292,    19,   nil,    19,   nil,    19,   nil,   nil,
-     19,    19,   nil,   289,   nil,   291,   291,   291,   291,   291,
-    291,   289,   291,   291,   nil,   nil,   nil,   nil,   nil,   291,
-    292,   292,   292,   292,   292,   292,   nil,   292,   292,   nil,
-    nil,   237,   nil,   nil,   292,   nil,   nil,   nil,   nil,   289,
-    289,   289,   289,   289,   289,   nil,   289,   289,   nil,   nil,
-    372,   nil,   237,   289,   237,   237,   nil,   237,   237,   nil,
-    237,   nil,   237,   nil,   237,   nil,   237,   nil,   nil,   237,
-    237,   372,   378,   372,   372,   nil,   372,   372,   nil,   372,
-    nil,   372,   nil,   372,   nil,   372,   nil,   nil,   372,   372,
-    nil,   212,   nil,   378,   nil,   378,   378,   nil,   378,   378,
-    nil,   378,   nil,   378,   nil,   378,   nil,   378,   nil,   nil,
-    378,   378,   212,   323,   212,   212,   nil,   212,   212,   nil,
-    212,   nil,   212,   nil,   212,   nil,   212,   nil,   nil,   212,
-    212,   nil,   374,   nil,   323,   nil,   323,   323,   nil,   323,
-    323,   nil,   323,   nil,   323,   nil,   323,   nil,   323,   nil,
-    nil,   323,   323,   374,   380,   374,   374,   nil,   374,   374,
-    nil,   374,   nil,   374,   nil,   374,   nil,   374,   nil,   nil,
-    374,   374,   nil,   303,   nil,   380,   nil,   380,   380,   nil,
-    380,   380,   nil,   380,   nil,   380,   nil,   380,   nil,   380,
-    nil,   nil,   380,   380,   303,   319,   303,   303,   nil,   303,
-    303,   nil,   303,   nil,   303,   nil,   303,   nil,   303,   nil,
-    nil,   303,   303,   nil,   362,   nil,   319,   nil,   319,   319,
-    nil,   319,   319,   nil,   319,   nil,   319,   nil,   319,   nil,
-    319,   nil,   nil,   319,   319,   362,   217,   362,   362,   nil,
-    362,   362,   nil,   362,   nil,   362,   nil,   362,   nil,   362,
-    nil,   nil,   362,   362,   nil,   295,   nil,   217,   nil,   217,
-    217,   nil,   217,   217,   nil,   217,   nil,   217,   nil,   217,
-    nil,   217,   nil,   nil,   217,   217,   295,   nil,   295,   295,
-    nil,   295,   295,   nil,   295,   nil,   295,   nil,   295,   nil,
-    295,   nil,   nil,   295,   295,     0,   nil,     0,     0,   nil,
-      0,     0,   nil,     0,   nil,     0,   nil,     0,   nil,     0,
-    nil,   nil,     0,     0 ]
+    164,   164,   158,   154,   301,    27,    56,    27,    81,   214,
+    285,   285,   301,   164,   164,   239,   293,   285,    18,   206,
+     27,   213,   164,   164,   164,   164,    81,   206,   175,   175,
+    194,    56,   175,   194,   175,   368,   368,   214,   214,   157,
+    158,   293,   293,   158,    27,   154,   164,   164,   285,   144,
+    164,   164,   164,   164,   164,   164,    18,   164,   164,    18,
+     85,   175,   144,   158,   164,   175,   175,   272,   368,   175,
+     83,   261,   368,   368,   175,   272,   368,   157,   175,    18,
+    157,   368,   161,   161,   261,   368,   161,   216,   161,   175,
+      1,    82,   356,   356,     1,   218,   368,   219,   203,   163,
+    157,     1,   114,   272,   272,   272,   272,   272,   272,   203,
+    272,   272,   163,   114,   203,   161,   122,   272,   114,   161,
+    161,   122,   192,   161,   221,   356,   192,   192,   161,   356,
+    356,   220,   161,   356,   290,   335,   335,   221,   356,   335,
+    111,   335,   356,   161,   309,   290,   331,   331,    11,   309,
+    290,   111,    11,   356,   329,   329,   111,   335,   329,    11,
+    329,    48,    48,   103,   103,    48,   334,    48,   335,   334,
+    103,   200,   335,   335,   262,   262,   335,   263,   263,   262,
+    262,   335,   335,    48,   263,   335,   262,   329,   335,   224,
+    280,   329,   329,   280,    48,   329,   335,   197,    48,    48,
+    329,   103,    48,   227,   329,   295,   295,    48,    48,    87,
+    229,    48,   307,   307,    48,   329,   307,    33,   307,   306,
+    306,    33,    48,   306,   230,   306,   299,   299,    33,    33,
+    225,    80,   232,   299,   225,    77,    46,   225,   295,   234,
+     46,   225,   295,   295,   235,   307,   295,    46,    46,   307,
+    307,   295,   306,   307,    75,   295,   306,   306,   307,   299,
+    306,   212,   307,   299,   299,   306,   295,   299,     8,   306,
+     23,    23,   299,   307,    23,    74,   299,     8,     8,    66,
+    306,   249,    42,   252,   264,   264,    42,   299,    65,   166,
+    166,   264,    23,    42,    42,    26,    26,    64,    89,    26,
+    201,    26,    94,    23,   201,   201,   187,    23,    23,   169,
+    101,    23,   102,   169,   169,    23,    23,    26,   105,   183,
+     23,    53,   166,    52,   294,   294,   166,   166,    26,    50,
+    166,    23,    26,    26,   166,   166,    26,   143,   106,   166,
+    107,    26,    26,    29,    29,    26,   108,    29,    26,    29,
+    166,   110,   279,   167,   167,   113,    26,   294,   115,   167,
+    283,   294,   294,   281,   281,   294,    37,   211,   281,   281,
+    294,   211,   211,   116,   294,   281,    29,   288,   170,   170,
+     29,    29,   119,    32,    29,   294,   167,   121,   127,    29,
+    167,   167,   297,    29,   167,    17,   287,   287,   133,   167,
+    287,   170,   287,   167,    29,     3,     3,     3,     3,   304,
+     13,   170,    12,   134,   167,   170,   170,   136,   320,   170,
+    324,   172,   172,   170,   170,   172,   159,   172,   170,   287,
+    140,   141,   155,   287,   287,   337,   342,   287,   346,   170,
+    347,   349,   287,   172,   350,   351,   287,    45,    45,     5,
+    357,    45,   142,    45,   172,   367,   147,   287,   172,   172,
+    369,     2,   172,     4,     4,     4,     4,   172,   172,    45,
+    146,   172,   379,   381,   172,   nil,   nil,   173,   173,   nil,
+     45,   173,   172,   173,    45,    45,   nil,   nil,    45,    31,
+     31,    31,    31,    45,    45,   nil,   nil,    45,   nil,   173,
+     45,   nil,   nil,    47,    47,   nil,   nil,    47,    45,    47,
+    173,   nil,   nil,   nil,   173,   173,   nil,   nil,   173,     6,
+      6,     6,     6,   173,   173,    47,   nil,   173,   nil,   nil,
+    173,   nil,   nil,   174,   174,   nil,    47,   174,   173,   174,
+     47,    47,   nil,   nil,    47,   nil,   nil,   nil,   nil,    47,
+     47,   nil,   nil,    47,   nil,   174,    47,   nil,   nil,    49,
+     49,   nil,   nil,    49,    47,    49,   174,   nil,   nil,   nil,
+    174,   174,   nil,   nil,   174,   nil,   nil,    51,    51,   174,
+    174,    51,   nil,   174,   176,   176,   174,   nil,   176,   nil,
+    176,   nil,    49,   nil,   174,   nil,    49,    49,   nil,   nil,
+     49,   nil,   nil,   nil,   nil,    49,   176,   nil,   nil,    49,
+     51,   nil,   nil,   nil,    51,    51,   nil,   176,    51,   nil,
+     49,   176,   176,    51,   nil,   176,   nil,    51,   nil,   nil,
+    176,   176,   nil,   nil,   176,   177,   177,   176,    51,   177,
+    nil,   177,   nil,   nil,   nil,   176,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   112,   112,   nil,   177,   112,   nil,
+    112,   259,   259,   nil,   nil,   259,   nil,   259,   177,   nil,
+    nil,   nil,   177,   177,   nil,   nil,   177,   nil,   nil,   254,
+    254,   177,   177,   nil,   nil,   177,   nil,   112,   177,   nil,
+    nil,   112,   112,   nil,   259,   112,   177,   nil,   259,   259,
+    112,   nil,   259,   nil,   112,    70,    70,   259,   nil,   nil,
+    nil,   259,   254,   nil,   nil,   112,   254,   254,   nil,   nil,
+    254,   nil,   259,   nil,   nil,   254,   242,   242,    70,   254,
+    242,   nil,   242,   nil,   nil,   nil,   nil,   nil,    70,   nil,
+    254,   nil,    70,    70,   nil,   nil,    70,   nil,   242,   nil,
+     70,    70,    71,    71,   nil,    70,    71,   nil,    71,   242,
+    nil,   nil,   nil,   242,   242,   nil,    70,   242,   nil,   nil,
+    nil,   nil,   242,   242,    71,   nil,   242,   240,   240,   242,
+    nil,   nil,   nil,   nil,   nil,    71,   nil,   242,   nil,    71,
+     71,   nil,   nil,    71,   nil,   nil,   nil,   nil,    71,    71,
+    240,   nil,    71,   178,   178,    71,   nil,   178,   nil,   178,
+    240,   nil,   nil,    71,   240,   240,   nil,   nil,   240,   nil,
+    nil,   nil,   240,   240,   nil,   178,   nil,   240,   233,   233,
+    nil,   nil,   233,   nil,   233,   nil,   178,   nil,   240,   nil,
+    178,   178,    78,    78,   178,   nil,    78,   nil,    78,   178,
+    178,   nil,   nil,   178,   nil,   nil,   178,   nil,   nil,   nil,
+    nil,   233,   nil,   nil,   178,   233,   233,   231,   231,   233,
+    nil,   231,   nil,   231,   233,    78,   nil,   nil,   233,    78,
+     78,   228,   228,    78,   nil,   228,   nil,   nil,    78,   233,
+    nil,   nil,    78,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    231,   nil,   nil,    78,   231,   231,   nil,   nil,   231,   nil,
+    nil,   215,   215,   231,   228,   nil,   nil,   231,   228,   228,
+    nil,   nil,   228,   nil,   nil,   nil,   nil,   228,   231,   179,
+    179,   228,   nil,   179,   nil,   179,   nil,   nil,   nil,   nil,
+    nil,   nil,   228,   nil,   215,   nil,   nil,   nil,   215,   215,
+    nil,   179,   215,   nil,   nil,   nil,   nil,   215,   nil,   185,
+    185,   215,   179,   185,   nil,   185,   179,   179,   nil,   nil,
+    179,   nil,   215,   nil,   nil,   179,   179,   nil,   nil,   179,
+    nil,   185,   179,   nil,   nil,   181,   181,   nil,   nil,   181,
+    179,   181,   185,   nil,   nil,   nil,   185,   185,   nil,   nil,
+    185,   nil,   nil,   nil,   nil,   185,   185,   181,   nil,   185,
+    nil,   nil,   185,   nil,   nil,   189,   189,   nil,   181,   189,
+    185,   189,   181,   181,   nil,   nil,   181,   nil,   nil,   nil,
+    nil,   181,   181,   nil,   nil,   181,   nil,   189,   181,   nil,
+    nil,    90,    90,   nil,   nil,    90,   181,    90,   189,   nil,
+    nil,   nil,   189,   189,   nil,   nil,   189,   nil,   nil,   nil,
+    nil,   189,   189,    90,   nil,   189,   nil,   nil,   189,   nil,
+    nil,   182,   182,   nil,    90,   182,   189,   182,    90,    90,
+    nil,   nil,    90,   nil,   nil,   nil,   nil,    90,    90,   nil,
+    nil,    90,   nil,   182,    90,   nil,   nil,   184,   184,   nil,
+    nil,   184,    90,   184,   182,   nil,   nil,   nil,   182,   182,
+    nil,   nil,   182,   nil,   nil,   nil,   nil,   182,   182,   184,
+    nil,   182,   nil,   nil,   182,   nil,   nil,    95,    95,   nil,
+    184,    95,   182,    95,   184,   184,   nil,   nil,   184,   nil,
+    nil,   nil,   nil,   184,   184,   nil,   nil,   184,   nil,    95,
+    184,   nil,   nil,    99,    99,   nil,   nil,    99,   184,    99,
+     95,   nil,   nil,   nil,    95,    95,   nil,   nil,    95,   nil,
+    nil,   nil,   nil,    95,    95,    99,   nil,    95,   100,   100,
+     95,   nil,   100,   100,   100,   nil,    99,   nil,    95,   nil,
+     99,    99,   nil,   nil,    99,   nil,   nil,   nil,   nil,    99,
+     99,   nil,   nil,    99,   186,   186,    99,   nil,   186,   nil,
+    186,   100,   nil,   nil,    99,   100,   100,   nil,   nil,   100,
+    nil,   nil,   nil,   nil,   100,   nil,   186,   nil,   100,   nil,
+    180,   180,   nil,   nil,   180,   nil,   180,   186,   nil,   100,
+    nil,   186,   186,   nil,   nil,   186,   nil,   nil,   nil,   nil,
+    186,   186,   180,   nil,   186,   nil,   nil,   186,   nil,   nil,
+    nil,   nil,   nil,   180,   nil,   186,   nil,   180,   180,    91,
+    nil,   180,   nil,   nil,   nil,   nil,   180,   180,    91,    91,
+    180,   nil,   nil,   180,   nil,   nil,   nil,    91,    91,    91,
+     91,   180,   nil,   190,   190,   nil,   nil,   nil,   nil,   nil,
+    nil,   190,   190,   190,   190,   190,   nil,   nil,   nil,   nil,
+    nil,    91,    91,   nil,   nil,    91,    91,    91,    91,    91,
+     91,   nil,    91,    91,   nil,   nil,   190,   190,   nil,    91,
+    190,   190,   190,   190,   190,   190,   nil,   190,   190,   274,
+    274,   nil,   nil,   nil,   190,   nil,   nil,   nil,   274,   274,
+    274,   274,   nil,   nil,   132,   132,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   132,   132,   132,   132,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   274,   274,   274,   274,
+    274,   274,   nil,   274,   274,   nil,   nil,   132,   132,   nil,
+    274,   132,   132,   132,   132,   132,   132,   nil,   132,   132,
+    131,   131,   nil,   nil,   nil,   132,   nil,   nil,   nil,   131,
+    131,   131,   131,   nil,   nil,   270,   270,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   270,   270,   270,   270,   nil,   nil,
+    nil,   nil,   nil,   131,   131,   nil,   nil,   131,   131,   131,
+    131,   131,   131,   nil,   131,   131,   nil,   nil,   nil,   270,
+    nil,   131,   270,   270,   270,   270,   270,   270,   nil,   270,
+    270,   129,   129,   nil,   nil,   nil,   270,   nil,   nil,   nil,
+    129,   129,   129,   129,   nil,   nil,   nil,   269,   nil,   276,
+    276,   276,   276,   276,   276,   269,   276,   276,   nil,   nil,
+    nil,   nil,   nil,   276,   129,   129,   275,   nil,   129,   129,
+    129,   129,   129,   129,   275,   129,   129,   nil,   nil,   nil,
+    nil,   271,   129,   269,   269,   269,   269,   269,   269,   271,
+    269,   269,   nil,   nil,   nil,   nil,   nil,   269,   nil,   nil,
+    nil,   nil,   275,   275,   275,   275,   275,   275,   nil,   275,
+    275,   188,   nil,   nil,   nil,   nil,   275,   271,   271,   271,
+    271,   271,   271,   nil,   271,   271,   nil,   nil,   nil,   nil,
+    238,   271,   188,   nil,   188,   188,   nil,   188,   188,   nil,
+    188,   nil,   188,   nil,   188,   nil,   188,   nil,   nil,   188,
+    188,   238,   311,   238,   238,   nil,   238,   238,   nil,   238,
+    nil,   238,   nil,   238,   nil,   238,   nil,   nil,   238,   238,
+    nil,   375,   nil,   311,   nil,   311,   311,   nil,   311,   311,
+    nil,   311,   nil,   311,   nil,   311,   nil,   311,   nil,   nil,
+    311,   311,   375,   372,   375,   375,   nil,   375,   375,   nil,
+    375,   nil,   375,   nil,   375,   nil,   375,   nil,   nil,   375,
+    375,   nil,   362,   nil,   372,   nil,   372,   372,   nil,   372,
+    372,   nil,   372,   nil,   372,   nil,   372,   nil,   372,   nil,
+    nil,   372,   372,   362,   217,   362,   362,   nil,   362,   362,
+    nil,   362,   nil,   362,   nil,   362,   nil,   362,   nil,   nil,
+    362,   362,   nil,   nil,   nil,   217,   nil,   217,   217,   nil,
+    217,   217,   nil,   217,   nil,   217,   nil,   217,   nil,   217,
+    nil,   nil,   217,   217,     0,   nil,     0,     0,   nil,     0,
+      0,   nil,     0,   nil,     0,   nil,     0,   nil,     0,   nil,
+    nil,     0,     0,    20,   nil,    20,    20,   nil,    20,    20,
+    nil,    20,   nil,    20,   nil,    20,   nil,    20,   nil,   nil,
+     20,    20,   278,   nil,   278,   278,   nil,   278,   278,   nil,
+    278,   nil,   278,   nil,   278,   nil,   278,   nil,   nil,   278,
+    278,   267,   267,   267,   267,   267,   267,   nil,   267,   267,
+    266,   266,   266,   266,   nil,   267,   nil,   266,   266,   268,
+    268,   268,   268,   nil,   266,   nil,   268,   268,   nil,   nil,
+    nil,   nil,   nil,   268 ]
  
  racc_action_pointer = [
-   1795,   163,   443,   413,   433,   nil,   nil,     3,   434,   420,
-    nil,   nil,   142,   nil,   nil,   nil,   398,    26,   nil,  1483,
-    nil,   nil,    80,   271,   nil,   nil,   297,   nil,   367,   348,
-    166,   nil,   nil,   375,   315,   277,   337,   nil,   nil,   501,
-    nil,   nil,   nil,   221,   nil,   nil,   557,   583,   608,   622,
-    315,   329,   348,   nil,   nil,     4,   nil,   nil,   nil,   nil,
-    nil,   nil,    97,   780,   298,    -9,   309,   302,   275,   nil,
-    nil,   286,   nil,   nil,   923,   966,   nil,   279,   269,   nil,
-      6,   248,  1060,   nil,   239,   245,    -3,   177,   nil,   nil,
-    149,   137,   nil,   nil,  1209,    10,   nil,  1239,   nil,   nil,
-    755,   121,  1137,   225,   nil,   233,     3,   299,   301,   304,
-    nil,  1298,   nil,   nil,   322,   325,   nil,   nil,   nil,   323,
-    205,   331,   144,   nil,  1313,   nil,   nil,   351,   nil,   nil,
-   1359,  1374,   352,   344,   nil,   nil,   328,   nil,   350,   364,
-    361,   nil,   362,    79,   374,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,    -9,   408,   386,   nil,     2,   452,    30,   nil,
-    251,   nil,   nil,    84,   nil,    50,   nil,   nil,   nil,   nil,
-    nil,   174,   439,   436,   -14,   381,   647,   nil,   114,   nil,
-     -4,    57,    75,   197,   172,   nil,  1435,   nil,   225,   nil,
-    nil,   nil,   363,   nil,   nil,   213,   215,   241,   323,   401,
-    453,   527,    32,   673,   699,   729,  1265,   265,   806,   832,
-   1070,   249,  1612,  1118,  1166,   270,   nil,  1757,    24,    24,
-     91,   121,   nil,   nil,   142,  1044,   126,   161,  1191,   147,
-   1144,   198,   233,   238,   273,   nil,   nil,  1552,   nil,    39,
-    nil,   nil,   nil,    66,  1017,  1001,   nil,   nil,   991,   nil,
-    270,   nil,   273,   279,   948,   nil,   904,   nil,   nil,   nil,
-    nil,   nil,   nil,   451,   nil,   nil,   nil,   nil,   283,   850,
-    nil,   nil,    -5,   nil,   308,   nil,   857,     8,   nil,   226,
-    198,    67,   nil,   466,  1073,    86,   172,  1420,   411,  1515,
-    nil,  1481,  1496,   456,   nil,  1776,    -4,   356,   443,   nil,
-    145,   nil,   nil,  1694,   nil,   387,   nil,   362,   129,   nil,
-    nil,   nil,   nil,   nil,   nil,   380,   nil,   nil,   nil,  1716,
-    nil,   nil,   nil,  1634,   nil,   nil,   nil,   376,   383,   nil,
-    385,   392,   393,   nil,   nil,   nil,   nil,   410,   nil,   nil,
-    nil,   153,   nil,   183,   nil,   nil,   nil,   nil,   nil,    51,
-    nil,   128,   430,   nil,   nil,   110,   435,   nil,   nil,   nil,
-    nil,   nil,  1735,   nil,   nil,   nil,   nil,   439,    59,   445,
-    nil,   nil,  1571,   nil,  1653,   nil,   nil,   nil,  1593,   nil,
-   1675,   nil,   nil,   nil ]
+   1674,    54,   417,   341,   399,   434,   455,   nil,   262,   nil,
+    nil,   112,   404,   402,   nil,   nil,   nil,   395,    16,   nil,
+   1693,   nil,   nil,   268,   nil,   nil,   293,    -1,   nil,   341,
+    nil,   425,   381,   181,   nil,   nil,   nil,   342,   nil,   nil,
+    nil,   nil,   246,   nil,   nil,   445,   200,   501,   159,   557,
+    305,   575,   283,   321,   nil,   nil,    -6,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   291,   265,   273,   nil,   nil,   nil,
+    703,   750,   nil,   nil,   269,   242,   nil,   212,   840,   nil,
+    208,     2,    68,    64,   nil,    37,   nil,   186,   nil,   275,
+   1039,  1261,   nil,   nil,   279,  1125,   nil,   nil,   nil,  1151,
+   1176,   287,   289,   161,   nil,   295,   315,   317,   323,   nil,
+    343,   116,   652,   315,    78,   350,   361,   nil,   nil,   374,
+    nil,   379,    81,   nil,   nil,   nil,   nil,   382,   nil,  1444,
+    nil,  1383,  1337,   391,   376,   nil,   394,   nil,   nil,   nil,
+    389,   408,   440,   314,    38,   nil,   447,   436,   nil,   nil,
+    nil,   nil,   nil,   nil,    -8,   420,   nil,    37,     0,   418,
+    nil,    80,   nil,    87,    -4,   nil,   287,   351,   nil,   302,
+    376,   nil,   419,   475,   531,    26,   582,   633,   801,   927,
+   1228,   983,  1069,   256,  1095,   957,  1202,   243,  1532,  1013,
+   1276,   nil,   115,   nil,    21,   nil,   nil,   186,   nil,   nil,
+    131,   254,   nil,    74,   nil,   nil,     1,   nil,   nil,   nil,
+    nil,   360,   249,    10,   -13,   909,    85,  1655,    80,    82,
+    106,   112,   nil,   nil,   181,   194,   nil,   194,   879,   170,
+    215,   865,   192,   826,   199,   235,   nil,   nil,  1551,     8,
+    775,   nil,   724,   nil,   nil,   nil,   nil,   nil,   nil,   270,
+    nil,   nil,   259,   nil,   677,   nil,   nil,   nil,   nil,   659,
+    nil,    59,   118,   116,   223,   nil,  1716,  1707,  1725,  1459,
+   1398,  1493,    49,   nil,  1322,  1478,  1425,   nil,  1712,   343,
+    159,   307,   nil,   353,   nil,     8,   nil,   394,   365,   nil,
+    110,   nil,   nil,    -9,   322,   203,   nil,   383,   nil,   224,
+    nil,    -8,   nil,   nil,   400,   nil,   217,   210,   nil,   109,
+    nil,  1573,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    406,   nil,   nil,   nil,   411,   nil,   nil,   nil,   nil,   152,
+    nil,   135,   nil,   nil,   135,   133,   nil,   427,   nil,   nil,
+    nil,   nil,   427,   nil,   nil,   nil,   415,   417,   nil,   418,
+    421,   422,   nil,   nil,   nil,   nil,    90,   442,   nil,   nil,
+    nil,   nil,  1633,   nil,   nil,   nil,   nil,   446,    33,   451,
+    nil,   nil,  1614,   nil,   nil,  1592,   nil,   nil,   nil,   463,
+    nil,   464,   nil,   nil,   nil ]
  
  racc_action_default = [
-   -196,  -233,  -233,   -50,  -233,    -8,    -9,  -233,  -233,   -22,
-    -10,  -187,  -188,   -11,  -185,   -12,  -233,  -233,   -13,    -1,
-    -14,    -2,  -233,  -186,   -15,    -3,  -233,   -16,    -5,  -233,
-   -233,   -17,    -6,  -233,   -18,    -7,  -196,  -188,  -186,  -233,
-    -51,   -26,   -27,  -233,   -24,   -25,  -233,  -233,  -233,   -85,
-    -92,  -196,  -233,  -195,  -193,  -196,  -189,  -191,  -192,  -221,
-   -194,    -4,  -196,  -233,   -85,  -196,   -53,  -231,   -42,  -174,
-    -43,  -213,  -117,   -33,  -233,  -233,   -44,   -31,   -74,   -32,
-   -233,   -36,  -233,  -122,   -37,  -233,   -73,   -38,  -172,   -72,
-    -39,   -40,  -173,   -41,  -233,  -103,  -111,  -233,  -132,  -112,
-   -233,  -104,  -233,  -108,  -110,  -105,  -233,  -114,  -106,  -113,
-   -109,  -233,  -125,  -107,  -233,  -233,   -49,  -175,  -176,  -178,
-   -233,  -233,  -197,  -198,   -83,   -19,   -22,  -186,   -21,   -23,
-    -82,   -84,  -233,   -75,   -86,   -81,   -70,   -74,   -76,  -219,
-    -79,   -68,   -77,   -73,  -233,  -171,  -170,   -80,   -78,   -90,
-    -91,   -93,  -233,  -219,  -196,   384,  -233,  -233,  -233,  -207,
-   -233,   -57,  -213,  -196,   -59,  -233,   -66,   -65,   -56,   -73,
-    -95,  -233,  -219,  -233,  -233,   -92,  -233,   -30,  -233,  -118,
-   -233,  -233,  -233,  -233,  -233,  -142,  -233,  -149,  -233,  -216,
-   -229,  -225,  -233,  -228,  -224,  -233,  -233,  -233,  -233,  -233,
-   -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,  -233,
-   -233,  -233,  -233,  -233,  -233,  -233,   -20,  -233,  -206,  -233,
-   -204,  -233,  -201,  -230,  -233,   -71,  -220,  -233,  -233,   -85,
-   -233,  -220,  -233,  -233,  -233,  -209,  -190,  -233,  -208,  -233,
-    -54,   -62,   -61,  -233,  -233,  -233,  -217,  -218,  -233,  -124,
-   -233,   -55,  -219,  -233,  -233,   -28,  -233,  -120,  -119,   -35,
-    -34,  -168,  -166,  -233,  -169,  -160,  -167,  -161,   -73,  -233,
-   -123,  -116,  -233,  -152,  -218,  -214,  -233,  -233,  -222,  -137,
-   -139,  -138,  -133,  -140,  -144,  -141,  -146,  -151,  -148,  -145,
-   -134,  -150,  -147,  -143,  -135,  -233,  -128,  -136,  -233,  -154,
-   -233,  -158,  -177,  -233,  -180,  -233,  -199,  -233,  -233,  -200,
-    -45,   -69,   -87,   -46,   -88,  -219,   -89,   -94,   -48,  -233,
-   -211,  -210,  -212,  -233,  -184,   -58,   -60,   -97,   -98,   -63,
-   -102,   -99,  -100,  -101,   -64,   -96,   -47,  -233,  -232,   -29,
-   -121,  -233,  -163,  -219,  -115,  -215,  -227,  -226,  -223,  -128,
-   -127,  -233,  -233,  -155,  -153,  -233,  -233,  -179,  -205,  -203,
-   -202,   -67,  -233,  -182,  -183,   -52,  -165,  -218,  -233,  -233,
-   -126,  -129,  -233,  -159,  -233,  -181,  -164,  -162,  -233,  -131,
-   -233,  -157,  -130,  -156 ]
+   -197,  -234,   -51,   -19,    -8,  -234,  -234,    -9,  -234,   -10,
+   -188,  -189,  -234,   -23,   -11,  -186,   -12,  -234,  -234,   -13,
+     -1,   -14,    -2,  -187,   -15,    -3,  -234,  -234,   -16,  -234,
+    -17,    -6,  -234,  -234,   -18,    -7,  -189,  -197,  -187,   -52,
+    -27,   -28,  -234,   -25,   -26,  -234,  -234,  -234,  -234,  -234,
+   -197,   -86,   -93,  -234,  -196,  -194,  -197,  -190,  -192,  -193,
+   -222,  -195,    -4,   -42,  -232,   -43,  -214,  -175,  -118,   -44,
+   -234,  -234,   -45,   -34,   -75,   -32,   -33,  -234,  -234,  -123,
+    -37,   -74,   -38,  -234,   -73,   -39,  -173,   -40,  -174,   -41,
+   -234,  -234,  -126,  -108,  -104,  -234,  -112,  -133,  -113,  -234,
+   -234,  -105,  -109,  -234,  -111,  -106,  -115,  -107,  -114,  -110,
+    -54,  -197,  -234,   -86,  -197,  -234,  -179,  -176,  -177,  -234,
+    -50,  -234,  -198,  -199,   -24,   -21,   -23,  -187,   -22,   -84,
+    -20,   -83,   -85,  -234,  -197,   -79,   -76,   -87,   -82,   -75,
+    -71,   -77,  -220,   -80,   -74,   -69,   -78,  -234,  -172,  -171,
+    -81,   -91,   -92,   -94,  -234,  -220,   385,  -234,  -234,  -234,
+   -208,  -234,   -31,  -234,  -234,  -119,  -234,  -234,   -96,  -234,
+   -234,  -143,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,
+   -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,  -234,
+   -234,  -150,  -234,  -217,  -234,  -230,  -226,  -234,  -229,  -225,
+    -93,  -234,  -214,  -197,   -58,   -60,  -234,   -67,   -57,   -74,
+    -66,  -234,  -220,  -234,  -234,  -234,  -234,  -234,  -207,  -205,
+   -234,  -234,  -202,  -231,  -234,  -234,  -210,  -234,   -72,  -221,
+   -234,  -234,   -86,  -234,  -221,  -234,  -191,  -209,  -234,  -234,
+   -234,   -29,  -234,  -121,  -120,   -36,   -35,  -169,  -167,  -234,
+   -170,  -161,   -74,  -168,  -234,  -162,  -218,  -219,  -124,  -234,
+   -117,  -234,  -138,  -140,  -139,  -134,  -141,  -145,  -142,  -147,
+   -152,  -149,  -146,  -135,  -151,  -148,  -144,  -136,    -5,  -234,
+   -129,  -137,  -153,  -219,  -215,  -234,  -223,  -234,  -220,   -55,
+   -234,   -63,   -62,  -234,  -234,  -234,  -125,  -234,   -56,  -234,
+   -155,  -234,  -159,  -178,  -234,  -181,  -234,  -234,  -200,  -234,
+   -201,  -234,  -212,  -213,  -211,   -46,   -70,   -88,   -47,   -89,
+   -220,   -90,   -95,   -49,  -234,  -185,  -233,   -30,  -122,  -234,
+   -164,  -220,   -97,  -116,  -129,  -234,  -128,  -234,  -216,  -227,
+   -224,  -228,  -234,   -59,   -61,  -102,   -98,   -99,   -64,  -103,
+   -100,  -101,   -65,   -48,  -156,  -154,  -234,  -234,  -180,  -206,
+   -204,  -203,  -234,  -183,   -68,  -184,  -166,  -219,  -234,  -234,
+   -127,  -130,  -234,   -53,  -160,  -234,  -182,  -165,  -163,  -234,
+   -132,  -234,  -158,  -131,  -157 ]
  
  racc_goto_table = [
-     22,     9,    68,   112,    53,   118,    61,    36,    91,   222,
-     19,   267,    70,    93,     2,   227,   139,   191,    51,    22,
-      9,   179,    77,    56,    73,   149,    21,   141,   133,   232,
-    115,   172,   153,     2,   146,   263,   125,   116,   135,   148,
-    147,   299,   129,    22,   126,   260,   160,   350,   250,   174,
-    128,   171,    43,    68,   121,   329,   334,   298,   368,    91,
-    258,   265,   123,    70,    93,   317,   343,   301,   136,   154,
-    183,   119,   224,   178,   233,    73,    55,   123,   157,    66,
-    238,   159,   120,   219,   221,   190,   325,   321,   195,    16,
-    188,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   342,   nil,
-    370,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   216,   nil,   nil,   nil,   nil,   260,   129,
-     22,   126,   263,   nil,   nil,   353,   nil,   128,   337,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    81,
-    nil,   nil,   nil,    53,   nil,    53,   nil,   243,   nil,   nil,
-    149,   301,   nil,   nil,   nil,   nil,   nil,   252,   nil,   nil,
-     68,   261,   236,    68,   nil,   138,    91,   146,   nil,    91,
-     70,    93,   nil,    70,    93,   nil,   nil,   nil,   166,   nil,
-    235,   166,   259,   272,   nil,    73,   nil,   302,   347,   nil,
-     81,   361,   nil,   261,   290,   360,   315,   376,   294,   146,
-    nil,   312,   340,   311,   133,   nil,   149,   nil,   373,   nil,
-    146,   nil,    22,     9,   135,   148,   147,    22,     9,   369,
-    nil,   263,   295,   327,   327,   nil,     2,   303,   nil,   146,
-    146,     2,   nil,    68,   333,   333,   nil,    22,     9,    91,
-    320,    88,   nil,    70,    93,   nil,   nil,   323,   261,   nil,
-    nil,     2,   nil,   nil,   146,   259,   190,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,    88,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,    87,   nil,   261,   nil,   166,
-    nil,   nil,    61,   146,   nil,   nil,   nil,   nil,   nil,   nil,
-     61,   nil,    88,   nil,   nil,    22,     9,    81,   262,   nil,
-     81,   142,   nil,    22,     9,   nil,   nil,   nil,   nil,     2,
-     61,   nil,   nil,   nil,   nil,   nil,   nil,     2,   nil,    22,
-      9,   nil,   nil,    22,     9,   nil,    87,   nil,   371,   362,
-    262,   nil,   nil,     2,   261,   nil,   nil,     2,   nil,   nil,
-    146,   138,   nil,   nil,   nil,   nil,   nil,   261,   nil,    61,
-    nil,   nil,   nil,   146,   nil,   166,   nil,   nil,   nil,   nil,
-    328,   328,    22,     9,   114,    61,   nil,    61,   nil,    84,
-     81,   nil,    22,     9,    22,     9,     2,    90,    22,     9,
-     22,     9,   378,   132,   380,   262,     2,   nil,     2,   nil,
-    nil,   nil,     2,   nil,     2,   140,   nil,   nil,   170,    88,
-     88,   nil,    88,   145,   nil,   nil,   nil,   nil,   167,   nil,
-    nil,   167,   nil,   nil,   262,   nil,   nil,   170,   nil,   nil,
-     84,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    90,   nil,
-    nil,   nil,    88,    87,   266,   nil,    87,   170,   nil,   nil,
-    nil,   nil,   nil,    88,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,    88,    88,   nil,   nil,   266,   nil,   nil,   nil,
-    nil,   262,    88,   nil,   nil,   nil,   nil,   142,   nil,   nil,
-    nil,   nil,   nil,   nil,   262,   nil,   nil,    88,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   331,   331,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,    87,   nil,   nil,   167,
-    nil,   253,   nil,   nil,   nil,   nil,    88,   nil,   nil,   nil,
-    nil,   266,   nil,   nil,   nil,   nil,   nil,    84,   264,   nil,
-     84,   nil,   nil,   nil,   282,    90,   145,   nil,    90,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    266,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    264,   nil,   nil,   314,   nil,   316,   nil,   124,   145,   nil,
-    nil,   140,   nil,    88,   130,   131,   nil,   nil,   nil,   145,
-    nil,   nil,   nil,   335,   nil,   167,    88,   nil,   nil,   nil,
-    330,   330,   nil,   nil,   nil,   nil,   nil,   nil,   332,   332,
-     84,   nil,   nil,   180,   nil,   nil,   nil,   266,    90,   nil,
-    nil,   346,   nil,   nil,   nil,   264,   nil,   nil,   nil,   nil,
-    266,   nil,   185,   145,   nil,   186,   nil,   nil,   187,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    358,   nil,   359,   nil,   264,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   145,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+     27,    13,     5,    37,    62,   255,   249,    20,   118,   196,
+     92,    89,   142,    50,   155,   300,    69,    63,   222,   336,
+     27,    13,     5,   165,    73,    75,    57,   279,   348,   352,
+    246,   151,   145,   119,   343,   150,   121,   230,    65,   149,
+    299,    22,    27,   126,   138,   135,    27,   126,   201,   134,
+    235,   214,   120,    87,   302,    86,   304,   244,    89,    42,
+    169,   128,    46,    69,    63,   128,   136,   251,   368,   331,
+    322,    73,   163,   370,   212,   125,   124,   324,   123,   130,
+    124,   148,   192,    86,   116,    65,   140,   224,    56,   159,
+    227,   123,   330,   249,   211,   237,   220,   160,   221,   354,
+     87,   110,    86,   115,   246,   314,   194,   297,    17,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   195,   nil,
+    nil,   nil,   nil,   133,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,    54,   nil,   nil,   nil,   302,   nil,
+    293,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   168,   nil,    89,   149,   nil,   nil,    89,    69,
+     63,   nil,   288,    69,    63,   236,   nil,   245,   nil,   nil,
+    nil,    73,   261,    82,   168,   226,   nil,   nil,   nil,   151,
+    nil,    65,   247,   342,   nil,    65,   168,   nil,    27,    13,
+      5,   339,   303,   320,   328,   374,    87,   148,    86,    86,
+     87,   143,    86,   149,    80,   361,   377,   249,   317,   316,
+    nil,   379,   150,   151,   381,   364,   149,    27,    13,     5,
+     82,   138,   135,   nil,   nil,   nil,   369,   312,    89,   nil,
+    247,   nil,   141,    69,    63,   239,   nil,   nil,    27,    13,
+      5,   245,   149,   136,   nil,   148,   nil,    86,   nil,   265,
+    nil,    80,   nil,   nil,   nil,    65,   nil,   nil,   148,   nil,
+     86,   210,    62,   nil,   210,   nil,   nil,   nil,    85,   247,
+     87,   nil,    86,    54,    54,   nil,   nil,   nil,    27,    13,
+      5,   nil,   149,   149,   148,   nil,    86,   149,   345,   345,
+    nil,   nil,   207,   nil,   nil,   207,   146,   nil,   nil,   273,
+    195,   nil,   nil,   277,   nil,   319,   nil,   321,   nil,   346,
+    346,    27,    13,     5,   247,    85,    82,   250,   362,   371,
+     82,   nil,   nil,   nil,   351,   351,    86,    86,   nil,   148,
+    nil,    86,   nil,   332,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   149,   nil,    62,    80,   248,   nil,
+    nil,    80,   nil,   210,   nil,   nil,   149,   nil,   nil,   nil,
+    nil,   341,    27,    13,     5,   250,   nil,   nil,   nil,   nil,
+    nil,   247,    27,    13,     5,    27,    13,     5,   143,   nil,
+    359,   360,   nil,   247,   207,   nil,   148,   nil,    86,   nil,
+     82,   nil,   129,   nil,   131,   132,   248,   nil,   148,   nil,
+     86,   nil,   nil,   366,   250,   nil,   nil,   nil,   nil,   141,
+    nil,    85,   253,   nil,   nil,    85,   nil,   nil,   164,   nil,
+    nil,    80,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   248,   nil,   171,   nil,   nil,
+    210,   nil,   190,   nil,   349,   349,   191,   nil,   nil,   250,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   366,   nil,   nil,   nil,
+    253,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   207,   nil,   146,   nil,   347,   347,   nil,   nil,   nil,
+    248,   nil,   nil,   nil,   nil,    85,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   253,
+    nil,   nil,   nil,   nil,   nil,   nil,   250,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   250,   262,
+    263,   264,   nil,   266,   267,   268,   269,   270,   271,   272,
+    nil,   274,   275,   276,   nil,   nil,   281,   248,   nil,   350,
+    350,   nil,   nil,   nil,   253,   nil,   nil,   nil,   nil,   248,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   264,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   145,
-    nil,   nil,   nil,   nil,   264,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   145,   nil,   279,   280,   281,   nil,   283,   284,
-    285,   286,   287,   288,   289,   nil,   291,   292,   293,   nil,
-    nil,   297,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   164,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   180 ]
+    nil,   253,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   253 ]
  
  racc_goto_check = [
-     37,    21,    30,    62,    64,    72,     4,    32,    28,    82,
-      2,    70,    31,    29,    52,    36,    35,    85,    32,    37,
-     21,    60,    22,    78,    21,    53,     3,    47,    30,    36,
-     37,    35,    38,    52,    28,    68,    19,     5,    31,    29,
-     50,    66,     7,    37,    21,    23,    41,    63,    36,    41,
-      5,    57,    20,    30,    74,    46,    46,    65,    58,    28,
-     61,    69,     3,    31,    29,    56,    71,    68,    33,    74,
-     57,    73,    34,    22,    75,    21,    76,     3,    77,    40,
-     79,     3,    20,    80,    81,    30,    42,    83,    84,     1,
-     57,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    70,   nil,
-     63,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,    19,   nil,   nil,   nil,   nil,    23,     7,
-     37,    21,    68,   nil,   nil,    66,   nil,     5,    36,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    24,
-    nil,   nil,   nil,    64,   nil,    64,   nil,    41,   nil,   nil,
-     53,    68,   nil,   nil,   nil,   nil,   nil,    38,   nil,   nil,
-     30,    30,    78,    30,   nil,    24,    28,    28,   nil,    28,
-     31,    29,   nil,    31,    29,   nil,   nil,   nil,    24,   nil,
-      3,    24,    21,    22,   nil,    21,   nil,    72,    85,   nil,
-     24,    36,   nil,    30,    64,    82,    35,    70,    64,    28,
-    nil,    53,    60,    47,    30,   nil,    53,   nil,    68,   nil,
-     28,   nil,    37,    21,    31,    29,    50,    37,    21,    36,
-    nil,    68,     2,    30,    30,   nil,    52,     2,   nil,    28,
-     28,    52,   nil,    30,    29,    29,   nil,    37,    21,    28,
-     32,    49,   nil,    31,    29,   nil,   nil,     2,    30,   nil,
-    nil,    52,   nil,   nil,    28,    21,    30,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,    49,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,    26,   nil,    30,   nil,    24,
-    nil,   nil,     4,    28,   nil,   nil,   nil,   nil,   nil,   nil,
-      4,   nil,    49,   nil,   nil,    37,    21,    24,    24,   nil,
-     24,    26,   nil,    37,    21,   nil,   nil,   nil,   nil,    52,
-      4,   nil,   nil,   nil,   nil,   nil,   nil,    52,   nil,    37,
-     21,   nil,   nil,    37,    21,   nil,    26,   nil,    62,     2,
-     24,   nil,   nil,    52,    30,   nil,   nil,    52,   nil,   nil,
-     28,    24,   nil,   nil,   nil,   nil,   nil,    30,   nil,     4,
-    nil,   nil,   nil,    28,   nil,    24,   nil,   nil,   nil,   nil,
-     24,    24,    37,    21,    54,     4,   nil,     4,   nil,    25,
-     24,   nil,    37,    21,    37,    21,    52,    27,    37,    21,
-     37,    21,     2,    54,     2,    24,    52,   nil,    52,   nil,
-    nil,   nil,    52,   nil,    52,    25,   nil,   nil,    54,    49,
-     49,   nil,    49,    27,   nil,   nil,   nil,   nil,    25,   nil,
-    nil,    25,   nil,   nil,    24,   nil,   nil,    54,   nil,   nil,
-     25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,   nil,
-    nil,   nil,    49,    26,    26,   nil,    26,    54,   nil,   nil,
-    nil,   nil,   nil,    49,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,    49,    49,   nil,   nil,    26,   nil,   nil,   nil,
-    nil,    24,    49,   nil,   nil,   nil,   nil,    26,   nil,   nil,
-    nil,   nil,   nil,   nil,    24,   nil,   nil,    49,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,    26,    26,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,    26,   nil,   nil,    25,
-    nil,    54,   nil,   nil,   nil,   nil,    49,   nil,   nil,   nil,
-    nil,    26,   nil,   nil,   nil,   nil,   nil,    25,    25,   nil,
-     25,   nil,   nil,   nil,    54,    27,    27,   nil,    27,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-     26,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-     25,   nil,   nil,    54,   nil,    54,   nil,    51,    27,   nil,
-    nil,    25,   nil,    49,    51,    51,   nil,   nil,   nil,    27,
-    nil,   nil,   nil,    54,   nil,    25,    49,   nil,   nil,   nil,
-     25,    25,   nil,   nil,   nil,   nil,   nil,   nil,    27,    27,
-     25,   nil,   nil,    51,   nil,   nil,   nil,    26,    27,   nil,
-    nil,    54,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,
-     26,   nil,    51,    27,   nil,    51,   nil,   nil,    51,   nil,
+     38,    22,    53,    33,     4,    71,    69,     2,    73,    86,
+     63,    29,    36,    33,    39,    67,    32,    30,    83,    64,
+     38,    22,    53,    61,    22,    23,    79,     5,    47,    47,
+     24,    54,    48,    38,    43,    51,    75,    37,    31,    29,
+     66,     3,    38,    22,    32,    30,    38,    22,    42,    75,
+     37,    42,     6,    28,    69,    50,     5,    62,    29,    21,
+     58,     6,    21,    32,    30,     6,    31,    70,    59,    72,
+     57,    22,    23,    64,    36,    20,     8,     5,     3,    20,
+      8,    28,    58,    50,    74,    31,    34,    76,    77,    78,
+     35,     3,    71,    69,    58,    80,    81,     3,    82,    67,
+     28,    41,    50,    55,    24,    84,    85,    37,     1,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    31,   nil,
+    nil,   nil,   nil,    55,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,    65,   nil,   nil,   nil,    69,   nil,
+     42,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,    55,   nil,    29,    29,   nil,   nil,    29,    32,
+     30,   nil,    39,    32,    30,    79,   nil,    22,   nil,   nil,
+    nil,    22,    23,    26,    55,     3,   nil,   nil,   nil,    54,
+    nil,    31,    31,    37,   nil,    31,    55,   nil,    38,    22,
+     53,    86,    73,    36,    61,    69,    28,    28,    50,    50,
+     28,    26,    50,    29,    25,    83,    71,    69,    54,    48,
+    nil,     5,    51,    54,     5,    37,    29,    38,    22,    53,
+     26,    32,    30,   nil,   nil,   nil,    37,    33,    29,   nil,
+     31,   nil,    25,    32,    30,    55,   nil,   nil,    38,    22,
+     53,    22,    29,    31,   nil,    28,   nil,    50,   nil,    55,
+    nil,    25,   nil,   nil,   nil,    31,   nil,   nil,    28,   nil,
+     50,    26,     4,   nil,    26,   nil,   nil,   nil,    27,    31,
+     28,   nil,    50,    65,    65,   nil,   nil,   nil,    38,    22,
+     53,   nil,    29,    29,    28,   nil,    50,    29,    30,    30,
+    nil,   nil,    25,   nil,   nil,    25,    27,   nil,   nil,    65,
+     31,   nil,   nil,    65,   nil,    55,   nil,    55,   nil,    31,
+     31,    38,    22,    53,    31,    27,    26,    26,     2,    63,
+     26,   nil,   nil,   nil,    28,    28,    50,    50,   nil,    28,
+    nil,    50,   nil,    55,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,    29,   nil,     4,    25,    25,   nil,
+    nil,    25,   nil,    26,   nil,   nil,    29,   nil,   nil,   nil,
+    nil,    55,    38,    22,    53,    26,   nil,   nil,   nil,   nil,
+    nil,    31,    38,    22,    53,    38,    22,    53,    26,   nil,
+     55,    55,   nil,    31,    25,   nil,    28,   nil,    50,   nil,
+     26,   nil,    52,   nil,    52,    52,    25,   nil,    28,   nil,
+     50,   nil,   nil,    55,    26,   nil,   nil,   nil,   nil,    25,
+    nil,    27,    27,   nil,   nil,    27,   nil,   nil,    52,   nil,
+    nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,    25,   nil,    52,   nil,   nil,
+     26,   nil,    52,   nil,    26,    26,    52,   nil,   nil,    26,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-     54,   nil,    54,   nil,    25,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,    27,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+     27,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,    25,   nil,    27,   nil,    25,    25,   nil,   nil,   nil,
+     25,   nil,   nil,   nil,   nil,    27,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,
+    nil,   nil,   nil,   nil,   nil,   nil,    26,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    26,    52,
+     52,    52,   nil,    52,    52,    52,    52,    52,    52,    52,
+    nil,    52,    52,    52,   nil,   nil,    52,    25,   nil,    27,
+     27,   nil,   nil,   nil,    27,   nil,   nil,   nil,   nil,    25,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,    54,   nil,   nil,   nil,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    27,
-    nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,    27,   nil,    51,    51,    51,   nil,    51,    51,
-     51,    51,    51,    51,    51,   nil,    51,    51,    51,   nil,
-    nil,    51,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    52,
     nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    nil,   nil,   nil,   nil,    51 ]
+    nil,    27,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    nil,   nil,   nil,    27 ]
  
  racc_goto_pointer = [
-    nil,    89,    10,    26,   -13,     7,   nil,    -1,   nil,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    -7,
-     48,     1,    -1,  -136,   116,   346,   252,   354,   -15,   -10,
-    -21,   -11,     6,    19,   -64,   -33,  -124,     0,   -18,   nil,
-     57,   -16,  -153,   nil,   nil,   nil,  -189,   -22,   nil,   218,
-     -9,   528,    14,   -25,   335,   nil,  -166,   -12,  -285,   nil,
-    -54,  -120,   -23,  -249,   -13,  -157,  -173,   nil,  -147,  -121,
-   -171,  -203,   -28,    38,    18,   -80,    59,    23,     6,   -78,
-    -39,   -38,  -113,  -147,   -18,   -89,   nil ]
+    nil,   108,     7,    41,   -16,  -161,    19,   nil,    34,   nil,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+     33,    56,     1,     2,  -136,   181,   150,   245,    30,   -12,
+     -6,    15,    -7,     2,    35,   -50,   -39,  -105,     0,   -38,
+    nil,    74,   -63,  -256,   nil,   nil,   nil,  -266,   -19,   nil,
+     32,   -16,   347,     2,   -21,    74,   nil,  -164,   -18,  -263,
+    nil,   -48,  -107,   -16,  -261,   116,  -175,  -200,   nil,  -161,
+   -100,  -162,  -185,   -24,    52,    -1,   -47,    70,    33,     8,
+    -63,   -26,   -24,  -104,  -120,     3,   -94,   nil ]
  
  racc_goto_default = [
-    nil,   nil,   nil,   168,    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,   300,    80,   nil,
-    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    57,
-    nil,   nil,   nil,   nil,   nil,   nil,   192 ]
- 
- racc_reduce_table = [
-   0, 0, :racc_error,
-   1, 70, :_reduce_1,
-   1, 70, :_reduce_none,
-   1, 71, :_reduce_3,
-   2, 71, :_reduce_4,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   1, 73, :_reduce_none,
-   3, 87, :_reduce_19,
-   3, 87, :_reduce_20,
-   1, 88, :_reduce_none,
-   1, 88, :_reduce_none,
-   1, 88, :_reduce_none,
-   1, 89, :_reduce_none,
-   1, 89, :_reduce_none,
-   1, 89, :_reduce_none,
-   1, 89, :_reduce_none,
-   4, 81, :_reduce_28,
-   5, 81, :_reduce_29,
-   3, 81, :_reduce_30,
-   2, 81, :_reduce_31,
-   1, 91, :_reduce_32,
-   1, 91, :_reduce_33,
-   3, 91, :_reduce_34,
-   3, 91, :_reduce_35,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_none,
-   1, 92, :_reduce_44,
-   5, 74, :_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,
-   3, 109, :_reduce_55,
-   1, 110, :_reduce_none,
-   1, 110, :_reduce_none,
-   3, 110, :_reduce_58,
-   1, 111, :_reduce_none,
-   3, 111, :_reduce_60,
-   1, 112, :_reduce_61,
-   1, 112, :_reduce_62,
-   3, 113, :_reduce_63,
-   3, 113, :_reduce_64,
-   1, 114, :_reduce_none,
-   1, 114, :_reduce_none,
-   4, 116, :_reduce_67,
-   1, 102, :_reduce_68,
-   3, 102, :_reduce_69,
-   0, 103, :_reduce_none,
-   1, 103, :_reduce_none,
-   1, 118, :_reduce_72,
-   1, 93, :_reduce_73,
-   1, 95, :_reduce_74,
-   1, 117, :_reduce_none,
-   1, 117, :_reduce_none,
-   1, 117, :_reduce_none,
-   1, 117, :_reduce_none,
-   1, 117, :_reduce_none,
-   1, 117, :_reduce_none,
-   1, 117, :_reduce_none,
-   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,
-   1, 125, :_reduce_none,
-   1, 125, :_reduce_none,
-   0, 107, :_reduce_92,
-   1, 107, :_reduce_93,
-   3, 107, :_reduce_94,
-   1, 126, :_reduce_95,
-   3, 126, :_reduce_96,
-   1, 115, :_reduce_none,
-   1, 115, :_reduce_none,
-   1, 115, :_reduce_none,
-   1, 115, :_reduce_none,
-   1, 115, :_reduce_none,
-   1, 115, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   1, 123, :_reduce_none,
-   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, 90, :_reduce_124,
-   2, 79, :_reduce_125,
-   5, 131, :_reduce_126,
-   4, 131, :_reduce_127,
-   0, 132, :_reduce_none,
-   2, 132, :_reduce_129,
-   4, 132, :_reduce_130,
-   3, 132, :_reduce_131,
-   1, 120, :_reduce_none,
-   3, 120, :_reduce_133,
-   3, 120, :_reduce_134,
-   3, 120, :_reduce_135,
-   3, 120, :_reduce_136,
-   3, 120, :_reduce_137,
-   3, 120, :_reduce_138,
-   3, 120, :_reduce_139,
-   3, 120, :_reduce_140,
-   3, 120, :_reduce_141,
-   2, 120, :_reduce_142,
-   3, 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_151,
-   3, 120, :_reduce_152,
-   5, 78, :_reduce_153,
-   1, 134, :_reduce_154,
-   2, 134, :_reduce_155,
-   5, 135, :_reduce_156,
-   4, 135, :_reduce_157,
-   1, 136, :_reduce_158,
-   3, 136, :_reduce_159,
-   3, 98, :_reduce_160,
-   1, 138, :_reduce_none,
-   4, 138, :_reduce_162,
-   1, 140, :_reduce_none,
-   3, 140, :_reduce_164,
-   3, 139, :_reduce_165,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_none,
-   1, 137, :_reduce_173,
-   1, 137, :_reduce_none,
-   1, 141, :_reduce_175,
-   1, 142, :_reduce_none,
-   3, 142, :_reduce_177,
-   2, 80, :_reduce_178,
-   6, 82, :_reduce_179,
-   5, 82, :_reduce_180,
-   7, 83, :_reduce_181,
-   6, 83, :_reduce_182,
-   6, 84, :_reduce_183,
-   5, 84, :_reduce_184,
-   1, 106, :_reduce_185,
-   1, 101, :_reduce_186,
-   1, 101, :_reduce_187,
-   1, 101, :_reduce_188,
-   1, 145, :_reduce_189,
-   3, 145, :_reduce_190,
-   1, 147, :_reduce_191,
-   1, 148, :_reduce_192,
-   1, 148, :_reduce_193,
-   1, 148, :_reduce_194,
-   1, 148, :_reduce_none,
-   0, 72, :_reduce_196,
-   0, 149, :_reduce_197,
-   1, 143, :_reduce_none,
-   3, 143, :_reduce_199,
-   3, 143, :_reduce_200,
-   1, 150, :_reduce_none,
-   3, 150, :_reduce_202,
-   3, 151, :_reduce_203,
-   1, 151, :_reduce_204,
-   3, 151, :_reduce_205,
-   1, 151, :_reduce_206,
-   1, 146, :_reduce_none,
-   2, 146, :_reduce_208,
-   1, 144, :_reduce_none,
-   2, 144, :_reduce_210,
-   1, 152, :_reduce_none,
-   1, 152, :_reduce_none,
-   1, 94, :_reduce_213,
-   3, 119, :_reduce_214,
-   4, 119, :_reduce_215,
-   2, 119, :_reduce_216,
-   1, 127, :_reduce_none,
-   1, 127, :_reduce_none,
-   0, 105, :_reduce_none,
-   1, 105, :_reduce_220,
-   1, 133, :_reduce_221,
-   3, 128, :_reduce_222,
-   4, 128, :_reduce_223,
-   2, 128, :_reduce_224,
-   1, 153, :_reduce_none,
-   3, 153, :_reduce_226,
-   3, 154, :_reduce_227,
-   1, 155, :_reduce_228,
-   1, 155, :_reduce_229,
-   4, 121, :_reduce_230,
-   1, 100, :_reduce_none,
-   4, 100, :_reduce_232 ]
- 
- racc_reduce_n = 233
- 
- racc_shift_n = 384
+    nil,   nil,   278,   208,    25,   nil,    31,    35,     4,     7,
+      9,    14,    16,    19,    21,    24,    28,    30,    34,     3,
+      6,   nil,    98,   nil,    76,   101,   102,   105,   107,   108,
+     93,    94,    96,    12,   nil,   nil,   nil,   nil,    83,   nil,
+     33,   nil,   nil,   204,   290,   205,   206,   nil,   nil,   147,
+    106,   109,    91,    64,   137,    97,   152,   153,   nil,   259,
+    104,   nil,   nil,   nil,   nil,    67,   nil,   nil,   301,    77,
+    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+     58,   nil,   nil,   nil,   nil,   nil,   nil,   197 ]
  
 -racc_reduce_table = [
 -  0, 0, :racc_error,
 -  1, 70, :_reduce_none,
 -  1, 70, :_reduce_none,
 -  1, 71, :_reduce_3,
 -  2, 71, :_reduce_4,
 -  1, 74, :_reduce_5,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  1, 73, :_reduce_none,
 -  3, 88, :_reduce_20,
 -  3, 88, :_reduce_21,
 -  1, 89, :_reduce_none,
 -  1, 89, :_reduce_none,
 -  1, 89, :_reduce_none,
 -  1, 90, :_reduce_none,
 -  1, 90, :_reduce_none,
 -  1, 90, :_reduce_none,
 -  1, 90, :_reduce_none,
 -  4, 82, :_reduce_29,
 -  5, 82, :_reduce_30,
 -  3, 82, :_reduce_31,
 -  2, 82, :_reduce_32,
 -  1, 92, :_reduce_none,
 -  1, 92, :_reduce_none,
 -  3, 92, :_reduce_35,
 -  3, 92, :_reduce_36,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_none,
 -  1, 93, :_reduce_45,
 -  5, 75, :_reduce_46,
 -  5, 75, :_reduce_47,
 -  5, 75, :_reduce_48,
 -  5, 86, :_reduce_49,
 -  2, 76, :_reduce_50,
 -  1, 109, :_reduce_51,
 -  2, 109, :_reduce_52,
 -  6, 77, :_reduce_53,
 -  2, 77, :_reduce_54,
 -  3, 110, :_reduce_55,
 -  3, 110, :_reduce_56,
 -  1, 111, :_reduce_none,
 -  1, 111, :_reduce_none,
 -  3, 111, :_reduce_59,
 -  1, 112, :_reduce_none,
 -  3, 112, :_reduce_61,
 -  1, 113, :_reduce_62,
 -  1, 113, :_reduce_63,
 -  3, 114, :_reduce_64,
 -  3, 114, :_reduce_65,
 -  1, 115, :_reduce_none,
 -  1, 115, :_reduce_none,
 -  4, 117, :_reduce_68,
 -  1, 103, :_reduce_none,
 -  3, 103, :_reduce_70,
 -  0, 104, :_reduce_none,
 -  1, 104, :_reduce_none,
 -  1, 119, :_reduce_73,
 -  1, 94, :_reduce_74,
 -  1, 96, :_reduce_75,
 -  1, 118, :_reduce_none,
 -  1, 118, :_reduce_none,
 -  1, 118, :_reduce_none,
 -  1, 118, :_reduce_none,
 -  1, 118, :_reduce_none,
 -  1, 118, :_reduce_none,
 -  1, 118, :_reduce_none,
 -  3, 78, :_reduce_83,
 -  3, 78, :_reduce_84,
 -  3, 87, :_reduce_85,
 -  0, 105, :_reduce_86,
 -  1, 105, :_reduce_87,
 -  3, 105, :_reduce_88,
 -  3, 123, :_reduce_89,
 -  3, 125, :_reduce_90,
 -  1, 126, :_reduce_none,
 -  1, 126, :_reduce_none,
 -  0, 108, :_reduce_93,
 -  1, 108, :_reduce_94,
 -  3, 108, :_reduce_95,
 -  1, 127, :_reduce_none,
 -  3, 127, :_reduce_97,
 -  1, 116, :_reduce_none,
 -  1, 116, :_reduce_none,
 -  1, 116, :_reduce_none,
 -  1, 116, :_reduce_none,
 -  1, 116, :_reduce_none,
 -  1, 116, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  1, 124, :_reduce_none,
 -  4, 98, :_reduce_116,
 -  3, 98, :_reduce_117,
 -  1, 100, :_reduce_118,
 -  2, 100, :_reduce_119,
 -  2, 130, :_reduce_120,
 -  1, 131, :_reduce_121,
 -  2, 131, :_reduce_122,
 -  1, 97, :_reduce_123,
 -  4, 91, :_reduce_124,
 -  4, 91, :_reduce_125,
 -  2, 80, :_reduce_126,
 -  5, 132, :_reduce_127,
 -  4, 132, :_reduce_128,
 -  0, 133, :_reduce_none,
 -  2, 133, :_reduce_130,
 -  4, 133, :_reduce_131,
 -  3, 133, :_reduce_132,
 -  1, 121, :_reduce_none,
 -  3, 121, :_reduce_134,
 -  3, 121, :_reduce_135,
 -  3, 121, :_reduce_136,
 -  3, 121, :_reduce_137,
 -  3, 121, :_reduce_138,
 -  3, 121, :_reduce_139,
 -  3, 121, :_reduce_140,
 -  3, 121, :_reduce_141,
 -  3, 121, :_reduce_142,
 -  2, 121, :_reduce_143,
 -  3, 121, :_reduce_144,
 -  3, 121, :_reduce_145,
 -  3, 121, :_reduce_146,
 -  3, 121, :_reduce_147,
 -  3, 121, :_reduce_148,
 -  3, 121, :_reduce_149,
 -  2, 121, :_reduce_150,
 -  3, 121, :_reduce_151,
 -  3, 121, :_reduce_152,
 -  3, 121, :_reduce_153,
 -  5, 79, :_reduce_154,
 -  1, 135, :_reduce_none,
 -  2, 135, :_reduce_156,
 -  5, 136, :_reduce_157,
 -  4, 136, :_reduce_158,
 -  1, 137, :_reduce_none,
 -  3, 137, :_reduce_160,
 -  3, 99, :_reduce_161,
 -  1, 139, :_reduce_none,
 -  4, 139, :_reduce_163,
 -  1, 141, :_reduce_none,
 -  3, 141, :_reduce_165,
 -  3, 140, :_reduce_166,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_none,
 -  1, 138, :_reduce_174,
 -  1, 138, :_reduce_none,
 -  1, 142, :_reduce_176,
 -  1, 143, :_reduce_none,
 -  3, 143, :_reduce_178,
 -  2, 81, :_reduce_179,
 -  6, 83, :_reduce_180,
 -  5, 83, :_reduce_181,
 -  7, 84, :_reduce_182,
 -  6, 84, :_reduce_183,
 -  6, 85, :_reduce_184,
 -  5, 85, :_reduce_185,
 -  1, 107, :_reduce_186,
 -  1, 102, :_reduce_187,
 -  1, 102, :_reduce_188,
 -  1, 102, :_reduce_189,
 -  1, 146, :_reduce_190,
 -  3, 146, :_reduce_191,
 -  1, 148, :_reduce_192,
 -  1, 149, :_reduce_193,
 -  1, 149, :_reduce_194,
 -  1, 149, :_reduce_195,
 -  1, 149, :_reduce_none,
 -  0, 72, :_reduce_197,
 -  0, 150, :_reduce_198,
 -  1, 144, :_reduce_none,
 -  3, 144, :_reduce_200,
 -  3, 144, :_reduce_201,
 -  1, 151, :_reduce_none,
 -  3, 151, :_reduce_203,
 -  3, 152, :_reduce_204,
 -  1, 152, :_reduce_205,
 -  3, 152, :_reduce_206,
 -  1, 152, :_reduce_207,
 -  1, 147, :_reduce_none,
 -  2, 147, :_reduce_209,
 -  1, 145, :_reduce_none,
 -  2, 145, :_reduce_211,
 -  1, 153, :_reduce_none,
 -  1, 153, :_reduce_none,
 -  1, 95, :_reduce_214,
 -  3, 120, :_reduce_215,
 -  4, 120, :_reduce_216,
 -  2, 120, :_reduce_217,
 -  1, 128, :_reduce_none,
 -  1, 128, :_reduce_none,
 -  0, 106, :_reduce_none,
 -  1, 106, :_reduce_221,
 -  1, 134, :_reduce_222,
 -  3, 129, :_reduce_223,
 -  4, 129, :_reduce_224,
 -  2, 129, :_reduce_225,
 -  1, 154, :_reduce_none,
 -  3, 154, :_reduce_227,
 -  3, 155, :_reduce_228,
 -  1, 156, :_reduce_229,
 -  1, 156, :_reduce_230,
 -  4, 122, :_reduce_231,
 -  1, 101, :_reduce_none,
 -  4, 101, :_reduce_233 ]
 -
 -racc_reduce_n = 234
 -
 -racc_shift_n = 385
 -
  racc_token_table = {
--  false => 0,
--  :error => 1,
--  :STRING => 2,
--  :DQPRE => 3,
--  :DQMID => 4,
--  :DQPOST => 5,
--  :LBRACK => 6,
--  :RBRACK => 7,
--  :LBRACE => 8,
--  :RBRACE => 9,
--  :SYMBOL => 10,
--  :FARROW => 11,
--  :COMMA => 12,
--  :TRUE => 13,
--  :FALSE => 14,
--  :EQUALS => 15,
--  :APPENDS => 16,
--  :LESSEQUAL => 17,
--  :NOTEQUAL => 18,
--  :DOT => 19,
--  :COLON => 20,
--  :LLCOLLECT => 21,
--  :RRCOLLECT => 22,
--  :QMARK => 23,
--  :LPAREN => 24,
--  :RPAREN => 25,
--  :ISEQUAL => 26,
--  :GREATEREQUAL => 27,
--  :GREATERTHAN => 28,
--  :LESSTHAN => 29,
--  :IF => 30,
--  :ELSE => 31,
--  :IMPORT => 32,
--  :DEFINE => 33,
--  :ELSIF => 34,
--  :VARIABLE => 35,
--  :CLASS => 36,
--  :INHERITS => 37,
--  :NODE => 38,
--  :BOOLEAN => 39,
--  :NAME => 40,
--  :SEMIC => 41,
--  :CASE => 42,
--  :DEFAULT => 43,
--  :AT => 44,
--  :LCOLLECT => 45,
--  :RCOLLECT => 46,
--  :CLASSNAME => 47,
--  :CLASSREF => 48,
--  :NOT => 49,
--  :OR => 50,
--  :AND => 51,
--  :UNDEF => 52,
--  :PARROW => 53,
--  :PLUS => 54,
--  :MINUS => 55,
--  :TIMES => 56,
--  :DIV => 57,
--  :LSHIFT => 58,
--  :RSHIFT => 59,
--  :UMINUS => 60,
--  :MATCH => 61,
--  :NOMATCH => 62,
--  :REGEX => 63,
--  :IN_EDGE => 64,
--  :OUT_EDGE => 65,
--  :IN_EDGE_SUB => 66,
--  :OUT_EDGE_SUB => 67,
--  :IN => 68 }
--
--racc_nt_base = 69
++ false => 0,
++ Object.new => 1,
++ :STRING => 2,
++ :DQPRE => 3,
++ :DQMID => 4,
++ :DQPOST => 5,
++ :LBRACK => 6,
++ :RBRACK => 7,
++ :LBRACE => 8,
++ :RBRACE => 9,
++ :SYMBOL => 10,
++ :FARROW => 11,
++ :COMMA => 12,
++ :TRUE => 13,
++ :FALSE => 14,
++ :EQUALS => 15,
++ :APPENDS => 16,
++ :LESSEQUAL => 17,
++ :NOTEQUAL => 18,
++ :DOT => 19,
++ :COLON => 20,
++ :LLCOLLECT => 21,
++ :RRCOLLECT => 22,
++ :QMARK => 23,
++ :LPAREN => 24,
++ :RPAREN => 25,
++ :ISEQUAL => 26,
++ :GREATEREQUAL => 27,
++ :GREATERTHAN => 28,
++ :LESSTHAN => 29,
++ :IF => 30,
++ :ELSE => 31,
++ :IMPORT => 32,
++ :DEFINE => 33,
++ :ELSIF => 34,
++ :VARIABLE => 35,
++ :CLASS => 36,
++ :INHERITS => 37,
++ :NODE => 38,
++ :BOOLEAN => 39,
++ :NAME => 40,
++ :SEMIC => 41,
++ :CASE => 42,
++ :DEFAULT => 43,
++ :AT => 44,
++ :LCOLLECT => 45,
++ :RCOLLECT => 46,
++ :CLASSNAME => 47,
++ :CLASSREF => 48,
++ :NOT => 49,
++ :OR => 50,
++ :AND => 51,
++ :UNDEF => 52,
++ :PARROW => 53,
++ :PLUS => 54,
++ :MINUS => 55,
++ :TIMES => 56,
++ :DIV => 57,
++ :LSHIFT => 58,
++ :RSHIFT => 59,
++ :UMINUS => 60,
++ :MATCH => 61,
++ :NOMATCH => 62,
++ :REGEX => 63,
++ :IN_EDGE => 64,
++ :OUT_EDGE => 65,
++ :IN_EDGE_SUB => 66,
++ :OUT_EDGE_SUB => 67,
++ :IN => 68 }
  
  racc_use_result_var = true
  
++racc_nt_base = 69
++
  Racc_arg = [
--  racc_action_table,
--  racc_action_check,
--  racc_action_default,
--  racc_action_pointer,
--  racc_goto_table,
--  racc_goto_check,
--  racc_goto_default,
--  racc_goto_pointer,
--  racc_nt_base,
--  racc_reduce_table,
--  racc_token_table,
--  racc_shift_n,
--  racc_reduce_n,
--  racc_use_result_var ]
++ racc_action_table,
++ racc_action_check,
++ racc_action_default,
++ racc_action_pointer,
++ racc_goto_table,
++ racc_goto_check,
++ racc_goto_default,
++ racc_goto_pointer,
++ racc_nt_base,
++ racc_reduce_table,
++ racc_token_table,
++ racc_shift_n,
++ racc_reduce_n,
++ racc_use_result_var ]
  
  Racc_token_to_s_table = [
--  "$end",
--  "error",
--  "STRING",
--  "DQPRE",
--  "DQMID",
--  "DQPOST",
--  "LBRACK",
--  "RBRACK",
--  "LBRACE",
--  "RBRACE",
--  "SYMBOL",
--  "FARROW",
--  "COMMA",
--  "TRUE",
--  "FALSE",
--  "EQUALS",
--  "APPENDS",
--  "LESSEQUAL",
--  "NOTEQUAL",
--  "DOT",
--  "COLON",
--  "LLCOLLECT",
--  "RRCOLLECT",
--  "QMARK",
--  "LPAREN",
--  "RPAREN",
--  "ISEQUAL",
--  "GREATEREQUAL",
--  "GREATERTHAN",
--  "LESSTHAN",
--  "IF",
--  "ELSE",
--  "IMPORT",
--  "DEFINE",
--  "ELSIF",
--  "VARIABLE",
--  "CLASS",
--  "INHERITS",
--  "NODE",
--  "BOOLEAN",
--  "NAME",
--  "SEMIC",
--  "CASE",
--  "DEFAULT",
--  "AT",
--  "LCOLLECT",
--  "RCOLLECT",
--  "CLASSNAME",
--  "CLASSREF",
--  "NOT",
--  "OR",
--  "AND",
--  "UNDEF",
--  "PARROW",
--  "PLUS",
--  "MINUS",
--  "TIMES",
--  "DIV",
--  "LSHIFT",
--  "RSHIFT",
--  "UMINUS",
--  "MATCH",
--  "NOMATCH",
--  "REGEX",
--  "IN_EDGE",
--  "OUT_EDGE",
--  "IN_EDGE_SUB",
--  "OUT_EDGE_SUB",
--  "IN",
--  "$start",
--  "program",
-   "statements",
-   "nil",
-   "statement",
-   "resource",
-   "virtualresource",
-   "collection",
-   "assignment",
-   "casestatement",
-   "ifstatement_begin",
-   "import",
-   "fstatement",
-   "definition",
-   "hostclass",
-   "nodedef",
-   "resourceoverride",
-   "append",
-   "relationship",
-   "relationship_side",
-   "edge",
-   "resourceref",
-   "funcvalues",
-   "namestring",
-   "name",
-   "variable",
-   "type",
-   "boolean",
-   "funcrvalue",
-   "selector",
-   "quotedtext",
-   "hasharrayaccesses",
-   "classname",
-   "resourceinstances",
-   "endsemi",
-   "params",
-   "endcomma",
-   "classref",
-   "anyparams",
-   "at",
-   "collectrhand",
-   "collstatements",
-   "collstatement",
-   "colljoin",
-   "collexpr",
-   "colllval",
-   "simplervalue",
-   "resourceinst",
-   "resourcename",
-   "undef",
-   "array",
-   "expression",
-   "hasharrayaccess",
-   "param",
-   "rvalue",
-   "addparam",
-   "anyparam",
-   "rvalues",
-   "comma",
-   "hash",
-   "dqrval",
-   "dqtail",
-   "ifstatement",
-   "else",
-   "regex",
-   "caseopts",
-   "caseopt",
-   "casevalues",
-   "selectlhand",
-   "svalues",
-   "selectval",
-   "sintvalues",
-   "string",
-   "strings",
-   "argumentlist",
-   "classparent",
-   "hostnames",
-   "nodeparent",
-   "nodename",
-   "hostname",
-   "nothing",
-   "arguments",
-   "argument",
-   "classnameordefault",
-   "hashpairs",
-   "hashpair",
-   "key" ]
 -  "statements_and_declarations",
 -  "nil",
 -  "statement_or_declaration",
 -  "statements",
 -  "resource",
 -  "virtualresource",
 -  "collection",
 -  "assignment",
 -  "casestatement",
 -  "ifstatement_begin",
 -  "import",
 -  "fstatement",
 -  "definition",
 -  "hostclass",
 -  "nodedef",
 -  "resourceoverride",
 -  "append",
 -  "relationship",
 -  "relationship_side",
 -  "edge",
 -  "resourceref",
 -  "funcvalues",
 -  "namestring",
 -  "name",
 -  "variable",
 -  "type",
 -  "boolean",
 -  "funcrvalue",
 -  "selector",
 -  "quotedtext",
 -  "hasharrayaccesses",
 -  "classname",
 -  "resourceinstances",
 -  "endsemi",
 -  "params",
 -  "endcomma",
 -  "classref",
 -  "anyparams",
 -  "at",
 -  "collectrhand",
 -  "collstatements",
 -  "collstatement",
 -  "colljoin",
 -  "collexpr",
 -  "colllval",
 -  "simplervalue",
 -  "resourceinst",
 -  "resourcename",
 -  "undef",
 -  "array",
 -  "expression",
 -  "hasharrayaccess",
 -  "param",
 -  "rvalue",
 -  "addparam",
 -  "anyparam",
 -  "rvalues",
 -  "comma",
 -  "hash",
 -  "dqrval",
 -  "dqtail",
 -  "ifstatement",
 -  "else",
 -  "regex",
 -  "caseopts",
 -  "caseopt",
 -  "casevalues",
 -  "selectlhand",
 -  "svalues",
 -  "selectval",
 -  "sintvalues",
 -  "string",
 -  "strings",
 -  "argumentlist",
 -  "classparent",
 -  "hostnames",
 -  "nodeparent",
 -  "nodename",
 -  "hostname",
 -  "nothing",
 -  "arguments",
 -  "argument",
 -  "classnameordefault",
 -  "hashpairs",
 -  "hashpair",
 -  "key" ]
++'$end',
++'error',
++'STRING',
++'DQPRE',
++'DQMID',
++'DQPOST',
++'LBRACK',
++'RBRACK',
++'LBRACE',
++'RBRACE',
++'SYMBOL',
++'FARROW',
++'COMMA',
++'TRUE',
++'FALSE',
++'EQUALS',
++'APPENDS',
++'LESSEQUAL',
++'NOTEQUAL',
++'DOT',
++'COLON',
++'LLCOLLECT',
++'RRCOLLECT',
++'QMARK',
++'LPAREN',
++'RPAREN',
++'ISEQUAL',
++'GREATEREQUAL',
++'GREATERTHAN',
++'LESSTHAN',
++'IF',
++'ELSE',
++'IMPORT',
++'DEFINE',
++'ELSIF',
++'VARIABLE',
++'CLASS',
++'INHERITS',
++'NODE',
++'BOOLEAN',
++'NAME',
++'SEMIC',
++'CASE',
++'DEFAULT',
++'AT',
++'LCOLLECT',
++'RCOLLECT',
++'CLASSNAME',
++'CLASSREF',
++'NOT',
++'OR',
++'AND',
++'UNDEF',
++'PARROW',
++'PLUS',
++'MINUS',
++'TIMES',
++'DIV',
++'LSHIFT',
++'RSHIFT',
++'UMINUS',
++'MATCH',
++'NOMATCH',
++'REGEX',
++'IN_EDGE',
++'OUT_EDGE',
++'IN_EDGE_SUB',
++'OUT_EDGE_SUB',
++'IN',
++'$start',
++'program',
++'statements_and_declarations',
++'nil',
++'statement_or_declaration',
++'statements',
++'resource',
++'virtualresource',
++'collection',
++'assignment',
++'casestatement',
++'ifstatement_begin',
++'import',
++'fstatement',
++'definition',
++'hostclass',
++'nodedef',
++'resourceoverride',
++'append',
++'relationship',
++'relationship_side',
++'edge',
++'resourceref',
++'funcvalues',
++'namestring',
++'name',
++'variable',
++'type',
++'boolean',
++'funcrvalue',
++'selector',
++'quotedtext',
++'hasharrayaccesses',
++'classname',
++'resourceinstances',
++'endsemi',
++'params',
++'endcomma',
++'classref',
++'anyparams',
++'at',
++'collectrhand',
++'collstatements',
++'collstatement',
++'colljoin',
++'collexpr',
++'colllval',
++'simplervalue',
++'resourceinst',
++'resourcename',
++'undef',
++'array',
++'expression',
++'hasharrayaccess',
++'param',
++'rvalue',
++'addparam',
++'anyparam',
++'rvalues',
++'comma',
++'hash',
++'dqrval',
++'dqtail',
++'ifstatement',
++'else',
++'regex',
++'caseopts',
++'caseopt',
++'casevalues',
++'selectlhand',
++'svalues',
++'selectval',
++'sintvalues',
++'string',
++'strings',
++'argumentlist',
++'classparent',
++'hostnames',
++'nodeparent',
++'nodename',
++'hostname',
++'nothing',
++'arguments',
++'argument',
++'classnameordefault',
++'hashpairs',
++'hashpair',
++'key']
  
  Racc_debug_parser = false
  
--##### State transition tables end #####
- 
- # reduce 0 omitted
++##### racc system variables end #####
  
- module_eval(<<'.,.,', 'grammar.ra', 31)
-   def _reduce_1(val, _values, result)
-       val[0].is_a_namespace = true
-   result = val[0]
 -# reduce 0 omitted
++ # reduce 0 omitted
  
-     result
-   end
- .,.,
 -# reduce 1 omitted
++ # reduce 1 omitted
  
--# reduce 2 omitted
++ # reduce 2 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 37)
-   def _reduce_3(val, _values, result)
-         result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : [])
-   
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 34)
 -  def _reduce_3(val, _values, result)
 -        result = ast AST::ASTArray, :children => [val[0]]
 -  
 -    result
++module_eval <<'.,.,', 'grammar.ra', 36
++  def _reduce_3( val, _values, result )
++    result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : [])
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 40)
-   def _reduce_4(val, _values, result)
-         if val[1]
 -module_eval(<<'.,.,', 'grammar.ra', 37)
 -  def _reduce_4(val, _values, result)
 -        val[0].push(val[1])
++module_eval <<'.,.,', 'grammar.ra', 42
++  def _reduce_4( val, _values, result )
++    if val[1]
 +      val[0].push(val[1])
 +    end
      result = val[0]
--  
--    result
++   result
    end
  .,.,
  
- # reduce 5 omitted
 -module_eval(<<'.,.,', 'grammar.ra', 44)
 -  def _reduce_5(val, _values, result)
 -      val[0].each do |stmt|
++module_eval <<'.,.,', 'grammar.ra', 54
++  def _reduce_5( val, _values, result )
++  val[0].each do |stmt|
+     if stmt.is_a?(AST::TopLevelConstruct)
+       error "Classes, definitions, and nodes may only appear at toplevel or inside other classes", \
+           :line => stmt.context[:line], :file => stmt.context[:file]
+     end
+   end
+   result = val[0]
 -
 -    result
++   result
+   end
+ .,.,
  
--# reduce 6 omitted
++ # reduce 6 omitted
  
--# reduce 7 omitted
++ # reduce 7 omitted
  
--# reduce 8 omitted
++ # reduce 8 omitted
  
--# reduce 9 omitted
++ # reduce 9 omitted
  
--# reduce 10 omitted
++ # reduce 10 omitted
  
--# reduce 11 omitted
++ # reduce 11 omitted
  
--# reduce 12 omitted
++ # reduce 12 omitted
  
--# reduce 13 omitted
++ # reduce 13 omitted
  
--# reduce 14 omitted
++ # reduce 14 omitted
  
--# reduce 15 omitted
++ # reduce 15 omitted
  
--# reduce 16 omitted
++ # reduce 16 omitted
  
--# reduce 17 omitted
++ # reduce 17 omitted
  
--# reduce 18 omitted
++ # reduce 18 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 63)
-   def _reduce_19(val, _values, result)
-       result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
 -# reduce 19 omitted
++ # reduce 19 omitted
  
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 70)
 -  def _reduce_20(val, _values, result)
 -      result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 74
++  def _reduce_20( val, _values, result )
++  result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 66)
-   def _reduce_20(val, _values, result)
-         result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 73)
 -  def _reduce_21(val, _values, result)
 -        result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 77
++  def _reduce_21( val, _values, result )
++    result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
++   result
    end
  .,.,
  
- # reduce 21 omitted
 -# reduce 22 omitted
++ # reduce 22 omitted
  
- # reduce 22 omitted
 -# reduce 23 omitted
++ # reduce 23 omitted
  
- # reduce 23 omitted
 -# reduce 24 omitted
++ # reduce 24 omitted
  
- # reduce 24 omitted
 -# reduce 25 omitted
++ # reduce 25 omitted
  
- # reduce 25 omitted
 -# reduce 26 omitted
++ # reduce 26 omitted
  
- # reduce 26 omitted
 -# reduce 27 omitted
++ # reduce 27 omitted
  
- # reduce 27 omitted
 -# reduce 28 omitted
++ # reduce 28 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 74)
-   def _reduce_28(val, _values, result)
-       result = ast AST::Function,
 -module_eval(<<'.,.,', 'grammar.ra', 81)
 -  def _reduce_29(val, _values, result)
 -      args = aryfy(val[2])
++module_eval <<'.,.,', 'grammar.ra', 89
++  def _reduce_29( val, _values, result )
+   result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[2],
      :ftype => :statement
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 81)
-   def _reduce_29(val, _values, result)
-       result = ast AST::Function,
 -module_eval(<<'.,.,', 'grammar.ra', 89)
 -  def _reduce_30(val, _values, result)
 -      args = aryfy(val[2])
++module_eval <<'.,.,', 'grammar.ra', 96
++  def _reduce_30( val, _values, result )
+   result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[2],
      :ftype => :statement
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 87)
-   def _reduce_30(val, _values, result)
-       result = ast AST::Function,
 -module_eval(<<'.,.,', 'grammar.ra', 96)
 -  def _reduce_31(val, _values, result)
 -      result = ast AST::Function,
++module_eval <<'.,.,', 'grammar.ra', 102
++  def _reduce_31( val, _values, result )
++  result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
      :arguments => AST::ASTArray.new({}),
      :ftype => :statement
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 94)
-   def _reduce_31(val, _values, result)
-         result = ast AST::Function,
 -module_eval(<<'.,.,', 'grammar.ra', 103)
 -  def _reduce_32(val, _values, result)
 -        args = aryfy(val[1])
++module_eval <<'.,.,', 'grammar.ra', 109
++  def _reduce_32( val, _values, result )
+     result = ast AST::Function,
      :name => val[0][:value],
      :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[1],
      :ftype => :statement
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 101)
-   def _reduce_32(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -# reduce 33 omitted
 -
 -# reduce 34 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 114)
 -  def _reduce_35(val, _values, result)
 -        result = aryfy(val[0], val[2])
 -    result.line = @lexer.line
 -    result.file = @lexer.file
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 110
++  def _reduce_33( val, _values, result )
++ result = aryfy(val[0])
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 102)
-   def _reduce_33(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 119)
 -  def _reduce_36(val, _values, result)
 -        unless val[0].is_a?(AST::ASTArray)
 -    val[0] = aryfy(val[0])
++module_eval <<'.,.,', 'grammar.ra', 111
++  def _reduce_34( val, _values, result )
++ result = aryfy(val[0])
++   result
    end
 +.,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 104)
-   def _reduce_34(val, _values, result)
-         val[0].push(val[2])
 -  val[0].push(val[2])
 -
 -  result = val[0]
++module_eval <<'.,.,', 'grammar.ra', 116
++  def _reduce_35( val, _values, result )
++    val[0].push(val[2])
 +    result = val[0]
- 
-     result
++   result
 +  end
 +.,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 108)
-   def _reduce_35(val, _values, result)
-         val[0].push(val[2])
 -    result
++module_eval <<'.,.,', 'grammar.ra', 120
++  def _reduce_36( val, _values, result )
++    val[0].push(val[2])
 +    result = val[0]
- 
-     result
++   result
    end
  .,.,
  
- # reduce 36 omitted
 -# reduce 37 omitted
++ # reduce 37 omitted
  
- # reduce 37 omitted
 -# reduce 38 omitted
++ # reduce 38 omitted
  
- # reduce 38 omitted
 -# reduce 39 omitted
++ # reduce 39 omitted
  
- # reduce 39 omitted
 -# reduce 40 omitted
++ # reduce 40 omitted
  
- # reduce 40 omitted
 -# reduce 41 omitted
++ # reduce 41 omitted
  
- # reduce 41 omitted
 -# reduce 42 omitted
++ # reduce 42 omitted
  
- # reduce 42 omitted
 -# reduce 43 omitted
++ # reduce 43 omitted
  
- # reduce 43 omitted
 -# reduce 44 omitted
++ # reduce 44 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 123)
-   def _reduce_44(val, _values, result)
-         result = ast AST::Name, :value => val[0][:value]
-       
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 139)
 -  def _reduce_45(val, _values, result)
 -        result = ast AST::Name, :value => val[0][:value]
 -      
 -    result
++module_eval <<'.,.,', 'grammar.ra', 134
++  def _reduce_45( val, _values, result )
++    result = ast AST::Name, :value => val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 127)
-   def _reduce_45(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 143)
 -  def _reduce_46(val, _values, result)
 -      @lexer.commentpop
 -  array = val[2]
 -  array = [array] if array.instance_of?(AST::ResourceInstance)
 -  result = ast AST::ASTArray
 -
 -  # this iterates across each specified resourceinstance
 -  array.each { |instance|
 -    raise Puppet::Dev, "Got something that isn't an instance" unless instance.instance_of?(AST::ResourceInstance)
 -    # now, i need to somehow differentiate between those things with
 -    # arrays in their names, and normal things
 -
 -      result.push ast(
 -        AST::Resource,
 -      :type => val[0],
 -      :title => instance[0],
 -
 -      :parameters => instance[1])
 -  }
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 139
++  def _reduce_46( val, _values, result )
++  @lexer.commentpop
 +  result = ast(AST::Resource, :type => val[0], :instances => val[2])
- 
-     result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 130)
-   def _reduce_46(val, _values, result)
-       # This is a deprecated syntax.
 -module_eval(<<'.,.,', 'grammar.ra', 162)
 -  def _reduce_47(val, _values, result)
 -      # This is a deprecated syntax.
++module_eval <<'.,.,', 'grammar.ra', 142
++  def _reduce_47( val, _values, result )
++  # This is a deprecated syntax.
    error "All resource specifications require names"
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 133)
-   def _reduce_47(val, _values, result)
-       # a defaults setting for a type
 -module_eval(<<'.,.,', 'grammar.ra', 165)
 -  def _reduce_48(val, _values, result)
 -      # a defaults setting for a type
++module_eval <<'.,.,', 'grammar.ra', 146
++  def _reduce_48( val, _values, result )
++  # a defaults setting for a type
    @lexer.commentpop
    result = ast(AST::ResourceDefaults, :type => val[0], :parameters => val[2])
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 140)
-   def _reduce_48(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 172)
 -  def _reduce_49(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 152
++  def _reduce_49( val, _values, result )
++  @lexer.commentpop
    result = ast AST::ResourceOverride, :object => val[0], :parameters => val[2]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 147)
-   def _reduce_49(val, _values, result)
-       type = val[0]
 -module_eval(<<'.,.,', 'grammar.ra', 179)
 -  def _reduce_50(val, _values, result)
 -      type = val[0]
++module_eval <<'.,.,', 'grammar.ra', 171
++  def _reduce_50( val, _values, result )
++  type = val[0]
  
    if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly]
      Puppet.warning addcontext("You cannot collect without storeconfigs being set")
@@@ -1410,32 -1388,38 +1365,31 @@@
  
    method = type.to_s + "="
  
 -  # Just mark our resources as exported and pass them through.
 -  if val[1].instance_of?(AST::ASTArray)
 -    val[1].each do |obj|
 -      obj.send(method, true)
 -    end
 -  else
 -    val[1].send(method, true)
 -  end
 +  # Just mark our resource as exported and pass it through.
 +  val[1].send(method, true)
  
    result = val[1]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 163)
-   def _reduce_50(val, _values, result)
-      result = :virtual 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 201)
 -  def _reduce_51(val, _values, result)
 -     result = :virtual 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 172
++  def _reduce_51( val, _values, result )
++ result = :virtual
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 164)
-   def _reduce_51(val, _values, result)
-      result = :exported 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 202)
 -  def _reduce_52(val, _values, result)
 -     result = :exported 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 173
++  def _reduce_52( val, _values, result )
++ result = :exported
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 169)
-   def _reduce_52(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 207)
 -  def _reduce_53(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 196
++  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
    args = {:type => type}
@@@ -1452,14 -1436,14 +1406,13 @@@
    end
    args[:override] = val[3]
    result = ast AST::Collection, args
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 188)
-   def _reduce_53(val, _values, result)
-         if val[0] =~ /^[a-z]/
 -module_eval(<<'.,.,', 'grammar.ra', 226)
 -  def _reduce_54(val, _values, result)
 -        if val[0] =~ /^[a-z]/
++module_eval <<'.,.,', 'grammar.ra', 215
++  def _reduce_54( val, _values, result )
++    if val[0] =~ /^[a-z]/
      Puppet.warning addcontext("Collection names must now be capitalized")
    end
    type = val[0].downcase
@@@ -1476,404 -1460,412 +1429,377 @@@
      Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored")
    end
    result = ast AST::Collection, args
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 209)
-   def _reduce_54(val, _values, result)
-       if val[1]
 -module_eval(<<'.,.,', 'grammar.ra', 247)
 -  def _reduce_55(val, _values, result)
 -      if val[1]
++module_eval <<'.,.,', 'grammar.ra', 225
++  def _reduce_55( val, _values, result )
++  if val[1]
      result = val[1]
      result.form = :virtual
    else
      result = :virtual
    end
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 217)
-   def _reduce_55(val, _values, result)
-         if val[1]
 -module_eval(<<'.,.,', 'grammar.ra', 255)
 -  def _reduce_56(val, _values, result)
 -        if val[1]
++module_eval <<'.,.,', 'grammar.ra', 233
++  def _reduce_56( val, _values, result )
++    if val[1]
      result = val[1]
      result.form = :exported
    else
      result = :exported
    end
--
--    result
++   result
    end
  .,.,
  
- # reduce 56 omitted
 -# reduce 57 omitted
 -
 -# reduce 58 omitted
++ # reduce 57 omitted
  
- # reduce 57 omitted
 -module_eval(<<'.,.,', 'grammar.ra', 268)
 -  def _reduce_59(val, _values, result)
 -        result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
++ # reduce 58 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 230)
-   def _reduce_58(val, _values, result)
-         result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
- 
--    result
++module_eval <<'.,.,', 'grammar.ra', 241
++  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
++ # reduce 60 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 235)
-   def _reduce_60(val, _values, result)
-         result = val[1]
 -module_eval(<<'.,.,', 'grammar.ra', 273)
 -  def _reduce_61(val, _values, result)
 -        result = val[1]
++module_eval <<'.,.,', 'grammar.ra', 247
++  def _reduce_61( val, _values, result )
++    result = val[1]
      result.parens = true
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 239)
-   def _reduce_61(val, _values, result)
-      result=val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 277)
 -  def _reduce_62(val, _values, result)
 -     result=val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 248
++  def _reduce_62( val, _values, result )
++ result=val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 240)
-   def _reduce_62(val, _values, result)
-      result=val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 278)
 -  def _reduce_63(val, _values, result)
 -     result=val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 249
++  def _reduce_63( val, _values, result )
++ result=val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 243)
-   def _reduce_63(val, _values, result)
-       result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
 -module_eval(<<'.,.,', 'grammar.ra', 281)
 -  def _reduce_64(val, _values, result)
 -      result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
++module_eval <<'.,.,', 'grammar.ra', 256
++  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
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 248)
-   def _reduce_64(val, _values, result)
-         result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
 -module_eval(<<'.,.,', 'grammar.ra', 286)
 -  def _reduce_65(val, _values, result)
 -        result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
++module_eval <<'.,.,', 'grammar.ra', 261
++  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
--
--    result
++   result
    end
  .,.,
  
- # reduce 65 omitted
 -# reduce 66 omitted
 -
 -# reduce 67 omitted
++ # reduce 66 omitted
  
- # reduce 66 omitted
 -module_eval(<<'.,.,', 'grammar.ra', 295)
 -  def _reduce_68(val, _values, result)
 -      result = ast AST::ResourceInstance, :children => [val[0],val[2]]
++ # reduce 67 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 257)
-   def _reduce_67(val, _values, result)
-       result = ast AST::ResourceInstance, :title => val[0], :parameters => val[2]
- 
--    result
++module_eval <<'.,.,', 'grammar.ra', 268
++  def _reduce_68( val, _values, result )
++  result = ast AST::ResourceInstance, :title => val[0], :parameters => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 260)
-   def _reduce_68(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -# reduce 69 omitted
++module_eval <<'.,.,', 'grammar.ra', 269
++  def _reduce_69( val, _values, result )
++ result = aryfy(val[0])
++   result
 +  end
 +.,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 262)
-   def _reduce_69(val, _values, result)
-         val[0].push val[2]
 -module_eval(<<'.,.,', 'grammar.ra', 300)
 -  def _reduce_70(val, _values, result)
 -        if val[0].instance_of?(AST::ResourceInstance)
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  else
++module_eval <<'.,.,', 'grammar.ra', 274
++  def _reduce_70( val, _values, result )
+     val[0].push val[2]
      result = val[0]
- 
-     result
 -  end
 -
 -    result
++   result
    end
  .,.,
  
- # reduce 70 omitted
- 
--# reduce 71 omitted
 -
 -# reduce 72 omitted
++ # reduce 71 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 270)
-   def _reduce_72(val, _values, result)
-       result = ast AST::Undef, :value => :undef
 -module_eval(<<'.,.,', 'grammar.ra', 312)
 -  def _reduce_73(val, _values, result)
 -      result = ast AST::Undef, :value => :undef
++ # reduce 72 omitted
  
--    result
++module_eval <<'.,.,', 'grammar.ra', 281
++  def _reduce_73( val, _values, result )
++  result = ast AST::Undef, :value => :undef
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 274)
-   def _reduce_73(val, _values, result)
-       result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 316)
 -  def _reduce_74(val, _values, result)
 -      result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 285
++  def _reduce_74( val, _values, result )
++  result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 278)
-   def _reduce_74(val, _values, result)
-       result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 320)
 -  def _reduce_75(val, _values, result)
 -      result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 289
++  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 76 omitted
  
- # reduce 76 omitted
 -# reduce 77 omitted
++ # reduce 77 omitted
  
- # reduce 77 omitted
 -# reduce 78 omitted
++ # reduce 78 omitted
  
- # reduce 78 omitted
 -# reduce 79 omitted
++ # reduce 79 omitted
  
- # reduce 79 omitted
 -# reduce 80 omitted
++ # reduce 80 omitted
  
- # reduce 80 omitted
 -# reduce 81 omitted
++ # reduce 81 omitted
  
- # reduce 81 omitted
 -# reduce 82 omitted
++ # reduce 82 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 290)
-   def _reduce_82(val, _values, result)
-       raise Puppet::ParseError, "Cannot assign to variables in other namespaces" if val[0][:value] =~ /::/
 -module_eval(<<'.,.,', 'grammar.ra', 332)
 -  def _reduce_83(val, _values, result)
 -      raise Puppet::ParseError, "Cannot assign to variables in other namespaces" if val[0][:value] =~ /::/
++module_eval <<'.,.,', 'grammar.ra', 304
++  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]
    result = ast AST::VarDef, :name => variable, :value => val[2], :line => val[0][:line]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 296)
-   def _reduce_83(val, _values, result)
-         result = ast AST::VarDef, :name => val[0], :value => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 338)
 -  def _reduce_84(val, _values, result)
 -        result = ast AST::VarDef, :name => val[0], :value => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 307
++  def _reduce_84( val, _values, result )
++    result = ast AST::VarDef, :name => val[0], :value => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 300)
-   def _reduce_84(val, _values, result)
-       variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
 -module_eval(<<'.,.,', 'grammar.ra', 342)
 -  def _reduce_85(val, _values, result)
 -      variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
++module_eval <<'.,.,', 'grammar.ra', 312
++  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]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 306)
-   def _reduce_85(val, _values, result)
-       result = ast AST::ASTArray
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 348)
 -  def _reduce_86(val, _values, result)
 -      result = ast AST::ASTArray
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 317
++  def _reduce_86( val, _values, result )
++  result = ast AST::ASTArray
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 308)
-   def _reduce_86(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 350)
 -  def _reduce_87(val, _values, result)
 -     result = val[0] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 317
++  def _reduce_87( val, _values, result )
++ result = aryfy(val[0])
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 310)
-   def _reduce_87(val, _values, result)
-         val[0].push(val[2])
 -module_eval(<<'.,.,', 'grammar.ra', 352)
 -  def _reduce_88(val, _values, result)
 -        if val[0].instance_of?(AST::ASTArray)
++module_eval <<'.,.,', 'grammar.ra', 322
++  def _reduce_88( val, _values, result )
+     val[0].push(val[2])
      result = val[0]
- 
-     result
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
 -
 -    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 315)
-   def _reduce_88(val, _values, result)
-       result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 361)
 -  def _reduce_89(val, _values, result)
 -      result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 326
++  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', 319)
-   def _reduce_89(val, _values, result)
-       result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
 -module_eval(<<'.,.,', 'grammar.ra', 365)
 -  def _reduce_90(val, _values, result)
 -      result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
++module_eval <<'.,.,', 'grammar.ra', 331
++  def _reduce_90( val, _values, result )
++  result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
      :add => true
--
--    result
++   result
    end
  .,.,
  
- # reduce 90 omitted
 -# reduce 91 omitted
++ # reduce 91 omitted
  
- # reduce 91 omitted
 -# reduce 92 omitted
++ # reduce 92 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 328)
-   def _reduce_92(val, _values, result)
-       result = ast AST::ASTArray
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 374)
 -  def _reduce_93(val, _values, result)
 -      result = ast AST::ASTArray
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 339
++  def _reduce_93( val, _values, result )
++  result = ast AST::ASTArray
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 330)
-   def _reduce_93(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 376)
 -  def _reduce_94(val, _values, result)
 -     result = val[0] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 339
++  def _reduce_94( val, _values, result )
++ result = aryfy(val[0])
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 332)
-   def _reduce_94(val, _values, result)
-         val[0].push(val[2])
 -module_eval(<<'.,.,', 'grammar.ra', 378)
 -  def _reduce_95(val, _values, result)
 -        if val[0].instance_of?(AST::ASTArray)
++module_eval <<'.,.,', 'grammar.ra', 344
++  def _reduce_95( val, _values, result )
+     val[0].push(val[2])
      result = val[0]
- 
-     result
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
 -
 -    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 336)
-   def _reduce_95(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -# reduce 96 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 388)
 -  def _reduce_97(val, _values, result)
 -        if val[0].instance_of?(AST::ASTArray)
 -    result = val[0].push(val[2])
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
++module_eval <<'.,.,', 'grammar.ra', 345
++  def _reduce_96( val, _values, result )
++ result = aryfy(val[0])
++   result
    end
 +.,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 337)
-   def _reduce_96(val, _values, result)
-      result = val[0].push(val[2]) 
--    result
++module_eval <<'.,.,', 'grammar.ra', 346
++  def _reduce_97( val, _values, result )
++ result = val[0].push(val[2])
++   result
    end
  .,.,
  
- # reduce 97 omitted
 -# reduce 98 omitted
++ # reduce 98 omitted
  
- # reduce 98 omitted
 -# reduce 99 omitted
++ # reduce 99 omitted
  
- # reduce 99 omitted
 -# reduce 100 omitted
++ # reduce 100 omitted
  
- # reduce 100 omitted
 -# reduce 101 omitted
++ # reduce 101 omitted
  
- # reduce 101 omitted
 -# reduce 102 omitted
++ # reduce 102 omitted
  
- # reduce 102 omitted
 -# reduce 103 omitted
++ # reduce 103 omitted
  
- # reduce 103 omitted
 -# reduce 104 omitted
++ # reduce 104 omitted
  
- # reduce 104 omitted
 -# reduce 105 omitted
++ # reduce 105 omitted
  
- # reduce 105 omitted
 -# reduce 106 omitted
++ # reduce 106 omitted
  
- # reduce 106 omitted
 -# reduce 107 omitted
++ # reduce 107 omitted
  
- # reduce 107 omitted
 -# reduce 108 omitted
++ # reduce 108 omitted
  
- # reduce 108 omitted
 -# reduce 109 omitted
++ # reduce 109 omitted
  
- # reduce 109 omitted
 -# reduce 110 omitted
++ # reduce 110 omitted
  
- # reduce 110 omitted
 -# reduce 111 omitted
++ # reduce 111 omitted
  
- # reduce 111 omitted
 -# reduce 112 omitted
++ # reduce 112 omitted
  
- # reduce 112 omitted
 -# reduce 113 omitted
++ # reduce 113 omitted
  
- # reduce 113 omitted
 -# reduce 114 omitted
++ # reduce 114 omitted
  
- # reduce 114 omitted
 -# reduce 115 omitted
++ # reduce 115 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 361)
-   def _reduce_115(val, _values, result)
-       result = ast AST::Function,
 -module_eval(<<'.,.,', 'grammar.ra', 417)
 -  def _reduce_116(val, _values, result)
 -      args = aryfy(val[2])
++module_eval <<'.,.,', 'grammar.ra', 375
++  def _reduce_116( val, _values, result )
+   result = ast AST::Function,
      :name => val[0][:value], :line => val[0][:line],
 -    :arguments => args,
 +    :arguments => val[2],
      :ftype => :rvalue
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 366)
-   def _reduce_116(val, _values, result)
-       result = ast AST::Function,
 -module_eval(<<'.,.,', 'grammar.ra', 423)
 -  def _reduce_117(val, _values, result)
 -      result = ast AST::Function,
++module_eval <<'.,.,', 'grammar.ra', 380
++  def _reduce_117( val, _values, result )
++  result = ast AST::Function,
      :name => val[0][:value], :line => val[0][:line],
      :arguments => AST::ASTArray.new({}),
      :ftype => :rvalue
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 372)
-   def _reduce_117(val, _values, result)
-      result = ast AST::String, :value => val[0][:value],                  :line => val[0][:line] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 429)
 -  def _reduce_118(val, _values, result)
 -     result = ast AST::String, :value => val[0][:value],                  :line => val[0][:line] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 381
++  def _reduce_118( val, _values, result )
++ result = ast AST::String, :value => val[0][:value],                  :line => val[0][:line]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 373)
-   def _reduce_118(val, _values, result)
-      result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 430)
 -  def _reduce_119(val, _values, result)
 -     result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 382
++  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', 375)
-   def _reduce_119(val, _values, result)
-      result = [val[0]] + val[1] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 432)
 -  def _reduce_120(val, _values, result)
 -     result = [val[0]] + val[1] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 384
++  def _reduce_120( val, _values, result )
++ result = [val[0]] + val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 377)
-   def _reduce_120(val, _values, result)
-      result = [ast(AST::String,val[0])]          
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 434)
 -  def _reduce_121(val, _values, result)
 -     result = [ast(AST::String,val[0])]          
 -    result
++module_eval <<'.,.,', 'grammar.ra', 386
++  def _reduce_121( val, _values, result )
++ result = [ast(AST::String,val[0])]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 378)
-   def _reduce_121(val, _values, result)
-      result = [ast(AST::String,val[0])] + val[1] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 435)
 -  def _reduce_122(val, _values, result)
 -     result = [ast(AST::String,val[0])] + val[1] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 387
++  def _reduce_122( val, _values, result )
++ result = [ast(AST::String,val[0])] + val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 381)
-   def _reduce_122(val, _values, result)
-       result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 438)
 -  def _reduce_123(val, _values, result)
 -      result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 392
++  def _reduce_123( val, _values, result )
++  result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 385)
-   def _reduce_123(val, _values, result)
-       Puppet.warning addcontext("Deprecation notice:  Resource references should now be capitalized")
 -module_eval(<<'.,.,', 'grammar.ra', 442)
 -  def _reduce_124(val, _values, result)
 -      Puppet.warning addcontext("Deprecation notice:  Resource references should now be capitalized")
++module_eval <<'.,.,', 'grammar.ra', 397
++  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]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 388)
-   def _reduce_124(val, _values, result)
-       result = ast AST::ResourceReference, :type => val[0], :title => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 445)
 -  def _reduce_125(val, _values, result)
 -      result = ast AST::ResourceReference, :type => val[0], :title => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 399
++  def _reduce_125( val, _values, result )
++  result = ast AST::ResourceReference, :type => val[0], :title => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 392)
-   def _reduce_125(val, _values, result)
-       result = val[1]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 449)
 -  def _reduce_126(val, _values, result)
 -      result = val[1]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 403
++  def _reduce_126( val, _values, result )
++  result = val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 396)
-   def _reduce_126(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 453)
 -  def _reduce_127(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 415
++  def _reduce_127( val, _values, result )
++  @lexer.commentpop
    args = {
      :test => val[0],
      :statements => val[2]
@@@ -1882,14 -1874,14 +1808,13 @@@
    args[:else] = val[4] if val[4]
  
    result = ast AST::IfStatement, args
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 407)
-   def _reduce_127(val, _values, result)
-         @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 464)
 -  def _reduce_128(val, _values, result)
 -        @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 426
++  def _reduce_128( val, _values, result )
++    @lexer.commentpop
      args = {
        :test => val[0],
        :statements => ast(AST::Nop)
@@@ -1898,238 -1890,239 +1823,211 @@@
    args[:else] = val[3] if val[3]
  
    result = ast AST::IfStatement, args
--
--    result
++   result
    end
  .,.,
  
- # reduce 128 omitted
- 
- module_eval(<<'.,.,', 'grammar.ra', 420)
-   def _reduce_129(val, _values, result)
-         result = ast AST::Else, :statements => val[1]
 -# reduce 129 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 477)
 -  def _reduce_130(val, _values, result)
 -        result = ast AST::Else, :statements => val[1]
++ # reduce 129 omitted
  
--    result
++module_eval <<'.,.,', 'grammar.ra', 431
++  def _reduce_130( val, _values, result )
++    result = ast AST::Else, :statements => val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 423)
-   def _reduce_130(val, _values, result)
-         @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 480)
 -  def _reduce_131(val, _values, result)
 -        @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 435
++  def _reduce_131( val, _values, result )
++    @lexer.commentpop
      result = ast AST::Else, :statements => val[2]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 427)
-   def _reduce_131(val, _values, result)
-         @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 484)
 -  def _reduce_132(val, _values, result)
 -        @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 439
++  def _reduce_132( val, _values, result )
++    @lexer.commentpop
      result = ast AST::Else, :statements => ast(AST::Nop)
--
--    result
++   result
    end
  .,.,
  
- # reduce 132 omitted
- 
- module_eval(<<'.,.,', 'grammar.ra', 445)
-   def _reduce_133(val, _values, result)
-         result = ast AST::InOperator, :lval => val[0], :rval => val[2]
 -# reduce 133 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 502)
 -  def _reduce_134(val, _values, result)
 -        result = ast AST::InOperator, :lval => val[0], :rval => val[2]
++ # reduce 133 omitted
  
--    result
++module_eval <<'.,.,', 'grammar.ra', 456
++  def _reduce_134( val, _values, result )
++    result = ast AST::InOperator, :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 448)
-   def _reduce_134(val, _values, result)
-         result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 505)
 -  def _reduce_135(val, _values, result)
 -        result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 459
++  def _reduce_135( val, _values, result )
++    result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 451)
-   def _reduce_135(val, _values, result)
-         result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 508)
 -  def _reduce_136(val, _values, result)
 -        result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 462
++  def _reduce_136( val, _values, result )
++    result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 454)
-   def _reduce_136(val, _values, result)
-         result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 511)
 -  def _reduce_137(val, _values, result)
 -        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 465
++  def _reduce_137( val, _values, result )
++    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 457)
-   def _reduce_137(val, _values, result)
-         result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 514)
 -  def _reduce_138(val, _values, result)
 -        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 468
++  def _reduce_138( val, _values, result )
++    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 460)
-   def _reduce_138(val, _values, result)
-         result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 517)
 -  def _reduce_139(val, _values, result)
 -        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 471
++  def _reduce_139( val, _values, result )
++    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 463)
-   def _reduce_139(val, _values, result)
-         result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 520)
 -  def _reduce_140(val, _values, result)
 -        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 474
++  def _reduce_140( val, _values, result )
++    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 466)
-   def _reduce_140(val, _values, result)
-         result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 523)
 -  def _reduce_141(val, _values, result)
 -        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 477
++  def _reduce_141( val, _values, result )
++    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 469)
-   def _reduce_141(val, _values, result)
-         result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 526)
 -  def _reduce_142(val, _values, result)
 -        result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 480
++  def _reduce_142( val, _values, result )
++    result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 472)
-   def _reduce_142(val, _values, result)
-         result = ast AST::Minus, :value => val[1]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 529)
 -  def _reduce_143(val, _values, result)
 -        result = ast AST::Minus, :value => val[1]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 483
++  def _reduce_143( val, _values, result )
++    result = ast AST::Minus, :value => val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 475)
-   def _reduce_143(val, _values, result)
-         result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 532)
 -  def _reduce_144(val, _values, result)
 -        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 486
++  def _reduce_144( val, _values, result )
++    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 478)
-   def _reduce_144(val, _values, result)
-         result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 535)
 -  def _reduce_145(val, _values, result)
 -        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 489
++  def _reduce_145( val, _values, result )
++    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 481)
-   def _reduce_145(val, _values, result)
-         result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 538)
 -  def _reduce_146(val, _values, result)
 -        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 492
++  def _reduce_146( val, _values, result )
++    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 484)
-   def _reduce_146(val, _values, result)
-         result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 541)
 -  def _reduce_147(val, _values, result)
 -        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 495
++  def _reduce_147( val, _values, result )
++    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 487)
-   def _reduce_147(val, _values, result)
-         result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 544)
 -  def _reduce_148(val, _values, result)
 -        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 498
++  def _reduce_148( val, _values, result )
++    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 490)
-   def _reduce_148(val, _values, result)
-         result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 547)
 -  def _reduce_149(val, _values, result)
 -        result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 501
++  def _reduce_149( val, _values, result )
++    result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 493)
-   def _reduce_149(val, _values, result)
-         result = ast AST::Not, :value => val[1]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 550)
 -  def _reduce_150(val, _values, result)
 -        result = ast AST::Not, :value => val[1]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 504
++  def _reduce_150( val, _values, result )
++    result = ast AST::Not, :value => val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 496)
-   def _reduce_150(val, _values, result)
-         result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 553)
 -  def _reduce_151(val, _values, result)
 -        result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 507
++  def _reduce_151( val, _values, result )
++    result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 499)
-   def _reduce_151(val, _values, result)
-         result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 556)
 -  def _reduce_152(val, _values, result)
 -        result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 510
++  def _reduce_152( val, _values, result )
++    result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 502)
-   def _reduce_152(val, _values, result)
-         result = val[1]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 559)
 -  def _reduce_153(val, _values, result)
 -        result = val[1]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 513
++  def _reduce_153( val, _values, result )
++    result = val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 506)
-   def _reduce_153(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 563)
 -  def _reduce_154(val, _values, result)
 -      @lexer.commentpop
 -  options = val[3]
 -  options = ast AST::ASTArray, :children => [val[3]] unless options.instance_of?(AST::ASTArray)
 -  result = ast AST::CaseStatement, :test => val[1], :options => options
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 518
++  def _reduce_154( val, _values, result )
++  @lexer.commentpop
 +  result = ast AST::CaseStatement, :test => val[1], :options => val[3]
- 
-     result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 510)
-   def _reduce_154(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -# reduce 155 omitted
++module_eval <<'.,.,', 'grammar.ra', 519
++  def _reduce_155( val, _values, result )
++ result = aryfy(val[0])
++   result
 +  end
 +.,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 512)
-   def _reduce_155(val, _values, result)
-         val[0].push val[1]
 -module_eval(<<'.,.,', 'grammar.ra', 571)
 -  def _reduce_156(val, _values, result)
 -        if val[0].instance_of?(AST::ASTArray)
++module_eval <<'.,.,', 'grammar.ra', 524
++  def _reduce_156( val, _values, result )
+     val[0].push val[1]
      result = val[0]
- 
-     result
 -  else
 -    result = ast AST::ASTArray, :children => [val[0], val[1]]
 -  end
 -
 -    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 517)
-   def _reduce_156(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 580)
 -  def _reduce_157(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 529
++  def _reduce_157( val, _values, result )
++  @lexer.commentpop
    result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 520)
-   def _reduce_157(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 583)
 -  def _reduce_158(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 538
++  def _reduce_158( val, _values, result )
++  @lexer.commentpop
  
      result = ast(
      AST::CaseOpt,
@@@ -2137,515 -2130,524 +2035,479 @@@
  
      :statements => ast(AST::ASTArray)
    )
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 530)
-   def _reduce_158(val, _values, result)
-      result = aryfy(val[0]) 
-     result
 -# reduce 159 omitted
++module_eval <<'.,.,', 'grammar.ra', 539
++  def _reduce_159( val, _values, result )
++ result = aryfy(val[0])
++   result
 +  end
 +.,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 532)
-   def _reduce_159(val, _values, result)
-         val[0].push(val[2])
 -module_eval(<<'.,.,', 'grammar.ra', 595)
 -  def _reduce_160(val, _values, result)
 -        if val[0].instance_of?(AST::ASTArray)
++module_eval <<'.,.,', 'grammar.ra', 544
++  def _reduce_160( val, _values, result )
+     val[0].push(val[2])
      result = val[0]
- 
-     result
 -  else
 -    result = ast AST::ASTArray, :children => [val[0],val[2]]
 -  end
 -
 -    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 537)
-   def _reduce_160(val, _values, result)
-       result = ast AST::Selector, :param => val[0], :values => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 604)
 -  def _reduce_161(val, _values, result)
 -      result = ast AST::Selector, :param => val[0], :values => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 548
++  def _reduce_161( val, _values, result )
++  result = ast AST::Selector, :param => val[0], :values => val[2]
++   result
    end
  .,.,
  
- # reduce 161 omitted
 -# reduce 162 omitted
++ # reduce 162 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 542)
-   def _reduce_162(val, _values, result)
-         @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 609)
 -  def _reduce_163(val, _values, result)
 -        @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 554
++  def _reduce_163( val, _values, result )
++    @lexer.commentpop
      result = val[1]
--
--    result
++   result
    end
  .,.,
  
- # reduce 163 omitted
 -# reduce 164 omitted
++ # reduce 164 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 548)
-   def _reduce_164(val, _values, result)
-         if val[0].instance_of?(AST::ASTArray)
 -module_eval(<<'.,.,', 'grammar.ra', 615)
 -  def _reduce_165(val, _values, result)
 -        if val[0].instance_of?(AST::ASTArray)
++module_eval <<'.,.,', 'grammar.ra', 564
++  def _reduce_165( val, _values, result )
++    if val[0].instance_of?(AST::ASTArray)
      val[0].push(val[2])
      result = val[0]
    else
      result = ast AST::ASTArray, :children => [val[0],val[2]]
    end
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 557)
-   def _reduce_165(val, _values, result)
-       result = ast AST::ResourceParam, :param => val[0], :value => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 624)
 -  def _reduce_166(val, _values, result)
 -      result = ast AST::ResourceParam, :param => val[0], :value => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 568
++  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 167 omitted
  
- # reduce 167 omitted
 -# reduce 168 omitted
++ # reduce 168 omitted
  
- # reduce 168 omitted
 -# reduce 169 omitted
++ # reduce 169 omitted
  
- # reduce 169 omitted
 -# reduce 170 omitted
++ # reduce 170 omitted
  
- # reduce 170 omitted
 -# reduce 171 omitted
++ # reduce 171 omitted
  
- # reduce 171 omitted
 -# reduce 172 omitted
++ # reduce 172 omitted
  
- # reduce 172 omitted
 -# reduce 173 omitted
++ # reduce 173 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 568)
-   def _reduce_173(val, _values, result)
-         result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 635)
 -  def _reduce_174(val, _values, result)
 -        result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 579
++  def _reduce_174( val, _values, result )
++    result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
++   result
    end
  .,.,
  
- # reduce 174 omitted
 -# reduce 175 omitted
++ # reduce 175 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 573)
-   def _reduce_175(val, _values, result)
-      result = [val[0][:value]] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 640)
 -  def _reduce_176(val, _values, result)
 -     result = [val[0][:value]] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 582
++  def _reduce_176( val, _values, result )
++ result = [val[0][:value]]
++   result
    end
  .,.,
  
- # reduce 176 omitted
 -# reduce 177 omitted
++ # reduce 177 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 575)
-   def _reduce_177(val, _values, result)
-      result = val[0] += val[2] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 642)
 -  def _reduce_178(val, _values, result)
 -     result = val[0] += val[2] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 584
++  def _reduce_178( val, _values, result )
++ result = val[0] += val[2]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 578)
-   def _reduce_178(val, _values, result)
-       val[1].each do |file|
 -module_eval(<<'.,.,', 'grammar.ra', 645)
 -  def _reduce_179(val, _values, result)
 -      val[1].each do |file|
++module_eval <<'.,.,', 'grammar.ra', 593
++  def _reduce_179( val, _values, result )
++  val[1].each do |file|
      import(file)
    end
  
 -  result = AST::ASTArray.new(:children => [])
 -
 -    result
 +  result = nil
- 
-     result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 588)
-   def _reduce_179(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 655)
 -  def _reduce_180(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 605
++  def _reduce_180( val, _values, result )
++  @lexer.commentpop
    result = Puppet::Parser::AST::Definition.new(classname(val[1]),
                                                 ast_context(true).merge(:arguments => val[2], :code => val[4],
                                                                         :line => val[0][:line]))
    @lexer.indefine = false
  
  #}           | DEFINE NAME argumentlist parent LBRACE RBRACE {
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 596)
-   def _reduce_180(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 663)
 -  def _reduce_181(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 610
++  def _reduce_181( val, _values, result )
++  @lexer.commentpop
    result = Puppet::Parser::AST::Definition.new(classname(val[1]),
                                                 ast_context(true).merge(:arguments => val[2], :line => val[0][:line]))
    @lexer.indefine = false
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 604)
-   def _reduce_181(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 671)
 -  def _reduce_182(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 620
++  def _reduce_182( val, _values, result )
++  @lexer.commentpop
    # Our class gets defined in the parent namespace, not our own.
    @lexer.namepop
    result = Puppet::Parser::AST::Hostclass.new(classname(val[1]),
                                                ast_context(true).merge(:arguments => val[2], :parent => val[3],
                                                                        :code => val[5], :line => val[0][:line]))
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 612)
-   def _reduce_182(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 678)
 -  def _reduce_183(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 627
++  def _reduce_183( val, _values, result )
++  @lexer.commentpop
    # Our class gets defined in the parent namespace, not our own.
    @lexer.namepop
    result = Puppet::Parser::AST::Hostclass.new(classname(val[1]),
                                                ast_context(true).merge(:arguments => val[2], :parent => val[3],
                                                                        :line => val[0][:line]))
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 621)
-   def _reduce_183(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 687)
 -  def _reduce_184(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 634
++  def _reduce_184( val, _values, result )
++  @lexer.commentpop
    result = Puppet::Parser::AST::Node.new(val[1],
                                           ast_context(true).merge(:parent => val[2], :code => val[4],
                                                                   :line => val[0][:line]))
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 626)
-   def _reduce_184(val, _values, result)
-       @lexer.commentpop
 -module_eval(<<'.,.,', 'grammar.ra', 692)
 -  def _reduce_185(val, _values, result)
 -      @lexer.commentpop
++module_eval <<'.,.,', 'grammar.ra', 637
++  def _reduce_185( val, _values, result )
++  @lexer.commentpop
    result = Puppet::Parser::AST::Node.new(val[1], ast_context(true).merge(:parent => val[2], :line => val[0][:line]))
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 630)
-   def _reduce_185(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 696)
 -  def _reduce_186(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 638
++  def _reduce_186( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 632)
-   def _reduce_186(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 698)
 -  def _reduce_187(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 640
++  def _reduce_187( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 633)
-   def _reduce_187(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 699)
 -  def _reduce_188(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 641
++  def _reduce_188( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 634)
-   def _reduce_188(val, _values, result)
-      result = "class" 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 700)
 -  def _reduce_189(val, _values, result)
 -     result = "class" 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 642
++  def _reduce_189( val, _values, result )
++ result = "class"
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 639)
-   def _reduce_189(val, _values, result)
-         result = [result]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 705)
 -  def _reduce_190(val, _values, result)
 -        result = [result]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 649
++  def _reduce_190( val, _values, result )
++    result = [result]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 642)
-   def _reduce_190(val, _values, result)
-         result = val[0]
 -module_eval(<<'.,.,', 'grammar.ra', 708)
 -  def _reduce_191(val, _values, result)
 -        result = val[0]
++module_eval <<'.,.,', 'grammar.ra', 653
++  def _reduce_191( val, _values, result )
++    result = val[0]
      result << val[2]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 647)
-   def _reduce_191(val, _values, result)
-       result = ast AST::HostName, :value => val[0]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 713)
 -  def _reduce_192(val, _values, result)
 -      result = ast AST::HostName, :value => val[0]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 657
++  def _reduce_192( val, _values, result )
++  result = ast AST::HostName, :value => val[0]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 650)
-   def _reduce_192(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 716)
 -  def _reduce_193(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 658
++  def _reduce_193( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 651)
-   def _reduce_193(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 717)
 -  def _reduce_194(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 659
++  def _reduce_194( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 652)
-   def _reduce_194(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 718)
 -  def _reduce_195(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 660
++  def _reduce_195( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- # reduce 195 omitted
- 
- module_eval(<<'.,.,', 'grammar.ra', 656)
-   def _reduce_196(val, _values, result)
-       result = nil
 -# reduce 196 omitted
++ # reduce 196 omitted
  
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 722)
 -  def _reduce_197(val, _values, result)
 -      result = nil
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 666
++  def _reduce_197( val, _values, result )
++  result = nil
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 660)
-   def _reduce_197(val, _values, result)
-       result = ast AST::ASTArray, :children => []
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 726)
 -  def _reduce_198(val, _values, result)
 -      result = ast AST::ASTArray, :children => []
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 670
++  def _reduce_198( val, _values, result )
++  result = ast AST::ASTArray, :children => []
++   result
    end
  .,.,
  
- # reduce 198 omitted
 -# reduce 199 omitted
++ # reduce 199 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 665)
-   def _reduce_199(val, _values, result)
-         result = nil
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 731)
 -  def _reduce_200(val, _values, result)
 -        result = nil
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 675
++  def _reduce_200( val, _values, result )
++    result = nil
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 668)
-   def _reduce_200(val, _values, result)
-         result = val[1]
 -module_eval(<<'.,.,', 'grammar.ra', 734)
 -  def _reduce_201(val, _values, result)
 -        result = val[1]
++module_eval <<'.,.,', 'grammar.ra', 679
++  def _reduce_201( val, _values, result )
++    result = val[1]
      result = [result] unless result[0].is_a?(Array)
--
--    result
++   result
    end
  .,.,
  
- # reduce 201 omitted
 -# reduce 202 omitted
++ # reduce 202 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 674)
-   def _reduce_202(val, _values, result)
-         result = val[0]
 -module_eval(<<'.,.,', 'grammar.ra', 740)
 -  def _reduce_203(val, _values, result)
 -        result = val[0]
++module_eval <<'.,.,', 'grammar.ra', 686
++  def _reduce_203( val, _values, result )
++    result = val[0]
      result = [result] unless result[0].is_a?(Array)
      result << val[2]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 680)
-   def _reduce_203(val, _values, result)
-       Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
 -module_eval(<<'.,.,', 'grammar.ra', 746)
 -  def _reduce_204(val, _values, result)
 -      Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
++module_eval <<'.,.,', 'grammar.ra', 691
++  def _reduce_204( val, _values, result )
++  Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
    result = [val[0][:value], val[2]]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 684)
-   def _reduce_204(val, _values, result)
-         Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
 -module_eval(<<'.,.,', 'grammar.ra', 750)
 -  def _reduce_205(val, _values, result)
 -        Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
++module_eval <<'.,.,', 'grammar.ra', 695
++  def _reduce_205( val, _values, result )
++    Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
      result = [val[0][:value]]
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 687)
-   def _reduce_205(val, _values, result)
-       result = [val[0][:value], val[2]]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 753)
 -  def _reduce_206(val, _values, result)
 -      result = [val[0][:value], val[2]]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 697
++  def _reduce_206( val, _values, result )
++  result = [val[0][:value], val[2]]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 689)
-   def _reduce_206(val, _values, result)
-       result = [val[0][:value]]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 755)
 -  def _reduce_207(val, _values, result)
 -      result = [val[0][:value]]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 699
++  def _reduce_207( val, _values, result )
++  result = [val[0][:value]]
++   result
    end
  .,.,
  
- # reduce 207 omitted
- 
- module_eval(<<'.,.,', 'grammar.ra', 694)
-   def _reduce_208(val, _values, result)
-         result = val[1]
 -# reduce 208 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 760)
 -  def _reduce_209(val, _values, result)
 -        result = val[1]
++ # reduce 208 omitted
  
--    result
++module_eval <<'.,.,', 'grammar.ra', 704
++  def _reduce_209( val, _values, result )
++    result = val[1]
++   result
    end
  .,.,
  
- # reduce 209 omitted
- 
- module_eval(<<'.,.,', 'grammar.ra', 699)
-   def _reduce_210(val, _values, result)
-         result = val[1]
 -# reduce 210 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 765)
 -  def _reduce_211(val, _values, result)
 -        result = val[1]
++ # reduce 210 omitted
  
--    result
++module_eval <<'.,.,', 'grammar.ra', 709
++  def _reduce_211( val, _values, result )
++    result = val[1]
++   result
    end
  .,.,
  
- # reduce 211 omitted
 -# reduce 212 omitted
 -
 -# reduce 213 omitted
++ # reduce 212 omitted
  
- # reduce 212 omitted
 -module_eval(<<'.,.,', 'grammar.ra', 771)
 -  def _reduce_214(val, _values, result)
 -      result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
++ # reduce 213 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 705)
-   def _reduce_213(val, _values, result)
-       result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
- 
--    result
++module_eval <<'.,.,', 'grammar.ra', 715
++  def _reduce_214( val, _values, result )
++  result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 708)
-   def _reduce_214(val, _values, result)
-      result = val[1] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 775)
 -  def _reduce_215(val, _values, result)
 -      if val[1].instance_of?(AST::ASTArray)
 -    result = val[1]
 -  else
 -    result = ast AST::ASTArray, :children => [val[1]]
 -  end
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 716
++  def _reduce_215( val, _values, result )
++ result = val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 709)
-   def _reduce_215(val, _values, result)
-      result = val[1] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 782)
 -  def _reduce_216(val, _values, result)
 -        if val[1].instance_of?(AST::ASTArray)
 -    result = val[1]
 -  else
 -    result = ast AST::ASTArray, :children => [val[1]]
 -  end
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 717
++  def _reduce_216( val, _values, result )
++ result = val[1]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 710)
-   def _reduce_216(val, _values, result)
-      result = ast AST::ASTArray 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 788)
 -  def _reduce_217(val, _values, result)
 -      result = ast AST::ASTArray
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 718
++  def _reduce_217( val, _values, result )
++ result = ast AST::ASTArray
++   result
    end
  .,.,
  
- # reduce 217 omitted
 -# reduce 218 omitted
++ # reduce 218 omitted
  
- # reduce 218 omitted
 -# reduce 219 omitted
++ # reduce 219 omitted
  
- # reduce 219 omitted
 -# reduce 220 omitted
++ # reduce 220 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 716)
-   def _reduce_220(val, _values, result)
-      result = nil 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 795)
 -  def _reduce_221(val, _values, result)
 -     result = nil 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 724
++  def _reduce_221( val, _values, result )
++ result = nil
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 719)
-   def _reduce_221(val, _values, result)
-       result = ast AST::Regex, :value => val[0][:value]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 798)
 -  def _reduce_222(val, _values, result)
 -      result = ast AST::Regex, :value => val[0][:value]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 729
++  def _reduce_222( val, _values, result )
++  result = ast AST::Regex, :value => val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 723)
-   def _reduce_222(val, _values, result)
-       if val[1].instance_of?(AST::ASTHash)
 -module_eval(<<'.,.,', 'grammar.ra', 802)
 -  def _reduce_223(val, _values, result)
 -      if val[1].instance_of?(AST::ASTHash)
++module_eval <<'.,.,', 'grammar.ra', 737
++  def _reduce_223( val, _values, result )
++  if val[1].instance_of?(AST::ASTHash)
      result = val[1]
    else
      result = ast AST::ASTHash, { :value => val[1] }
    end
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 730)
-   def _reduce_223(val, _values, result)
-         if val[1].instance_of?(AST::ASTHash)
 -module_eval(<<'.,.,', 'grammar.ra', 809)
 -  def _reduce_224(val, _values, result)
 -        if val[1].instance_of?(AST::ASTHash)
++module_eval <<'.,.,', 'grammar.ra', 744
++  def _reduce_224( val, _values, result )
++    if val[1].instance_of?(AST::ASTHash)
      result = val[1]
    else
      result = ast AST::ASTHash, { :value => val[1] }
    end
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 736)
-   def _reduce_224(val, _values, result)
-       result = ast AST::ASTHash
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 815)
 -  def _reduce_225(val, _values, result)
 -      result = ast AST::ASTHash
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 746
++  def _reduce_225( val, _values, result )
++  result = ast AST::ASTHash
++   result
    end
  .,.,
  
- # reduce 225 omitted
 -# reduce 226 omitted
++ # reduce 226 omitted
  
- module_eval(<<'.,.,', 'grammar.ra', 741)
-   def _reduce_226(val, _values, result)
-         if val[0].instance_of?(AST::ASTHash)
 -module_eval(<<'.,.,', 'grammar.ra', 820)
 -  def _reduce_227(val, _values, result)
 -        if val[0].instance_of?(AST::ASTHash)
++module_eval <<'.,.,', 'grammar.ra', 756
++  def _reduce_227( val, _values, result )
++    if val[0].instance_of?(AST::ASTHash)
      result = val[0].merge(val[2])
    else
      result = ast AST::ASTHash, :value => val[0]
      result.merge(val[2])
    end
--
--    result
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 750)
-   def _reduce_227(val, _values, result)
-       result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 829)
 -  def _reduce_228(val, _values, result)
 -      result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 760
++  def _reduce_228( val, _values, result )
++  result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 753)
-   def _reduce_228(val, _values, result)
-      result = val[0][:value] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 832)
 -  def _reduce_229(val, _values, result)
 -     result = val[0][:value] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 761
++  def _reduce_229( val, _values, result )
++ result = val[0][:value]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 754)
-   def _reduce_229(val, _values, result)
-      result = val[0] 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 833)
 -  def _reduce_230(val, _values, result)
 -     result = val[0] 
 -    result
++module_eval <<'.,.,', 'grammar.ra', 762
++  def _reduce_230( val, _values, result )
++ result = val[0]
++   result
    end
  .,.,
  
- module_eval(<<'.,.,', 'grammar.ra', 757)
-   def _reduce_230(val, _values, result)
-       result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
- 
-     result
 -module_eval(<<'.,.,', 'grammar.ra', 836)
 -  def _reduce_231(val, _values, result)
 -      result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
 -
 -    result
++module_eval <<'.,.,', 'grammar.ra', 767
++  def _reduce_231( val, _values, result )
++  result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
++   result
    end
  .,.,
  
- # reduce 231 omitted
- 
- module_eval(<<'.,.,', 'grammar.ra', 762)
-   def _reduce_232(val, _values, result)
-         result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
 -# reduce 232 omitted
 -
 -module_eval(<<'.,.,', 'grammar.ra', 841)
 -  def _reduce_233(val, _values, result)
 -        result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
++ # reduce 232 omitted
  
--    result
++module_eval <<'.,.,', 'grammar.ra', 772
++  def _reduce_233( val, _values, result )
++    result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
++   result
    end
  .,.,
  
--def _reduce_none(val, _values, result)
--  val[0]
--end
++ def _reduce_none( val, _values, result )
++  result
++ end
  
      end   # class Parser
--    end   # module Parser
--  end   # module Puppet
++
++  end   # module Parser
++
++end   # module Puppet
diff --combined lib/puppet/parser/parser_support.rb
index 1c49478,2b2571d..b1688cd
--- a/lib/puppet/parser/parser_support.rb
+++ b/lib/puppet/parser/parser_support.rb
@@@ -29,9 -29,18 +29,9 @@@ class Puppet::Parser::Parse
      message
    end
  
 -  # Create an AST array out of all of the args
 -  def aryfy(*args)
 -    if args[0].instance_of?(AST::ASTArray)
 -      result = args.shift
 -      args.each { |arg|
 -        result.push arg
 -      }
 -    else
 -      result = ast AST::ASTArray, :children => args
 -    end
 -
 -    result
 +  # Create an AST array containing a single element
 +  def aryfy(arg)
 +    ast AST::ASTArray, :children => [arg]
    end
  
    # Create an AST object, and automatically add the file and line information if
@@@ -59,13 -68,13 +59,13 @@@
    end
  
    # Raise a Parse error.
-   def error(message)
+   def error(message, options = {})
      if brace = @lexer.expected
        message += "; expected '%s'"
      end
      except = Puppet::ParseError.new(message)
-     except.line = @lexer.line
-     except.file = @lexer.file if @lexer.file
+     except.line = options[:line] || @lexer.line
+     except.file = options[:file] || @lexer.file
  
      raise except
    end

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list