diff --git a/lib/puppet/parser/grammar.ra b/lib/puppet/parser/grammar.ra index c530c0e4b..0d181c4db 100644 --- a/lib/puppet/parser/grammar.ra +++ b/lib/puppet/parser/grammar.ra @@ -1,770 +1,764 @@ # vim: syntax=ruby # the parser class Puppet::Parser::Parser token STRING DQPRE DQMID DQPOST token LBRACK 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 CLASSREF token NOT OR AND UNDEF PARROW PLUS MINUS TIMES DIV LSHIFT RSHIFT UMINUS token MATCH NOMATCH REGEX IN_EDGE OUT_EDGE IN_EDGE_SUB OUT_EDGE_SUB token IN prechigh right NOT nonassoc UMINUS left IN 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_and_declarations | nil statements_and_declarations: statement_or_declaration { result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : []) } | statements_and_declarations statement_or_declaration { 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_or_declaration: resource | virtualresource | collection | assignment | casestatement | ifstatement_begin | import | fstatement | definition | hostclass | nodedef | resourceoverride | append | relationship relationship: relationship_side edge relationship_side { result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context) } | relationship edge relationship_side { result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context) } relationship_side: resource | resourceref | collection edge: IN_EDGE | OUT_EDGE | IN_EDGE_SUB | OUT_EDGE_SUB fstatement: NAME LPAREN expressions RPAREN { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[2], :ftype => :statement } | NAME LPAREN expressions COMMA RPAREN { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[2], :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 { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[1], :ftype => :statement } funcvalues: rvalue { result = aryfy(val[0]) } # This rvalue could be an expression | funcvalues COMMA rvalue { val[0].push(val[2]) result = val[0] } expressions: expression { result = aryfy(val[0]) } | expressions comma expression { result = val[0].push(val[2]) } rvalue: quotedtext | name | type | boolean | selector | variable | array | hasharrayaccesses | resourceref | funcrvalue | undef resource: classname LBRACE resourceinstances endsemi RBRACE { @lexer.commentpop 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" -} | classref LBRACE params endcomma RBRACE { +} | type LBRACE params endcomma RBRACE { # a defaults setting for a type @lexer.commentpop - result = ast(AST::ResourceDefaults, :type => val[0], :parameters => val[2]) + result = ast(AST::ResourceDefaults, :type => val[0].value, :parameters => 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], :parameters => 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]) Puppet.warning addcontext("You cannot collect without storeconfigs being set") end error "Defaults are not virtualizable" if val[1].is_a? AST::ResourceDefaults method = type.to_s + "=" # Just mark our resource as exported and pass it through. val[1].send(method, true) 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 { +collection: type collectrhand LBRACE anyparams endcomma RBRACE { @lexer.commentpop - Puppet.warning addcontext("Collection names must now be capitalized") if val[0] =~ /^[a-z]/ - type = val[0].downcase + type = val[0].value.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] 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 + | type collectrhand { + type = val[0].value.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] 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 expression { result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2] #result = ast AST::CollExpr #result.push *val } | colllval NOTEQUAL expression { 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, :title => val[0], :parameters => val[2] } resourceinstances: resourceinst { result = aryfy(val[0]) } | resourceinstances SEMIC resourceinst { val[0].push val[2] result = val[0] } 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 { 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] } | 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 = aryfy(val[0]) } | params COMMA param { val[0].push(val[2]) result = val[0] } param: NAME FARROW expression { result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2] } addparam: NAME PARROW expression { 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 = aryfy(val[0]) } | anyparams COMMA anyparam { val[0].push(val[2]) result = val[0] } # We currently require arguments in these functions. funcrvalue: NAME LPAREN expressions RPAREN { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[2], :ftype => :rvalue } | NAME LPAREN RPAREN { result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => AST::ASTArray.new({}), :ftype => :rvalue } quotedtext: STRING { result = ast AST::String, :value => val[0][:value], :line => val[0][:line] } | DQPRE dqrval { result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line] } dqrval: expression dqtail { result = [val[0]] + val[1] } dqtail: DQPOST { result = [ast(AST::String,val[0])] } | DQMID dqrval { result = [ast(AST::String,val[0])] + val[1] } boolean: BOOLEAN { result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line] } resourceref: NAME LBRACK expressions 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 expressions RBRACK { - result = ast AST::ResourceReference, :type => val[0], :title => val[2] +} | type LBRACK expressions RBRACK { + result = ast AST::ResourceReference, :type => val[0].value, :title => val[2] } ifstatement_begin: IF ifstatement { result = val[1] } ifstatement: expression LBRACE statements RBRACE else { @lexer.commentpop args = { :test => val[0], :statements => val[2] } args[:else] = val[4] if val[4] result = ast AST::IfStatement, args } | expression LBRACE RBRACE else { @lexer.commentpop args = { :test => val[0], :statements => ast(AST::Nop) } args[:else] = val[3] if val[3] result = ast AST::IfStatement, args } else: # nothing | ELSIF ifstatement { result = ast AST::Else, :statements => val[1] } | 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 | hash | expression IN expression { result = ast AST::InOperator, :lval => val[0], :rval => val[2] } | 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 expression LBRACE caseopts RBRACE { @lexer.commentpop result = ast AST::CaseStatement, :test => val[1], :options => val[3] } caseopts: caseopt { result = aryfy(val[0]) } | caseopts caseopt { val[0].push val[1] result = val[0] } 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 { result = aryfy(val[0]) } | casevalues COMMA selectlhand { val[0].push(val[2]) result = val[0] } 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 | hasharrayaccess | 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. string: STRING { result = [val[0][:value]] } strings: string | strings COMMA string { result = val[0] += val[2] } import: IMPORT strings { val[1].each do |file| import(file) end result = nil } # 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 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 { } | DEFINE classname argumentlist LBRACE RBRACE { @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 } #hostclass: CLASS NAME argumentlist parent 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 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])) } | CLASS classname argumentlist classparent LBRACE RBRACE { @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])) } nodedef: NODE hostnames nodeparent LBRACE statements RBRACE { @lexer.commentpop result = Puppet::Parser::AST::Node.new(val[1], ast_context(true).merge(:parent => val[2], :code => val[4], :line => val[0][:line])) } | NODE hostnames nodeparent LBRACE RBRACE { @lexer.commentpop result = Puppet::Parser::AST::Node.new(val[1], ast_context(true).merge(:parent => val[2], :line => val[0][:line])) } -classref: CLASSREF { result = val[0][:value] } - classname: NAME { result = val[0][:value] } | CLASS { result = "class" } # Multiple hostnames, as used for node names. These are all literal # strings, not AST objects. hostnames: nodename { result = [result] } | hostnames COMMA nodename { result = val[0] result << val[2] } nodename: hostname { result = ast AST::HostName, :value => val[0] } hostname: NAME { result = val[0][:value] } | STRING { 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 endcomma 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 expression { 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 expression { 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 expressions RBRACK { result = val[1] } | LBRACK expressions COMMA RBRACK { result = val[1] } | 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 expression { result = ast AST::ASTHash, { :value => { val[0] => val[2] } } } key: NAME { result = val[0][:value] } | quotedtext { result = val[0] } hasharrayaccess: VARIABLE LBRACK expression RBRACK { result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2] } hasharrayaccesses: hasharrayaccess | hasharrayaccesses LBRACK expression 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 ---- 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: diff --git a/lib/puppet/parser/parser.rb b/lib/puppet/parser/parser.rb index 00fdf349f..58ef61059 100644 --- a/lib/puppet/parser/parser.rb +++ b/lib/puppet/parser/parser.rb @@ -1,2343 +1,2327 @@ # # DO NOT MODIFY!!!! -# This file is automatically generated by Racc 1.4.6 +# This file is automatically generated by Racc 1.4.7 # from Racc grammer file "". # require 'racc/parser.rb' 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 module Puppet module Parser class Parser < Racc::Parser -module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 763) +module_eval(<<'...end grammar.ra/module_eval...', 'grammar.ra', 757) # 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: ...end grammar.ra/module_eval... ##### State transition tables begin ### clist = [ -'255,256,225,47,228,48,221,222,175,73,78,342,207,189,193,145,338,211', -'49,343,331,227,184,186,190,192,174,221,243,73,78,215,216,73,78,336,201', -'98,334,101,147,244,45,232,-154,185,188,197,302,195,196,179,180,182,183', -'95,187,191,73,78,221,356,98,181,101,120,72,197,73,78,86,88,215,216,93', -'219,118,309,79,96,95,124,89,218,60,103,73,78,60,225,98,72,207,63,35', -'86,88,211,36,93,120,72,174,79,96,86,250,89,35,93,103,118,36,154,187', -'191,124,89,63,72,132,181,64,86,88,66,64,93,63,66,52,79,73,78,120,89', -'98,311,101,50,51,142,73,78,63,118,63,171,63,231,124,120,73,78,95,262', -'98,35,101,35,35,114,118,36,114,72,316,124,11,86,88,11,317,93,95,72,170', -'79,96,86,250,89,132,93,103,72,-170,154,322,86,88,89,63,93,323,324,325', -'79,96,73,78,89,63,98,103,101,174,35,167,73,78,36,63,98,288,101,-153', -'287,11,73,78,95,52,98,330,101,47,187,191,73,78,95,72,98,181,-106,86', -'88,-152,-150,93,95,72,-151,79,96,86,88,89,205,93,103,72,299,79,96,86', -'88,89,63,93,103,72,298,79,96,86,88,89,63,93,103,73,78,79,296,85,-157', -'89,63,214,73,78,215,216,98,-155,101,144,63,-106,-106,-106,-106,76,48', -'60,336,73,78,334,109,98,95,101,72,142,223,295,86,88,221,222,93,72,105', -'333,79,86,88,95,89,93,289,266,212,79,96,221,260,89,72,63,103,64,86,88', -'66,175,93,63,63,132,79,96,73,78,89,261,98,103,101,221,260,128,142,63', -'63,63,179,180,345,73,78,187,191,98,95,101,-156,225,181,348,195,196,179', -'180,109,72,227,187,191,86,88,95,349,93,181,332,231,79,96,221,222,89', -'72,105,103,233,86,88,67,352,93,227,63,237,79,96,73,78,89,239,98,103', -'101,-153,229,195,196,179,180,63,57,360,187,191,189,193,179,180,95,181', -'170,187,191,184,186,190,192,-152,181,72,362,53,240,86,88,44,364,93,-204', -'-150,38,79,96,-151,370,89,185,188,103,371,195,196,179,180,182,183,63', -'187,191,73,78,,,98,181,101,,,,73,78,,,98,,101,,,,73,78,95,,98,,101,-22', -'-22,-22,-22,,95,72,,,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79', -'96,86,88,89,63,93,103,,,79,96,73,78,89,63,,103,,341,,,73,78,,63,98,', -'101,,,,73,78,,,98,,101,,,,73,78,95,72,98,,101,86,250,,,93,95,72,,154', -',86,88,89,,93,95,72,,79,96,86,88,89,63,93,103,72,,79,96,86,88,89,63', -'93,103,,,79,96,73,78,89,63,,103,252,,,,73,78,,63,98,,101,,,,73,78,,', -'98,,101,,,,73,78,95,72,98,,101,86,250,,,93,95,72,,154,,86,88,89,,93', -'95,72,,79,96,86,88,89,63,93,103,72,,79,96,86,88,89,63,93,103,,,79,96', -'73,78,89,63,98,103,101,,,,73,78,,63,98,,101,,,,73,78,95,,98,173,101', -'41,42,43,39,,95,72,,,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79', -'96,86,88,89,63,93,103,,,79,96,73,78,89,63,98,103,101,,,,73,78,,63,98', -'-24,-24,-24,-24,,73,78,95,,98,,101,41,42,43,39,,,72,,,,86,88,,,93,95', -'72,,79,96,86,158,89,,93,103,72,,154,,86,88,89,63,93,,,,79,96,73,78,89', -'63,98,103,101,,,,73,78,,63,98,,101,,,,,,95,,,,,,,,,,95,72,,,,86,88,', -',93,,72,,79,96,86,88,89,,93,103,329,,79,96,,,89,63,,103,189,193,,,,', -',63,,184,186,190,192,,,,,,,,73,78,,,98,,101,,,,,,185,188,,,195,196,179', -'180,182,183,95,187,191,73,78,,,98,181,101,,72,,73,78,86,88,,,93,,,,79', -'96,95,165,89,,,103,73,78,,,98,72,101,63,,86,88,,,93,,72,,79,96,86,250', -'89,95,93,103,73,78,154,,98,,89,63,72,,,,86,88,,,93,63,,,79,96,,,89,73', -'78,103,,98,,101,,72,,63,,86,250,,,93,73,78,,154,98,95,101,89,,,,,,,', -',72,,63,,86,88,95,,93,,,,79,96,,,89,72,,103,,86,88,,,93,,63,,79,96,73', -'78,89,,98,103,101,,,,73,78,,63,98,173,101,,,,73,78,95,,98,,101,,,,73', -'78,95,72,,,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79,96,86,88', -'89,63,93,103,72,,79,96,86,250,89,63,93,103,,,154,,73,78,89,63,98,,101', -',,,73,78,,63,98,,101,,,,73,78,95,,98,,101,,,,,,95,72,,,,86,88,,,93,95', -'72,,79,96,86,88,89,,93,103,72,,79,96,86,88,89,63,93,103,,,79,96,73,78', -'89,63,98,103,101,,,,73,78,,63,98,,101,,,,73,78,95,,98,,101,,,,,,95,72', -',,,86,88,,,93,95,72,,79,96,86,88,89,,93,103,72,,79,96,86,88,89,63,93', -'103,,194,79,96,,,89,63,,103,189,193,,,,,204,63,,184,186,190,192,,,189', -'193,,,,,,,,184,186,190,192,,,,,185,188,,,195,196,179,180,182,183,,187', -'191,,,185,188,,181,195,196,179,180,182,183,,187,191,189,193,,,,181,', -',,184,186,190,192,,,189,193,,,,,,,,184,186,190,192,,,,,185,188,,,195', -'196,179,180,182,183,,187,191,,,185,188,,181,195,196,179,180,182,183', -',187,191,189,193,,,,181,,,,184,186,190,192,,,189,193,,,,,,,,184,186', -'190,192,,,,,185,188,,,195,196,179,180,182,183,,187,191,,,185,188,,181', -'195,196,179,180,182,183,,187,191,189,193,,,,181,,,,184,186,190,192,', -',189,193,,,,,,,265,184,186,190,192,,,,,185,188,,,195,196,179,180,182', -'183,,187,191,,,185,188,,181,195,196,179,180,182,183,,187,191,189,193', -',,,181,,,,184,186,190,192,,,189,193,,,,,,,,184,186,190,192,,,,,185,188', -',,195,196,179,180,182,183,,187,191,,,,188,,181,195,196,179,180,182,183', -',187,191,189,193,,,,181,,,,184,186,190,192,,,189,193,,,,,,,,184,186', -'190,192,,,,,185,188,,,195,196,179,180,182,183,,187,191,,,,,,181,195', -'196,179,180,182,183,,187,191,189,193,,,,181,,,,184,186,190,192,,,189', -'193,,,,,,,,184,186,190,192,,,,,,,,,195,196,179,180,182,183,,187,191', -',,,,,181,195,196,179,180,182,183,,187,191,189,193,,,,181,,,,184,186', -'190,192,,,189,193,,,,,,,,184,186,190,192,,,,,185,188,,,195,196,179,180', -'182,183,,187,191,,,185,188,,181,195,196,179,180,182,183,,187,191,189', -'193,,,,181,,,,184,186,190,192,,,,193,,,,,,,,184,,,,,,,,185,188,193,', -'195,196,179,180,182,183,184,187,191,,,,,193,181,195,196,179,180,182', -'183,184,187,191,,,,,,181,,193,,195,196,179,180,182,183,184,187,191,', -',,,,181,195,196,179,180,182,183,,187,191,,284,,,,181,,,,195,196,179', -'180,182,183,,187,191,,369,,,26,181,32,1,,8,12,,18,,24,,29,319,2,,,11', -'26,,32,1,,8,12,,18,,24,367,29,,2,,26,11,32,1,,8,12,,18,,24,301,29,,2', -',26,11,32,1,,8,12,,18,,24,363,29,,2,,26,11,32,1,,8,12,,18,,24,351,29', -',2,,26,11,32,1,,8,12,,18,,24,,29,,2,,26,11,32,1,,8,12,,18,,24,,29,26', -'2,32,1,11,8,12,,18,,24,,29,26,2,32,1,11,8,12,,18,,24,,29,26,2,32,1,11', -'8,12,,18,,24,,29,,2,,,11,195,196,179,180,182,183,,187,191,,,,,,181,195', -'196,179,180,182,183,,187,191,,,,,,181' ] - racc_action_table = arr = Array.new(2074, nil) +'240,241,213,103,291,104,236,237,157,68,72,103,204,171,175,127,329,208', +'105,286,238,225,166,168,172,174,156,285,-151,68,72,282,283,68,72,327', +'184,91,325,94,128,327,101,214,325,167,170,179,335,177,178,161,162,164', +'165,88,169,173,68,72,204,200,91,163,94,208,66,179,68,72,79,81,282,283', +'86,236,288,312,12,89,88,247,82,200,213,96,68,72,314,322,91,66,94,57', +'331,79,81,156,156,86,187,66,332,12,89,79,231,82,88,86,96,68,72,12,190', +'91,246,82,57,66,236,245,35,79,81,188,36,86,57,55,194,12,89,12,190,82', +'68,72,96,35,91,317,94,36,66,188,57,209,79,81,194,35,86,68,72,113,12', +'91,88,94,82,35,12,273,35,113,272,58,36,66,60,57,12,79,81,88,190,86,274', +'68,72,12,89,236,352,82,66,188,96,57,79,81,194,-150,86,321,57,-152,12', +'89,68,72,82,190,91,96,94,281,169,173,282,283,66,57,188,163,79,231,198', +'194,86,306,88,35,12,68,72,36,82,157,305,233,98,66,212,169,173,79,81', +'57,215,86,163,55,218,12,89,-156,-154,82,68,72,96,153,91,47,94,152,66', +'-153,57,146,79,231,45,46,86,68,72,-153,12,78,88,57,82,324,68,72,200', +'152,91,58,94,66,60,57,-152,79,81,71,47,86,-155,57,-157,12,89,125,88', +'82,66,221,96,57,79,81,107,123,86,66,57,212,12,79,81,340,82,86,104,68', +'72,12,89,91,342,82,123,57,96,68,72,-150,345,91,107,94,57,323,299,68', +'72,236,288,91,123,94,348,310,98,68,72,88,66,91,289,94,79,81,236,288', +'86,88,66,296,12,295,79,81,82,-106,86,88,66,293,12,89,79,81,82,57,86', +'96,66,62,12,89,79,81,82,57,86,96,356,-151,12,89,68,72,82,57,91,96,94', +'52,358,292,68,72,50,57,91,359,94,223,225,213,68,72,88,361,91,-203,94', +'39,-106,-106,-106,-106,88,66,38,251,225,79,81,236,245,86,88,66,367,12', +'89,79,81,82,368,86,96,66,,12,89,79,81,82,57,86,96,,,12,89,68,72,82,57', +'91,96,94,,,,68,72,,57,91,,94,,,,68,72,88,,91,,94,-22,-22,-22,-22,,88', +'66,,,,79,81,,,86,88,66,,12,89,79,81,82,,86,96,66,,12,89,79,81,82,57', +'86,96,,,12,89,68,72,82,57,91,96,94,,,,68,72,,57,91,,94,,,,68,72,88,', +'91,,94,42,43,44,40,,88,66,,,,79,81,,,86,88,66,,12,89,79,81,82,,86,96', +'66,,12,89,79,81,82,57,86,96,,,12,89,68,72,82,57,91,96,94,,,,68,72,,57', +'91,,94,,,,68,72,88,,91,,94,-24,-24,-24,-24,,88,66,,,,79,81,,,86,88,66', +',12,89,79,81,82,,86,96,66,,12,89,79,81,82,57,86,96,,,12,89,68,72,82', +'57,91,96,94,,,,68,72,,57,91,,177,178,161,162,68,72,88,169,173,,,334', +',,163,,,66,,,55,79,81,,,86,,66,,12,89,79,138,82,,86,96,66,,12,,79,231', +'82,57,86,68,72,,12,91,,94,82,57,,68,72,58,,91,60,94,,57,,68,72,88,,91', +',94,42,43,44,40,,88,66,57,,,79,81,,,86,88,66,,12,89,79,81,82,,86,96', +'66,,12,89,79,81,82,57,86,96,,,12,89,68,72,82,57,91,96,94,,,,68,72,,57', +'91,,94,,,,68,72,88,147,91,,94,,,,,,88,66,,,,79,81,,,86,88,66,,12,89', +'79,81,82,,86,96,66,,12,89,79,81,82,57,86,96,,,12,89,68,72,82,57,91,96', +'94,,,,68,72,,57,91,155,94,177,178,161,162,,88,,169,173,,,,,,163,88,66', +',,,79,81,,,86,,66,,12,89,79,81,82,,86,96,210,,12,89,,,82,57,,96,171', +'175,,,,,,57,,166,168,172,174,,68,72,,161,162,,68,72,169,173,91,,94,', +',163,,,167,170,,,177,178,161,162,164,165,88,169,173,,,66,,,163,79,231', +'66,,86,,79,81,12,,86,,82,,12,89,320,,82,161,162,96,,57,169,173,171,175', +',57,,163,,,,166,168,172,174,,,,,,,,68,72,,,91,,94,,,,,,167,170,,,177', +'178,161,162,164,165,88,169,173,68,72,,,91,163,94,,66,,,,79,81,,,86,', +',,12,89,88,,82,68,72,96,,91,,94,,66,,57,,79,81,,,86,,,,12,89,88,,82', +'68,72,96,,91,155,94,,66,,57,,79,81,,,86,,,,12,89,88,,82,68,72,96,,91', +',94,,66,,57,,79,81,,,86,,,,12,89,88,,82,68,72,96,,91,,94,,66,,57,,79', +'81,,,86,,,,12,89,88,,82,68,72,96,,91,,94,,66,,57,,79,81,,,86,,,,12,89', +'88,,82,68,72,96,,91,,94,,66,,57,,79,81,,,86,68,72,,12,89,88,,82,,,96', +',,68,72,,66,91,57,,79,81,,,86,,,,12,89,68,72,82,66,91,96,94,79,231,', +',86,,57,,12,66,,,82,79,231,88,,86,,,,12,,57,,82,66,,,,79,81,,,86,,57', +'176,12,89,,,82,,,96,171,175,,,,,186,57,,166,168,172,174,,,171,175,,', +',,,,,166,168,172,174,,,,,167,170,,,177,178,161,162,164,165,,169,173', +',,167,170,,163,177,178,161,162,164,165,,169,173,171,175,,,,163,,,,166', +'168,172,174,,,171,175,,,,,,,,166,168,172,174,,,,,167,170,,,177,178,161', +'162,164,165,,169,173,,,167,170,,163,177,178,161,162,164,165,,169,173', +'171,175,,,,163,,,250,166,168,172,174,,,171,175,,,,,,,,166,168,172,174', +',,,,167,170,,,177,178,161,162,164,165,,169,173,,,167,170,,163,177,178', +'161,162,164,165,,169,173,171,175,,,,163,,,,166,168,172,174,,,171,175', +',,,,,,,166,168,172,174,,,,,,,,,177,178,161,162,164,165,,169,173,,,167', +'170,,163,177,178,161,162,164,165,,169,173,171,175,,,,163,,,,166,168', +'172,174,,,171,175,,,,,,,,166,168,172,174,,,,,167,170,,,177,178,161,162', +'164,165,,169,173,,,,170,,163,177,178,161,162,164,165,,169,173,171,175', +',,,163,,,,166,168,172,174,,,171,175,,,,,,,,166,168,172,174,,,,,,,,,177', +'178,161,162,164,165,,169,173,,,167,170,,163,177,178,161,162,164,165', +',169,173,171,175,,,,163,,,,166,168,172,174,,,171,175,,,,,,,,166,168', +'172,174,,,,,167,170,,,177,178,161,162,164,165,,169,173,,,,,,163,177', +'178,161,162,164,165,,169,173,171,175,,,,163,,,,166,168,172,174,,,171', +'175,,,,,,,,166,168,172,174,,,,,167,170,,,177,178,161,162,164,165,,169', +'173,,,167,170,,163,177,178,161,162,164,165,,169,173,171,175,,,,163,', +',,166,168,172,174,,,,175,,,,,,,,166,,,,,,,,167,170,175,,177,178,161', +'162,164,165,166,169,173,,,,,175,163,177,178,161,162,164,165,166,169', +'173,,,,,,163,,175,,177,178,161,162,164,165,166,169,173,,,,,,163,177', +'178,161,162,164,165,,169,173,,308,,,,163,,,,177,178,161,162,164,165', +',169,173,,347,,,25,163,31,1,,7,11,,17,,23,,28,269,3,,,12,25,,31,1,,7', +'11,,17,,23,366,28,,3,,25,12,31,1,,7,11,,17,,23,364,28,,3,,25,12,31,1', +',7,11,,17,,23,360,28,,3,,25,12,31,1,,7,11,,17,,23,298,28,,3,,25,12,31', +'1,,7,11,,17,,23,,28,,3,,25,12,31,1,,7,11,,17,,23,,28,25,3,31,1,12,7', +'11,,17,,23,,28,25,3,31,1,12,7,11,,17,,23,,28,25,3,31,1,12,7,11,,17,', +'23,,28,,3,,,12,177,178,161,162,164,165,,169,173,,,,,,163,177,178,161', +'162,164,165,,169,173,,,,,,163' ] + racc_action_table = arr = Array.new(2075, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| arr[idx] = i.to_i unless i.empty? idx += 1 end end clist = [ -'169,169,142,6,134,6,263,263,88,287,287,292,298,169,169,59,287,298,6', -'292,263,164,169,169,169,169,88,166,166,101,101,134,134,50,50,333,101', -'50,333,50,59,166,6,142,83,169,169,287,213,169,169,169,169,169,169,50', -'169,169,170,170,327,327,170,169,170,217,50,101,357,357,50,50,213,213', -'50,127,217,226,50,50,170,217,50,127,18,50,171,171,147,158,171,170,109', -'50,12,170,170,109,12,170,49,357,158,170,170,357,357,170,1,357,170,49', -'1,357,268,268,49,357,170,171,227,268,18,171,171,18,147,171,357,147,8', -'171,174,174,120,171,174,230,174,8,8,231,342,342,18,120,171,82,147,220', -'120,45,175,175,174,174,175,108,175,233,40,108,45,233,40,174,233,45,108', -'174,174,40,235,174,175,342,81,174,174,342,342,174,239,342,174,175,79', -'342,241,175,175,342,174,175,242,243,247,175,175,179,179,175,342,179', -'175,179,250,13,77,180,180,13,175,180,199,180,75,199,13,334,334,179,72', -'334,260,334,70,267,267,325,325,180,179,325,267,261,179,179,90,91,179', -'334,180,94,179,179,180,180,179,107,180,179,334,211,180,180,334,334,180', -'179,334,180,325,209,334,334,325,325,334,180,325,334,24,24,325,208,24', -'69,325,334,122,26,26,122,122,26,68,26,57,325,261,261,261,261,24,55,145', -'284,181,181,284,54,181,26,181,24,53,129,207,24,24,129,129,24,26,205', -'283,24,26,26,181,24,26,202,178,111,26,26,178,178,26,181,24,26,145,181', -'181,145,114,181,191,26,48,181,181,29,29,181,172,29,181,29,172,172,46', -'128,145,187,181,285,285,297,182,182,285,285,182,29,182,87,132,285,300', -'270,270,270,270,37,29,133,270,270,29,29,182,306,29,270,264,139,29,29', -'264,264,29,182,32,29,143,182,182,23,318,182,320,29,146,182,182,183,183', -'182,150,183,182,183,152,137,271,271,271,271,182,15,336,271,271,137,137', -'286,286,183,271,155,286,286,137,137,137,137,159,286,183,343,9,160,183', -'183,5,355,183,356,161,2,183,183,162,366,183,137,137,183,368,137,137', -'137,137,137,137,183,137,137,299,299,,,299,137,299,,,,44,44,,,44,,44', -',,,295,295,299,,295,,295,28,28,28,28,,44,299,,,,299,299,,,299,295,44', -',299,299,44,44,299,,44,299,295,,44,44,295,295,44,299,295,44,,,295,295', -'290,290,295,44,,295,,290,,,47,47,,295,47,,47,,,,289,289,,,289,,289,', -',,184,184,47,290,184,,184,290,290,,,290,289,47,,290,,47,47,290,,47,184', -'289,,47,47,289,289,47,290,289,47,184,,289,289,184,184,289,47,184,289', -',,184,184,167,167,184,289,,184,167,,,,51,51,,184,51,,51,,,,52,52,,,52', -',52,,,,185,185,51,167,185,,185,167,167,,,167,52,51,,167,,51,51,167,', -'51,185,52,,51,51,52,52,51,167,52,51,185,,52,52,185,185,52,51,185,52', -',,185,185,186,186,185,52,186,185,186,,,,188,188,,185,188,,188,,,,98', -'98,186,,98,98,98,33,33,33,33,,188,186,,,,186,186,,,186,98,188,,186,186', -'188,188,186,,188,186,98,,188,188,98,98,188,186,98,188,,,98,98,190,190', -'98,188,190,98,190,,,,67,67,,98,67,34,34,34,34,,192,192,190,,192,,192', -'3,3,3,3,,,190,,,,190,190,,,190,192,67,,190,190,67,67,190,,67,190,192', -',67,,192,192,67,190,192,,,,192,192,193,193,192,67,193,192,193,,,,195', -'195,,192,195,,195,,,,,,193,,,,,,,,,,195,193,,,,193,193,,,193,,195,,193', -'193,195,195,193,,195,193,258,,195,195,,,195,193,,195,258,258,,,,,,195', -',258,258,258,258,,,,,,,,255,255,,,255,,255,,,,,,258,258,,,258,258,258', -'258,258,258,255,258,258,76,76,,,76,258,76,,255,,252,252,255,255,,,255', -',,,255,255,76,76,255,,,255,78,78,,,78,76,78,255,,76,76,,,76,,252,,76', -'76,252,252,76,78,252,76,240,240,252,,240,,252,76,78,,,,78,78,,,78,252', -',,78,78,,,78,196,196,78,,196,,196,,240,,78,,240,240,,,240,232,232,,240', -'232,196,232,240,,,,,,,,,196,,240,,196,196,232,,196,,,,196,196,,,196', -'232,,196,,232,232,,,232,,196,,232,232,225,225,232,,225,232,225,,,,85', -'85,,232,85,85,85,,,,224,224,225,,224,,224,,,,204,204,85,225,,,,225,225', -',,225,224,85,,225,225,85,85,225,,85,225,224,,85,85,224,224,85,225,224', -'85,204,,224,224,204,204,224,85,204,224,,,204,,219,219,204,224,219,,219', -',,,218,218,,204,218,,218,,,,103,103,219,,103,,103,,,,,,218,219,,,,219', -'219,,,219,103,218,,219,219,218,218,219,,218,219,103,,218,218,103,103', -'218,219,103,218,,,103,103,95,95,103,218,95,103,95,,,,96,96,,103,96,', -'96,,,,189,189,95,,189,,189,,,,,,96,95,,,,95,95,,,95,189,96,,95,95,96', -'96,95,,96,95,189,,96,96,189,189,96,95,189,96,,99,189,189,,,189,96,,189', -'99,99,,,,,104,189,,99,99,99,99,,,104,104,,,,,,,,104,104,104,104,,,,', -'99,99,,,99,99,99,99,99,99,,99,99,,,104,104,,99,104,104,104,104,104,104', -',104,104,308,308,,,,104,,,,308,308,308,308,,,344,344,,,,,,,,344,344', -'344,344,,,,,308,308,,,308,308,308,308,308,308,,308,308,,,344,344,,308', -'344,344,344,344,344,344,,344,344,339,339,,,,344,,,,339,339,339,339,', -',313,313,,,,,,,,313,313,313,313,,,,,339,339,,,339,339,339,339,339,339', -',339,339,,,313,313,,339,313,313,313,313,313,313,,313,313,347,347,,,', -'313,,,,347,347,347,347,,,176,176,,,,,,,176,176,176,176,176,,,,,347,347', -',,347,347,347,347,347,347,,347,347,,,176,176,,347,176,176,176,176,176', -'176,,176,176,117,117,,,,176,,,,117,117,117,117,,,273,273,,,,,,,,273', -'273,273,273,,,,,117,117,,,117,117,117,117,117,117,,117,117,,,,273,,117', -'273,273,273,273,273,273,,273,273,307,307,,,,273,,,,307,307,307,307,', -',305,305,,,,,,,,305,305,305,305,,,,,307,307,,,307,307,307,307,307,307', -',307,307,,,,,,307,305,305,305,305,305,305,,305,305,276,276,,,,305,,', -',276,276,276,276,,,304,304,,,,,,,,304,304,304,304,,,,,,,,,276,276,276', -'276,276,276,,276,276,,,,,,276,304,304,304,304,304,304,,304,304,130,130', -',,,304,,,,130,130,130,130,,,136,136,,,,,,,,136,136,136,136,,,,,130,130', -',,130,130,130,130,130,130,,130,130,,,136,136,,130,136,136,136,136,136', -'136,,136,136,135,135,,,,136,,,,135,135,135,135,,,,280,,,,,,,,280,,,', -',,,,135,135,274,,135,135,135,135,135,135,274,135,135,,,,,278,135,280', -'280,280,280,280,280,278,280,280,,,,,,280,,277,,274,274,274,274,274,274', -'277,274,274,,,,,,274,278,278,278,278,278,278,,278,278,,194,,,,278,,', -',277,277,277,277,277,277,,277,277,,362,,,194,277,194,194,,194,194,,194', -',194,,194,237,194,,,194,362,,362,362,,362,362,,362,,362,360,362,,362', -',237,362,237,237,,237,237,,237,,237,212,237,,237,,360,237,360,360,,360', -'360,,360,,360,350,360,,360,,212,360,212,212,,212,212,,212,,212,317,212', -',212,,350,212,350,350,,350,350,,350,,350,,350,,350,,317,350,317,317', -',317,317,,317,,317,,317,0,317,0,0,317,0,0,,0,,0,,0,17,0,17,17,0,17,17', -',17,,17,,17,282,17,282,282,17,282,282,,282,,282,,282,,282,,,282,281', -'281,281,281,281,281,,281,281,,,,,,281,272,272,272,272,272,272,,272,272', -',,,,,272' ] - racc_action_check = arr = Array.new(2074, nil) +'151,151,123,32,202,32,148,148,81,272,272,87,107,151,151,61,272,107,32', +'196,148,311,151,151,151,151,81,196,87,94,94,202,202,285,285,324,94,285', +'324,285,61,269,32,123,269,151,151,272,280,151,151,151,151,151,151,285', +'151,151,156,156,295,223,156,151,156,295,285,94,353,353,285,285,280,280', +'285,248,248,224,285,285,156,156,285,225,138,285,162,162,228,248,162', +'156,162,285,276,156,156,138,231,156,100,353,276,156,156,353,353,156', +'162,353,156,153,153,353,101,153,154,353,156,162,154,154,8,162,162,101', +'8,162,353,17,101,162,162,8,105,162,152,152,162,1,152,237,152,1,153,105', +'162,109,153,153,105,41,153,161,161,41,153,161,152,161,153,106,41,180', +'11,106,180,17,11,152,17,153,106,152,152,161,190,152,183,331,331,152', +'152,316,316,152,161,190,152,17,161,161,190,85,161,245,152,83,161,161', +'163,163,161,284,163,161,163,191,252,252,191,191,331,161,284,252,331', +'331,102,284,331,217,163,215,331,146,146,215,331,113,215,146,187,163', +'120,253,253,163,163,331,124,163,253,128,126,163,163,80,76,163,325,325', +'163,75,325,7,325,74,146,70,163,67,146,146,7,7,146,23,23,133,146,23,325', +'173,146,268,25,25,104,135,25,128,25,325,128,146,139,325,325,23,66,325', +'64,169,63,325,325,52,25,325,23,140,325,128,23,23,51,50,23,25,325,287', +'23,25,25,290,23,25,49,314,314,25,25,314,294,25,212,23,25,164,164,141', +'297,164,37,164,25,249,211,28,28,249,249,28,198,28,307,222,31,165,165', +'164,314,165,199,165,314,314,199,199,314,28,164,208,314,206,164,164,314', +'246,164,165,28,205,164,164,28,28,164,314,28,164,165,22,28,28,165,165', +'28,164,165,28,327,143,165,165,166,166,165,28,166,165,166,14,332,204', +'167,167,9,165,167,339,167,144,145,200,168,168,166,351,168,352,168,3', +'246,246,246,246,167,166,2,160,201,166,166,160,160,166,168,167,363,166', +'166,167,167,166,365,167,166,168,,167,167,168,168,167,166,168,167,,,168', +'168,38,38,168,167,38,168,38,,,,296,296,,168,296,,296,,,,103,103,38,', +'103,,103,27,27,27,27,,296,38,,,,38,38,,,38,103,296,,38,38,296,296,38', +',296,38,103,,296,296,103,103,296,38,103,296,,,103,103,46,46,103,296', +'46,103,46,,,,47,47,,103,47,,47,,,,292,292,46,,292,,292,33,33,33,33,', +'47,46,,,,46,46,,,46,292,47,,46,46,47,47,46,,47,46,292,,47,47,292,292', +'47,46,292,47,,,292,292,286,286,292,47,286,292,286,,,,157,157,,292,157', +',157,,,,170,170,286,,170,,170,34,34,34,34,,157,286,,,,286,286,,,286', +'170,157,,286,286,157,157,286,,157,286,170,,157,157,170,170,157,286,170', +'157,,,170,170,171,171,170,157,171,170,171,,,,62,62,,170,62,,255,255', +'255,255,278,278,171,255,255,,,278,,,255,,,171,,,127,171,171,,,171,,62', +',171,171,62,62,171,,62,171,278,,62,,278,278,62,171,278,274,274,,278', +'274,,274,278,62,,172,172,127,,172,127,172,,278,,174,174,274,,174,,174', +'4,4,4,4,,172,274,127,,,274,274,,,274,174,172,,274,274,172,172,274,,172', +'274,174,,172,172,174,174,172,274,174,172,,,174,174,71,71,174,172,71', +'174,71,,,,72,72,,174,72,,72,,,,175,175,71,71,175,,175,,,,,,72,71,,,', +'71,71,,,71,175,72,,71,71,72,72,71,,72,71,175,,72,72,175,175,72,71,175', +'72,,,175,175,177,177,175,72,177,175,177,,,,78,78,,175,78,78,78,256,256', +'256,256,,177,,256,256,,,,,,256,78,177,,,,177,177,,,177,,78,,177,177', +'78,78,177,,78,177,118,,78,78,,,78,177,,78,118,118,,,,,,78,,118,118,118', +'118,,186,186,,271,271,,178,178,271,271,178,,178,,,271,,,118,118,,,118', +'118,118,118,118,118,178,118,118,,,186,,,118,186,186,178,,186,,178,178', +'186,,178,,186,,178,178,243,,178,270,270,178,,186,270,270,243,243,,178', +',270,,,,243,243,243,243,,,,,,,,240,240,,,240,,240,,,,,,243,243,,,243', +'243,243,243,243,243,240,243,243,88,88,,,88,243,88,,240,,,,240,240,,', +'240,,,,240,240,88,,240,89,89,240,,89,,89,,88,,240,,88,88,,,88,,,,88', +'88,89,,88,91,91,88,,91,91,91,,89,,88,,89,89,,,89,,,,89,89,91,,89,239', +'239,89,,239,,239,,91,,89,,91,91,,,91,,,,91,91,239,,91,213,213,91,,213', +',213,,239,,91,,239,239,,,239,,,,239,239,213,,239,96,96,239,,96,,96,', +'213,,239,,213,213,,,213,,,,213,213,96,,213,214,214,213,,214,,214,,96', +',213,,96,96,,,96,233,233,,96,96,214,,96,,,96,,,221,221,,214,221,96,', +'214,214,,,214,,,,214,214,45,45,214,233,45,214,45,233,233,,,233,,214', +',233,221,,,233,221,221,45,,221,,,,221,,233,,221,45,,,,45,45,,,45,,221', +'92,45,45,,,45,,,45,92,92,,,,,97,45,,92,92,92,92,,,97,97,,,,,,,,97,97', +'97,97,,,,,92,92,,,92,92,92,92,92,92,,92,92,,,97,97,,92,97,97,97,97,97', +'97,,97,97,116,116,,,,97,,,,116,116,116,116,,,341,341,,,,,,,,341,341', +'341,341,,,,,116,116,,,116,116,116,116,116,116,,116,116,,,341,341,,116', +'341,341,341,341,341,341,,341,341,158,158,,,,341,,,158,158,158,158,158', +',,110,110,,,,,,,,110,110,110,110,,,,,158,158,,,158,158,158,158,158,158', +',158,158,,,110,110,,158,110,110,110,110,110,110,,110,110,338,338,,,', +'110,,,,338,338,338,338,,,344,344,,,,,,,,344,344,344,344,,,,,,,,,338', +'338,338,338,338,338,,338,338,,,344,344,,338,344,344,344,344,344,344', +',344,344,117,117,,,,344,,,,117,117,117,117,,,258,258,,,,,,,,258,258', +'258,258,,,,,117,117,,,117,117,117,117,117,117,,117,117,,,,258,,117,258', +'258,258,258,258,258,,258,258,337,337,,,,258,,,,337,337,337,337,,,302', +'302,,,,,,,,302,302,302,302,,,,,,,,,337,337,337,337,337,337,,337,337', +',,302,302,,337,302,302,302,302,302,302,,302,302,149,149,,,,302,,,,149', +'149,149,149,,,261,261,,,,,,,,261,261,261,261,,,,,149,149,,,149,149,149', +'149,149,149,,149,149,,,,,,149,261,261,261,261,261,261,,261,261,318,318', +',,,261,,,,318,318,318,318,,,330,330,,,,,,,,330,330,330,330,,,,,318,318', +',,318,318,318,318,318,318,,318,318,,,330,330,,318,330,330,330,330,330', +'330,,330,330,301,301,,,,330,,,,301,301,301,301,,,,265,,,,,,,,265,,,', +',,,,301,301,263,,301,301,301,301,301,301,263,301,301,,,,,262,301,265', +'265,265,265,265,265,262,265,265,,,,,,265,,259,,263,263,263,263,263,263', +'259,263,263,,,,,,263,262,262,262,262,262,262,,262,262,,218,,,,262,,', +',259,259,259,259,259,259,,259,259,,306,,,218,259,218,218,,218,218,,218', +',218,,218,176,218,,,218,306,,306,306,,306,306,,306,,306,358,306,,306', +',176,306,176,176,,176,176,,176,,176,356,176,,176,,358,176,358,358,,358', +'358,,358,,358,346,358,,358,,356,358,356,356,,356,356,,356,,356,209,356', +',356,,346,356,346,346,,346,346,,346,,346,,346,,346,,209,346,209,209', +',209,209,,209,,209,,209,0,209,0,0,209,0,0,,0,,0,,0,267,0,267,267,0,267', +'267,,267,,267,,267,16,267,16,16,267,16,16,,16,,16,,16,,16,,,16,257,257', +'257,257,257,257,,257,257,,,,,,257,266,266,266,266,266,266,,266,266,', +',,,,266' ] + racc_action_check = arr = Array.new(2075, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| arr[idx] = i.to_i unless i.empty? idx += 1 end end racc_action_pointer = [ - 1970, 72, 409, 724, nil, 433, -3, nil, 124, 436, - nil, nil, 58, 171, nil, 423, nil, 1983, 82, nil, - nil, nil, nil, 393, 270, nil, 279, nil, 436, 343, - nil, nil, 394, 657, 712, nil, nil, 353, nil, nil, - 124, nil, nil, nil, 480, 127, 346, 547, 302, 76, - 31, 624, 634, 266, 277, 287, nil, 288, nil, 3, - nil, nil, nil, nil, nil, nil, nil, 768, 263, 254, - 220, nil, 216, nil, nil, 193, 933, 185, 961, 180, - nil, 170, 135, 21, nil, 1085, nil, 346, 2, nil, - 215, 216, nil, nil, 220, 1219, 1229, nil, 711, 1277, - nil, 27, nil, 1172, 1292, nil, nil, 237, 121, 57, - nil, 317, nil, nil, 332, nil, nil, 1517, nil, nil, - 110, nil, 234, nil, nil, nil, nil, 57, 315, 300, - 1697, nil, 359, 367, -18, 1757, 1712, 410, nil, 377, - nil, nil, -9, 361, nil, 294, 398, 86, nil, nil, - 392, nil, 393, nil, nil, 427, nil, nil, 78, 417, - 404, 429, 433, nil, 9, nil, 16, 614, nil, -4, - 56, 84, 341, nil, 130, 150, 1472, nil, 317, 197, - 207, 296, 360, 407, 567, 644, 691, 295, 701, 1239, - 758, 278, 778, 825, 1859, 835, 1011, nil, nil, 205, - nil, nil, 312, nil, 1105, 313, nil, 293, 250, 251, - nil, 238, 1925, 23, nil, nil, nil, 41, 1162, 1152, - 137, nil, nil, nil, 1095, 1075, 68, 80, nil, nil, - 128, 101, 1028, 123, nil, 164, nil, 1893, nil, 142, - 986, 179, 185, 170, nil, nil, nil, 185, nil, nil, - 182, nil, 943, nil, nil, 908, nil, nil, 873, nil, - 217, 227, nil, -5, 381, nil, nil, 167, 54, nil, - 320, 365, 2006, 1532, 1790, nil, 1637, 1823, 1805, nil, - 1772, 1991, 1996, 307, 266, 304, 374, 7, nil, 557, - 537, nil, -1, nil, nil, 490, nil, 336, -23, 470, - 363, nil, nil, nil, 1652, 1592, 376, 1577, 1337, nil, - nil, nil, nil, 1412, nil, nil, nil, 1957, 393, nil, - 392, nil, nil, nil, nil, 227, nil, 49, nil, nil, - nil, nil, nil, 4, 217, nil, 416, nil, nil, 1397, - nil, nil, 140, 435, 1352, nil, nil, 1457, nil, nil, - 1941, nil, nil, nil, nil, 440, 442, 66, nil, nil, - 1909, nil, 1877, nil, nil, nil, 448, nil, 453, nil, - nil, nil ] + 1971, 103, 415, 379, 690, nil, nil, 249, 86, 400, + nil, 128, nil, nil, 403, nil, 1997, 127, nil, nil, + nil, nil, 375, 265, nil, 274, nil, 427, 337, nil, + nil, 346, -3, 494, 561, nil, nil, 310, 461, nil, + nil, 115, nil, nil, nil, 1240, 528, 538, nil, 310, + 267, 282, 297, nil, nil, nil, nil, nil, nil, nil, + nil, 3, 672, 271, 269, nil, 284, 238, nil, nil, + 236, 791, 801, nil, 251, 241, 225, nil, 868, nil, + 224, 2, nil, 174, nil, 170, nil, 5, 1043, 1068, + nil, 1093, 1278, nil, 27, nil, 1168, 1293, nil, nil, + 88, 90, 210, 481, 238, 110, 125, -23, nil, 139, + 1413, nil, nil, 223, nil, nil, 1338, 1518, 906, nil, + 222, nil, nil, -9, 203, nil, 236, 698, 241, nil, + nil, nil, nil, 246, nil, 273, nil, nil, 73, 263, + 260, 308, nil, 370, 393, 402, 223, nil, -5, 1638, + nil, -4, 134, 109, 109, nil, 56, 605, 1398, nil, + 424, 151, 84, 198, 327, 347, 394, 404, 414, 231, + 615, 662, 734, 211, 744, 811, 1894, 858, 941, nil, + 154, nil, nil, 167, nil, nil, 935, 230, nil, nil, + 152, 161, nil, nil, nil, nil, 1, nil, 304, 347, + 404, 420, -18, nil, 390, 348, 353, nil, 348, 1958, + nil, 329, 286, 1143, 1193, 187, nil, 213, 1860, nil, + nil, 1223, 338, 21, 68, 43, nil, nil, 77, nil, + nil, 74, nil, 1210, nil, nil, nil, 116, nil, 1118, + 1018, nil, nil, 983, nil, 188, 361, nil, 64, 330, + nil, nil, 148, 175, nil, 627, 824, 1992, 1533, 1824, + nil, 1653, 1806, 1791, nil, 1773, 2007, 1984, 266, 10, + 938, 885, 7, nil, 724, nil, 82, nil, 682, nil, + 23, nil, nil, nil, 179, 31, 595, 299, nil, nil, + 306, nil, 548, nil, 299, 25, 471, 323, nil, nil, + nil, 1758, 1593, nil, nil, nil, 1878, 337, nil, nil, + nil, 9, nil, nil, 317, nil, 172, nil, 1698, nil, + nil, nil, nil, nil, 4, 248, nil, 384, nil, nil, + 1713, 177, 396, nil, nil, nil, nil, 1578, 1458, 402, + nil, 1353, nil, nil, 1473, nil, 1942, nil, nil, nil, + nil, 410, 412, 66, nil, nil, 1926, nil, 1910, nil, + nil, nil, nil, 431, nil, 437, nil, nil, nil ] racc_action_default = [ - -180, -217, -53, -217, -9, -217, -217, -10, -217, -23, - -11, -170, -172, -217, -12, -217, -13, -1, -217, -14, - -2, -15, -3, -217, -171, -16, -217, -17, -6, -217, - -18, -7, -217, -19, -8, -172, -171, -180, -54, -28, - -217, -25, -26, -27, -217, -180, -56, -217, -88, -180, - -217, -217, -217, -95, -180, -217, -52, -217, -4, -180, - -177, -173, -175, -205, -176, -179, -178, -88, -40, -215, - -217, -41, -197, -100, -45, -42, -217, -217, -217, -77, - -43, -44, -32, -46, -33, -217, -105, -47, -76, -75, - -37, -38, -159, -158, -39, -217, -217, -115, -217, -217, - -108, -217, -116, -217, -217, -160, -161, -163, -217, -181, - -182, -217, -20, -23, -171, -22, -24, -86, -197, -68, - -180, -59, -217, -60, -76, -62, -69, -217, -95, -217, - -35, -89, -217, -203, -217, -85, -87, -217, -93, -203, - -94, -96, -217, -180, 372, -217, -217, -217, -191, -155, - -217, -81, -82, -83, -77, -84, -154, -156, -76, -78, - -73, -79, -80, -71, -203, -31, -217, -217, -101, -217, - -217, -217, -217, -200, -217, -217, -217, -133, -217, -217, - -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -217, -217, -217, -217, -212, -213, -217, - -209, -208, -217, -126, -217, -217, -21, -190, -217, -203, - -185, -188, -217, -217, -57, -65, -64, -217, -217, -217, - -203, -201, -202, -107, -217, -217, -217, -204, -58, -214, - -217, -204, -217, -217, -193, -217, -174, -217, -192, -88, - -74, -217, -217, -202, -29, -157, -153, -217, -144, -145, - -76, -152, -217, -150, -151, -217, -103, -102, -217, -34, - -202, -198, -99, -217, -217, -136, -198, -123, -122, -117, - -124, -125, -128, -135, -130, -118, -134, -132, -129, -119, - -131, -127, -5, -217, -111, -120, -121, -217, -206, -217, - -217, -138, -217, -142, -162, -217, -183, -217, -204, -217, - -217, -165, -63, -61, -66, -67, -217, -36, -91, -50, - -90, -51, -97, -92, -195, -194, -196, -217, -217, -169, - -203, -72, -48, -49, -30, -217, -147, -203, -104, -216, - -199, -98, -106, -111, -217, -110, -217, -210, -207, -211, - -139, -137, -217, -217, -189, -184, -186, -187, -164, -55, - -217, -167, -168, -70, -149, -217, -202, -217, -109, -112, - -217, -143, -217, -166, -146, -148, -217, -114, -217, -141, - -113, -140 ] + -179, -216, -216, -53, -216, -9, -10, -216, -216, -23, + -11, -171, -77, -12, -216, -13, -1, -216, -14, -2, + -15, -3, -216, -170, -16, -216, -17, -6, -216, -18, + -7, -216, -216, -19, -8, -171, -170, -179, -216, -54, + -28, -216, -25, -26, -27, -216, -216, -216, -52, -216, + -95, -179, -216, -4, -172, -176, -174, -204, -175, -178, + -177, -179, -88, -214, -40, -41, -196, -216, -100, -45, + -42, -216, -216, -43, -44, -32, -46, -33, -216, -105, + -47, -76, -75, -37, -159, -38, -158, -39, -216, -216, + -115, -216, -216, -108, -216, -116, -216, -216, -160, -161, + -163, -179, -56, -216, -88, -179, -216, -180, -181, -216, + -86, -20, -23, -170, -22, -24, -85, -87, -216, -93, + -202, -94, -96, -216, -179, 369, -216, -216, -216, -190, + -155, -89, -81, -82, -83, -84, -154, -156, -76, -78, + -73, -79, -71, -80, -216, -202, -216, -31, -216, -35, + -101, -216, -216, -216, -216, -199, -216, -216, -216, -133, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -211, + -216, -212, -208, -216, -207, -126, -216, -216, -196, -68, + -179, -216, -60, -59, -76, -62, -216, -69, -95, -216, + -216, -202, -216, -21, -189, -216, -202, -184, -187, -216, + -213, -216, -203, -216, -216, -216, -192, -216, -216, -173, + -191, -74, -216, -88, -216, -203, -157, -153, -216, -144, + -145, -76, -152, -216, -150, -151, -200, -201, -29, -216, + -216, -103, -102, -216, -34, -201, -197, -99, -216, -216, + -136, -197, -123, -122, -117, -124, -125, -128, -135, -130, + -118, -134, -132, -129, -119, -131, -127, -5, -216, -111, + -120, -121, -216, -205, -216, -138, -216, -142, -216, -162, + -216, -57, -65, -64, -216, -216, -216, -202, -201, -107, + -216, -58, -216, -182, -216, -203, -216, -216, -165, -51, + -97, -91, -92, -193, -194, -195, -216, -216, -169, -72, + -48, -202, -49, -90, -216, -147, -202, -30, -36, -104, + -215, -198, -98, -106, -111, -216, -110, -216, -209, -206, + -210, -216, -216, -139, -137, -63, -61, -66, -67, -216, + -50, -188, -183, -185, -186, -164, -216, -167, -168, -70, + -149, -216, -201, -216, -109, -112, -216, -143, -216, -55, + -166, -146, -148, -216, -114, -216, -141, -113, -140 ] racc_goto_table = [ - 6, 5, 58, 17, 9, 100, 84, 119, 133, 138, - 249, 119, 126, 55, 37, 210, 126, 6, 5, 168, - 106, 9, 129, 283, 162, 54, 20, 164, 151, 152, - 163, 61, 291, 157, 161, 149, 139, 156, 153, 226, - 6, 300, 247, 200, 113, 230, 122, 56, 155, 116, - 134, 166, 112, 335, 111, 159, 40, 248, 290, 257, - 172, 65, 241, 110, 160, 312, 318, 327, 357, 107, - 242, 143, 82, 178, 115, 235, 59, 146, 303, 293, - 110, 238, 119, 208, 138, 148, 108, 126, 209, 198, - 46, 315, 199, 15, nil, 326, nil, nil, nil, nil, - nil, nil, 358, nil, nil, nil, nil, nil, 6, nil, - nil, 220, 113, nil, nil, 297, nil, 116, 340, nil, - 206, 213, nil, nil, 254, nil, 306, 247, nil, 246, - nil, nil, nil, 157, 253, 149, nil, 156, nil, nil, - nil, nil, 115, nil, nil, nil, nil, nil, nil, 263, - 264, nil, nil, 259, nil, 251, nil, nil, 236, nil, - nil, 254, nil, nil, nil, 293, 246, nil, 245, 234, - 157, 253, 149, nil, 156, nil, nil, nil, nil, 119, - nil, nil, nil, 310, 126, nil, nil, 138, 65, 366, - 65, 368, 251, 294, 6, 5, 328, 162, 9, 320, - 365, 151, 152, 321, 346, 245, 157, 161, 149, 254, - 156, 153, 6, 5, 246, nil, 9, 361, 157, 253, - 149, 155, 156, nil, 99, nil, 353, 104, 159, 337, - 275, nil, 247, 355, 279, nil, nil, 6, 5, nil, - 251, 9, 117, nil, nil, nil, 314, 254, 135, 136, - 137, nil, 246, 245, nil, nil, 157, 253, 149, nil, - 156, nil, nil, nil, nil, nil, nil, 58, nil, nil, - nil, nil, nil, nil, nil, 198, 169, nil, 251, nil, - nil, nil, 6, 5, nil, nil, 9, nil, nil, nil, - nil, 245, nil, 176, 177, nil, nil, nil, nil, 254, - nil, 203, nil, nil, 246, nil, nil, 354, 157, 253, - 149, nil, 156, 359, 254, nil, nil, 6, 5, 246, - 350, 9, nil, 157, 253, 149, nil, 156, nil, nil, - 251, nil, nil, nil, nil, 58, nil, nil, nil, nil, - nil, nil, nil, 245, nil, 251, nil, nil, nil, nil, - 6, 5, nil, nil, 9, nil, nil, nil, 245, nil, - 6, 5, 6, 5, 9, nil, 9, nil, 258, nil, - nil, nil, nil, nil, nil, nil, nil, 267, 268, 269, - 270, 271, 272, 273, 274, nil, 276, 277, 278, nil, - 280, 281, nil, 285, 286, nil, nil, nil, nil, nil, + 2, 9, 53, 16, 93, 207, 230, 77, 133, 142, + 228, 136, 150, 182, 32, 132, 2, 9, 120, 135, + 131, 268, 49, 54, 37, 137, 141, 19, 130, 134, + 32, 145, 275, 99, 51, 211, 191, 115, 111, 326, + 202, 48, 112, 41, 109, 139, 229, 189, 278, 300, + 277, 189, 336, 242, 297, 32, 102, 316, 124, 148, + 224, 222, 131, 307, 108, 197, 154, 100, 140, 197, + 217, 61, 106, 201, 114, 126, 143, 181, 108, 160, + 353, 220, 205, 206, 75, 303, 180, 14, 129, nil, + nil, 199, 227, 315, 354, 136, nil, 228, nil, nil, + nil, nil, 115, 203, 59, nil, nil, 112, nil, 137, + 234, nil, 130, nil, nil, nil, 290, nil, nil, nil, + 32, 294, nil, nil, 333, 280, nil, nil, nil, 232, + nil, nil, 227, 219, nil, 136, 189, 244, nil, 114, + nil, nil, 277, nil, 248, 249, 226, nil, nil, 137, + 234, 216, 130, nil, 197, nil, nil, nil, nil, nil, + 235, nil, nil, nil, nil, nil, 287, 133, 309, 232, + 136, nil, nil, nil, 132, nil, 2, 9, 135, 227, + 319, 131, 136, 313, 137, 141, 226, 130, 134, 279, + 32, 328, 311, 343, nil, 357, 137, 234, nil, 130, + 235, 363, 339, 365, 139, nil, nil, nil, nil, 2, + 9, nil, nil, 362, 59, 59, 232, 228, 2, 9, + nil, nil, nil, 32, 227, nil, 349, 136, nil, nil, + 189, 351, 32, 226, nil, 143, nil, 92, 304, nil, + 97, 137, 234, nil, 130, nil, nil, 235, 197, nil, + 110, nil, nil, 53, nil, 181, 260, 116, 117, 118, + 264, 232, nil, nil, nil, nil, nil, 2, 9, nil, + nil, nil, nil, nil, nil, nil, nil, 227, 226, nil, + 136, 32, nil, nil, 151, nil, nil, nil, nil, nil, + nil, nil, 235, nil, 137, 234, nil, 130, 350, 227, + 158, 159, 136, nil, 355, nil, 2, 9, 185, 346, + nil, nil, nil, nil, 232, nil, 137, 234, nil, 130, + 32, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 226, 53, nil, nil, nil, 232, nil, nil, nil, + nil, nil, nil, nil, nil, 235, 2, 9, nil, nil, + nil, nil, nil, 226, nil, nil, 2, 9, 2, 9, + 32, nil, nil, nil, 243, nil, nil, 235, nil, nil, + 32, nil, 32, 252, 253, 254, 255, 256, 257, 258, + 259, nil, 261, 262, 263, nil, 265, 266, nil, 270, + 271, 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, 304, 305, nil, nil, - nil, nil, 307, 308, nil, nil, nil, nil, nil, nil, - 313, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 169, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 301, 302, 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, 339, nil, nil, - nil, nil, nil, 344, nil, nil, nil, 347, nil, nil, + nil, 318, 151, 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, 330, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 337, 338, nil, + nil, nil, nil, nil, 341, nil, nil, nil, 344, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 99 ] + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 92 ] racc_goto_check = [ - 43, 54, 4, 2, 22, 60, 25, 33, 41, 55, - 69, 33, 29, 43, 38, 81, 29, 43, 54, 58, - 71, 22, 23, 5, 30, 38, 3, 41, 32, 33, - 52, 77, 65, 37, 29, 31, 44, 36, 34, 42, - 43, 5, 67, 84, 22, 42, 47, 6, 35, 8, - 47, 23, 20, 61, 73, 28, 21, 68, 64, 59, - 23, 63, 40, 3, 39, 57, 5, 70, 27, 72, - 42, 73, 24, 23, 6, 74, 75, 76, 48, 67, - 3, 78, 33, 79, 55, 3, 21, 29, 80, 28, - 46, 82, 83, 1, nil, 69, nil, nil, nil, nil, - nil, nil, 61, nil, nil, nil, nil, nil, 43, nil, - nil, 44, 22, nil, nil, 42, nil, 8, 65, nil, - 20, 47, nil, nil, 30, nil, 42, 67, nil, 33, - nil, nil, nil, 37, 29, 31, nil, 36, nil, nil, - nil, nil, 6, nil, nil, nil, nil, nil, nil, 23, - 23, nil, nil, 25, nil, 28, nil, nil, 77, nil, - nil, 30, nil, nil, nil, 67, 33, nil, 54, 3, - 37, 29, 31, nil, 36, nil, nil, nil, nil, 33, - nil, nil, nil, 55, 29, nil, nil, 55, 63, 5, - 63, 5, 28, 71, 43, 54, 58, 30, 22, 41, - 69, 32, 33, 52, 81, 54, 37, 29, 31, 30, - 36, 34, 43, 54, 33, nil, 22, 67, 37, 29, - 31, 35, 36, nil, 26, nil, 42, 26, 28, 84, - 63, nil, 67, 42, 63, nil, nil, 43, 54, nil, - 28, 22, 26, nil, nil, nil, 38, 30, 26, 26, - 26, nil, 33, 54, nil, nil, 37, 29, 31, nil, - 36, nil, nil, nil, nil, nil, nil, 4, nil, nil, - nil, nil, nil, nil, nil, 28, 26, nil, 28, nil, - nil, nil, 43, 54, nil, nil, 22, nil, nil, nil, - nil, 54, nil, 26, 26, nil, nil, nil, nil, 30, - nil, 26, nil, nil, 33, nil, nil, 25, 37, 29, - 31, nil, 36, 60, 30, nil, nil, 43, 54, 33, - 2, 22, nil, 37, 29, 31, nil, 36, nil, nil, - 28, nil, nil, nil, nil, 4, nil, nil, nil, nil, - nil, nil, nil, 54, nil, 28, nil, nil, nil, nil, - 43, 54, nil, nil, 22, nil, nil, nil, 54, nil, - 43, 54, 43, 54, 22, nil, 22, nil, 26, nil, - nil, nil, nil, nil, nil, nil, nil, 26, 26, 26, - 26, 26, 26, 26, 26, nil, 26, 26, 26, nil, - 26, 26, nil, 26, 26, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 26, 26, nil, nil, - nil, nil, 26, 26, nil, nil, nil, nil, nil, nil, + 53, 22, 4, 2, 59, 80, 68, 25, 33, 51, + 66, 36, 57, 83, 30, 32, 53, 22, 43, 35, + 54, 5, 30, 76, 38, 37, 29, 3, 31, 34, + 30, 41, 64, 70, 38, 42, 46, 8, 20, 60, + 46, 6, 22, 21, 72, 28, 67, 33, 63, 56, + 66, 33, 47, 58, 5, 30, 45, 69, 72, 23, + 42, 40, 54, 5, 3, 29, 23, 71, 39, 29, + 73, 74, 21, 41, 6, 75, 30, 28, 3, 23, + 27, 77, 78, 79, 24, 81, 82, 1, 3, nil, + nil, 23, 33, 68, 60, 36, nil, 66, nil, nil, + nil, nil, 8, 20, 62, nil, nil, 22, nil, 37, + 29, nil, 31, nil, nil, nil, 42, nil, nil, nil, + 30, 42, nil, nil, 64, 46, nil, nil, nil, 28, + nil, nil, 33, 76, nil, 36, 33, 25, nil, 6, + nil, nil, 66, nil, 23, 23, 53, nil, nil, 37, + 29, 3, 31, nil, 29, nil, nil, nil, nil, nil, + 30, nil, nil, nil, nil, nil, 43, 33, 51, 28, + 36, nil, nil, nil, 32, nil, 53, 22, 35, 33, + 57, 54, 36, 54, 37, 29, 53, 31, 34, 70, + 30, 83, 41, 80, nil, 66, 37, 29, nil, 31, + 30, 5, 42, 5, 28, nil, nil, nil, nil, 53, + 22, nil, nil, 68, 62, 62, 28, 66, 53, 22, + nil, nil, nil, 30, 33, nil, 42, 36, nil, nil, + 33, 42, 30, 53, nil, 30, nil, 26, 38, nil, + 26, 37, 29, nil, 31, nil, nil, 30, 29, nil, + 26, nil, nil, 4, nil, 28, 62, 26, 26, 26, + 62, 28, nil, nil, nil, nil, nil, 53, 22, nil, + nil, nil, nil, nil, nil, nil, nil, 33, 53, nil, + 36, 30, nil, nil, 26, nil, nil, nil, nil, nil, + nil, nil, 30, nil, 37, 29, nil, 31, 25, 33, + 26, 26, 36, nil, 59, nil, 53, 22, 26, 2, + nil, nil, nil, nil, 28, nil, 37, 29, nil, 31, + 30, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 53, 4, nil, nil, nil, 28, nil, nil, nil, + nil, nil, nil, nil, nil, 30, 53, 22, nil, nil, + nil, nil, nil, 53, nil, nil, 53, 22, 53, 22, + 30, nil, nil, nil, 26, nil, nil, 30, nil, nil, + 30, nil, 30, 26, 26, 26, 26, 26, 26, 26, + 26, nil, 26, 26, 26, nil, 26, 26, nil, 26, 26, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 26, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 26, 26, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 26, 26, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 26, nil, nil, - nil, nil, nil, 26, nil, nil, nil, 26, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 26, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 26, 26, nil, + nil, nil, nil, nil, 26, nil, nil, nil, 26, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 26 ] + nil, nil, nil, nil, nil, nil, nil, 26 ] racc_goto_pointer = [ - nil, 93, 3, 26, -15, -171, 34, nil, 9, nil, + nil, 87, 3, 27, -14, -155, 33, nil, -4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 12, 53, 4, -25, 48, -18, 198, -259, -12, -33, - -43, -32, -39, -38, -29, -19, -30, -34, 13, -3, - -98, -40, -94, 0, -17, nil, 84, 1, -139, nil, - nil, nil, -37, nil, 1, -44, nil, -166, -59, -110, - -21, -231, nil, 43, -146, -172, nil, -125, -110, -157, - -185, -12, 37, 17, -68, 58, 18, 13, -66, -26, - -21, -94, -142, -9, -58, nil ] + -3, 39, 1, -12, 61, -16, 212, -236, -17, -36, + 14, -34, -47, -54, -33, -43, -51, -37, 23, 6, + -79, -31, -85, -32, nil, 24, -65, -232, nil, nil, + nil, -53, nil, 0, -42, nil, -163, -60, -98, -21, + -230, nil, 87, -138, -154, nil, -136, -100, -140, -176, + 2, 36, 7, -54, 54, 14, 6, -47, -25, -24, + -102, -130, -8, -81, nil ] racc_goto_default = [ - nil, nil, 282, 121, 22, nil, 28, 31, 34, 4, - 7, 10, 14, 16, 19, 21, 25, 27, 30, 33, - 3, nil, 74, nil, nil, 97, 130, 224, 90, 91, - 94, 68, 71, 75, 80, 81, 83, 87, 23, nil, - nil, nil, nil, 70, nil, 13, nil, nil, 123, 217, - 125, 127, nil, 150, 69, 131, 140, 141, nil, nil, - nil, nil, 102, 92, nil, nil, 292, 77, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 62, nil, - nil, nil, nil, nil, nil, 202 ] + nil, nil, 267, 193, 21, nil, 27, 30, 34, 5, + 6, 10, 13, 15, 18, 20, 24, 26, 29, 33, + 4, nil, 69, nil, nil, 90, 149, 239, 83, 85, + 87, 64, 65, 70, 73, 74, 76, 80, 22, nil, + nil, nil, nil, nil, 8, nil, nil, 192, 284, 195, + 196, nil, 144, 63, 119, 121, 122, nil, nil, nil, + nil, 95, 84, nil, nil, 276, 67, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 56, nil, nil, + nil, nil, nil, nil, 183 ] racc_reduce_table = [ 0, 0, :racc_error, 1, 69, :_reduce_none, 1, 69, :_reduce_none, 1, 70, :_reduce_3, 2, 70, :_reduce_4, 1, 73, :_reduce_5, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 1, 72, :_reduce_none, 3, 87, :_reduce_20, 3, 87, :_reduce_21, 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_29, 5, 81, :_reduce_30, 3, 81, :_reduce_31, 2, 81, :_reduce_32, 1, 92, :_reduce_33, 3, 92, :_reduce_34, 1, 91, :_reduce_35, 3, 91, :_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_none, 1, 93, :_reduce_none, 1, 93, :_reduce_none, 5, 74, :_reduce_48, 5, 74, :_reduce_49, 5, 74, :_reduce_50, 5, 85, :_reduce_51, 2, 75, :_reduce_52, - 1, 113, :_reduce_53, - 2, 113, :_reduce_54, + 1, 112, :_reduce_53, + 2, 112, :_reduce_54, 6, 76, :_reduce_55, 2, 76, :_reduce_56, - 3, 114, :_reduce_57, - 3, 114, :_reduce_58, + 3, 113, :_reduce_57, + 3, 113, :_reduce_58, + 1, 114, :_reduce_none, + 1, 114, :_reduce_none, + 3, 114, :_reduce_61, 1, 115, :_reduce_none, - 1, 115, :_reduce_none, - 3, 115, :_reduce_61, - 1, 116, :_reduce_none, - 3, 116, :_reduce_63, - 1, 117, :_reduce_64, - 1, 117, :_reduce_65, - 3, 118, :_reduce_66, - 3, 118, :_reduce_67, - 1, 119, :_reduce_none, - 1, 119, :_reduce_none, - 4, 120, :_reduce_70, + 3, 115, :_reduce_63, + 1, 116, :_reduce_64, + 1, 116, :_reduce_65, + 3, 117, :_reduce_66, + 3, 117, :_reduce_67, + 1, 118, :_reduce_none, + 1, 118, :_reduce_none, + 4, 119, :_reduce_70, 1, 107, :_reduce_71, 3, 107, :_reduce_72, 0, 108, :_reduce_none, 1, 108, :_reduce_none, 1, 105, :_reduce_75, 1, 97, :_reduce_76, 1, 98, :_reduce_77, - 1, 121, :_reduce_none, - 1, 121, :_reduce_none, - 1, 121, :_reduce_none, - 1, 121, :_reduce_none, - 1, 121, :_reduce_none, - 1, 121, :_reduce_none, - 1, 121, :_reduce_none, + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, + 1, 120, :_reduce_none, 3, 77, :_reduce_85, 3, 77, :_reduce_86, 3, 86, :_reduce_87, 0, 109, :_reduce_88, 1, 109, :_reduce_89, 3, 109, :_reduce_90, - 3, 123, :_reduce_91, - 3, 124, :_reduce_92, - 1, 125, :_reduce_none, - 1, 125, :_reduce_none, - 0, 112, :_reduce_95, - 1, 112, :_reduce_96, - 3, 112, :_reduce_97, + 3, 122, :_reduce_91, + 3, 123, :_reduce_92, + 1, 124, :_reduce_none, + 1, 124, :_reduce_none, + 0, 111, :_reduce_95, + 1, 111, :_reduce_96, + 3, 111, :_reduce_97, 4, 104, :_reduce_98, 3, 104, :_reduce_99, 1, 96, :_reduce_100, 2, 96, :_reduce_101, - 2, 126, :_reduce_102, - 1, 127, :_reduce_103, - 2, 127, :_reduce_104, + 2, 125, :_reduce_102, + 1, 126, :_reduce_103, + 2, 126, :_reduce_104, 1, 99, :_reduce_105, 4, 90, :_reduce_106, 4, 90, :_reduce_107, 2, 79, :_reduce_108, - 5, 128, :_reduce_109, - 4, 128, :_reduce_110, - 0, 129, :_reduce_none, - 2, 129, :_reduce_112, - 4, 129, :_reduce_113, - 3, 129, :_reduce_114, + 5, 127, :_reduce_109, + 4, 127, :_reduce_110, + 0, 128, :_reduce_none, + 2, 128, :_reduce_112, + 4, 128, :_reduce_113, + 3, 128, :_reduce_114, 1, 94, :_reduce_none, 1, 94, :_reduce_none, 3, 94, :_reduce_117, 3, 94, :_reduce_118, 3, 94, :_reduce_119, 3, 94, :_reduce_120, 3, 94, :_reduce_121, 3, 94, :_reduce_122, 3, 94, :_reduce_123, 3, 94, :_reduce_124, 3, 94, :_reduce_125, 2, 94, :_reduce_126, 3, 94, :_reduce_127, 3, 94, :_reduce_128, 3, 94, :_reduce_129, 3, 94, :_reduce_130, 3, 94, :_reduce_131, 3, 94, :_reduce_132, 2, 94, :_reduce_133, 3, 94, :_reduce_134, 3, 94, :_reduce_135, 3, 94, :_reduce_136, 5, 78, :_reduce_137, - 1, 132, :_reduce_138, - 2, 132, :_reduce_139, - 5, 133, :_reduce_140, - 4, 133, :_reduce_141, - 1, 134, :_reduce_142, - 3, 134, :_reduce_143, + 1, 131, :_reduce_138, + 2, 131, :_reduce_139, + 5, 132, :_reduce_140, + 4, 132, :_reduce_141, + 1, 133, :_reduce_142, + 3, 133, :_reduce_143, 3, 100, :_reduce_144, - 1, 136, :_reduce_none, - 4, 136, :_reduce_146, - 1, 138, :_reduce_none, - 3, 138, :_reduce_148, - 3, 137, :_reduce_149, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_158, - 1, 135, :_reduce_none, - 1, 139, :_reduce_160, - 1, 140, :_reduce_none, - 3, 140, :_reduce_162, + 4, 135, :_reduce_146, + 1, 137, :_reduce_none, + 3, 137, :_reduce_148, + 3, 136, :_reduce_149, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_none, + 1, 134, :_reduce_158, + 1, 134, :_reduce_none, + 1, 138, :_reduce_160, + 1, 139, :_reduce_none, + 3, 139, :_reduce_162, 2, 80, :_reduce_163, 6, 82, :_reduce_164, 5, 82, :_reduce_165, 7, 83, :_reduce_166, 6, 83, :_reduce_167, 6, 84, :_reduce_168, 5, 84, :_reduce_169, - 1, 111, :_reduce_170, + 1, 106, :_reduce_170, 1, 106, :_reduce_171, - 1, 106, :_reduce_172, - 1, 143, :_reduce_173, - 3, 143, :_reduce_174, + 1, 142, :_reduce_172, + 3, 142, :_reduce_173, + 1, 144, :_reduce_174, 1, 145, :_reduce_175, - 1, 146, :_reduce_176, - 1, 146, :_reduce_177, - 1, 146, :_reduce_178, - 1, 146, :_reduce_none, - 0, 71, :_reduce_180, - 0, 147, :_reduce_181, - 1, 141, :_reduce_none, - 3, 141, :_reduce_183, - 4, 141, :_reduce_184, - 1, 148, :_reduce_none, + 1, 145, :_reduce_176, + 1, 145, :_reduce_177, + 1, 145, :_reduce_none, + 0, 71, :_reduce_179, + 0, 146, :_reduce_180, + 1, 140, :_reduce_none, + 3, 140, :_reduce_182, + 4, 140, :_reduce_183, + 1, 147, :_reduce_none, + 3, 147, :_reduce_185, 3, 148, :_reduce_186, - 3, 149, :_reduce_187, - 1, 149, :_reduce_188, - 3, 149, :_reduce_189, - 1, 149, :_reduce_190, - 1, 144, :_reduce_none, - 2, 144, :_reduce_192, - 1, 142, :_reduce_none, - 2, 142, :_reduce_194, - 1, 150, :_reduce_none, - 1, 150, :_reduce_none, - 1, 101, :_reduce_197, - 3, 102, :_reduce_198, - 4, 102, :_reduce_199, - 2, 102, :_reduce_200, + 1, 148, :_reduce_187, + 3, 148, :_reduce_188, + 1, 148, :_reduce_189, + 1, 143, :_reduce_none, + 2, 143, :_reduce_191, + 1, 141, :_reduce_none, + 2, 141, :_reduce_193, + 1, 149, :_reduce_none, + 1, 149, :_reduce_none, + 1, 101, :_reduce_196, + 3, 102, :_reduce_197, + 4, 102, :_reduce_198, + 2, 102, :_reduce_199, 1, 95, :_reduce_none, 1, 95, :_reduce_none, 0, 110, :_reduce_none, - 1, 110, :_reduce_204, - 1, 131, :_reduce_205, - 3, 130, :_reduce_206, - 4, 130, :_reduce_207, - 2, 130, :_reduce_208, - 1, 151, :_reduce_none, + 1, 110, :_reduce_203, + 1, 130, :_reduce_204, + 3, 129, :_reduce_205, + 4, 129, :_reduce_206, + 2, 129, :_reduce_207, + 1, 150, :_reduce_none, + 3, 150, :_reduce_209, 3, 151, :_reduce_210, - 3, 152, :_reduce_211, - 1, 153, :_reduce_212, - 1, 153, :_reduce_213, - 4, 122, :_reduce_214, + 1, 152, :_reduce_211, + 1, 152, :_reduce_212, + 4, 121, :_reduce_213, 1, 103, :_reduce_none, - 4, 103, :_reduce_216 ] + 4, 103, :_reduce_215 ] -racc_reduce_n = 217 +racc_reduce_n = 216 -racc_shift_n = 372 +racc_shift_n = 369 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, :CLASSREF => 47, :NOT => 48, :OR => 49, :AND => 50, :UNDEF => 51, :PARROW => 52, :PLUS => 53, :MINUS => 54, :TIMES => 55, :DIV => 56, :LSHIFT => 57, :RSHIFT => 58, :UMINUS => 59, :MATCH => 60, :NOMATCH => 61, :REGEX => 62, :IN_EDGE => 63, :OUT_EDGE => 64, :IN_EDGE_SUB => 65, :OUT_EDGE_SUB => 66, :IN => 67 } racc_nt_base = 68 racc_use_result_var = true 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", "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", "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", "expressions", "funcvalues", "rvalue", "expression", "comma", "quotedtext", "name", "type", "boolean", "selector", "variable", "array", "hasharrayaccesses", "funcrvalue", "undef", "classname", "resourceinstances", "endsemi", "params", "endcomma", - "classref", "anyparams", "at", "collectrhand", "collstatements", "collstatement", "colljoin", "collexpr", "colllval", "resourceinst", "resourcename", "hasharrayaccess", "param", "addparam", "anyparam", "dqrval", "dqtail", "ifstatement", "else", "hash", "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 # reduce 1 omitted # reduce 2 omitted module_eval(<<'.,.,', 'grammar.ra', 34) def _reduce_3(val, _values, result) result = ast AST::ASTArray, :children => (val[0] ? [val[0]] : []) result end .,., module_eval(<<'.,.,', 'grammar.ra', 37) def _reduce_4(val, _values, result) if val[1] val[0].push(val[1]) end result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.ra', 46) 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 end .,., # 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 # reduce 18 omitted # reduce 19 omitted module_eval(<<'.,.,', 'grammar.ra', 72) 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', 75) def _reduce_21(val, _values, result) result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context) result end .,., # reduce 22 omitted # reduce 23 omitted # reduce 24 omitted # reduce 25 omitted # reduce 26 omitted # reduce 27 omitted # reduce 28 omitted module_eval(<<'.,.,', 'grammar.ra', 83) def _reduce_29(val, _values, result) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[2], :ftype => :statement result end .,., module_eval(<<'.,.,', 'grammar.ra', 90) def _reduce_30(val, _values, result) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[2], :ftype => :statement result end .,., module_eval(<<'.,.,', 'grammar.ra', 96) 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 end .,., module_eval(<<'.,.,', 'grammar.ra', 103) def _reduce_32(val, _values, result) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[1], :ftype => :statement result end .,., module_eval(<<'.,.,', 'grammar.ra', 110) def _reduce_33(val, _values, result) result = aryfy(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.ra', 113) def _reduce_34(val, _values, result) val[0].push(val[2]) result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.ra', 117) def _reduce_35(val, _values, result) result = aryfy(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.ra', 118) def _reduce_36(val, _values, result) result = val[0].push(val[2]) result end .,., # reduce 37 omitted # reduce 38 omitted # reduce 39 omitted # reduce 40 omitted # reduce 41 omitted # reduce 42 omitted # reduce 43 omitted # reduce 44 omitted # reduce 45 omitted # reduce 46 omitted # reduce 47 omitted module_eval(<<'.,.,', 'grammar.ra', 133) def _reduce_48(val, _values, result) @lexer.commentpop result = ast(AST::Resource, :type => val[0], :instances => val[2]) result end .,., module_eval(<<'.,.,', 'grammar.ra', 136) def _reduce_49(val, _values, result) # This is a deprecated syntax. error "All resource specifications require names" result end .,., module_eval(<<'.,.,', 'grammar.ra', 139) def _reduce_50(val, _values, result) # a defaults setting for a type @lexer.commentpop - result = ast(AST::ResourceDefaults, :type => val[0], :parameters => val[2]) + result = ast(AST::ResourceDefaults, :type => val[0].value, :parameters => val[2]) result end .,., module_eval(<<'.,.,', 'grammar.ra', 146) def _reduce_51(val, _values, result) @lexer.commentpop result = ast AST::ResourceOverride, :object => val[0], :parameters => val[2] result end .,., module_eval(<<'.,.,', 'grammar.ra', 153) def _reduce_52(val, _values, result) type = val[0] if (type == :exported and ! Puppet[:storeconfigs]) Puppet.warning addcontext("You cannot collect without storeconfigs being set") end error "Defaults are not virtualizable" if val[1].is_a? AST::ResourceDefaults method = type.to_s + "=" # Just mark our resource as exported and pass it through. val[1].send(method, true) result = val[1] result end .,., module_eval(<<'.,.,', 'grammar.ra', 169) def _reduce_53(val, _values, result) result = :virtual result end .,., module_eval(<<'.,.,', 'grammar.ra', 170) def _reduce_54(val, _values, result) result = :exported result end .,., module_eval(<<'.,.,', 'grammar.ra', 175) def _reduce_55(val, _values, result) @lexer.commentpop - Puppet.warning addcontext("Collection names must now be capitalized") if val[0] =~ /^[a-z]/ - type = val[0].downcase + type = val[0].value.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] 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', 194) +module_eval(<<'.,.,', 'grammar.ra', 193) def _reduce_56(val, _values, result) - if val[0] =~ /^[a-z]/ - Puppet.warning addcontext("Collection names must now be capitalized") - end - type = val[0].downcase + type = val[0].value.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] 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', 215) +module_eval(<<'.,.,', 'grammar.ra', 211) def _reduce_57(val, _values, result) if val[1] result = val[1] result.form = :virtual else result = :virtual end result end .,., -module_eval(<<'.,.,', 'grammar.ra', 223) +module_eval(<<'.,.,', 'grammar.ra', 219) def _reduce_58(val, _values, result) if val[1] result = val[1] result.form = :exported else result = :exported end result end .,., # reduce 59 omitted # reduce 60 omitted -module_eval(<<'.,.,', 'grammar.ra', 236) +module_eval(<<'.,.,', 'grammar.ra', 232) def _reduce_61(val, _values, result) result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2] result end .,., # reduce 62 omitted -module_eval(<<'.,.,', 'grammar.ra', 241) +module_eval(<<'.,.,', 'grammar.ra', 237) def _reduce_63(val, _values, result) result = val[1] result.parens = true result end .,., -module_eval(<<'.,.,', 'grammar.ra', 245) +module_eval(<<'.,.,', 'grammar.ra', 241) def _reduce_64(val, _values, result) result=val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 246) +module_eval(<<'.,.,', 'grammar.ra', 242) def _reduce_65(val, _values, result) result=val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 249) +module_eval(<<'.,.,', 'grammar.ra', 245) def _reduce_66(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', 254) +module_eval(<<'.,.,', 'grammar.ra', 250) def _reduce_67(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 68 omitted # reduce 69 omitted -module_eval(<<'.,.,', 'grammar.ra', 263) +module_eval(<<'.,.,', 'grammar.ra', 259) def _reduce_70(val, _values, result) result = ast AST::ResourceInstance, :title => val[0], :parameters => val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 266) +module_eval(<<'.,.,', 'grammar.ra', 262) def _reduce_71(val, _values, result) result = aryfy(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.ra', 268) +module_eval(<<'.,.,', 'grammar.ra', 264) def _reduce_72(val, _values, result) val[0].push val[2] result = val[0] result end .,., # reduce 73 omitted # reduce 74 omitted -module_eval(<<'.,.,', 'grammar.ra', 276) +module_eval(<<'.,.,', 'grammar.ra', 272) def _reduce_75(val, _values, result) result = ast AST::Undef, :value => :undef result end .,., -module_eval(<<'.,.,', 'grammar.ra', 280) +module_eval(<<'.,.,', 'grammar.ra', 276) def _reduce_76(val, _values, result) result = ast AST::Name, :value => val[0][:value], :line => val[0][:line] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 284) +module_eval(<<'.,.,', 'grammar.ra', 280) def _reduce_77(val, _values, result) result = ast AST::Type, :value => val[0][:value], :line => val[0][:line] result end .,., # reduce 78 omitted # reduce 79 omitted # reduce 80 omitted # reduce 81 omitted # reduce 82 omitted # reduce 83 omitted # reduce 84 omitted -module_eval(<<'.,.,', 'grammar.ra', 296) +module_eval(<<'.,.,', 'grammar.ra', 292) def _reduce_85(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 302) +module_eval(<<'.,.,', 'grammar.ra', 298) def _reduce_86(val, _values, result) result = ast AST::VarDef, :name => val[0], :value => val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 306) +module_eval(<<'.,.,', 'grammar.ra', 302) def _reduce_87(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', 312) +module_eval(<<'.,.,', 'grammar.ra', 308) def _reduce_88(val, _values, result) result = ast AST::ASTArray result end .,., -module_eval(<<'.,.,', 'grammar.ra', 314) +module_eval(<<'.,.,', 'grammar.ra', 310) def _reduce_89(val, _values, result) result = aryfy(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.ra', 316) +module_eval(<<'.,.,', 'grammar.ra', 312) def _reduce_90(val, _values, result) val[0].push(val[2]) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 321) +module_eval(<<'.,.,', 'grammar.ra', 317) def _reduce_91(val, _values, result) result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 325) +module_eval(<<'.,.,', 'grammar.ra', 321) def _reduce_92(val, _values, result) result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2], :add => true result end .,., # reduce 93 omitted # reduce 94 omitted -module_eval(<<'.,.,', 'grammar.ra', 334) +module_eval(<<'.,.,', 'grammar.ra', 330) def _reduce_95(val, _values, result) result = ast AST::ASTArray result end .,., -module_eval(<<'.,.,', 'grammar.ra', 336) +module_eval(<<'.,.,', 'grammar.ra', 332) def _reduce_96(val, _values, result) result = aryfy(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.ra', 338) +module_eval(<<'.,.,', 'grammar.ra', 334) def _reduce_97(val, _values, result) val[0].push(val[2]) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 344) +module_eval(<<'.,.,', 'grammar.ra', 340) def _reduce_98(val, _values, result) result = ast AST::Function, :name => val[0][:value], :line => val[0][:line], :arguments => val[2], :ftype => :rvalue result end .,., -module_eval(<<'.,.,', 'grammar.ra', 349) +module_eval(<<'.,.,', 'grammar.ra', 345) def _reduce_99(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', 355) +module_eval(<<'.,.,', 'grammar.ra', 351) def _reduce_100(val, _values, result) result = ast AST::String, :value => val[0][:value], :line => val[0][:line] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 356) +module_eval(<<'.,.,', 'grammar.ra', 352) def _reduce_101(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', 358) +module_eval(<<'.,.,', 'grammar.ra', 354) def _reduce_102(val, _values, result) result = [val[0]] + val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 360) +module_eval(<<'.,.,', 'grammar.ra', 356) def _reduce_103(val, _values, result) result = [ast(AST::String,val[0])] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 361) +module_eval(<<'.,.,', 'grammar.ra', 357) def _reduce_104(val, _values, result) result = [ast(AST::String,val[0])] + val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 364) +module_eval(<<'.,.,', 'grammar.ra', 360) def _reduce_105(val, _values, result) result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 368) +module_eval(<<'.,.,', 'grammar.ra', 364) def _reduce_106(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', 371) +module_eval(<<'.,.,', 'grammar.ra', 367) def _reduce_107(val, _values, result) - result = ast AST::ResourceReference, :type => val[0], :title => val[2] + result = ast AST::ResourceReference, :type => val[0].value, :title => val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 375) +module_eval(<<'.,.,', 'grammar.ra', 371) def _reduce_108(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 379) +module_eval(<<'.,.,', 'grammar.ra', 375) def _reduce_109(val, _values, result) @lexer.commentpop args = { :test => val[0], :statements => val[2] } args[:else] = val[4] if val[4] result = ast AST::IfStatement, args result end .,., -module_eval(<<'.,.,', 'grammar.ra', 390) +module_eval(<<'.,.,', 'grammar.ra', 386) def _reduce_110(val, _values, result) @lexer.commentpop args = { :test => val[0], :statements => ast(AST::Nop) } args[:else] = val[3] if val[3] result = ast AST::IfStatement, args result end .,., # reduce 111 omitted -module_eval(<<'.,.,', 'grammar.ra', 403) +module_eval(<<'.,.,', 'grammar.ra', 399) def _reduce_112(val, _values, result) result = ast AST::Else, :statements => val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 406) +module_eval(<<'.,.,', 'grammar.ra', 402) def _reduce_113(val, _values, result) @lexer.commentpop result = ast AST::Else, :statements => val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 410) +module_eval(<<'.,.,', 'grammar.ra', 406) def _reduce_114(val, _values, result) @lexer.commentpop result = ast AST::Else, :statements => ast(AST::Nop) result end .,., # reduce 115 omitted # reduce 116 omitted -module_eval(<<'.,.,', 'grammar.ra', 429) +module_eval(<<'.,.,', 'grammar.ra', 425) def _reduce_117(val, _values, result) result = ast AST::InOperator, :lval => val[0], :rval => val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 432) +module_eval(<<'.,.,', 'grammar.ra', 428) 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', 435) +module_eval(<<'.,.,', 'grammar.ra', 431) 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', 438) +module_eval(<<'.,.,', 'grammar.ra', 434) 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', 441) +module_eval(<<'.,.,', 'grammar.ra', 437) 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', 444) +module_eval(<<'.,.,', 'grammar.ra', 440) 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', 447) +module_eval(<<'.,.,', 'grammar.ra', 443) 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', 450) +module_eval(<<'.,.,', 'grammar.ra', 446) 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', 453) +module_eval(<<'.,.,', 'grammar.ra', 449) 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', 456) +module_eval(<<'.,.,', 'grammar.ra', 452) def _reduce_126(val, _values, result) result = ast AST::Minus, :value => val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 459) +module_eval(<<'.,.,', 'grammar.ra', 455) 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', 462) +module_eval(<<'.,.,', 'grammar.ra', 458) 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', 465) +module_eval(<<'.,.,', 'grammar.ra', 461) 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', 468) +module_eval(<<'.,.,', 'grammar.ra', 464) 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', 471) +module_eval(<<'.,.,', 'grammar.ra', 467) 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', 474) +module_eval(<<'.,.,', 'grammar.ra', 470) 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', 477) +module_eval(<<'.,.,', 'grammar.ra', 473) def _reduce_133(val, _values, result) result = ast AST::Not, :value => val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 480) +module_eval(<<'.,.,', 'grammar.ra', 476) 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', 483) +module_eval(<<'.,.,', 'grammar.ra', 479) 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', 486) +module_eval(<<'.,.,', 'grammar.ra', 482) def _reduce_136(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 490) +module_eval(<<'.,.,', 'grammar.ra', 486) def _reduce_137(val, _values, result) @lexer.commentpop result = ast AST::CaseStatement, :test => val[1], :options => val[3] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 494) +module_eval(<<'.,.,', 'grammar.ra', 490) def _reduce_138(val, _values, result) result = aryfy(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.ra', 496) +module_eval(<<'.,.,', 'grammar.ra', 492) def _reduce_139(val, _values, result) val[0].push val[1] result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 501) +module_eval(<<'.,.,', 'grammar.ra', 497) def _reduce_140(val, _values, result) @lexer.commentpop result = ast AST::CaseOpt, :value => val[0], :statements => val[3] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 504) +module_eval(<<'.,.,', 'grammar.ra', 500) def _reduce_141(val, _values, result) @lexer.commentpop result = ast( AST::CaseOpt, :value => val[0], :statements => ast(AST::ASTArray) ) result end .,., -module_eval(<<'.,.,', 'grammar.ra', 514) +module_eval(<<'.,.,', 'grammar.ra', 510) def _reduce_142(val, _values, result) result = aryfy(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.ra', 516) +module_eval(<<'.,.,', 'grammar.ra', 512) def _reduce_143(val, _values, result) val[0].push(val[2]) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 521) +module_eval(<<'.,.,', 'grammar.ra', 517) 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', 526) +module_eval(<<'.,.,', 'grammar.ra', 522) def _reduce_146(val, _values, result) @lexer.commentpop result = val[1] result end .,., # reduce 147 omitted -module_eval(<<'.,.,', 'grammar.ra', 532) +module_eval(<<'.,.,', 'grammar.ra', 528) 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', 541) +module_eval(<<'.,.,', 'grammar.ra', 537) 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 # reduce 157 omitted -module_eval(<<'.,.,', 'grammar.ra', 553) +module_eval(<<'.,.,', 'grammar.ra', 549) def _reduce_158(val, _values, result) result = ast AST::Default, :value => val[0][:value], :line => val[0][:line] result end .,., # reduce 159 omitted -module_eval(<<'.,.,', 'grammar.ra', 558) +module_eval(<<'.,.,', 'grammar.ra', 554) def _reduce_160(val, _values, result) result = [val[0][:value]] result end .,., # reduce 161 omitted -module_eval(<<'.,.,', 'grammar.ra', 560) +module_eval(<<'.,.,', 'grammar.ra', 556) def _reduce_162(val, _values, result) result = val[0] += val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 563) +module_eval(<<'.,.,', 'grammar.ra', 559) def _reduce_163(val, _values, result) val[1].each do |file| import(file) end result = nil result end .,., -module_eval(<<'.,.,', 'grammar.ra', 573) +module_eval(<<'.,.,', 'grammar.ra', 569) def _reduce_164(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 581) +module_eval(<<'.,.,', 'grammar.ra', 577) def _reduce_165(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 589) +module_eval(<<'.,.,', 'grammar.ra', 585) def _reduce_166(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 596) +module_eval(<<'.,.,', 'grammar.ra', 592) def _reduce_167(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 605) +module_eval(<<'.,.,', 'grammar.ra', 601) def _reduce_168(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 610) +module_eval(<<'.,.,', 'grammar.ra', 606) def _reduce_169(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 end .,., -module_eval(<<'.,.,', 'grammar.ra', 614) +module_eval(<<'.,.,', 'grammar.ra', 610) def _reduce_170(val, _values, result) result = val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 616) +module_eval(<<'.,.,', 'grammar.ra', 611) def _reduce_171(val, _values, result) - result = val[0][:value] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.ra', 617) - def _reduce_172(val, _values, result) result = "class" result end .,., -module_eval(<<'.,.,', 'grammar.ra', 622) - def _reduce_173(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 616) + def _reduce_172(val, _values, result) result = [result] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 625) - def _reduce_174(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 619) + def _reduce_173(val, _values, result) result = val[0] result << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 630) - def _reduce_175(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 624) + def _reduce_174(val, _values, result) result = ast AST::HostName, :value => val[0] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 633) - def _reduce_176(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 627) + def _reduce_175(val, _values, result) result = val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 634) - def _reduce_177(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 628) + def _reduce_176(val, _values, result) result = val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 635) - def _reduce_178(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 629) + def _reduce_177(val, _values, result) result = val[0][:value] result end .,., -# reduce 179 omitted +# reduce 178 omitted -module_eval(<<'.,.,', 'grammar.ra', 639) - def _reduce_180(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 633) + def _reduce_179(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'grammar.ra', 643) - def _reduce_181(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 637) + def _reduce_180(val, _values, result) result = ast AST::ASTArray, :children => [] result end .,., -# reduce 182 omitted +# reduce 181 omitted -module_eval(<<'.,.,', 'grammar.ra', 648) - def _reduce_183(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 642) + def _reduce_182(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'grammar.ra', 651) - def _reduce_184(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 645) + def _reduce_183(val, _values, result) result = val[1] result = [result] unless result[0].is_a?(Array) result end .,., -# reduce 185 omitted +# reduce 184 omitted -module_eval(<<'.,.,', 'grammar.ra', 657) - def _reduce_186(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 651) + def _reduce_185(val, _values, result) result = val[0] result = [result] unless result[0].is_a?(Array) result << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 663) - def _reduce_187(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 657) + def _reduce_186(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', 667) - def _reduce_188(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 661) + def _reduce_187(val, _values, result) Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype") result = [val[0][:value]] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 670) - def _reduce_189(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 664) + def _reduce_188(val, _values, result) result = [val[0][:value], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 672) - def _reduce_190(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 666) + def _reduce_189(val, _values, result) result = [val[0][:value]] result end .,., -# reduce 191 omitted +# reduce 190 omitted -module_eval(<<'.,.,', 'grammar.ra', 677) - def _reduce_192(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 671) + def _reduce_191(val, _values, result) result = val[1] result end .,., -# reduce 193 omitted +# reduce 192 omitted -module_eval(<<'.,.,', 'grammar.ra', 682) - def _reduce_194(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 676) + def _reduce_193(val, _values, result) result = val[1] result end .,., -# reduce 195 omitted +# reduce 194 omitted -# reduce 196 omitted +# reduce 195 omitted -module_eval(<<'.,.,', 'grammar.ra', 688) - def _reduce_197(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 682) + def _reduce_196(val, _values, result) result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 691) - def _reduce_198(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 685) + def _reduce_197(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 692) - def _reduce_199(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 686) + def _reduce_198(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 693) - def _reduce_200(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 687) + def _reduce_199(val, _values, result) result = ast AST::ASTArray result end .,., +# reduce 200 omitted + # reduce 201 omitted # reduce 202 omitted -# reduce 203 omitted - -module_eval(<<'.,.,', 'grammar.ra', 699) - def _reduce_204(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 693) + def _reduce_203(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'grammar.ra', 702) - def _reduce_205(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 696) + def _reduce_204(val, _values, result) result = ast AST::Regex, :value => val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 706) - def _reduce_206(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 700) + def _reduce_205(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', 713) - def _reduce_207(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 707) + 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', 719) - def _reduce_208(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 713) + def _reduce_207(val, _values, result) result = ast AST::ASTHash result end .,., -# reduce 209 omitted +# reduce 208 omitted -module_eval(<<'.,.,', 'grammar.ra', 724) - def _reduce_210(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 718) + def _reduce_209(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', 733) - def _reduce_211(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 727) + def _reduce_210(val, _values, result) result = ast AST::ASTHash, { :value => { val[0] => val[2] } } result end .,., -module_eval(<<'.,.,', 'grammar.ra', 736) - def _reduce_212(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 730) + def _reduce_211(val, _values, result) result = val[0][:value] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 737) - def _reduce_213(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 731) + def _reduce_212(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.ra', 740) - def _reduce_214(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 734) + def _reduce_213(val, _values, result) result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2] result end .,., -# reduce 215 omitted +# reduce 214 omitted -module_eval(<<'.,.,', 'grammar.ra', 745) - def _reduce_216(val, _values, result) +module_eval(<<'.,.,', 'grammar.ra', 739) + def _reduce_215(val, _values, result) result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2] result end .,., def _reduce_none(val, _values, result) val[0] end end # class Parser end # module Parser end # module Puppet