diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra index b65e3d2da..91c77c7d6 100644 --- a/lib/puppet/parser/grammar.ra +++ b/lib/puppet/parser/grammar.ra @@ -1,863 +1,860 @@ # vim: syntax=ruby # the parser class Puppet::Parser::Parser token LBRACK DQTEXT SQTEXT RBRACK LBRACE RBRACE SYMBOL FARROW COMMA TRUE token FALSE EQUALS APPENDS LESSEQUAL NOTEQUAL DOT COLON LLCOLLECT RRCOLLECT token QMARK LPAREN RPAREN ISEQUAL GREATEREQUAL GREATERTHAN LESSTHAN token IF ELSE IMPORT DEFINE ELSIF VARIABLE CLASS INHERITS NODE BOOLEAN token NAME SEMIC CASE DEFAULT AT LCOLLECT RCOLLECT CLASSNAME CLASSREF token NOT OR AND UNDEF PARROW PLUS MINUS TIMES DIV LSHIFT RSHIFT UMINUS token MATCH NOMATCH REGEX prechigh right NOT nonassoc UMINUS left MATCH NOMATCH left TIMES DIV left MINUS PLUS left LSHIFT RSHIFT left NOTEQUAL ISEQUAL left GREATEREQUAL GREATERTHAN LESSTHAN LESSEQUAL left AND left OR preclow rule program: statements { if val[0] # Make sure we always return an array. if val[0].is_a?(AST::ASTArray) if val[0].children.empty? result = nil else result = val[0] end else result = aryfy(val[0]) end else result = nil end } | nil statements: statement | statements statement { if val[0] and val[1] 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 elsif obj = (val[0] || val[1]) result = obj else result = nil end } # The main list of valid statements statement: resource | virtualresource | collection | assignment | casestatement | ifstatement | import | fstatement | definition | hostclass | nodedef | resourceoverride | append fstatement: NAME LPAREN funcvalues RPAREN { args = aryfy(val[2]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :statement } | NAME LPAREN funcvalues COMMA RPAREN { args = aryfy(val[2]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :statement } | NAME LPAREN RPAREN { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => AST::ASTArray.new({}), :ftype => :statement } | NAME funcvalues { args = aryfy(val[1]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :statement } funcvalues: namestring | resourceref | funcvalues COMMA namestring { result = aryfy(val[0], val[2]) result.line = @lexer.line result.file = @lexer.file } | funcvalues COMMA resourceref { unless val[0].is_a?(AST::ASTArray) val[0] = aryfy(val[0]) end val[0].push(val[2]) result = val[0] } # This is *almost* an rvalue, but I couldn't get a full # rvalue to work without scads of shift/reduce conflicts. namestring: name | variable | type | boolean | funcrvalue | selector | quotedtext | hasharrayaccesses | CLASSNAME { result = ast AST::Name, :value => val[0][:value] } resource: classname LBRACE resourceinstances endsemi RBRACE { @lexer.commentpop array = val[2] if array.instance_of?(AST::ResourceInstance) array = [array] end result = ast AST::ASTArray # this iterates across each specified resourceinstance array.each { |instance| unless instance.instance_of?(AST::ResourceInstance) raise Puppet::Dev, "Got something that isn't an instance" end # 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], :params => instance[1]) } } | classname LBRACE params endcomma RBRACE { # This is a deprecated syntax. error "All resource specifications require names" } | classref LBRACE params endcomma RBRACE { # a defaults setting for a type result = ast(AST::ResourceDefaults, :type => val[0], :params => val[2]) } # Override a value set elsewhere in the configuration. resourceoverride: resourceref LBRACE anyparams endcomma RBRACE { @lexer.commentpop result = ast AST::ResourceOverride, :object => val[0], :params => val[2] } # Exported and virtual resources; these don't get sent to the client # unless they get collected elsewhere in the db. virtualresource: at resource { type = val[0] if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly] Puppet.warning addcontext("You cannot collect without storeconfigs being set") end if val[1].is_a? AST::ResourceDefaults error "Defaults are not virtualizable" end 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 result = val[1] } at: AT { result = :virtual } | AT AT { result = :exported } # A collection statement. Currently supports no arguments at all, but eventually # will, I assume. collection: classref collectrhand LBRACE anyparams endcomma RBRACE { if val[0] =~ /^[a-z]/ Puppet.warning addcontext("Collection names must now be capitalized") end type = val[0].downcase args = {:type => type} if val[1].is_a?(AST::CollExpr) args[:query] = val[1] args[:query].type = type args[:form] = args[:query].form else args[:form] = val[1] end if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly] Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored") end args[:override] = val[3] result = ast AST::Collection, args } | classref collectrhand { if val[0] =~ /^[a-z]/ Puppet.warning addcontext("Collection names must now be capitalized") end type = val[0].downcase args = {:type => type } if val[1].is_a?(AST::CollExpr) args[:query] = val[1] args[:query].type = type args[:form] = args[:query].form else args[:form] = val[1] end if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly] Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored") end result = ast AST::Collection, args } collectrhand: LCOLLECT collstatements RCOLLECT { if val[1] result = val[1] result.form = :virtual else result = :virtual end } | LLCOLLECT collstatements RRCOLLECT { if val[1] result = val[1] result.form = :exported else result = :exported end } # A mini-language for handling collection comparisons. This is organized # to avoid the need for precedence indications. collstatements: nil | collstatement | collstatements colljoin collstatement { result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] } collstatement: collexpr | LPAREN collstatements RPAREN { result = val[1] result.parens = true } colljoin: AND { result=val[0][:value] } | OR { result=val[0][:value] } collexpr: colllval ISEQUAL simplervalue { result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2] #result = ast AST::CollExpr #result.push *val } | colllval NOTEQUAL simplervalue { result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2] #result = ast AST::CollExpr #result.push *val } colllval: variable | name resourceinst: resourcename COLON params endcomma { result = ast AST::ResourceInstance, :children => [val[0],val[2]] } resourceinstances: resourceinst | 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 | SEMIC undef: UNDEF { result = ast AST::Undef, :value => :undef } name: NAME { result = ast AST::Name, :value => val[0][:value], :line => val[0][:line] } type: CLASSREF { result = ast AST::Type, :value => val[0][:value], :line => val[0][:line] } resourcename: quotedtext | name | type | selector | variable | array | hasharrayaccesses assignment: VARIABLE EQUALS expression { if val[0][:value] =~ /::/ raise Puppet::ParseError, "Cannot assign to variables in other namespaces" end # 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] } | hasharrayaccess EQUALS expression { result = ast AST::VarDef, :name => val[0], :value => val[2] } append: VARIABLE APPENDS expression { 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] } params: # nothing { result = ast AST::ASTArray } | param { result = 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 { result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2] } addparam: NAME PARROW rvalue { result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2], :add => true } anyparam: param | addparam anyparams: # nothing { result = ast AST::ASTArray } | anyparam { result = 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 } simplervalue: quotedtext | name | type | boolean | selector | variable rvalue: quotedtext | name | type | boolean | selector | variable | array | hash | hasharrayaccesses | resourceref | funcrvalue | undef # 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, :ftype => :rvalue } | NAME LPAREN RPAREN { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => AST::ASTArray.new({}), :ftype => :rvalue } quotedtext: DQTEXT { result = ast AST::String, :value => val[0][:value], :line => val[0][:line] } | SQTEXT { result = ast AST::FlatString, :value => val[0][:value], :line => val[0][:line] } boolean: BOOLEAN { result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line] } resourceref: NAME LBRACK rvalues RBRACK { 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] } | classref LBRACK rvalues RBRACK { result = ast AST::ResourceReference, :type => val[0], :title => val[2] } ifstatement: IF expression LBRACE statements RBRACE else { @lexer.commentpop args = { :test => val[1], :statements => val[3] } if val[5] args[:else] = val[5] end result = ast AST::IfStatement, args } | IF expression LBRACE RBRACE else { @lexer.commentpop args = { :test => val[1], :statements => ast(AST::Nop) } if val[4] args[:else] = val[4] end result = ast AST::IfStatement, args } else: # nothing | ELSE LBRACE statements RBRACE { @lexer.commentpop result = ast AST::Else, :statements => val[2] } | ELSE LBRACE RBRACE { @lexer.commentpop result = ast AST::Else, :statements => ast(AST::Nop) } # Unlike yacc/bison, it seems racc # gives tons of shift/reduce warnings # with the following syntax: # # expression: ... # | expression arithop expressio { ... } # # arithop: PLUS | MINUS | DIVIDE | TIMES ... # # So I had to develop the expression by adding one rule # per operator :-( expression: rvalue | expression MATCH regex { result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression NOMATCH regex { result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression PLUS expression { result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression MINUS expression { result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression DIV expression { result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression TIMES expression { result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression LSHIFT expression { result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression RSHIFT expression { result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | MINUS expression =UMINUS { result = ast AST::Minus, :value => val[1] } | expression NOTEQUAL expression { result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression ISEQUAL expression { result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression GREATERTHAN expression { result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression GREATEREQUAL expression { result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression LESSTHAN expression { result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression LESSEQUAL expression { result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | NOT expression { result = ast AST::Not, :value => val[1] } | expression AND expression { result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | expression OR expression { result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] } | LPAREN expression RPAREN { result = val[1] } casestatement: CASE rvalue LBRACE caseopts RBRACE { @lexer.commentpop options = val[3] unless options.instance_of?(AST::ASTArray) options = ast AST::ASTArray, :children => [val[3]] end result = ast AST::CaseStatement, :test => val[1], :options => options } caseopts: caseopt | 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 { @lexer.commentpop result = ast AST::CaseOpt, :value => val[0], :statements => val[3] } | casevalues COLON LBRACE RBRACE { @lexer.commentpop result = ast(AST::CaseOpt, :value => val[0], :statements => ast(AST::ASTArray) ) } casevalues: selectlhand | 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 { result = ast AST::Selector, :param => val[0], :values => val[2] } svalues: selectval | LBRACE sintvalues endcomma RBRACE { @lexer.commentpop result = val[1] } sintvalues: selectval | sintvalues comma selectval { 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 } selectval: selectlhand FARROW rvalue { result = ast AST::ResourceParam, :param => val[0], :value => val[2] } selectlhand: name | type | quotedtext | variable | funcrvalue | boolean | undef | DEFAULT { result = ast AST::Default, :value => val[0][:value], :line => val[0][:line] } | regex # These are only used for importing, and we don't interpolate there. qtexts: quotedtext { result = [val[0].value] } | qtexts COMMA quotedtext { results = val[0] << val[2].value } import: IMPORT qtexts { val[1].each do |file| import(file) end result = AST::ASTArray.new(:children => []) } # Disable definition inheritance for now. 8/27/06, luke #definition: DEFINE NAME argumentlist parent LBRACE statements RBRACE { definition: DEFINE classname argumentlist LBRACE statements RBRACE { @lexer.commentpop newdefine classname(val[1]), :arguments => val[2], :code => val[4], :line => val[0][:line] @lexer.indefine = false result = nil #} | DEFINE NAME argumentlist parent LBRACE RBRACE { } | DEFINE classname argumentlist LBRACE RBRACE { @lexer.commentpop newdefine classname(val[1]), :arguments => val[2], :line => val[0][:line] @lexer.indefine = false result = nil } #hostclass: CLASS NAME argumentlist parent LBRACE statements RBRACE { hostclass: CLASS classname argumentlist classparent LBRACE statements RBRACE { @lexer.commentpop # Our class gets defined in the parent namespace, not our own. @lexer.namepop - newclass classname(val[1]), :arguments => val[2], :code => val[5], :parent => val[3], :line => val[0][:line] + newclass classname(val[1]), :arguments => val[2], :parent => val[3], :code => val[5], :line => val[0][:line] result = nil } | CLASS classname argumentlist classparent LBRACE RBRACE { @lexer.commentpop # Our class gets defined in the parent namespace, not our own. @lexer.namepop newclass classname(val[1]), :arguments => val[2], :parent => val[3], :line => val[0][:line] result = nil } nodedef: NODE hostnames nodeparent LBRACE statements RBRACE { @lexer.commentpop newnode val[1], :parent => val[2], :code => val[4], :line => val[0][:line] result = nil } | NODE hostnames nodeparent LBRACE RBRACE { @lexer.commentpop newnode val[1], :parent => val[2], :line => val[0][:line] result = nil } classref: CLASSREF { result = val[0][:value] } classname: NAME { result = val[0][:value] } | CLASSNAME { result = val[0][:value] } | CLASS { result = "class" } # Multiple hostnames, as used for node names. These are all literal # strings, not AST objects. hostnames: nodename | hostnames COMMA nodename { result = val[0] result = [result] unless result.is_a?(Array) result << val[2] } nodename: hostname { result = ast AST::HostName, :value => val[0] } hostname: NAME { result = val[0][:value] } | SQTEXT { result = val[0][:value] } | DQTEXT { result = val[0][:value] } | DEFAULT { result = val[0][:value] } | regex nil: { result = nil } nothing: { result = ast AST::ASTArray, :children => [] } argumentlist: nil | LPAREN nothing RPAREN { result = nil } | LPAREN arguments RPAREN { result = val[1] result = [result] unless result[0].is_a?(Array) } arguments: argument | arguments COMMA argument { result = val[0] result = [result] unless result[0].is_a?(Array) result << val[2] } argument: NAME EQUALS rvalue { Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0][:value], val[2]] } | NAME { Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0][:value]] } | VARIABLE EQUALS rvalue { result = [val[0][:value], val[2]] } | VARIABLE { result = [val[0][:value]] } nodeparent: nil | INHERITS hostname { result = val[1] } classparent: nil | INHERITS classnameordefault { result = val[1] } classnameordefault: classname | DEFAULT 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 } comma: FARROW | COMMA endcomma: # nothing | COMMA { result = nil } regex: REGEX { result = ast AST::Regex, :value => val[0][:value] } hash: LBRACE hashpairs RBRACE { if val[1].instance_of?(AST::ASTHash) result = val[1] else result = ast AST::ASTHash, { :value => val[1] } end } | LBRACE hashpairs COMMA RBRACE { if val[1].instance_of?(AST::ASTHash) result = val[1] else result = ast AST::ASTHash, { :value => val[1] } end } | LBRACE RBRACE { result = ast AST::ASTHash } hashpairs: hashpair | hashpairs COMMA hashpair { 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 } hashpair: key FARROW rvalue { result = ast AST::ASTHash, { :value => { val[0] => val[2] } } } key: NAME { result = val[0][:value] } | SQTEXT { result = val[0][:value] } | DQTEXT { result = val[0][:value] } hasharrayaccess: VARIABLE LBRACK rvalue RBRACK { result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2] } hasharrayaccesses: hasharrayaccess | hasharrayaccess LBRACK rvalue RBRACK { result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2] } end ---- header ---- require 'puppet' require 'puppet/util/loadedfile' require 'puppet/parser/lexer' require 'puppet/parser/ast' module Puppet class ParseError < Puppet::Error; end class ImportError < Racc::ParseError; end class AlreadyImportedError < ImportError; end end -Puppet[:typecheck] = true -Puppet[:paramcheck] = true - ---- inner ---- # It got too annoying having code in a file that needs to be compiled. require 'puppet/parser/parser_support' # Make emacs happy # Local Variables: # mode: ruby # End: # $Id$ diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb index 4f3c31cc1..3ecded798 100644 --- a/lib/puppet/parser/parser.rb +++ b/lib/puppet/parser/parser.rb @@ -1,2436 +1,2433 @@ # # DO NOT MODIFY!!!! # This file is automatically generated by racc 1.4.5 # from racc grammer file "grammar.ra". # require 'racc/parser' require 'puppet' require 'puppet/util/loadedfile' require 'puppet/parser/lexer' require 'puppet/parser/ast' module Puppet class ParseError < Puppet::Error; end class ImportError < Racc::ParseError; end class AlreadyImportedError < ImportError; end end -Puppet[:typecheck] = true -Puppet[:paramcheck] = true - module Puppet module Parser class Parser < Racc::Parser -module_eval <<'..end grammar.ra modeval..id224179bc1a', 'grammar.ra', 853 +module_eval <<'..end grammar.ra modeval..idfda8a9bd6f', 'grammar.ra', 850 # It got too annoying having code in a file that needs to be compiled. require 'puppet/parser/parser_support' # Make emacs happy # Local Variables: # mode: ruby # End: # $Id$ -..end grammar.ra modeval..id224179bc1a +..end grammar.ra modeval..idfda8a9bd6f ##### racc 1.4.5 generates ### racc_reduce_table = [ 0, 0, :racc_error, 1, 63, :_reduce_1, 1, 63, :_reduce_none, 1, 64, :_reduce_none, 2, 64, :_reduce_4, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 1, 66, :_reduce_none, 4, 74, :_reduce_18, 5, 74, :_reduce_19, 3, 74, :_reduce_20, 2, 74, :_reduce_21, 1, 80, :_reduce_none, 1, 80, :_reduce_none, 3, 80, :_reduce_24, 3, 80, :_reduce_25, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_none, 1, 81, :_reduce_34, 5, 67, :_reduce_35, 5, 67, :_reduce_36, 5, 67, :_reduce_37, 5, 78, :_reduce_38, 2, 68, :_reduce_39, 1, 98, :_reduce_40, 2, 98, :_reduce_41, 6, 69, :_reduce_42, 2, 69, :_reduce_43, 3, 99, :_reduce_44, 3, 99, :_reduce_45, 1, 100, :_reduce_none, 1, 100, :_reduce_none, 3, 100, :_reduce_48, 1, 101, :_reduce_none, 3, 101, :_reduce_50, 1, 102, :_reduce_51, 1, 102, :_reduce_52, 3, 103, :_reduce_53, 3, 103, :_reduce_54, 1, 104, :_reduce_none, 1, 104, :_reduce_none, 4, 106, :_reduce_57, 1, 92, :_reduce_none, 3, 92, :_reduce_59, 0, 93, :_reduce_none, 1, 93, :_reduce_none, 1, 108, :_reduce_62, 1, 83, :_reduce_63, 1, 85, :_reduce_64, 1, 107, :_reduce_none, 1, 107, :_reduce_none, 1, 107, :_reduce_none, 1, 107, :_reduce_none, 1, 107, :_reduce_none, 1, 107, :_reduce_none, 1, 107, :_reduce_none, 3, 70, :_reduce_72, 3, 70, :_reduce_73, 3, 79, :_reduce_74, 0, 94, :_reduce_75, 1, 94, :_reduce_76, 3, 94, :_reduce_77, 3, 112, :_reduce_78, 3, 114, :_reduce_79, 1, 115, :_reduce_none, 1, 115, :_reduce_none, 0, 97, :_reduce_82, 1, 97, :_reduce_83, 3, 97, :_reduce_84, 1, 116, :_reduce_none, 3, 116, :_reduce_86, 1, 105, :_reduce_none, 1, 105, :_reduce_none, 1, 105, :_reduce_none, 1, 105, :_reduce_none, 1, 105, :_reduce_none, 1, 105, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 1, 113, :_reduce_none, 4, 87, :_reduce_105, 3, 87, :_reduce_106, 1, 89, :_reduce_107, 1, 89, :_reduce_108, 1, 86, :_reduce_109, 4, 82, :_reduce_110, 4, 82, :_reduce_111, 6, 72, :_reduce_112, 5, 72, :_reduce_113, 0, 119, :_reduce_none, 4, 119, :_reduce_115, 3, 119, :_reduce_116, 1, 110, :_reduce_none, 3, 110, :_reduce_118, 3, 110, :_reduce_119, 3, 110, :_reduce_120, 3, 110, :_reduce_121, 3, 110, :_reduce_122, 3, 110, :_reduce_123, 3, 110, :_reduce_124, 3, 110, :_reduce_125, 2, 110, :_reduce_126, 3, 110, :_reduce_127, 3, 110, :_reduce_128, 3, 110, :_reduce_129, 3, 110, :_reduce_130, 3, 110, :_reduce_131, 3, 110, :_reduce_132, 2, 110, :_reduce_133, 3, 110, :_reduce_134, 3, 110, :_reduce_135, 3, 110, :_reduce_136, 5, 71, :_reduce_137, 1, 121, :_reduce_none, 2, 121, :_reduce_139, 5, 122, :_reduce_140, 4, 122, :_reduce_141, 1, 123, :_reduce_none, 3, 123, :_reduce_143, 3, 88, :_reduce_144, 1, 125, :_reduce_none, 4, 125, :_reduce_146, 1, 127, :_reduce_none, 3, 127, :_reduce_148, 3, 126, :_reduce_149, 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_157, 1, 124, :_reduce_none, 1, 128, :_reduce_159, 3, 128, :_reduce_160, 2, 73, :_reduce_161, 6, 75, :_reduce_162, 5, 75, :_reduce_163, 7, 76, :_reduce_164, 6, 76, :_reduce_165, 6, 77, :_reduce_166, 5, 77, :_reduce_167, 1, 96, :_reduce_168, 1, 91, :_reduce_169, 1, 91, :_reduce_170, 1, 91, :_reduce_171, 1, 131, :_reduce_none, 3, 131, :_reduce_173, 1, 133, :_reduce_174, 1, 134, :_reduce_175, 1, 134, :_reduce_176, 1, 134, :_reduce_177, 1, 134, :_reduce_178, 1, 134, :_reduce_none, 0, 65, :_reduce_180, 0, 135, :_reduce_181, 1, 129, :_reduce_none, 3, 129, :_reduce_183, 3, 129, :_reduce_184, 1, 136, :_reduce_none, 3, 136, :_reduce_186, 3, 137, :_reduce_187, 1, 137, :_reduce_188, 3, 137, :_reduce_189, 1, 137, :_reduce_190, 1, 132, :_reduce_none, 2, 132, :_reduce_192, 1, 130, :_reduce_none, 2, 130, :_reduce_194, 1, 138, :_reduce_none, 1, 138, :_reduce_none, 1, 84, :_reduce_197, 3, 109, :_reduce_198, 4, 109, :_reduce_199, 2, 109, :_reduce_200, 1, 117, :_reduce_none, 1, 117, :_reduce_none, 0, 95, :_reduce_none, 1, 95, :_reduce_204, 1, 120, :_reduce_205, 3, 118, :_reduce_206, 4, 118, :_reduce_207, 2, 118, :_reduce_208, 1, 139, :_reduce_none, 3, 139, :_reduce_210, 3, 140, :_reduce_211, 1, 141, :_reduce_212, 1, 141, :_reduce_213, 1, 141, :_reduce_214, 4, 111, :_reduce_215, 1, 90, :_reduce_none, 4, 90, :_reduce_217 ] racc_reduce_n = 218 racc_shift_n = 360 racc_action_table = [ 83, 62, 65, 322, 88, 173, 174, 214, 188, 313, 279, 216, 43, 44, 150, 281, 122, 282, 278, 187, 79, 83, 62, 65, 192, 88, 102, 308, 275, 276, 103, 52, 283, 43, 44, 64, 67, 43, 44, 72, 175, 120, -156, 104, 59, 85, 286, 45, 69, 218, 47, 93, 52, 58, 173, 174, 64, 67, 176, 46, 72, 285, 83, 62, 65, 59, 88, 105, 45, 69, 46, 47, 45, 151, 284, 47, 277, 222, 319, 214, 46, -155, 79, 83, 62, 65, 318, 88, 34, 175, 221, 46, 151, 52, 290, 46, -153, 64, 67, 35, 36, 72, 293, 79, 275, 276, 59, 85, 164, 188, 69, -150, 201, 93, 52, -154, 155, 204, 64, 67, 187, 46, 72, 262, 296, 192, 263, 59, 85, 37, 185, 69, 185, 39, 93, 83, 62, 65, -152, 88, 4, 9, 46, 188, 167, 168, 169, 153, 154, 156, 300, 161, 165, 188, 187, 79, 83, 62, 65, 192, 88, 37, 201, 142, 187, 39, 52, 204, 289, 192, 64, 67, 4, 37, 72, -154, 79, 39, 303, 59, 85, 164, -155, 69, 4, 305, 93, 52, 151, 155, -151, 64, 67, 181, 46, 72, -151, 164, 62, 65, 59, 85, 37, 46, 69, 155, 39, 93, 83, 62, 65, 182, 88, 4, 183, 46, 102, 167, 168, 169, 153, 154, 156, -153, 161, 165, 62, 65, 79, 58, 62, 65, -150, 167, 168, 169, 153, 154, 156, 52, 161, 165, 185, 64, 67, 150, 164, 72, 149, 54, 226, 344, 59, 85, 155, 46, 69, 169, 153, 93, 52, 309, 161, 165, 64, 67, 260, 46, 72, -168, 226, 261, 56, 59, 83, 62, 65, 69, 88, 161, 165, 198, 167, 168, 169, 153, 154, 156, 46, 161, 165, 161, 165, 115, 79, 83, 62, 65, 214, 88, 167, 168, 169, 153, 312, 52, 103, 161, 165, 64, 67, 169, 153, 72, -152, 146, 161, 165, 59, 85, 200, 220, 69, 271, 321, 93, 52, 226, 227, 206, 64, 67, 209, 46, 72, 34, 83, 62, 65, 59, 88, 142, -152, 69, 167, 168, 169, 153, 154, 156, 115, 161, 165, 213, 46, -150, 79, 83, 62, 65, 220, 88, 167, 168, 169, 153, 108, 52, 264, 161, 165, 64, 67, 216, 280, 72, 142, 79, 275, 276, 59, 85, 345, 309, 69, 224, 347, 93, 52, 226, 227, 106, 64, 67, 349, 46, 72, -152, -150, -153, -151, 59, 85, -155, 216, 69, 51, 50, 93, 83, 62, 65, 353, 88, -204, 40, 46, 167, 168, 169, 153, 154, 156, 217, 161, 165, -151, -153, nil, 79, 83, 62, 65, nil, 88, nil, nil, nil, nil, nil, 52, nil, nil, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, nil, nil, 69, nil, nil, 93, 52, nil, nil, nil, 64, 67, nil, 46, 72, nil, 83, 62, 65, 59, 88, nil, nil, 69, nil, nil, 83, 62, 65, nil, 88, nil, nil, nil, 46, nil, nil, nil, nil, nil, nil, nil, 83, 62, 65, nil, 88, 52, nil, nil, nil, 64, 67, nil, nil, 72, nil, 52, nil, nil, 59, 64, 67, nil, 69, 72, nil, 83, 62, 65, 59, 88, nil, 52, 69, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, 46, 59, nil, nil, nil, 69, nil, 83, 62, 65, nil, 88, nil, 52, nil, nil, 46, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 79, nil, nil, 69, nil, nil, 83, 62, 65, nil, 88, 52, nil, nil, 46, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, 79, nil, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, nil, nil, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, nil, 79, nil, 69, nil, nil, nil, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, 79, nil, 69, nil, nil, 93, 83, 62, 65, nil, nil, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, nil, nil, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 129, nil, nil, 72, nil, nil, nil, nil, 127, nil, 79, nil, 69, nil, nil, nil, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, 79, nil, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, 79, nil, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, 79, nil, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, nil, nil, nil, nil, 59, 85, 62, 65, 69, nil, nil, 93, 83, 62, 65, nil, 88, 52, nil, 46, nil, 64, 67, nil, nil, 72, 83, 62, 65, nil, 59, nil, nil, nil, 69, nil, 187, nil, nil, nil, 64, 232, nil, 52, 72, 46, nil, 64, 67, 127, nil, 72, nil, 69, nil, nil, 59, 52, 62, 65, 69, 64, 232, nil, 46, 72, nil, nil, nil, nil, 127, 46, nil, nil, 69, 83, 62, 65, 302, 88, nil, nil, 83, 62, 65, 46, 88, nil, 52, nil, nil, nil, 64, 67, nil, nil, 72, nil, nil, nil, 56, 59, 79, nil, nil, 69, 52, nil, nil, nil, 64, 67, nil, 52, 72, nil, 46, 64, 67, 59, nil, 72, nil, 69, nil, nil, 59, 85, nil, nil, 69, nil, nil, 93, 46, 83, 62, 65, 170, 88, nil, 46, 83, 62, 65, nil, 88, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 83, 62, 65, nil, 88, nil, 52, nil, nil, nil, 64, 67, nil, 52, 72, nil, nil, 64, 67, 59, 79, 72, nil, 69, nil, nil, 59, 62, 65, nil, 69, 52, nil, nil, 46, 64, 67, nil, nil, 72, nil, 46, nil, nil, 59, 85, 62, 65, 69, nil, nil, 93, 83, 62, 65, nil, 88, 187, nil, 46, nil, 64, 232, nil, nil, 72, nil, nil, nil, nil, 127, nil, 79, nil, 69, nil, 187, nil, 62, 65, 64, 232, nil, 52, 72, 46, nil, 64, 67, 127, nil, 72, nil, 69, nil, nil, 59, 85, nil, nil, 69, nil, nil, 93, 46, nil, nil, nil, 187, 62, 65, 46, 64, 232, nil, nil, 72, nil, nil, 62, 65, 127, 234, nil, nil, 69, nil, nil, nil, 239, nil, nil, nil, nil, nil, nil, 46, nil, nil, 52, 62, 65, nil, 64, 67, nil, nil, 72, nil, 187, nil, 56, 59, 64, 232, nil, 69, 72, 62, 65, nil, nil, 127, nil, nil, nil, 69, 46, nil, nil, 52, nil, 62, 65, 64, 67, nil, 46, 72, nil, nil, nil, 56, 59, nil, nil, nil, 69, 187, nil, 62, 65, 64, 232, 317, nil, 72, nil, 46, nil, nil, 127, 187, nil, nil, 69, 64, 232, nil, nil, 72, 62, 65, nil, nil, 127, 46, nil, nil, 69, 187, nil, nil, nil, 64, 232, nil, nil, 72, nil, 46, 144, nil, 127, nil, nil, nil, 69, nil, nil, nil, 52, 166, nil, nil, 64, 67, nil, 46, 72, nil, 159, 164, 56, 59, nil, nil, nil, 69, nil, 155, 157, 160, 163, 159, 164, nil, nil, nil, 46, nil, nil, nil, 155, 157, 160, 163, nil, nil, nil, nil, nil, nil, nil, 158, 162, nil, nil, 167, 168, 169, 153, 154, 156, nil, 161, 165, nil, 162, nil, nil, 167, 168, 169, 153, 154, 156, nil, 161, 165, 159, 164, nil, nil, nil, nil, nil, nil, nil, 155, 157, 160, 163, 159, 164, nil, nil, nil, nil, nil, nil, nil, 155, 157, 160, 163, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 167, 168, 169, 153, 154, 156, nil, 161, 165, 158, 162, nil, nil, 167, 168, 169, 153, 154, 156, nil, 161, 165, 159, 164, nil, nil, nil, nil, nil, nil, nil, 155, 157, 160, 163, 159, 164, nil, nil, nil, nil, nil, nil, 241, 155, 157, 160, 163, nil, nil, nil, nil, nil, nil, nil, 158, 162, nil, nil, 167, 168, 169, 153, 154, 156, nil, 161, 165, 158, 162, nil, nil, 167, 168, 169, 153, 154, 156, 337, 161, 165, 159, 164, nil, nil, nil, nil, nil, nil, nil, 155, 157, 160, 163, nil, nil, nil, nil, nil, 19, nil, 23, 27, nil, 1, 5, 354, 12, nil, 17, nil, 21, nil, 28, 158, 162, 4, 9, 167, 168, 169, 153, 154, 156, nil, 161, 165, 19, 356, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, nil, 350, nil, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, 339, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, nil, 351, nil, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, 332, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, nil, 255, nil, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, 291, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, nil, 311, nil, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, 358, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, nil, 359, nil, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9, 19, nil, 23, 27, nil, 1, 5, nil, 12, nil, 17, nil, 21, nil, 28, nil, nil, 4, 9 ] racc_action_check = [ 93, 93, 93, 273, 93, 263, 263, 142, 274, 263, 193, 298, 12, 12, 240, 199, 49, 201, 193, 274, 93, 146, 146, 146, 274, 146, 24, 240, 273, 273, 24, 93, 202, 120, 120, 93, 93, 122, 122, 93, 263, 49, 94, 24, 93, 93, 204, 12, 93, 142, 12, 93, 146, 67, 88, 88, 146, 146, 88, 93, 146, 203, 153, 153, 153, 146, 153, 24, 120, 146, 12, 120, 122, 67, 203, 122, 189, 145, 267, 129, 146, 95, 153, 154, 154, 154, 267, 154, 1, 88, 145, 120, 129, 153, 207, 122, 90, 153, 153, 1, 1, 153, 212, 154, 189, 189, 153, 153, 252, 105, 153, 89, 115, 153, 154, 96, 252, 115, 154, 154, 105, 153, 154, 177, 215, 105, 177, 154, 154, 31, 216, 154, 217, 31, 154, 155, 155, 155, 82, 155, 31, 31, 154, 104, 252, 252, 252, 252, 252, 252, 219, 252, 252, 188, 104, 155, 156, 156, 156, 104, 156, 206, 285, 220, 188, 206, 155, 285, 206, 188, 155, 155, 206, 5, 155, 78, 156, 5, 223, 155, 155, 248, 76, 155, 5, 229, 155, 156, 232, 248, 74, 156, 156, 98, 155, 156, 92, 249, 182, 182, 156, 156, 27, 165, 156, 249, 27, 156, 157, 157, 157, 100, 157, 27, 101, 156, 73, 248, 248, 248, 248, 248, 248, 71, 248, 248, 23, 23, 157, 17, 17, 17, 70, 249, 249, 249, 249, 249, 249, 157, 249, 249, 103, 157, 157, 63, 246, 157, 61, 17, 307, 307, 157, 157, 246, 161, 157, 258, 258, 157, 17, 255, 258, 258, 17, 17, 171, 157, 17, 59, 171, 171, 17, 17, 19, 19, 19, 17, 19, 259, 259, 106, 246, 246, 246, 246, 246, 246, 17, 246, 246, 242, 242, 107, 19, 21, 21, 21, 185, 21, 245, 245, 245, 245, 261, 19, 111, 245, 245, 19, 19, 257, 257, 19, 57, 55, 257, 257, 19, 19, 112, 270, 19, 184, 272, 19, 21, 184, 184, 116, 21, 21, 119, 19, 21, 52, 158, 158, 158, 21, 158, 51, 124, 21, 253, 253, 253, 253, 253, 253, 38, 253, 253, 128, 21, 130, 158, 159, 159, 159, 143, 159, 243, 243, 243, 243, 28, 158, 179, 243, 243, 158, 158, 131, 197, 158, 183, 159, 197, 197, 158, 158, 309, 311, 158, 148, 318, 158, 159, 148, 148, 26, 159, 159, 320, 158, 159, 325, 326, 328, 329, 159, 159, 330, 186, 159, 16, 13, 159, 160, 160, 160, 343, 160, 344, 6, 159, 244, 244, 244, 244, 244, 244, 135, 244, 244, 134, 132, nil, 160, 305, 305, 305, nil, 305, nil, nil, nil, nil, nil, 160, nil, nil, nil, 160, 160, nil, nil, 160, nil, nil, nil, nil, 160, 160, nil, nil, 160, nil, nil, 160, 305, nil, nil, nil, 305, 305, nil, 160, 305, nil, 225, 225, 225, 305, 225, nil, nil, 305, nil, nil, 102, 102, 102, nil, 102, nil, nil, nil, 305, nil, nil, nil, nil, nil, nil, nil, 286, 286, 286, nil, 286, 225, nil, nil, nil, 225, 225, nil, nil, 225, nil, 102, nil, nil, 225, 102, 102, nil, 225, 102, nil, 34, 34, 34, 102, 34, nil, 286, 102, 225, nil, 286, 286, nil, nil, 286, nil, nil, nil, 102, 286, nil, nil, nil, 286, nil, 35, 35, 35, nil, 35, nil, 34, nil, nil, 286, 34, 34, nil, nil, 34, nil, nil, nil, nil, 34, 35, nil, nil, 34, nil, nil, 36, 36, 36, nil, 36, 35, nil, nil, 34, 35, 35, nil, nil, 35, nil, nil, nil, nil, 35, 35, 36, nil, 35, nil, nil, 35, 282, 282, 282, nil, 282, 36, nil, 35, nil, 36, 36, nil, nil, 36, nil, nil, nil, nil, 36, 36, nil, nil, 36, nil, nil, 36, 40, 40, 40, nil, 40, 282, nil, 36, nil, 282, 282, nil, nil, 282, nil, nil, nil, nil, 282, nil, 40, nil, 282, nil, nil, nil, 163, 163, 163, nil, 163, 40, nil, 282, nil, 40, 40, nil, nil, 40, nil, nil, nil, nil, 40, 40, 163, nil, 40, nil, nil, 40, 50, 50, 50, nil, nil, 163, nil, 40, nil, 163, 163, nil, nil, 163, nil, nil, nil, nil, 163, 163, nil, nil, 163, nil, nil, 163, 164, 164, 164, nil, 164, 50, nil, 163, nil, 50, 50, nil, nil, 50, nil, nil, nil, nil, 50, nil, 164, nil, 50, nil, nil, nil, 167, 167, 167, nil, 167, 164, nil, 50, nil, 164, 164, nil, nil, 164, nil, nil, nil, nil, 164, 164, 167, nil, 164, nil, nil, 164, 168, 168, 168, nil, 168, 167, nil, 164, nil, 167, 167, nil, nil, 167, nil, nil, nil, nil, 167, 167, 168, nil, 167, nil, nil, 167, 169, 169, 169, nil, 169, 168, nil, 167, nil, 168, 168, nil, nil, 168, nil, nil, nil, nil, 168, 168, 169, nil, 168, nil, nil, 168, 264, 264, 264, nil, 264, 169, nil, 168, nil, 169, 169, nil, nil, 169, nil, nil, nil, nil, 169, 169, 234, 234, 169, nil, nil, 169, 58, 58, 58, nil, 58, 264, nil, 169, nil, 264, 264, nil, nil, 264, 213, 213, 213, nil, 264, nil, nil, nil, 264, nil, 234, nil, nil, nil, 234, 234, nil, 58, 234, 264, nil, 58, 58, 234, nil, 58, nil, 234, nil, nil, 58, 213, 222, 222, 58, 213, 213, nil, 234, 213, nil, nil, nil, nil, 213, 58, nil, nil, 213, 214, 214, 214, 222, 214, nil, nil, 85, 85, 85, 213, 85, nil, 222, nil, nil, nil, 222, 222, nil, nil, 222, nil, nil, nil, 222, 222, 85, nil, nil, 222, 214, nil, nil, nil, 214, 214, nil, 85, 214, nil, 222, 85, 85, 214, nil, 85, nil, 214, nil, nil, 85, 85, nil, nil, 85, nil, nil, 85, 214, 83, 83, 83, 83, 83, nil, 85, 218, 218, 218, nil, 218, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 79, 79, 79, nil, 79, nil, 83, nil, nil, nil, 83, 83, nil, 218, 83, nil, nil, 218, 218, 83, 79, 218, nil, 83, nil, nil, 218, 342, 342, nil, 218, 79, nil, nil, 83, 79, 79, nil, nil, 79, nil, 218, nil, nil, 79, 79, 319, 319, 79, nil, nil, 79, 162, 162, 162, nil, 162, 342, nil, 79, nil, 342, 342, nil, nil, 342, nil, nil, nil, nil, 342, nil, 162, nil, 342, nil, 319, nil, 279, 279, 319, 319, nil, 162, 319, 342, nil, 162, 162, 319, nil, 162, nil, 319, nil, nil, 162, 162, nil, nil, 162, nil, nil, 162, 319, nil, nil, nil, 279, 151, 151, 162, 279, 279, nil, nil, 279, nil, nil, 149, 149, 279, 149, nil, nil, 279, nil, nil, nil, 151, nil, nil, nil, nil, nil, nil, 279, nil, nil, 151, 150, 150, nil, 151, 151, nil, nil, 151, nil, 149, nil, 151, 151, 149, 149, nil, 151, 149, 181, 181, nil, nil, 149, nil, nil, nil, 149, 151, nil, nil, 150, nil, 278, 278, 150, 150, nil, 149, 150, nil, nil, nil, 150, 150, nil, nil, nil, 150, 181, nil, 265, 265, 181, 181, 265, nil, 181, nil, 150, nil, nil, 181, 278, nil, nil, 181, 278, 278, nil, nil, 278, 54, 54, nil, nil, 278, 181, nil, nil, 278, 265, nil, nil, nil, 265, 265, nil, nil, 265, nil, 278, 54, nil, 265, nil, nil, nil, 265, nil, nil, nil, 54, 80, nil, nil, 54, 54, nil, 265, 54, nil, 80, 80, 54, 54, nil, nil, nil, 54, nil, 80, 80, 80, 80, 247, 247, nil, nil, nil, 54, nil, nil, nil, 247, 247, 247, 247, nil, nil, nil, nil, nil, nil, nil, 80, 80, nil, nil, 80, 80, 80, 80, 80, 80, nil, 80, 80, nil, 247, nil, nil, 247, 247, 247, 247, 247, 247, nil, 247, 247, 251, 251, nil, nil, nil, nil, nil, nil, nil, 251, 251, 251, 251, 114, 114, nil, nil, nil, nil, nil, nil, nil, 114, 114, 114, 114, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 251, 251, 251, 251, 251, 251, nil, 251, 251, 114, 114, nil, nil, 114, 114, 114, 114, 114, 114, nil, 114, 114, 118, 118, nil, nil, nil, nil, nil, nil, nil, 118, 118, 118, 118, 152, 152, nil, nil, nil, nil, nil, nil, 152, 152, 152, 152, 152, nil, nil, nil, nil, nil, nil, nil, 118, 118, nil, nil, 118, 118, 118, 118, 118, 118, nil, 118, 118, 152, 152, nil, nil, 152, 152, 152, 152, 152, 152, 290, 152, 152, 113, 113, nil, nil, nil, nil, nil, nil, nil, 113, 113, 113, 113, nil, nil, nil, nil, nil, 290, nil, 290, 290, nil, 290, 290, 345, 290, nil, 290, nil, 290, nil, 290, 113, 113, 290, 290, 113, 113, 113, 113, 113, 113, nil, 113, 113, 345, 347, 345, 345, nil, 345, 345, nil, 345, nil, 345, nil, 345, nil, 345, nil, nil, 345, 345, nil, 333, nil, 347, nil, 347, 347, nil, 347, 347, nil, 347, nil, 347, nil, 347, nil, 347, nil, nil, 347, 347, 333, 292, 333, 333, nil, 333, 333, nil, 333, nil, 333, nil, 333, nil, 333, nil, nil, 333, 333, nil, 338, nil, 292, nil, 292, 292, nil, 292, 292, nil, 292, nil, 292, nil, 292, nil, 292, nil, nil, 292, 292, 338, 281, 338, 338, nil, 338, 338, nil, 338, nil, 338, nil, 338, nil, 338, nil, nil, 338, 338, nil, 166, nil, 281, nil, 281, 281, nil, 281, 281, nil, 281, nil, 281, nil, 281, nil, 281, nil, nil, 281, 281, 166, 209, 166, 166, nil, 166, 166, nil, 166, nil, 166, nil, 166, nil, 166, nil, nil, 166, 166, nil, 256, nil, 209, nil, 209, 209, nil, 209, 209, nil, 209, nil, 209, nil, 209, nil, 209, nil, nil, 209, 209, 256, 355, 256, 256, nil, 256, 256, nil, 256, nil, 256, nil, 256, nil, 256, nil, nil, 256, 256, nil, 357, nil, 355, nil, 355, 355, nil, 355, 355, nil, 355, nil, 355, nil, 355, nil, 355, nil, nil, 355, 355, 357, nil, 357, 357, nil, 357, 357, nil, 357, nil, 357, nil, 357, nil, 357, nil, nil, 357, 357, 30, nil, 30, 30, nil, 30, 30, nil, 30, nil, 30, nil, 30, nil, 30, nil, nil, 30, 30, 0, nil, 0, 0, nil, 0, 0, nil, 0, nil, 0, nil, 0, nil, 0, nil, nil, 0, 0 ] racc_action_pointer = [ 1670, 86, nil, nil, nil, 139, 402, nil, nil, nil, nil, nil, 9, 401, nil, nil, 400, 227, nil, 272, nil, 293, nil, 223, 24, nil, 391, 168, 324, nil, 1651, 95, nil, nil, 520, 545, 571, nil, 328, nil, 623, nil, nil, nil, nil, nil, nil, nil, nil, 6, 675, 303, 333, nil, 1189, 313, nil, 293, 831, 267, nil, 227, nil, 235, nil, nil, nil, 51, nil, nil, 211, 202, nil, 214, 169, nil, 161, nil, 154, 979, 1217, nil, 117, 954, nil, 901, nil, nil, 51, 90, 75, nil, 175, -2, 21, 60, 94, nil, 187, nil, 201, 208, 479, 204, 121, 87, 281, 271, nil, nil, nil, 300, 315, 1394, 1289, 79, 294, nil, 1335, 326, 30, nil, 34, nil, 321, nil, nil, nil, 314, 70, 334, 363, 406, nil, 405, 405, nil, nil, nil, nil, nil, nil, -2, 350, nil, 67, 19, nil, 380, 1097, 1118, 1087, 1348, 60, 81, 133, 154, 206, 334, 355, 407, 194, 1031, 649, 701, 142, 1550, 727, 753, 779, nil, 261, nil, nil, nil, nil, nil, 116, nil, 359, nil, 1136, 195, 338, 318, 289, 394, nil, 131, 56, nil, nil, nil, -6, nil, nil, nil, 330, nil, 9, nil, 4, 9, 51, 33, nil, 127, 88, nil, 1572, nil, nil, 95, 845, 894, 117, 92, 94, 961, 143, 125, nil, 876, 173, nil, 469, nil, nil, nil, 176, nil, nil, 166, nil, 824, nil, nil, nil, nil, nil, 4, nil, 232, 310, 365, 248, 230, 1230, 165, 181, nil, 1276, 92, 292, nil, 232, 1591, 257, 203, 220, nil, 299, nil, 2, 805, 1168, nil, 68, nil, nil, 311, nil, 317, -20, -14, nil, nil, nil, 1150, 1056, nil, 1531, 597, nil, nil, 129, 495, nil, nil, nil, 1399, nil, 1490, nil, nil, nil, nil, nil, 1, nil, nil, nil, nil, nil, nil, 428, nil, 241, nil, 376, nil, 354, nil, nil, nil, nil, nil, nil, 380, 1024, 387, nil, nil, nil, nil, 376, 377, nil, 378, 379, 382, nil, nil, 1468, nil, nil, nil, nil, 1509, nil, nil, nil, 1005, 405, 407, 1427, nil, 1449, nil, nil, nil, nil, nil, nil, nil, 1613, nil, 1632, nil, nil ] racc_action_default = [ -180, -218, -15, -3, -170, -171, -218, -16, -5, -168, -17, -6, -218, -218, -7, -8, -218, -169, -9, -218, -10, -218, -11, -218, -218, -12, -218, -218, -40, -13, -1, -218, -14, -2, -218, -218, -218, -171, -180, -169, -218, -172, -174, -177, -176, -175, -205, -178, -179, -180, -75, -82, -197, -31, -218, -216, -34, -32, -218, -64, -33, -218, -107, -21, -109, -108, -22, -63, -23, -62, -26, -27, -157, -218, -28, -156, -29, -158, -30, -218, -218, -97, -93, -218, -101, -218, -117, -102, -218, -94, -98, -100, -95, -218, -104, -96, -103, -99, -218, -159, -161, -43, -218, -75, -180, -180, -218, -180, -41, -4, -39, -218, -218, -72, -74, -181, -180, -182, -73, -218, -218, -191, -218, -68, -65, -76, -71, -64, -60, -63, -66, -203, -69, -58, -67, -218, -155, -154, -70, -80, -81, -83, -218, -203, -20, -218, -218, -85, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -200, -218, -133, -214, -213, -212, -208, -218, -209, -218, -126, -218, -218, -82, -218, -218, -203, -197, -180, -218, -47, -49, -63, -218, -56, -55, -46, -218, 360, -218, -215, -190, -218, -218, -188, -185, -218, -218, -193, -218, -192, -173, -218, -61, -218, -218, -204, -75, -218, -218, -204, -18, -218, -218, -110, -218, -201, -202, -152, -218, -144, -145, -63, -150, -218, -153, -151, -24, -25, -106, -218, -136, -122, -124, -128, -125, -130, -135, -132, -129, -118, -134, -131, -127, -119, -114, -218, -120, -121, -123, -198, -202, -206, -218, -218, -218, -138, -218, -142, -160, -203, -111, -218, -218, -218, -52, -51, -45, -218, -218, -44, -218, -218, -183, -184, -218, -218, -195, -194, -196, -218, -167, -218, -35, -59, -78, -36, -77, -203, -79, -38, -84, -19, -217, -86, -218, -147, -203, -105, -218, -113, -114, -199, -207, -210, -211, -139, -137, -218, -218, -218, -37, -50, -48, -91, -87, -88, -53, -92, -89, -90, -54, -163, -218, -189, -186, -187, -165, -218, -166, -57, -149, -218, -218, -202, -218, -112, -218, -143, -42, -162, -164, -148, -146, -116, -218, -141, -218, -115, -140 ] racc_goto_table = [ 6, 16, 109, 231, 24, 30, 38, 229, 178, 131, 57, 215, 205, 143, 41, 76, 99, 133, 68, 48, 266, 60, 138, 219, 139, 237, 63, 116, 107, 310, 6, 16, 189, 197, 24, 111, 98, 327, 331, 268, 148, 323, 265, 124, 301, 342, 230, 57, 136, 112, 110, 307, 76, 100, 126, 68, 128, 33, 60, 207, 49, 119, 186, 145, 212, 171, 272, 210, 202, 203, 75, 101, 288, 147, 177, 26, nil, nil, nil, nil, nil, nil, nil, nil, 184, 346, nil, nil, 306, nil, nil, nil, 229, nil, nil, 117, 199, 237, 147, nil, nil, nil, nil, 75, 316, nil, 121, 75, nil, nil, nil, nil, nil, nil, nil, nil, 273, 147, nil, nil, 53, nil, nil, 268, 211, nil, nil, 48, nil, 48, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 228, 57, 57, 270, nil, 136, 76, 76, 320, 238, 68, 123, 60, 60, 139, 53, nil, nil, 240, 223, nil, nil, 117, nil, 6, 16, 250, nil, 24, 256, 254, 208, 228, 269, 298, 348, 340, 136, 294, nil, 335, 314, nil, 138, nil, 343, nil, 297, nil, nil, nil, 139, nil, nil, 352, nil, nil, nil, 229, nil, 75, 75, 75, nil, 124, 287, nil, 6, 16, 136, nil, 24, 292, 57, nil, 126, nil, nil, 76, nil, nil, 238, nil, nil, 60, 228, 109, 295, nil, nil, 136, 299, 75, nil, 70, nil, nil, nil, 304, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 74, nil, 53, 53, nil, 6, 16, 228, nil, 24, nil, nil, 136, 109, nil, 75, nil, nil, 130, 78, 325, 325, 70, nil, 75, 330, 330, 71, 315, nil, 6, 16, nil, 134, 24, 333, 75, 74, nil, 6, 16, 6, 16, 24, 338, 24, 334, nil, nil, nil, 336, nil, 137, nil, 109, nil, 78, nil, nil, 109, 132, 228, nil, nil, 71, 123, 136, 75, nil, 341, nil, nil, 194, 194, 53, nil, 109, nil, 109, nil, 75, 75, 6, 16, 228, nil, 24, 6, 16, 136, nil, 24, nil, nil, 6, 16, 6, 16, 24, 355, 24, 357, nil, nil, 6, 16, 6, 16, 24, nil, 24, nil, nil, nil, 195, 195, nil, 233, 70, 70, nil, 75, nil, nil, nil, nil, nil, nil, nil, nil, 324, 324, 236, 74, 74, nil, nil, nil, nil, nil, nil, nil, nil, nil, 75, nil, nil, nil, nil, 233, nil, 137, 78, 78, nil, nil, 194, nil, nil, 235, 71, 71, nil, nil, 236, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 130, nil, 137, nil, nil, nil, nil, nil, nil, 70, 235, nil, nil, nil, nil, 134, 80, 195, nil, nil, nil, 233, nil, nil, 74, nil, nil, nil, nil, nil, nil, nil, 113, 114, 137, nil, 236, 118, nil, nil, nil, nil, 132, 78, nil, nil, nil, nil, nil, nil, nil, 71, 233, nil, nil, 137, nil, nil, nil, nil, nil, 194, nil, 235, nil, 326, 326, 236, nil, nil, nil, nil, nil, nil, nil, nil, 152, nil, nil, nil, 329, 329, 172, nil, nil, nil, 137, nil, nil, nil, 180, nil, nil, nil, 235, nil, nil, nil, nil, 137, 137, nil, nil, 195, nil, nil, 233, 328, 328, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 236, nil, nil, nil, nil, nil, nil, nil, 233, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 137, nil, nil, nil, 236, nil, nil, nil, 235, nil, 242, 243, 244, 245, 246, 247, 248, 249, nil, 251, 252, 253, nil, 137, 257, 258, 259, nil, nil, nil, nil, 235 ] racc_goto_check = [ 49, 20, 4, 64, 34, 2, 29, 62, 78, 32, 27, 33, 75, 35, 71, 24, 27, 44, 20, 58, 60, 28, 47, 33, 50, 19, 18, 67, 29, 57, 49, 20, 38, 38, 34, 34, 51, 43, 43, 62, 54, 39, 59, 27, 53, 55, 63, 27, 24, 51, 5, 65, 24, 66, 28, 20, 30, 3, 28, 68, 69, 70, 32, 18, 31, 54, 33, 72, 73, 74, 46, 37, 76, 51, 77, 1, nil, nil, nil, nil, nil, nil, nil, nil, 54, 57, nil, nil, 64, nil, nil, nil, 62, nil, nil, 3, 67, 19, 51, nil, nil, nil, nil, 46, 60, nil, 3, 46, nil, nil, nil, nil, nil, nil, nil, nil, 38, 51, nil, nil, 26, nil, nil, 62, 71, nil, nil, 58, nil, 58, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 27, 27, 27, 35, nil, 24, 24, 24, 33, 20, 20, 26, 28, 28, 50, 26, nil, nil, 18, 51, nil, nil, 3, nil, 49, 20, 58, nil, 34, 2, 58, 3, 27, 27, 32, 62, 33, 24, 44, nil, 75, 78, nil, 47, nil, 33, nil, 50, nil, nil, nil, 50, nil, nil, 64, nil, nil, nil, 62, nil, 46, 46, 46, nil, 27, 29, nil, 49, 20, 24, nil, 34, 2, 27, nil, 28, nil, nil, 24, nil, nil, 20, nil, nil, 28, 27, 4, 51, nil, nil, 24, 51, 46, nil, 21, nil, nil, nil, 51, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 23, nil, 26, 26, nil, 49, 20, 27, nil, 34, nil, nil, 24, 4, nil, 46, nil, nil, 21, 25, 27, 27, 21, nil, 46, 24, 24, 22, 51, nil, 49, 20, nil, 23, 34, 2, 46, 23, nil, 49, 20, 49, 20, 34, 2, 34, 51, nil, nil, nil, 51, nil, 25, nil, 4, nil, 25, nil, nil, 4, 22, 27, nil, nil, 22, 26, 24, 46, nil, 51, nil, nil, 21, 21, 26, nil, 4, nil, 4, nil, 46, 46, 49, 20, 27, nil, 34, 49, 20, 24, nil, 34, nil, nil, 49, 20, 49, 20, 34, 2, 34, 2, nil, nil, 49, 20, 49, 20, 34, nil, 34, nil, nil, nil, 22, 22, nil, 21, 21, 21, nil, 46, nil, nil, nil, nil, nil, nil, nil, nil, 26, 26, 23, 23, 23, nil, nil, nil, nil, nil, nil, nil, nil, nil, 46, nil, nil, nil, nil, 21, nil, 25, 25, 25, nil, nil, 21, nil, nil, 22, 22, 22, nil, nil, 23, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 21, nil, 25, nil, nil, nil, nil, nil, nil, 21, 22, nil, nil, nil, nil, 23, 48, 22, nil, nil, nil, 21, nil, nil, 23, nil, nil, nil, nil, nil, nil, nil, 48, 48, 25, nil, 23, 48, nil, nil, nil, nil, 22, 25, nil, nil, nil, nil, nil, nil, nil, 22, 21, nil, nil, 25, nil, nil, nil, nil, nil, 21, nil, 22, nil, 21, 21, 23, nil, nil, nil, nil, nil, nil, nil, nil, 48, nil, nil, nil, 23, 23, 48, nil, nil, nil, 25, nil, nil, nil, 48, nil, nil, nil, 22, nil, nil, nil, nil, 25, 25, nil, nil, 22, nil, nil, 21, 22, 22, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 23, nil, nil, nil, nil, nil, nil, nil, 21, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 25, nil, nil, nil, 23, nil, nil, nil, 22, nil, 48, 48, 48, 48, 48, 48, 48, 48, nil, 48, 48, 48, nil, 25, 48, 48, 48, nil, nil, nil, nil, 22 ] racc_goto_pointer = [ nil, 75, 5, 57, -28, 19, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 9, -125, 1, 219, 261, 234, -2, 253, 103, -7, 4, 1, 6, -64, -41, -120, 4, -38, nil, 47, -72, -233, nil, nil, nil, -241, -33, nil, 53, -28, 429, 0, -27, 15, nil, -176, -18, -262, nil, -226, 7, -139, -161, nil, -142, -103, -146, -183, 30, -11, -57, 48, 12, 2, -53, -47, -46, -103, -134, -14, -80, nil ] racc_goto_default = [ nil, nil, nil, 196, 3, 8, 11, 14, 15, 18, 20, 22, 25, 29, 32, 2, 7, 10, nil, 66, 87, 89, 90, 92, 95, 96, 81, 82, 84, 13, nil, nil, nil, nil, 73, nil, 31, nil, nil, 190, 274, 191, 193, nil, nil, 135, 94, 97, nil, 55, 125, 86, 140, 141, nil, 225, 91, nil, 77, nil, nil, 267, 61, nil, nil, nil, nil, nil, nil, nil, nil, nil, 42, nil, nil, nil, nil, nil, nil, 179 ] racc_token_table = { false => 0, Object.new => 1, :LBRACK => 2, :DQTEXT => 3, :SQTEXT => 4, :RBRACK => 5, :LBRACE => 6, :RBRACE => 7, :SYMBOL => 8, :FARROW => 9, :COMMA => 10, :TRUE => 11, :FALSE => 12, :EQUALS => 13, :APPENDS => 14, :LESSEQUAL => 15, :NOTEQUAL => 16, :DOT => 17, :COLON => 18, :LLCOLLECT => 19, :RRCOLLECT => 20, :QMARK => 21, :LPAREN => 22, :RPAREN => 23, :ISEQUAL => 24, :GREATEREQUAL => 25, :GREATERTHAN => 26, :LESSTHAN => 27, :IF => 28, :ELSE => 29, :IMPORT => 30, :DEFINE => 31, :ELSIF => 32, :VARIABLE => 33, :CLASS => 34, :INHERITS => 35, :NODE => 36, :BOOLEAN => 37, :NAME => 38, :SEMIC => 39, :CASE => 40, :DEFAULT => 41, :AT => 42, :LCOLLECT => 43, :RCOLLECT => 44, :CLASSNAME => 45, :CLASSREF => 46, :NOT => 47, :OR => 48, :AND => 49, :UNDEF => 50, :PARROW => 51, :PLUS => 52, :MINUS => 53, :TIMES => 54, :DIV => 55, :LSHIFT => 56, :RSHIFT => 57, :UMINUS => 58, :MATCH => 59, :NOMATCH => 60, :REGEX => 61 } racc_use_result_var = true racc_nt_base = 62 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_token_to_s_table = [ '$end', 'error', 'LBRACK', 'DQTEXT', 'SQTEXT', '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', '$start', 'program', 'statements', 'nil', 'statement', 'resource', 'virtualresource', 'collection', 'assignment', 'casestatement', 'ifstatement', 'import', 'fstatement', 'definition', 'hostclass', 'nodedef', 'resourceoverride', 'append', 'funcvalues', 'namestring', 'resourceref', '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', 'else', 'regex', 'caseopts', 'caseopt', 'casevalues', 'selectlhand', 'svalues', 'selectval', 'sintvalues', 'qtexts', 'argumentlist', 'classparent', 'hostnames', 'nodeparent', 'nodename', 'hostname', 'nothing', 'arguments', 'argument', 'classnameordefault', 'hashpairs', 'hashpair', 'key'] Racc_debug_parser = false ##### racc system variables end ##### # reduce 0 omitted module_eval <<'.,.,', 'grammar.ra', 44 def _reduce_1( val, _values, result ) if val[0] # Make sure we always return an array. if val[0].is_a?(AST::ASTArray) if val[0].children.empty? result = nil else result = val[0] end else result = aryfy(val[0]) end else result = nil end result end .,., # reduce 2 omitted # reduce 3 omitted module_eval <<'.,.,', 'grammar.ra', 60 def _reduce_4( val, _values, result ) if val[0] and val[1] 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 elsif obj = (val[0] || val[1]) result = obj else result = nil end result end .,., # reduce 5 omitted # reduce 6 omitted # reduce 7 omitted # reduce 8 omitted # reduce 9 omitted # reduce 10 omitted # reduce 11 omitted # reduce 12 omitted # reduce 13 omitted # reduce 14 omitted # reduce 15 omitted # reduce 16 omitted # reduce 17 omitted module_eval <<'.,.,', 'grammar.ra', 84 def _reduce_18( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :statement result end .,., module_eval <<'.,.,', 'grammar.ra', 92 def _reduce_19( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :statement result end .,., module_eval <<'.,.,', 'grammar.ra', 98 def _reduce_20( val, _values, result ) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => AST::ASTArray.new({}), :ftype => :statement result end .,., module_eval <<'.,.,', 'grammar.ra', 106 def _reduce_21( val, _values, result ) args = aryfy(val[1]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :statement result end .,., # reduce 22 omitted # reduce 23 omitted module_eval <<'.,.,', 'grammar.ra', 114 def _reduce_24( val, _values, result ) result = aryfy(val[0], val[2]) result.line = @lexer.line result.file = @lexer.file result end .,., module_eval <<'.,.,', 'grammar.ra', 123 def _reduce_25( val, _values, result ) unless val[0].is_a?(AST::ASTArray) val[0] = aryfy(val[0]) end val[0].push(val[2]) result = val[0] result end .,., # reduce 26 omitted # reduce 27 omitted # reduce 28 omitted # reduce 29 omitted # reduce 30 omitted # reduce 31 omitted # reduce 32 omitted # reduce 33 omitted module_eval <<'.,.,', 'grammar.ra', 137 def _reduce_34( val, _values, result ) result = ast AST::Name, :value => val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 159 def _reduce_35( val, _values, result ) @lexer.commentpop array = val[2] if array.instance_of?(AST::ResourceInstance) array = [array] end result = ast AST::ASTArray # this iterates across each specified resourceinstance array.each { |instance| unless instance.instance_of?(AST::ResourceInstance) raise Puppet::Dev, "Got something that isn't an instance" end # 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], :params => instance[1]) } result end .,., module_eval <<'.,.,', 'grammar.ra', 162 def _reduce_36( val, _values, result ) # This is a deprecated syntax. error "All resource specifications require names" result end .,., module_eval <<'.,.,', 'grammar.ra', 165 def _reduce_37( val, _values, result ) # a defaults setting for a type result = ast(AST::ResourceDefaults, :type => val[0], :params => val[2]) result end .,., module_eval <<'.,.,', 'grammar.ra', 171 def _reduce_38( val, _values, result ) @lexer.commentpop result = ast AST::ResourceOverride, :object => val[0], :params => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 198 def _reduce_39( 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") end if val[1].is_a? AST::ResourceDefaults error "Defaults are not virtualizable" end 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 result = val[1] result end .,., module_eval <<'.,.,', 'grammar.ra', 199 def _reduce_40( val, _values, result ) result = :virtual result end .,., module_eval <<'.,.,', 'grammar.ra', 200 def _reduce_41( val, _values, result ) result = :exported result end .,., module_eval <<'.,.,', 'grammar.ra', 224 def _reduce_42( val, _values, result ) if val[0] =~ /^[a-z]/ Puppet.warning addcontext("Collection names must now be capitalized") end type = val[0].downcase args = {:type => type} if val[1].is_a?(AST::CollExpr) args[:query] = val[1] args[:query].type = type args[:form] = args[:query].form else args[:form] = val[1] end if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly] Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored") end args[:override] = val[3] result = ast AST::Collection, args result end .,., module_eval <<'.,.,', 'grammar.ra', 243 def _reduce_43( val, _values, result ) if val[0] =~ /^[a-z]/ Puppet.warning addcontext("Collection names must now be capitalized") end type = val[0].downcase args = {:type => type } if val[1].is_a?(AST::CollExpr) args[:query] = val[1] args[:query].type = type args[:form] = args[:query].form else args[:form] = val[1] end if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly] Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored") end result = ast AST::Collection, args result end .,., module_eval <<'.,.,', 'grammar.ra', 253 def _reduce_44( val, _values, result ) if val[1] result = val[1] result.form = :virtual else result = :virtual end result end .,., module_eval <<'.,.,', 'grammar.ra', 261 def _reduce_45( val, _values, result ) if val[1] result = val[1] result.form = :exported else result = :exported end result end .,., # reduce 46 omitted # reduce 47 omitted module_eval <<'.,.,', 'grammar.ra', 269 def _reduce_48( val, _values, result ) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] result end .,., # reduce 49 omitted module_eval <<'.,.,', 'grammar.ra', 275 def _reduce_50( val, _values, result ) result = val[1] result.parens = true result end .,., module_eval <<'.,.,', 'grammar.ra', 276 def _reduce_51( val, _values, result ) result=val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 277 def _reduce_52( val, _values, result ) result=val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 284 def _reduce_53( 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 end .,., module_eval <<'.,.,', 'grammar.ra', 289 def _reduce_54( 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 end .,., # reduce 55 omitted # reduce 56 omitted module_eval <<'.,.,', 'grammar.ra', 296 def _reduce_57( val, _values, result ) result = ast AST::ResourceInstance, :children => [val[0],val[2]] result end .,., # reduce 58 omitted module_eval <<'.,.,', 'grammar.ra', 306 def _reduce_59( val, _values, result ) 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 result end .,., # reduce 60 omitted # reduce 61 omitted module_eval <<'.,.,', 'grammar.ra', 313 def _reduce_62( val, _values, result ) result = ast AST::Undef, :value => :undef result end .,., module_eval <<'.,.,', 'grammar.ra', 317 def _reduce_63( val, _values, result ) result = ast AST::Name, :value => val[0][:value], :line => val[0][:line] result end .,., module_eval <<'.,.,', 'grammar.ra', 321 def _reduce_64( val, _values, result ) result = ast AST::Type, :value => val[0][:value], :line => val[0][:line] result end .,., # reduce 65 omitted # reduce 66 omitted # reduce 67 omitted # reduce 68 omitted # reduce 69 omitted # reduce 70 omitted # reduce 71 omitted module_eval <<'.,.,', 'grammar.ra', 338 def _reduce_72( val, _values, result ) if val[0][:value] =~ /::/ raise Puppet::ParseError, "Cannot assign to variables in other namespaces" end # 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 end .,., module_eval <<'.,.,', 'grammar.ra', 341 def _reduce_73( val, _values, result ) result = ast AST::VarDef, :name => val[0], :value => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 346 def _reduce_74( 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 end .,., module_eval <<'.,.,', 'grammar.ra', 351 def _reduce_75( val, _values, result ) result = ast AST::ASTArray result end .,., module_eval <<'.,.,', 'grammar.ra', 351 def _reduce_76( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'grammar.ra', 360 def _reduce_77( 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 end .,., module_eval <<'.,.,', 'grammar.ra', 364 def _reduce_78( val, _values, result ) result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 369 def _reduce_79( val, _values, result ) result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2], :add => true result end .,., # reduce 80 omitted # reduce 81 omitted module_eval <<'.,.,', 'grammar.ra', 377 def _reduce_82( val, _values, result ) result = ast AST::ASTArray result end .,., module_eval <<'.,.,', 'grammar.ra', 377 def _reduce_83( val, _values, result ) result = val[0] result end .,., module_eval <<'.,.,', 'grammar.ra', 386 def _reduce_84( 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 end .,., # reduce 85 omitted module_eval <<'.,.,', 'grammar.ra', 395 def _reduce_86( 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]] end result end .,., # reduce 87 omitted # reduce 88 omitted # reduce 89 omitted # reduce 90 omitted # reduce 91 omitted # reduce 92 omitted # reduce 93 omitted # reduce 94 omitted # reduce 95 omitted # reduce 96 omitted # reduce 97 omitted # reduce 98 omitted # reduce 99 omitted # reduce 100 omitted # reduce 101 omitted # reduce 102 omitted # reduce 103 omitted # reduce 104 omitted module_eval <<'.,.,', 'grammar.ra', 424 def _reduce_105( val, _values, result ) args = aryfy(val[2]) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => args, :ftype => :rvalue result end .,., module_eval <<'.,.,', 'grammar.ra', 429 def _reduce_106( val, _values, result ) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => AST::ASTArray.new({}), :ftype => :rvalue result end .,., module_eval <<'.,.,', 'grammar.ra', 433 def _reduce_107( val, _values, result ) result = ast AST::String, :value => val[0][:value], :line => val[0][:line] result end .,., module_eval <<'.,.,', 'grammar.ra', 435 def _reduce_108( val, _values, result ) result = ast AST::FlatString, :value => val[0][:value], :line => val[0][:line] result end .,., module_eval <<'.,.,', 'grammar.ra', 439 def _reduce_109( val, _values, result ) result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line] result end .,., module_eval <<'.,.,', 'grammar.ra', 444 def _reduce_110( 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 end .,., module_eval <<'.,.,', 'grammar.ra', 446 def _reduce_111( val, _values, result ) result = ast AST::ResourceReference, :type => val[0], :title => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 460 def _reduce_112( val, _values, result ) @lexer.commentpop args = { :test => val[1], :statements => val[3] } if val[5] args[:else] = val[5] end result = ast AST::IfStatement, args result end .,., module_eval <<'.,.,', 'grammar.ra', 473 def _reduce_113( val, _values, result ) @lexer.commentpop args = { :test => val[1], :statements => ast(AST::Nop) } if val[4] args[:else] = val[4] end result = ast AST::IfStatement, args result end .,., # reduce 114 omitted module_eval <<'.,.,', 'grammar.ra', 479 def _reduce_115( val, _values, result ) @lexer.commentpop result = ast AST::Else, :statements => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 483 def _reduce_116( val, _values, result ) @lexer.commentpop result = ast AST::Else, :statements => ast(AST::Nop) result end .,., # reduce 117 omitted module_eval <<'.,.,', 'grammar.ra', 500 def _reduce_118( val, _values, result ) result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 503 def _reduce_119( val, _values, result ) result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 506 def _reduce_120( val, _values, result ) result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 509 def _reduce_121( val, _values, result ) result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 512 def _reduce_122( val, _values, result ) result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 515 def _reduce_123( val, _values, result ) result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 518 def _reduce_124( val, _values, result ) result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 521 def _reduce_125( val, _values, result ) result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 524 def _reduce_126( val, _values, result ) result = ast AST::Minus, :value => val[1] result end .,., module_eval <<'.,.,', 'grammar.ra', 527 def _reduce_127( val, _values, result ) result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 530 def _reduce_128( val, _values, result ) result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 533 def _reduce_129( val, _values, result ) result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 536 def _reduce_130( val, _values, result ) result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 539 def _reduce_131( val, _values, result ) result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 542 def _reduce_132( val, _values, result ) result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 545 def _reduce_133( val, _values, result ) result = ast AST::Not, :value => val[1] result end .,., module_eval <<'.,.,', 'grammar.ra', 548 def _reduce_134( val, _values, result ) result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 551 def _reduce_135( val, _values, result ) result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 554 def _reduce_136( val, _values, result ) result = val[1] result end .,., module_eval <<'.,.,', 'grammar.ra', 563 def _reduce_137( val, _values, result ) @lexer.commentpop options = val[3] unless options.instance_of?(AST::ASTArray) options = ast AST::ASTArray, :children => [val[3]] end result = ast AST::CaseStatement, :test => val[1], :options => options result end .,., # reduce 138 omitted module_eval <<'.,.,', 'grammar.ra', 573 def _reduce_139( val, _values, result ) 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 result end .,., module_eval <<'.,.,', 'grammar.ra', 578 def _reduce_140( val, _values, result ) @lexer.commentpop result = ast AST::CaseOpt, :value => val[0], :statements => val[3] result end .,., module_eval <<'.,.,', 'grammar.ra', 584 def _reduce_141( val, _values, result ) @lexer.commentpop result = ast(AST::CaseOpt, :value => val[0], :statements => ast(AST::ASTArray) ) result end .,., # reduce 142 omitted module_eval <<'.,.,', 'grammar.ra', 594 def _reduce_143( 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 end .,., module_eval <<'.,.,', 'grammar.ra', 598 def _reduce_144( val, _values, result ) result = ast AST::Selector, :param => val[0], :values => val[2] result end .,., # reduce 145 omitted module_eval <<'.,.,', 'grammar.ra', 604 def _reduce_146( val, _values, result ) @lexer.commentpop result = val[1] result end .,., # reduce 147 omitted module_eval <<'.,.,', 'grammar.ra', 614 def _reduce_148( 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 end .,., module_eval <<'.,.,', 'grammar.ra', 618 def _reduce_149( val, _values, result ) result = ast AST::ResourceParam, :param => val[0], :value => val[2] result end .,., # reduce 150 omitted # reduce 151 omitted # reduce 152 omitted # reduce 153 omitted # reduce 154 omitted # reduce 155 omitted # reduce 156 omitted module_eval <<'.,.,', 'grammar.ra', 629 def _reduce_157( val, _values, result ) result = ast AST::Default, :value => val[0][:value], :line => val[0][:line] result end .,., # reduce 158 omitted module_eval <<'.,.,', 'grammar.ra', 632 def _reduce_159( val, _values, result ) result = [val[0].value] result end .,., module_eval <<'.,.,', 'grammar.ra', 636 def _reduce_160( val, _values, result ) results = val[0] << val[2].value result end .,., module_eval <<'.,.,', 'grammar.ra', 644 def _reduce_161( val, _values, result ) val[1].each do |file| import(file) end result = AST::ASTArray.new(:children => []) result end .,., module_eval <<'.,.,', 'grammar.ra', 655 def _reduce_162( val, _values, result ) @lexer.commentpop newdefine classname(val[1]), :arguments => val[2], :code => val[4], :line => val[0][:line] @lexer.indefine = false result = nil #} | DEFINE NAME argumentlist parent LBRACE RBRACE { result end .,., module_eval <<'.,.,', 'grammar.ra', 660 def _reduce_163( val, _values, result ) @lexer.commentpop newdefine classname(val[1]), :arguments => val[2], :line => val[0][:line] @lexer.indefine = false result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 669 def _reduce_164( val, _values, result ) @lexer.commentpop # Our class gets defined in the parent namespace, not our own. @lexer.namepop - newclass classname(val[1]), :arguments => val[2], :code => val[5], :parent => val[3], :line => val[0][:line] + newclass classname(val[1]), :arguments => val[2], :parent => val[3], :code => val[5], :line => val[0][:line] result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 675 def _reduce_165( val, _values, result ) @lexer.commentpop # Our class gets defined in the parent namespace, not our own. @lexer.namepop newclass classname(val[1]), :arguments => val[2], :parent => val[3], :line => val[0][:line] result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 681 def _reduce_166( val, _values, result ) @lexer.commentpop newnode val[1], :parent => val[2], :code => val[4], :line => val[0][:line] result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 685 def _reduce_167( val, _values, result ) @lexer.commentpop newnode val[1], :parent => val[2], :line => val[0][:line] result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 686 def _reduce_168( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 688 def _reduce_169( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 689 def _reduce_170( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 690 def _reduce_171( val, _values, result ) result = "class" result end .,., # reduce 172 omitted module_eval <<'.,.,', 'grammar.ra', 700 def _reduce_173( val, _values, result ) result = val[0] result = [result] unless result.is_a?(Array) result << val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 704 def _reduce_174( val, _values, result ) result = ast AST::HostName, :value => val[0] result end .,., module_eval <<'.,.,', 'grammar.ra', 705 def _reduce_175( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 706 def _reduce_176( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 707 def _reduce_177( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 708 def _reduce_178( val, _values, result ) result = val[0][:value] result end .,., # reduce 179 omitted module_eval <<'.,.,', 'grammar.ra', 714 def _reduce_180( val, _values, result ) result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 718 def _reduce_181( val, _values, result ) result = ast AST::ASTArray, :children => [] result end .,., # reduce 182 omitted module_eval <<'.,.,', 'grammar.ra', 723 def _reduce_183( val, _values, result ) result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 727 def _reduce_184( val, _values, result ) result = val[1] result = [result] unless result[0].is_a?(Array) result end .,., # reduce 185 omitted module_eval <<'.,.,', 'grammar.ra', 734 def _reduce_186( val, _values, result ) result = val[0] result = [result] unless result[0].is_a?(Array) result << val[2] result end .,., module_eval <<'.,.,', 'grammar.ra', 739 def _reduce_187( val, _values, result ) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0][:value], val[2]] result end .,., module_eval <<'.,.,', 'grammar.ra', 743 def _reduce_188( val, _values, result ) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0][:value]] result end .,., module_eval <<'.,.,', 'grammar.ra', 745 def _reduce_189( val, _values, result ) result = [val[0][:value], val[2]] result end .,., module_eval <<'.,.,', 'grammar.ra', 747 def _reduce_190( val, _values, result ) result = [val[0][:value]] result end .,., # reduce 191 omitted module_eval <<'.,.,', 'grammar.ra', 752 def _reduce_192( val, _values, result ) result = val[1] result end .,., # reduce 193 omitted module_eval <<'.,.,', 'grammar.ra', 757 def _reduce_194( val, _values, result ) result = val[1] result end .,., # reduce 195 omitted # reduce 196 omitted module_eval <<'.,.,', 'grammar.ra', 763 def _reduce_197( val, _values, result ) result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line] result end .,., module_eval <<'.,.,', 'grammar.ra', 771 def _reduce_198( val, _values, result ) if val[1].instance_of?(AST::ASTArray) result = val[1] else result = ast AST::ASTArray, :children => [val[1]] end result end .,., module_eval <<'.,.,', 'grammar.ra', 778 def _reduce_199( val, _values, result ) if val[1].instance_of?(AST::ASTArray) result = val[1] else result = ast AST::ASTArray, :children => [val[1]] end result end .,., module_eval <<'.,.,', 'grammar.ra', 780 def _reduce_200( val, _values, result ) result = ast AST::ASTArray result end .,., # reduce 201 omitted # reduce 202 omitted # reduce 203 omitted module_eval <<'.,.,', 'grammar.ra', 785 def _reduce_204( val, _values, result ) result = nil result end .,., module_eval <<'.,.,', 'grammar.ra', 790 def _reduce_205( val, _values, result ) result = ast AST::Regex, :value => val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 798 def _reduce_206( val, _values, result ) if val[1].instance_of?(AST::ASTHash) result = val[1] else result = ast AST::ASTHash, { :value => val[1] } end result end .,., module_eval <<'.,.,', 'grammar.ra', 805 def _reduce_207( val, _values, result ) if val[1].instance_of?(AST::ASTHash) result = val[1] else result = ast AST::ASTHash, { :value => val[1] } end result end .,., module_eval <<'.,.,', 'grammar.ra', 807 def _reduce_208( val, _values, result ) result = ast AST::ASTHash result end .,., # reduce 209 omitted module_eval <<'.,.,', 'grammar.ra', 817 def _reduce_210( val, _values, result ) if val[0].instance_of?(AST::ASTHash) result = val[0].merge(val[2]) else result = ast AST::ASTHash, :value => val[0] result.merge(val[2]) end result end .,., module_eval <<'.,.,', 'grammar.ra', 821 def _reduce_211( val, _values, result ) result = ast AST::ASTHash, { :value => { val[0] => val[2] } } result end .,., module_eval <<'.,.,', 'grammar.ra', 822 def _reduce_212( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 823 def _reduce_213( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 824 def _reduce_214( val, _values, result ) result = val[0][:value] result end .,., module_eval <<'.,.,', 'grammar.ra', 829 def _reduce_215( val, _values, result ) result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2] result end .,., # reduce 216 omitted module_eval <<'.,.,', 'grammar.ra', 834 def _reduce_217( val, _values, result ) result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2] result end .,., def _reduce_none( val, _values, result ) result end end # class Parser end # module Parser end # module Puppet