aboutsummaryrefslogtreecommitdiffstats
path: root/test/racc/regress/cast
diff options
context:
space:
mode:
Diffstat (limited to 'test/racc/regress/cast')
-rw-r--r--test/racc/regress/cast3425
1 files changed, 3425 insertions, 0 deletions
diff --git a/test/racc/regress/cast b/test/racc/regress/cast
new file mode 100644
index 0000000000..5f2278b5b7
--- /dev/null
+++ b/test/racc/regress/cast
@@ -0,0 +1,3425 @@
+#
+# DO NOT MODIFY!!!!
+# This file is automatically generated by Racc 1.4.14
+# from Racc grammer file "".
+#
+
+require 'racc/parser.rb'
+
+
+require 'set'
+
+# Error classes
+module C
+ class ParseError < StandardError; end
+end
+
+# Local variables:
+# mode: ruby
+# end:
+module C
+ class Parser < Racc::Parser
+
+module_eval(<<'...end cast.y/module_eval...', 'cast.y', 564)
+ # A.1.9 -- Preprocessing numbers -- skip
+ # A.1.8 -- Header names -- skip
+
+ # A.1.7 -- Puncuators -- we don't bother with {##,#,%:,%:%:} since
+ # we don't do preprocessing
+ @@punctuators = %r'\+\+|-[->]|&&|\|\||\.\.\.|(?:<<|>>|[<>=!*/%+\-&^|])=?|[\[\](){}.~?:;,]'
+ @@digraphs = %r'<[:%]|[:%]>'
+
+ # A.1.6 -- String Literals -- simple for us because we don't decode
+ # the string (and indeed accept some illegal strings)
+ @@string_literal = %r'L?"(?:[^\\]|\\.)*?"'m
+
+ # A.1.5 -- Constants
+ @@decimal_floating_constant = %r'(?:(?:\d*\.\d+|\d+\.)(?:e[-+]?\d+)?|\d+e[-+]?\d+)[fl]?'i
+ @@hexadecimal_floating_constant = %r'0x(?:(?:[0-9a-f]*\.[0-9a-f]+|[0-9a-f]+\.)|[0-9a-f]+)p[-+]?\d+[fl]?'i
+
+ @@integer_constant = %r'(?:[1-9][0-9]*|0x[0-9a-f]+|0[0-7]*)(?:ul?l?|ll?u?)?'i
+ @@floating_constant = %r'#{@@decimal_floating_constant}|#{@@hexadecimal_floating_constant}'
+ @@enumeration_constant = %r'[a-zA-Z_\\][a-zA-Z_\\0-9]*'
+ @@character_constant = %r"L?'(?:[^\\]|\\.)+?'"
+ # (note that as with string-literals, we accept some illegal
+ # character-constants)
+
+ # A.1.4 -- Universal character names -- skip
+
+ # A.1.3 -- Identifiers -- skip, since an identifier is lexically
+ # identical to an enumeration constant
+
+ # A.1.2 Keywords
+ keywords = %w'auto break case char const continue default do
+double else enum extern float for goto if inline int long register
+restrict return short signed sizeof static struct switch typedef union
+ unsigned void volatile while _Bool _Complex _Imaginary'
+ @@keywords = %r"#{keywords.join('|')}"
+
+ def initialize
+ @type_names = ::Set.new
+
+ @warning_proc = lambda{}
+ @pos = C::Node::Pos.new(nil, 1, 0)
+ end
+ def initialize_copy(x)
+ @pos = x.pos.dup
+ @type_names = x.type_names.dup
+ end
+ attr_accessor :pos, :type_names
+
+ def parse(str)
+ if str.respond_to? :read
+ str = str.read
+ end
+ @str = str
+ begin
+ prepare_lexer(str)
+ return do_parse
+ rescue ParseError => e
+ e.set_backtrace(caller)
+ raise
+ end
+ end
+
+ #
+ # Error handler, as used by racc.
+ #
+ def on_error(error_token_id, error_value, value_stack)
+ if error_value == '$'
+ parse_error @pos, "unexpected EOF"
+ else
+ parse_error(error_value.pos,
+ "parse error on #{token_to_str(error_token_id)} (#{error_value.val})")
+ end
+ end
+
+ def self.feature(name)
+ attr_writer "#{name}_enabled"
+ class_eval <<-EOS
+ def enable_#{name}
+ @#{name}_enabled = true
+ end
+ def #{name}_enabled?
+ @#{name}_enabled
+ end
+ EOS
+ end
+ private_class_method :feature
+
+ #
+ # Allow blocks in parentheses as expressions, as per the gcc
+ # extension. [http://rubyurl.com/iB7]
+ #
+ feature :block_expressions
+
+ private # ---------------------------------------------------------
+
+ class Token
+ attr_accessor :pos, :val
+ def initialize(pos, val)
+ @pos = pos
+ @val = val
+ end
+ end
+ def eat(str)
+ lines = str.split(/\r\n|[\r\n]/, -1)
+ if lines.length == 1
+ @pos.col_num += lines[0].length
+ else
+ @pos.line_num += lines.length - 1
+ @pos.col_num = lines[-1].length
+ end
+ end
+
+ #
+ # Make a Declaration from the given specs and declarators.
+ #
+ def make_declaration(pos, specs, declarators)
+ specs.all?{|x| x.is_a?(Symbol) || x.is_a?(Type)} or raise specs.map{|x| x.class}.inspect
+ decl = Declaration.new_at(pos, nil, declarators)
+
+ # set storage class
+ storage_classes = specs.find_all do |x|
+ [:typedef, :extern, :static, :auto, :register].include? x
+ end
+ # 6.7.1p2: at most, one storage-class specifier may be given in
+ # the declaration specifiers in a declaration
+ storage_classes.length <= 1 or
+ begin
+ if declarators.length == 0
+ for_name = ''
+ else
+ for_name = "for `#{declarators[0].name}'"
+ end
+ parse_error pos, "multiple or duplicate storage classes given #{for_name}'"
+ end
+ decl.storage = storage_classes[0]
+
+ # set type (specifiers, qualifiers)
+ decl.type = make_direct_type(pos, specs)
+
+ # set function specifiers
+ decl.inline = specs.include?(:inline)
+
+ # look for new type names
+ if decl.typedef?
+ decl.declarators.each do |d|
+ if d.name
+ @type_names << d.name
+ end
+ end
+ end
+
+ return decl
+ end
+
+ def make_function_def(pos, specs, func_declarator, decl_list, defn)
+ add_decl_type(func_declarator, make_direct_type(pos, specs))
+
+ # get types from decl_list if necessary
+ function = func_declarator.indirect_type
+ function.is_a? Function or
+ parse_error pos, "non function type for function `#{func_declarator.name}'"
+ params = function.params
+ if decl_list
+ params.all?{|p| p.type.nil?} or
+ parse_error pos, "both prototype and declaration list given for `#{func_declarator.name}'"
+ decl_list.each do |declaration|
+ declaration.declarators.each do |declarator|
+ param = params.find{|p| p.name == declarator.name} or
+ parse_error pos, "no parameter named #{declarator.name}"
+ if declarator.indirect_type
+ param.type = declarator.indirect_type
+ param.type.direct_type = declaration.type.dup
+ else
+ param.type = declaration.type.dup
+ end
+ end
+ end
+ params.all?{|p| p.type} or
+ begin
+ s = params.find_all{|p| p.type.nil?}.map{|p| "`#{p.name}'"}.join(' and ')
+ parse_error pos, "types missing for parameters #{s}"
+ end
+ end
+
+ fd = FunctionDef.new_at(pos,
+ function.detach,
+ func_declarator.name,
+ defn,
+ :no_prototype => !decl_list.nil?)
+
+ # set storage class
+ # 6.9.1p4: only extern or static allowed
+ specs.each do |s|
+ [:typedef, :auto, :register].include?(s) and
+ "`#{s}' illegal for function"
+ end
+ storage_classes = specs.find_all do |s|
+ s == :extern || s == :static
+ end
+ # 6.7.1p2: at most, one storage-class specifier may be given in
+ # the declaration specifiers in a declaration
+ storage_classes.length <= 1 or
+ "multiple or duplicate storage classes given for `#{func_declarator.name}'"
+ fd.storage = storage_classes[0] if storage_classes[0]
+
+ # set function specifiers
+ # 6.7.4p5 'inline' can be repeated
+ fd.inline = specs.include?(:inline)
+
+ return fd
+ end
+
+ #
+ # Make a direct type from the list of type specifiers and type
+ # qualifiers.
+ #
+ def make_direct_type(pos, specs)
+ specs_order = [:signed, :unsigned, :short, :long, :double, :void,
+ :char, :int, :float, :_Bool, :_Complex, :_Imaginary]
+
+ type_specs = specs.find_all do |x|
+ specs_order.include?(x) || !x.is_a?(Symbol)
+ end
+ type_specs.sort! do |a, b|
+ (specs_order.index(a)||100) <=> (specs_order.index(b)||100)
+ end
+
+ # set type specifiers
+ # 6.7.2p2: the specifier list should be one of these
+ type =
+ case type_specs
+ when [:void]
+ Void.new
+ when [:char]
+ Char.new
+ when [:signed, :char]
+ Char.new :signed => true
+ when [:unsigned, :char]
+ Char.new :signed => false
+ when [:short], [:signed, :short], [:short, :int],
+ [:signed, :short, :int]
+ Int.new :longness => -1
+ when [:unsigned, :short], [:unsigned, :short, :int]
+ Int.new :unsigned => true, :longness => -1
+ when [:int], [:signed], [:signed, :int]
+ Int.new
+ when [:unsigned], [:unsigned, :int]
+ Int.new :unsigned => true
+ when [:long], [:signed, :long], [:long, :int],
+ [:signed, :long, :int]
+ Int.new :longness => 1
+ when [:unsigned, :long], [:unsigned, :long, :int]
+ Int.new :longness => 1, :unsigned => true
+ when [:long, :long], [:signed, :long, :long],
+ [:long, :long, :int], [:signed, :long, :long, :int]
+ Int.new :longness => 2
+ when [:unsigned, :long, :long], [:unsigned, :long, :long, :int]
+ Int.new :longness => 2, :unsigned => true
+ when [:float]
+ Float.new
+ when [:double]
+ Float.new :longness => 1
+ when [:long, :double]
+ Float.new :longness => 2
+ when [:_Bool]
+ Bool.new
+ when [:float, :_Complex]
+ Complex.new
+ when [:double, :_Complex]
+ Complex.new :longness => 1
+ when [:long, :double, :_Complex]
+ Complex.new :longness => 2
+ when [:float, :_Imaginary]
+ Imaginary.new
+ when [:double, :_Imaginary]
+ Imaginary.new :longness => 1
+ when [:long, :double, :_Imaginary]
+ Imaginary.new :longness => 2
+ else
+ if type_specs.length == 1 &&
+ [CustomType, Struct, Union, Enum].any?{|c| type_specs[0].is_a? c}
+ type_specs[0]
+ else
+ if type_specs == []
+ parse_error pos, "no type specifiers given"
+ else
+ parse_error pos, "invalid type specifier combination: #{type_specs.join(' ')}"
+ end
+ end
+ end
+ type.pos ||= pos
+
+ # set type qualifiers
+ # 6.7.3p4: type qualifiers can be repeated
+ type.const = specs.any?{|x| x.equal? :const }
+ type.restrict = specs.any?{|x| x.equal? :restrict}
+ type.volatile = specs.any?{|x| x.equal? :volatile}
+
+ return type
+ end
+
+ def make_parameter(pos, specs, indirect_type, name)
+ type = indirect_type
+ if type
+ type.direct_type = make_direct_type(pos, specs)
+ else
+ type = make_direct_type(pos, specs)
+ end
+ [:typedef, :extern, :static, :auto, :inline].each do |sym|
+ specs.include? sym and
+ parse_error pos, "parameter `#{declarator.name}' declared `#{sym}'"
+ end
+ return Parameter.new_at(pos, type, name,
+ :register => specs.include?(:register))
+ end
+
+ def add_type_quals(type, quals)
+ type.const = quals.include?(:const )
+ type.restrict = quals.include?(:restrict)
+ type.volatile = quals.include?(:volatile)
+ return type
+ end
+
+ #
+ # Add te given type as the "most direct" type to the given
+ # declarator. Return the declarator.
+ #
+ def add_decl_type(declarator, type)
+ if declarator.indirect_type
+ declarator.indirect_type.direct_type = type
+ else
+ declarator.indirect_type = type
+ end
+ return declarator
+ end
+
+ def param_list(params, var_args)
+ if params.length == 1 &&
+ params[0].type.is_a?(Void) &&
+ params[0].name.nil?
+ return NodeArray[]
+ elsif params.empty?
+ return nil
+ else
+ return params
+ end
+ end
+
+ def parse_error(pos, str)
+ raise ParseError, "#{pos}: #{str}"
+ end
+
+...end cast.y/module_eval...
+##### State transition tables begin ###
+
+clist = [
+'99,100,65,277,108,109,120,38,373,110,111,112,113,114,115,116,117,99',
+'100,65,48,108,109,120,312,424,110,111,112,113,114,115,116,117,43,293',
+'48,425,196,366,281,72,49,50,56,128,426,38,59,294,123,124,126,127,129',
+'130,131,132,312,290,372,281,128,49,38,386,416,123,124,126,127,129,130',
+'131,132,49,365,309,71,196,50,391,183,50,147,148,149,150,88,38,196,48',
+'185,38,88,281,184,50,442,196,50,147,148,149,150,99,100,65,277,108,109',
+'120,366,50,110,111,112,113,114,115,116,117,99,100,65,50,108,109,120',
+'50,49,110,111,112,113,114,115,116,117,88,88,48,249,250,72,281,241,242',
+'169,365,128,238,38,413,89,123,124,126,127,129,130,131,132,88,239,240',
+'196,128,50,38,349,84,123,124,126,127,129,130,131,132,49,71,83,440,288',
+'50,195,346,50,147,148,149,150,445,43,262,48,439,289,196,263,347,77,196',
+'428,50,147,148,149,150,99,100,65,50,108,109,120,196,50,110,111,112,113',
+'114,115,116,117,99,100,65,50,108,109,120,238,49,110,111,112,113,114',
+'115,116,117,227,238,315,239,240,245,246,247,248,243,244,128,283,38,239',
+'240,123,124,126,127,129,130,131,132,314,284,243,244,128,50,38,379,68',
+'123,124,126,127,129,130,131,132,34,35,36,196,69,308,49,307,50,147,148',
+'149,150,303,228,229,230,231,232,233,234,235,236,237,192,50,147,148,149',
+'150,99,100,65,296,108,109,120,243,244,110,111,112,113,114,115,116,117',
+'99,100,65,50,108,109,120,447,376,110,111,112,113,114,115,116,117,196',
+'196,387,353,313,273,245,246,247,248,355,128,388,38,196,274,123,124,126',
+'127,129,130,131,132,245,246,247,248,128,285,38,454,437,123,124,126,127',
+'129,130,131,132,196,196,357,427,450,377,433,375,50,147,148,149,150,196',
+'196,196,196,196,34,35,36,241,242,50,49,50,147,148,149,150,99,100,65',
+'61,108,109,120,241,242,110,111,112,113,114,115,116,117,99,100,65,275',
+'108,109,120,243,244,110,111,112,113,114,115,116,117,249,250,243,244',
+'255,256,272,271,268,67,254,128,378,38,253,252,123,124,126,127,129,130',
+'131,132,251,389,390,251,128,252,38,253,254,123,124,126,127,129,130,131',
+'132,395,396,397,398,399,209,405,406,50,147,148,149,150,206,205,202,199',
+'198,197,192,191,384,384,187,88,50,147,148,149,150,99,100,65,103,108',
+'109,120,423,,110,111,112,113,114,115,116,117,,,10,11,12,13,14,15,16',
+'17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,128,,38,,,123,124',
+'126,127,129,130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114',
+'115,116,117,,,,,,,,,50,147,148,149,150,,,,,,178,,,,,,,48,,,128,,38,',
+',123,124,126,127,129,130,131,132,99,100,65,,108,109,120,,,110,111,112',
+'113,114,115,116,117,,,,,,,49,,50,147,148,149,150,,,,,,178,,,,,,,48,',
+',128,,38,,,123,124,126,127,129,130,131,132,99,100,65,50,108,109,120',
+',,110,111,112,113,114,115,116,117,,,,,,,49,,50,147,148,149,150,,,,,',
+',,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100,65,50,108',
+'109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148,149,150',
+',,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100,65,',
+'108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148,149',
+'150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99,100',
+'65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147,148',
+'149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132,99',
+'100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50,147',
+'148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131,132',
+'99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,,,50',
+'147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123,124,126,127,129,130,131',
+'132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117,,,,,,,',
+',50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,120,123,124,126,127,129',
+'130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116,117',
+',,,,215,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132',
+',,128,,38,,,123,124,126,127,129,130,131,132,214,,,,,216,217,218,219',
+',50,147,148,149,150,,,,,,,,,,,50,147,148,149,150,99,100,65,193,108,109',
+'120,,,110,111,112,113,114,115,116,117,,,10,11,12,13,14,15,16,17,18,19',
+'20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,128,,38,,,123,124,126,127',
+'129,130,131,132,99,100,65,,108,109,120,,,110,111,112,113,114,115,116',
+'117,154,453,,,120,,,,50,147,148,149,150,,,,,,,,,,,,,,,,128,,38,,,123',
+'124,126,127,129,130,131,132,262,,128,,,263,,123,124,126,127,129,130',
+'131,132,,,,,,,,,,,50,147,148,149,150,65,,,,120,,,,,,50,147,148,149,150',
+'154,,,,120,,,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,',
+',,128,,38,,,123,124,126,127,129,130,131,132,,,128,,,,,123,124,126,127',
+'129,130,131,132,154,,,,120,,,,,,50,147,148,149,150,384,,,,120,,,,,,50',
+'147,148,149,150,,,,,,,,,,,,,,128,,,,,123,124,126,127,129,130,131,132',
+',,128,,,,,123,124,126,127,129,130,131,132,154,,,,120,,,,,,50,147,148',
+'149,150,154,392,,,120,,,,,,50,147,148,149,150,,,,,,,,,,,,262,,128,,',
+'263,,123,124,126,127,129,130,131,132,262,,128,,,263,,123,124,126,127',
+'129,130,131,132,,,,,,,,,,,50,147,148,149,150,65,,,,120,,,,,,50,147,148',
+'149,150,154,,,,120,,,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34',
+'35,36,,,,128,,38,,,123,124,126,127,129,130,131,132,,,128,,,,,123,124',
+'126,127,129,130,131,132,154,,,,120,,,,,,50,147,148,149,150,,,,,,,,,',
+',50,147,148,149,150,,,,,,,,,,,,262,,128,,,263,,123,124,126,127,129,130',
+'131,132,,,,,,,,,65,,,,120,,,,,,,,,,,,,50,147,148,149,150,15,16,17,18',
+'19,20,21,22,23,24,25,26,31,32,33,34,35,36,,,,128,,38,,,123,124,126,127',
+'129,130,131,132,381,,120,,,,,,,,,,,383,,120,,,,,,,,,,50,147,148,149',
+'150,,,,,,,,,,,,128,,,,,123,124,126,127,129,130,131,132,128,,,,,123,124',
+'126,127,129,130,131,132,,,,,,,,,,,,,50,147,148,149,150,305,,120,,,,',
+',50,147,148,149,150,,,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25',
+'26,31,32,33,34,35,36,37,,,128,,38,,,123,124,126,127,129,130,131,132',
+'208,,120,,,,,,,,,,,412,,120,,,,,,,,,,50,147,148,149,150,,,,,,,,,,,,128',
+',,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129,130',
+'131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149,150',
+'128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129',
+'130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149',
+'150,128,,,,,123,124,126,127,129,130,131,132,128,,,,,123,124,126,127',
+'129,130,131,132,,,120,,,,,,,,,,50,147,148,149,150,160,120,444,,,,,,50',
+'147,148,149,150,,,,,,34,35,36,,,159,161,,,,,123,124,126,127,129,130',
+'131,132,,,,128,,,,,123,124,126,127,129,130,131,132,120,436,,,,,,,,50',
+'147,148,149,150,120,432,,,,,,,,,,50,147,148,149,150,,,,,,,,,,128,,,',
+',123,124,126,127,129,130,131,132,,128,,,,,123,124,126,127,129,130,131',
+'132,120,430,,,,,,,,,,50,147,148,149,150,120,,,,,,,,,50,147,148,149,150',
+',,,,,,,,,128,,,,,123,124,126,127,129,130,131,132,,,,128,,,,120,123,124',
+'126,127,129,130,131,132,,,,,,,,,,50,147,148,149,150,,,,,,,,,,,,50,147',
+'148,149,150,128,,,,,123,124,126,127,129,130,131,132,,,,,,,,,,,,,120',
+',,,,,,,,,,,,50,147,148,149,150,15,16,17,18,19,20,21,22,23,24,25,26,31',
+'32,33,34,35,36,,,,128,,38,,,123,124,126,127,129,130,131,132,120,418',
+',,,,,,,,,,,120,415,,,,,,,,,,,50,147,148,149,150,,,,,,,,,,128,,,,,123',
+'124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129,130,131,132',
+',,,,,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149,150,128,,,,,123',
+'124,126,127,129,130,131,132,120,,,,,,,,,,,,,120,,266,,,,,,,,,,50,147',
+'148,149,150,,,,34,35,36,,,265,267,,,,,123,124,126,127,129,130,131,132',
+'128,,,,,123,124,126,127,129,130,131,132,120,,,,,,,,,,,,50,147,148,149',
+'150,120,,,,,,,,50,147,148,149,150,,,,34,35,36,,,,128,,,,,123,124,126',
+'127,129,130,131,132,,,,368,369,,,,,123,124,126,127,129,130,131,132,120',
+',,,,,,,50,147,148,149,150,120,,,,,,,,,,,,50,147,148,149,150,,,,34,35',
+'36,,,,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126',
+'127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147',
+'148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124',
+'126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50',
+'147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123',
+'124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,',
+',,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,',
+'120,123,124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150',
+',,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128',
+',,,120,123,124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148,149',
+'150,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131,132',
+'128,,,,120,123,124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147,148',
+'149,150,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130,131',
+'132,128,,,,120,123,124,126,127,129,130,131,132,,,,,120,,,,,,,,50,147',
+'148,149,150,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130',
+'131,132,128,,,,120,123,124,126,127,129,130,131,132,,,,,,,,,,,,,50,147',
+'148,149,150,,,,,,,,,50,147,148,149,150,128,,,,,123,124,126,127,129,130',
+'131,132,,,,,,,,,,,,,120,318,,,,,,,,,,,,50,147,148,149,150,15,16,17,18',
+'19,20,21,22,23,24,25,26,31,32,33,34,35,36,,,,128,,38,,120,123,124,126',
+'127,129,130,131,132,,,,,120,,,,,,,,,,,,,,,,,,,,,50,147,148,149,150,128',
+',,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129,130',
+'131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149,150',
+'128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127,129',
+'130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148,149',
+'150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124,126,127',
+'129,130,131,132,,,,,120,,,,,,,,50,147,148,149,150,,,,,,,,,50,147,148',
+'149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,220,123,124,126',
+'127,129,130,131,132,,,,,220,,,,,,,,50,147,148,149,150,,,,,,,,,50,147',
+'148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,120,123,124',
+'126,127,129,130,131,132,,,,,224,,,,,,,,50,147,148,149,150,,,,,,,,,50',
+'147,148,149,150,128,,,,,123,124,126,127,129,130,131,132,128,,,,,123',
+'124,126,127,129,130,131,132,120,,,,,,,,,,,,50,147,148,149,150,,,,,,',
+',,50,147,148,149,150,,,,,,,,,401,402,,,,,123,124,126,127,129,130,131',
+'132,,,,,,,,,,,,,,,,,,277,364,,,,,,,50,147,148,149,150,10,11,12,13,14',
+'15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,281,164,49',
+',38,,,,,,,,,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32',
+'33,34,35,36,37,,,,50,38,,,,,,,,,,,,,,,39,,,,,,,,,,,,,,,,,,,,,50,10,11',
+'12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,65',
+',,,38,,,,,,,,,,,,67,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25',
+'26,31,32,33,34,35,36,37,65,,,,38,,,,,,,,,,,,,10,11,12,13,14,15,16,17',
+'18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,173,,,,38,,,,,,,,,,',
+',,,,,,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,282,,,,',
+'38,,,,,,,,,,,,,,,,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35',
+'36,287,,,,,38,,,,,,,,,,,,,,,,15,16,17,18,19,20,21,22,23,24,25,26,31',
+'32,33,34,35,36,312,364,,,,38,,,,,,,,10,11,12,13,14,15,16,17,18,19,20',
+'21,22,23,24,25,26,31,32,33,34,35,36,37,281,404,49,,38,,,,,,,,,10,11',
+'12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,',
+',,38,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31,32,33,34',
+'35,36,37,,,,,38,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,31',
+'32,33,34,35,36,37,,,,,38,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24',
+'25,26,31,32,33,34,35,36,37,,,,,38,10,11,12,13,14,15,16,17,18,19,20,21',
+'22,23,24,25,26,31,32,33,34,35,36,37,,,,,38,10,11,12,13,14,15,16,17,18',
+'19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,,,38,10,11,12,13,14,15',
+'16,17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,37,,,,359,38,15,16',
+'17,18,19,20,21,22,23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18',
+'19,20,21,22,23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20',
+'21,22,23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20,21,22',
+'23,24,25,26,31,32,33,34,35,36,,,,,,38,15,16,17,18,19,20,21,22,23,24',
+'25,26,31,32,33,34,35,36,,,,,,38' ]
+ racc_action_table = arr = ::Array.new(4308, 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 = [
+'112,112,112,167,112,112,112,114,294,112,112,112,112,112,112,112,112',
+'445,445,445,45,445,445,445,210,402,445,445,445,445,445,445,445,445,66',
+'186,66,403,316,280,167,46,167,114,30,112,407,112,33,186,112,112,112',
+'112,112,112,112,112,311,184,289,210,445,210,445,316,382,445,445,445',
+'445,445,445,445,445,66,280,207,46,382,167,345,85,112,112,112,112,112',
+'294,30,207,48,87,33,84,311,85,45,427,345,445,445,445,445,445,444,444',
+'444,276,444,444,444,361,66,444,444,444,444,444,444,444,444,377,377,377',
+'30,377,377,377,33,48,377,377,377,377,377,377,377,377,184,289,69,340',
+'340,70,276,136,136,73,361,444,135,444,380,60,444,444,444,444,444,444',
+'444,444,59,135,135,380,377,48,377,260,58,377,377,377,377,377,377,377',
+'377,69,70,57,419,182,276,107,257,444,444,444,444,444,429,5,260,5,419',
+'182,107,260,257,55,429,411,377,377,377,377,377,376,376,376,216,376,376',
+'376,411,69,376,376,376,376,376,376,376,376,375,375,375,217,375,375,375',
+'330,5,375,375,375,375,375,375,375,375,133,331,213,330,330,138,138,138',
+'138,336,336,376,175,376,331,331,376,376,376,376,376,376,376,376,212',
+'175,335,335,375,5,375,304,42,375,375,375,375,375,375,375,375,49,49,49',
+'304,42,204,49,203,376,376,376,376,376,201,133,133,133,133,133,133,133',
+'133,133,133,200,375,375,375,375,375,437,437,437,188,437,437,437,334',
+'334,437,437,437,437,437,437,437,437,436,436,436,263,436,436,436,431',
+'301,436,436,436,436,436,436,436,436,431,301,317,264,211,163,338,338',
+'338,338,267,437,317,437,211,163,437,437,437,437,437,437,437,437,339',
+'339,339,339,436,177,436,443,417,436,436,436,436,436,436,436,436,443',
+'417,270,410,435,302,414,300,437,437,437,437,437,410,435,302,414,300',
+'74,74,74,333,333,274,74,436,436,436,436,436,433,433,433,39,433,433,433',
+'332,332,433,433,433,433,433,433,433,433,187,187,187,165,187,187,187',
+'137,137,187,187,187,187,187,187,187,187,139,139,337,337,144,144,162',
+'161,158,151,143,433,303,433,142,141,433,433,433,433,433,433,433,433',
+'140,324,325,341,187,342,187,343,344,187,187,187,187,187,187,187,187',
+'351,354,356,362,363,119,367,369,433,433,433,433,433,116,115,113,111',
+'110,109,101,100,389,390,98,89,187,187,187,187,187,65,65,65,65,65,65',
+'65,400,,65,65,65,65,65,65,65,65,,,65,65,65,65,65,65,65,65,65,65,65,65',
+'65,65,65,65,65,65,65,65,65,65,65,65,,,65,,65,,,65,65,65,65,65,65,65',
+'65,296,296,296,,296,296,296,,,296,296,296,296,296,296,296,296,,,,,,',
+',,65,65,65,65,65,,,,,,80,,,,,,,80,,,296,,296,,,296,296,296,296,296,296',
+'296,296,432,432,432,,432,432,432,,,432,432,432,432,432,432,432,432,',
+',,,,,80,,296,296,296,296,296,,,,,,284,,,,,,,284,,,432,,432,,,432,432',
+'432,432,432,432,432,432,430,430,430,80,430,430,430,,,430,430,430,430',
+'430,430,430,430,,,,,,,284,,432,432,432,432,432,,,,,,,,,,,,,,,,430,,430',
+',,430,430,430,430,430,430,430,430,426,426,426,284,426,426,426,,,426',
+'426,426,426,426,426,426,426,,,,,,,,,430,430,430,430,430,,,,,,,,,,,,',
+',,,426,,426,,,426,426,426,426,426,426,426,426,418,418,418,,418,418,418',
+',,418,418,418,418,418,418,418,418,,,,,,,,,426,426,426,426,426,,,,,,',
+',,,,,,,,,418,,418,,,418,418,418,418,418,418,418,418,454,454,454,,454',
+'454,454,,,454,454,454,454,454,454,454,454,,,,,,,,,418,418,418,418,418',
+',,,,,,,,,,,,,,,454,,454,,,454,454,454,454,454,454,454,454,415,415,415',
+',415,415,415,,,415,415,415,415,415,415,415,415,,,,,,,,,454,454,454,454',
+'454,,,,,,,,,,,,,,,,415,,415,,,415,415,415,415,415,415,415,415,450,450',
+'450,,450,450,450,,,450,450,450,450,450,450,450,450,,,,,,,,,415,415,415',
+'415,415,,,,,,,,,,,,,,,,450,,450,,,450,450,450,450,450,450,450,450,192',
+'192,192,,192,192,192,,,192,192,192,192,192,192,192,192,,,,,,,,,450,450',
+'450,450,450,,,,,,,,,,,,,,,,192,,192,,262,192,192,192,192,192,192,192',
+'192,191,191,191,,191,191,191,,,191,191,191,191,191,191,191,191,,,,,122',
+',,,192,192,192,192,192,262,,,,,262,262,262,262,262,262,262,262,,,191',
+',191,,,191,191,191,191,191,191,191,191,122,,,,,122,122,122,122,,262',
+'262,262,262,262,,,,,,,,,,,191,191,191,191,191,102,102,102,102,102,102',
+'102,,,102,102,102,102,102,102,102,102,,,102,102,102,102,102,102,102',
+'102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102',
+',,102,,102,,,102,102,102,102,102,102,102,102,447,447,447,,447,447,447',
+',,447,447,447,447,447,447,447,447,439,439,,,439,,,,102,102,102,102,102',
+',,,,,,,,,,,,,,,447,,447,,,447,447,447,447,447,447,447,447,439,,439,',
+',439,,439,439,439,439,439,439,439,439,,,,,,,,,,,447,447,447,447,447',
+'224,,,,224,,,,,,439,439,439,439,439,393,,,,393,,,224,224,224,224,224',
+'224,224,224,224,224,224,224,224,224,224,224,224,224,,,,224,,224,,,224',
+'224,224,224,224,224,224,224,,,393,,,,,393,393,393,393,393,393,393,393',
+'67,,,,67,,,,,,224,224,224,224,224,315,,,,315,,,,,,393,393,393,393,393',
+',,,,,,,,,,,,,67,,,,,67,67,67,67,67,67,67,67,,,315,,,,,315,315,315,315',
+'315,315,315,315,154,,,,154,,,,,,67,67,67,67,67,347,347,,,347,,,,,,315',
+'315,315,315,315,,,,,,,,,,,,154,,154,,,154,,154,154,154,154,154,154,154',
+'154,347,,347,,,347,,347,347,347,347,347,347,347,347,,,,,,,,,,,154,154',
+'154,154,154,120,,,,120,,,,,,347,347,347,347,347,258,,,,258,,,120,120',
+'120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,,,,120',
+',120,,,120,120,120,120,120,120,120,120,,,258,,,,,258,258,258,258,258',
+'258,258,258,384,,,,384,,,,,,120,120,120,120,120,,,,,,,,,,,258,258,258',
+'258,258,,,,,,,,,,,,384,,384,,,384,,384,384,384,384,384,384,384,384,',
+',,,,,,,220,,,,220,,,,,,,,,,,,,384,384,384,384,384,220,220,220,220,220',
+'220,220,220,220,220,220,220,220,220,220,220,220,220,,,,220,,220,,,220',
+'220,220,220,220,220,220,220,305,,305,,,,,,,,,,,306,,306,,,,,,,,,,220',
+'220,220,220,220,,,,,,,,,,,,305,,,,,305,305,305,305,305,305,305,305,306',
+',,,,306,306,306,306,306,306,306,306,,,,,,,,,,,,,305,305,305,305,305',
+'202,,202,,,,,,306,306,306,306,306,,,202,202,202,202,202,202,202,202',
+'202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,,,202',
+',202,,,202,202,202,202,202,202,202,202,117,,117,,,,,,,,,,,379,,379,',
+',,,,,,,,202,202,202,202,202,,,,,,,,,,,,117,,,,,117,117,117,117,117,117',
+'117,117,379,,,,244,379,379,379,379,379,379,379,379,,,,,245,,,,,,,,117',
+'117,117,117,117,,,,,,,,,379,379,379,379,379,244,,,,,244,244,244,244',
+'244,244,244,244,245,,,,246,245,245,245,245,245,245,245,245,,,,,247,',
+',,,,,,244,244,244,244,244,,,,,,,,,245,245,245,245,245,246,,,,,246,246',
+'246,246,246,246,246,246,247,,,,,247,247,247,247,247,247,247,247,,,71',
+',,,,,,,,,246,246,246,246,246,71,428,428,,,,,,247,247,247,247,247,,,',
+',,71,71,71,,,71,71,,,,,71,71,71,71,71,71,71,71,,,,428,,,,,428,428,428',
+'428,428,428,428,428,416,416,,,,,,,,71,71,71,71,71,413,413,,,,,,,,,,428',
+'428,428,428,428,,,,,,,,,,416,,,,,416,416,416,416,416,416,416,416,,413',
+',,,,413,413,413,413,413,413,413,413,412,412,,,,,,,,,,416,416,416,416',
+'416,391,,,,,,,,,413,413,413,413,413,,,,,,,,,,412,,,,,412,412,412,412',
+'412,412,412,412,,,,391,,,,99,391,391,391,391,391,391,391,391,,,,,,,',
+',,412,412,412,412,412,,,,,,,,,,,,391,391,391,391,391,99,,,,,99,99,99',
+'99,99,99,99,99,,,,,,,,,,,,,388,,,,,,,,,,,,,99,99,99,99,99,388,388,388',
+'388,388,388,388,388,388,388,388,388,388,388,388,388,388,388,,,,388,',
+'388,,,388,388,388,388,388,388,388,388,383,383,,,,,,,,,,,,381,381,,,',
+',,,,,,,388,388,388,388,388,,,,,,,,,,383,,,,,383,383,383,383,383,383',
+'383,383,381,,,,378,381,381,381,381,381,381,381,381,,,,,,,,,,,,,383,383',
+'383,383,383,,,,,,,,,381,381,381,381,381,378,,,,,378,378,378,378,378',
+'378,378,378,157,,,,,,,,,,,,,285,,157,,,,,,,,,,378,378,378,378,378,,',
+',157,157,157,,,157,157,,,,,157,157,157,157,157,157,157,157,285,,,,,285',
+'285,285,285,285,285,285,285,160,,,,,,,,,,,,157,157,157,157,157,281,',
+',,,,,,285,285,285,285,285,,,,160,160,160,,,,160,,,,,160,160,160,160',
+'160,160,160,160,,,,281,281,,,,,281,281,281,281,281,281,281,281,269,',
+',,,,,,160,160,160,160,160,178,,,,,,,,,,,,281,281,281,281,281,,,,269',
+'269,269,,,,269,,,,,269,269,269,269,269,269,269,269,178,,,,266,178,178',
+'178,178,178,178,178,178,,,,,185,,,,,,,,269,269,269,269,269,,,,,,,,,178',
+'178,178,178,178,266,,,,,266,266,266,266,266,266,266,266,185,,,,243,185',
+'185,185,185,185,185,185,185,,,,,196,,,,,,,,266,266,266,266,266,,,,,',
+',,,185,185,185,185,185,243,,,,,243,243,243,243,243,243,243,243,196,',
+',,197,196,196,196,196,196,196,196,196,,,,,198,,,,,,,,243,243,243,243',
+'243,,,,,,,,,196,196,196,196,196,197,,,,,197,197,197,197,197,197,197',
+'197,198,,,,199,198,198,198,198,198,198,198,198,,,,,256,,,,,,,,197,197',
+'197,197,197,,,,,,,,,198,198,198,198,198,199,,,,,199,199,199,199,199',
+'199,199,199,256,,,,255,256,256,256,256,256,256,256,256,,,,,254,,,,,',
+',,199,199,199,199,199,,,,,,,,,256,256,256,256,256,255,,,,,255,255,255',
+'255,255,255,255,255,254,,,,253,254,254,254,254,254,254,254,254,,,,,252',
+',,,,,,,255,255,255,255,255,,,,,,,,,254,254,254,254,254,253,,,,,253,253',
+'253,253,253,253,253,253,252,,,,251,252,252,252,252,252,252,252,252,',
+',,,250,,,,,,,,253,253,253,253,253,,,,,,,,,252,252,252,252,252,251,,',
+',,251,251,251,251,251,251,251,251,250,,,,214,250,250,250,250,250,250',
+'250,250,,,,,,,,,,,,,251,251,251,251,251,,,,,,,,,250,250,250,250,250',
+'214,,,,,214,214,214,214,214,214,214,214,,,,,,,,,,,,,215,215,,,,,,,,',
+',,,214,214,214,214,214,215,215,215,215,215,215,215,215,215,215,215,215',
+'215,215,215,215,215,215,,,,215,,215,,249,215,215,215,215,215,215,215',
+'215,,,,,248,,,,,,,,,,,,,,,,,,,,,215,215,215,215,215,249,,,,,249,249',
+'249,249,249,249,249,249,248,,,,226,248,248,248,248,248,248,248,248,',
+',,,238,,,,,,,,249,249,249,249,249,,,,,,,,,248,248,248,248,248,226,,',
+',,226,226,226,226,226,226,226,226,238,,,,239,238,238,238,238,238,238',
+'238,238,,,,,240,,,,,,,,226,226,226,226,226,,,,,,,,,238,238,238,238,238',
+'239,,,,,239,239,239,239,239,239,239,239,240,,,,241,240,240,240,240,240',
+'240,240,240,,,,,242,,,,,,,,239,239,239,239,239,,,,,,,,,240,240,240,240',
+'240,241,,,,,241,241,241,241,241,241,241,241,242,,,,123,242,242,242,242',
+'242,242,242,242,,,,,124,,,,,,,,241,241,241,241,241,,,,,,,,,242,242,242',
+'242,242,123,,,,,123,123,123,123,123,123,123,123,124,,,,125,124,124,124',
+'124,124,124,124,124,,,,,126,,,,,,,,123,123,123,123,123,,,,,,,,,124,124',
+'124,124,124,125,,,,,125,125,125,125,125,125,125,125,126,,,,,126,126',
+'126,126,126,126,126,126,365,,,,,,,,,,,,125,125,125,125,125,,,,,,,,,126',
+'126,126,126,126,,,,,,,,,365,365,,,,,365,365,365,365,365,365,365,365',
+',,,,,,,,,,,,,,,,,277,277,,,,,,,365,365,365,365,365,277,277,277,277,277',
+'277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277',
+'277,277,277,72,277,,277,,,,,,,,,72,72,72,72,72,72,72,72,72,72,72,72',
+'72,72,72,72,72,72,72,72,72,72,72,72,,,,277,72,,,,,,,,,,,,,,,1,,,,,,',
+',,,,,,,,,,,,,,72,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41',
+',,,1,,,,,,,,,,,,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41',
+'41,41,41,41,41,41,41,62,,,,41,,,,,,,,,,,,,62,62,62,62,62,62,62,62,62',
+'62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,78,,,,62,,,,,,,,,,,,,,',
+',,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,172,,,,,78,',
+',,,,,,,,,,,,,,172,172,172,172,172,172,172,172,172,172,172,172,172,172',
+'172,172,172,172,181,,,,,172,,,,,,,,,,,,,,,,181,181,181,181,181,181,181',
+'181,181,181,181,181,181,181,181,181,181,181,312,312,,,,181,,,,,,,,312',
+'312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312',
+'312,312,312,312,312,312,312,366,312,,312,,,,,,,,,366,366,366,366,366',
+'366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366',
+'366,366,,,,,366,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,',
+'0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,,,,,6,7,7,7,7,7,7',
+'7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,,,7,8,8,8,8,8,8,8,8,8,8,8,8,8',
+'8,8,8,8,8,8,8,8,8,8,8,,,,,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9',
+'9,9,9,9,,,,,9,275,275,275,275,275,275,275,275,275,275,275,275,275,275',
+'275,275,275,275,275,275,275,275,275,275,,,,275,275,82,82,82,82,82,82',
+'82,82,82,82,82,82,82,82,82,82,82,82,,,,,,82,77,77,77,77,77,77,77,77',
+'77,77,77,77,77,77,77,77,77,77,,,,,,77,83,83,83,83,83,83,83,83,83,83',
+'83,83,83,83,83,83,83,83,,,,,,83,56,56,56,56,56,56,56,56,56,56,56,56',
+'56,56,56,56,56,56,,,,,,56,81,81,81,81,81,81,81,81,81,81,81,81,81,81',
+'81,81,81,81,,,,,,81' ]
+ racc_action_check = arr = ::Array.new(4308, 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 = [
+ 3992, 3690, nil, nil, nil, 187, 4021, 4050, 4079, 4108,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ 39, nil, nil, 43, nil, nil, nil, nil, nil, 423,
+ nil, 3731, 269, nil, nil, 11, 32, nil, 82, 243,
+ nil, nil, nil, nil, nil, 197, 4233, 177, 166, 77,
+ 149, nil, 3772, nil, nil, 522, 27, 1405, nil, 132,
+ 135, 2068, 3625, 138, 366, nil, nil, 4185, 3812, nil,
+ 616, 4257, 4161, 4209, 8, 76, nil, 71, nil, 433,
+ nil, nil, nil, nil, nil, nil, nil, nil, 516, 2261,
+ 513, 512, 1190, nil, nil, nil, nil, 179, nil, 504,
+ 503, 502, -3, 501, -43, 502, 501, 1889, nil, 410,
+ 1562, nil, 1117, 3398, 3411, 3454, 3467, nil, nil, nil,
+ nil, nil, nil, 223, nil, 103, 89, 381, 184, 385,
+ 422, 398, 396, 391, 384, nil, nil, nil, nil, nil,
+ nil, 442, nil, nil, 1476, nil, nil, 2485, 415, nil,
+ 2550, 414, 450, 344, nil, 420, nil, -6, nil, nil,
+ nil, nil, 3851, nil, nil, 249, nil, 376, 2632, nil,
+ nil, 3890, 178, nil, 53, 2688, 29, 434, 316, nil,
+ nil, 1102, 1044, nil, nil, nil, 2744, 2787, 2800, 2843,
+ 307, 285, 1835, 285, 283, nil, nil, 70, nil, nil,
+ 15, 343, 258, 236, 3067, 3131, 127, 144, nil, nil,
+ 1697, nil, nil, nil, 1334, nil, 3230, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, 3243, 3286,
+ 3299, 3342, 3355, 2731, 1945, 1958, 2001, 2014, 3187, 3174,
+ 3024, 3011, 2968, 2955, 2912, 2899, 2856, 181, 1577, nil,
+ 149, nil, 1087, 249, 305, nil, 2675, 312, nil, 2619,
+ 345, nil, nil, nil, 327, 4137, 99, 3588, nil, nil,
+ 30, 2567, nil, nil, 674, 2498, nil, nil, nil, 54,
+ nil, nil, nil, nil, 2, nil, 580, nil, nil, nil,
+ 387, 330, 385, 457, 268, 1751, 1764, nil, nil, nil,
+ nil, 49, 3926, nil, nil, 1420, 18, 341, nil, nil,
+ nil, nil, nil, nil, 469, 470, nil, nil, nil, nil,
+ 186, 197, 370, 354, 259, 207, 190, 393, 290, 308,
+ 73, 425, 412, 413, 413, 79, nil, 1491, nil, nil,
+ nil, 448, nil, nil, 449, nil, 450, nil, nil, nil,
+ nil, 103, 488, 489, nil, 3519, 3963, 454, nil, 455,
+ nil, nil, nil, nil, nil, 224, 207, 119, 2433, 1902,
+ 146, 2390, 59, 2377, 1633, nil, nil, nil, 2325, 511,
+ 512, 2218, nil, 1349, nil, nil, nil, nil, nil, nil,
+ 485, nil, -22, 27, nil, nil, nil, 35, nil, nil,
+ 383, 197, 2202, 2150, 386, 928, 2136, 371, 812, 177,
+ nil, nil, nil, nil, nil, nil, 754, 91, 2084, 183,
+ 696, 329, 638, 417, nil, 384, 329, 312, nil, 1263,
+ nil, nil, nil, 370, 102, 14, nil, 1248, nil, nil,
+ 986, nil, nil, nil, 870, nil, nil, nil, nil, nil ]
+
+racc_action_default = [
+ -265, -265, -1, -3, -4, -265, -53, -55, -57, -59,
+ -64, -65, -66, -67, -68, -69, -70, -71, -72, -73,
+ -74, -75, -76, -77, -78, -79, -80, -81, -82, -83,
+ -265, -89, -90, -265, -115, -116, -117, -118, -166, -265,
+ -2, -62, -265, -51, -60, -265, -120, -121, -265, -136,
+ -258, -52, -54, -56, -58, -86, -265, -88, -107, -265,
+ -110, 460, -265, -6, -7, -265, -265, -265, -50, -265,
+ -119, -265, -265, -265, -135, -138, -139, -265, -265, -91,
+ -265, -95, -97, -265, -265, -265, -111, -113, -262, -265,
+ -5, -8, -9, -10, -11, -12, -13, -14, -179, -265,
+ -265, -83, -265, -20, -21, -23, -24, -265, -26, -265,
+ -265, -265, -265, -265, -265, -265, -265, -265, -180, -181,
+ -265, -184, -198, -265, -265, -265, -265, -204, -205, -206,
+ -207, -208, -209, -210, -212, -216, -219, -222, -227, -230,
+ -232, -234, -236, -238, -240, -242, -255, -259, -260, -261,
+ -264, -62, -63, -167, -265, -179, -61, -265, -265, -126,
+ -265, -205, -265, -265, -134, -141, -143, -147, -148, -122,
+ -137, -140, -265, -85, -92, -265, -98, -100, -265, -94,
+ -96, -265, -265, -104, -265, -265, -265, -265, -265, -210,
+ -257, -265, -265, -19, -22, -25, -265, -265, -265, -265,
+ -265, -265, -265, -265, -265, -45, -46, -265, -48, -263,
+ -151, -265, -265, -265, -265, -265, -265, -265, -190, -191,
+ -265, -199, -200, -201, -265, -202, -265, -244, -245, -246,
+ -247, -248, -249, -250, -251, -252, -253, -254, -265, -265,
+ -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+ -265, -265, -265, -265, -265, -265, -265, -265, -265, -171,
+ -265, -175, -265, -265, -265, -124, -265, -205, -125, -265,
+ -265, -131, -132, -133, -265, -265, -152, -265, -145, -146,
+ -154, -265, -84, -93, -265, -265, -102, -87, -103, -265,
+ -106, -112, -114, -108, -265, -15, -265, -17, -18, -256,
+ -265, -265, -265, -265, -265, -265, -265, -44, -49, -47,
+ -150, -152, -265, -182, -183, -265, -265, -265, -187, -194,
+ -196, -197, -188, -189, -265, -265, -243, -213, -214, -215,
+ -217, -218, -220, -221, -223, -224, -225, -226, -228, -229,
+ -231, -233, -235, -237, -239, -265, -168, -265, -170, -174,
+ -176, -265, -178, -123, -265, -130, -265, -128, -149, -142,
+ -144, -153, -265, -265, -165, -265, -265, -265, -159, -205,
+ -99, -101, -105, -109, -16, -265, -265, -265, -265, -265,
+ -265, -265, -265, -265, -265, -211, -185, -186, -265, -265,
+ -203, -265, -169, -265, -173, -177, -129, -127, -155, -164,
+ -265, -157, -205, -265, -163, -158, -161, -27, -29, -30,
+ -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+ -195, -241, -172, -156, -160, -162, -265, -265, -265, -265,
+ -265, -265, -265, -265, -39, -265, -265, -265, -43, -265,
+ -192, -28, -31, -265, -265, -265, -35, -265, -37, -38,
+ -265, -41, -42, -193, -265, -33, -34, -36, -40, -32 ]
+
+racc_goto_table = [
+ 47, 162, 57, 152, 70, 60, 153, 5, 5, 176,
+ 158, 75, 257, 51, 52, 53, 54, 76, 319, 41,
+ 393, 62, 104, 279, 82, 55, 291, 340, 58, 330,
+ 331, 81, 179, 180, 341, 207, 170, 101, 211, 76,
+ 47, 64, 171, 47, 190, 82, 82, 188, 63, 82,
+ 82, 82, 81, 81, 223, 342, 81, 81, 81, 194,
+ 98, 47, 91, 361, 47, 105, 310, 168, 74, 90,
+ 343, 210, 344, 213, 101, 47, 85, 338, 339, 167,
+ 151, 163, 174, 151, 200, 226, 204, 78, 82, 360,
+ 157, 332, 333, 153, 177, 81, 264, 98, 361, 270,
+ 175, 182, 105, 2, 40, 156, 186, 98, 172, 203,
+ 350, 317, 393, 1, 181, 300, 301, 302, 102, nil,
+ 304, nil, nil, 190, nil, 171, 286, 212, 76, 276,
+ 190, 291, 316, 292, nil, 299, 291, nil, 211, nil,
+ 82, nil, 211, 334, 335, 336, 337, 81, nil, 82,
+ nil, nil, nil, nil, 320, nil, 81, nil, nil, 200,
+ nil, nil, 47, 200, 200, 326, 210, 327, 328, 329,
+ 201, 210, 311, 324, 345, 210, 174, 325, nil, 269,
+ nil, 278, 98, 82, nil, 174, 98, 98, 82, nil,
+ 81, 420, 82, nil, 348, 81, nil, 153, nil, 81,
+ nil, nil, 306, nil, nil, 354, nil, 190, 356, nil,
+ 351, 322, 323, 370, nil, nil, nil, nil, nil, nil,
+ 367, nil, nil, 380, 382, nil, nil, 212, nil, nil,
+ 190, 212, nil, 371, nil, 70, nil, 171, nil, 276,
+ nil, nil, 419, nil, 385, 295, nil, nil, nil, 297,
+ 298, nil, nil, nil, nil, nil, nil, nil, 352, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, 200, 358,
+ nil, 47, 47, nil, 311, nil, nil, nil, nil, 47,
+ nil, nil, 167, 394, 167, nil, 153, nil, nil, nil,
+ nil, 98, nil, nil, nil, 403, 410, 411, 177, 414,
+ nil, 417, nil, nil, 400, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 167,
+ nil, nil, nil, 153, nil, nil, nil, 320, nil, 422,
+ 429, 431, 153, nil, 435, nil, 421, nil, nil, 210,
+ nil, nil, nil, nil, nil, nil, 443, 200, 200, 200,
+ nil, nil, nil, nil, 374, nil, 82, nil, nil, nil,
+ nil, nil, nil, 81, nil, nil, nil, nil, nil, nil,
+ 98, 98, 98, 167, nil, 394, nil, nil, 153, nil,
+ nil, nil, nil, nil, nil, nil, nil, 200, nil, nil,
+ 200, nil, nil, nil, nil, nil, nil, nil, 200, nil,
+ nil, nil, 200, nil, 200, 200, nil, nil, 200, 200,
+ 98, nil, nil, 98, nil, nil, 200, 200, nil, 200,
+ nil, 98, 200, nil, nil, 98, 200, 98, 98, nil,
+ 189, 98, 98, 407, 408, 409, nil, nil, nil, 98,
+ 98, nil, 98, nil, nil, 98, nil, nil, nil, 98,
+ nil, nil, nil, nil, 221, 222, 189, 225, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, 434, nil, nil, 438, nil, nil, nil,
+ nil, nil, nil, nil, 441, nil, nil, nil, 446, nil,
+ 448, 449, nil, nil, 451, 452, nil, nil, nil, nil,
+ nil, nil, 455, 456, nil, 457, nil, nil, 458, 189,
+ nil, nil, 459, nil, nil, nil, 189, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, nil, nil, nil,
+ nil, nil, nil, 189, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 189, 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, 189, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, 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, 189 ]
+
+racc_goto_check = [
+ 15, 43, 17, 27, 40, 17, 42, 5, 5, 35,
+ 42, 39, 50, 5, 5, 5, 5, 24, 59, 6,
+ 51, 7, 19, 47, 24, 15, 37, 67, 15, 63,
+ 63, 23, 33, 33, 68, 20, 39, 17, 20, 24,
+ 15, 4, 24, 15, 73, 24, 24, 16, 8, 24,
+ 24, 24, 23, 23, 62, 69, 23, 23, 23, 19,
+ 15, 15, 4, 49, 15, 4, 47, 15, 41, 8,
+ 70, 33, 71, 48, 17, 15, 36, 66, 66, 5,
+ 6, 44, 32, 6, 17, 74, 17, 31, 24, 46,
+ 41, 64, 64, 42, 6, 23, 42, 15, 49, 42,
+ 34, 36, 4, 2, 2, 26, 36, 15, 31, 15,
+ 53, 58, 51, 1, 31, 20, 20, 20, 18, nil,
+ 20, nil, nil, 73, nil, 24, 16, 8, 24, 39,
+ 73, 37, 20, 16, nil, 42, 37, nil, 20, nil,
+ 24, nil, 20, 65, 65, 65, 65, 23, nil, 24,
+ nil, nil, nil, nil, 42, nil, 23, nil, nil, 17,
+ nil, nil, 15, 17, 17, 42, 33, 62, 62, 62,
+ 9, 33, 39, 48, 20, 33, 32, 48, nil, 41,
+ nil, 6, 15, 24, nil, 32, 15, 15, 24, nil,
+ 23, 59, 24, nil, 27, 23, nil, 42, nil, 23,
+ nil, nil, 4, nil, nil, 42, nil, 73, 42, nil,
+ 16, 15, 15, 35, nil, nil, nil, nil, nil, nil,
+ 42, nil, nil, 20, 20, nil, nil, 8, nil, nil,
+ 73, 8, nil, 16, nil, 40, nil, 24, nil, 39,
+ nil, nil, 50, nil, 62, 9, nil, nil, nil, 9,
+ 9, nil, nil, nil, nil, nil, nil, nil, 15, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, 17, 15,
+ nil, 15, 15, nil, 39, nil, nil, nil, nil, 15,
+ nil, nil, 5, 27, 5, nil, 42, nil, nil, nil,
+ nil, 15, nil, nil, nil, 43, 20, 20, 6, 20,
+ nil, 20, nil, nil, 42, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 5,
+ nil, nil, nil, 42, nil, nil, nil, 42, nil, 27,
+ 20, 20, 42, nil, 20, nil, 73, nil, nil, 33,
+ nil, nil, nil, nil, nil, nil, 20, 17, 17, 17,
+ nil, nil, nil, nil, 9, nil, 24, nil, nil, nil,
+ nil, nil, nil, 23, nil, nil, nil, nil, nil, nil,
+ 15, 15, 15, 5, nil, 27, nil, nil, 42, nil,
+ nil, nil, nil, nil, nil, nil, nil, 17, nil, nil,
+ 17, nil, nil, nil, nil, nil, nil, nil, 17, nil,
+ nil, nil, 17, nil, 17, 17, nil, nil, 17, 17,
+ 15, nil, nil, 15, nil, nil, 17, 17, nil, 17,
+ nil, 15, 17, nil, nil, 15, 17, 15, 15, nil,
+ 60, 15, 15, 9, 9, 9, nil, nil, nil, 15,
+ 15, nil, 15, nil, nil, 15, nil, nil, nil, 15,
+ nil, nil, nil, nil, 60, 60, 60, 60, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, 9, nil, nil, 9, nil, nil, nil,
+ nil, nil, nil, nil, 9, nil, nil, nil, 9, nil,
+ 9, 9, nil, nil, 9, 9, nil, nil, nil, nil,
+ nil, nil, 9, 9, nil, 9, nil, nil, 9, 60,
+ nil, nil, 9, nil, nil, nil, 60, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, nil, nil, nil,
+ nil, nil, nil, 60, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, 60, 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, 60, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
+ nil, nil, 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, 60 ]
+
+racc_goto_pointer = [
+ nil, 113, 103, nil, 0, 7, 14, -20, 7, 58,
+ nil, nil, nil, nil, nil, -5, -52, -28, 53, -43,
+ -82, nil, nil, -25, -32, nil, 36, -64, nil, nil,
+ nil, 31, 4, -49, 20, -71, 17, -158, nil, -38,
+ -41, 19, -61, -71, 9, nil, -186, -144, -47, -213,
+ -142, -327, nil, -150, nil, nil, nil, nil, -104, -197,
+ 331, nil, -71, -212, -152, -102, -172, -224, -218, -198,
+ -184, -183, nil, -55, -48 ]
+
+racc_goto_default = [
+ nil, nil, nil, 3, 4, 66, 73, nil, 93, 106,
+ 92, 94, 95, 96, 97, 155, nil, 29, nil, nil,
+ 107, 42, 6, 7, 8, 9, 44, 259, 27, 28,
+ 30, nil, 79, 80, nil, nil, nil, 86, 87, 45,
+ 46, nil, 146, 363, nil, 165, 166, 362, 321, 280,
+ nil, 258, 260, 261, 121, 118, 119, 122, nil, nil,
+ 133, 125, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, nil ]
+
+racc_reduce_table = [
+ 0, 0, :racc_error,
+ 1, 92, :_reduce_1,
+ 2, 92, :_reduce_2,
+ 1, 93, :_reduce_3,
+ 1, 93, :_reduce_4,
+ 4, 94, :_reduce_5,
+ 3, 94, :_reduce_6,
+ 1, 98, :_reduce_7,
+ 2, 98, :_reduce_8,
+ 1, 100, :_reduce_9,
+ 1, 100, :_reduce_10,
+ 1, 100, :_reduce_11,
+ 1, 100, :_reduce_12,
+ 1, 100, :_reduce_13,
+ 1, 100, :_reduce_14,
+ 3, 101, :_reduce_15,
+ 4, 101, :_reduce_16,
+ 3, 101, :_reduce_17,
+ 3, 101, :_reduce_18,
+ 3, 99, :_reduce_19,
+ 2, 99, :_reduce_20,
+ 1, 109, :_reduce_21,
+ 2, 109, :_reduce_22,
+ 1, 110, :_reduce_23,
+ 1, 110, :_reduce_24,
+ 2, 102, :_reduce_25,
+ 1, 102, :_reduce_26,
+ 5, 103, :_reduce_27,
+ 7, 103, :_reduce_28,
+ 5, 103, :_reduce_29,
+ 5, 104, :_reduce_30,
+ 7, 104, :_reduce_31,
+ 9, 104, :_reduce_32,
+ 8, 104, :_reduce_33,
+ 8, 104, :_reduce_34,
+ 7, 104, :_reduce_35,
+ 8, 104, :_reduce_36,
+ 7, 104, :_reduce_37,
+ 7, 104, :_reduce_38,
+ 6, 104, :_reduce_39,
+ 8, 104, :_reduce_40,
+ 7, 104, :_reduce_41,
+ 7, 104, :_reduce_42,
+ 6, 104, :_reduce_43,
+ 3, 105, :_reduce_44,
+ 2, 105, :_reduce_45,
+ 2, 105, :_reduce_46,
+ 3, 105, :_reduce_47,
+ 2, 105, :_reduce_48,
+ 3, 105, :_reduce_49,
+ 3, 95, :_reduce_50,
+ 2, 95, :_reduce_51,
+ 2, 96, :_reduce_52,
+ 1, 96, :_reduce_53,
+ 2, 96, :_reduce_54,
+ 1, 96, :_reduce_55,
+ 2, 96, :_reduce_56,
+ 1, 96, :_reduce_57,
+ 2, 96, :_reduce_58,
+ 1, 96, :_reduce_59,
+ 1, 112, :_reduce_60,
+ 3, 112, :_reduce_61,
+ 1, 117, :_reduce_62,
+ 3, 117, :_reduce_63,
+ 1, 113, :_reduce_64,
+ 1, 113, :_reduce_65,
+ 1, 113, :_reduce_66,
+ 1, 113, :_reduce_67,
+ 1, 113, :_reduce_68,
+ 1, 114, :_reduce_69,
+ 1, 114, :_reduce_70,
+ 1, 114, :_reduce_71,
+ 1, 114, :_reduce_72,
+ 1, 114, :_reduce_73,
+ 1, 114, :_reduce_74,
+ 1, 114, :_reduce_75,
+ 1, 114, :_reduce_76,
+ 1, 114, :_reduce_77,
+ 1, 114, :_reduce_78,
+ 1, 114, :_reduce_79,
+ 1, 114, :_reduce_80,
+ 1, 114, :_reduce_81,
+ 1, 114, :_reduce_82,
+ 1, 114, :_reduce_83,
+ 5, 119, :_reduce_84,
+ 4, 119, :_reduce_85,
+ 2, 119, :_reduce_86,
+ 5, 119, :_reduce_87,
+ 2, 119, :_reduce_88,
+ 1, 121, :_reduce_89,
+ 1, 121, :_reduce_90,
+ 1, 122, :_reduce_91,
+ 2, 122, :_reduce_92,
+ 3, 123, :_reduce_93,
+ 2, 124, :_reduce_94,
+ 1, 124, :_reduce_95,
+ 2, 124, :_reduce_96,
+ 1, 124, :_reduce_97,
+ 1, 125, :_reduce_98,
+ 3, 125, :_reduce_99,
+ 1, 126, :_reduce_100,
+ 3, 126, :_reduce_101,
+ 2, 126, :_reduce_102,
+ 5, 120, :_reduce_103,
+ 4, 120, :_reduce_104,
+ 6, 120, :_reduce_105,
+ 5, 120, :_reduce_106,
+ 2, 120, :_reduce_107,
+ 5, 120, :_reduce_108,
+ 6, 120, :_reduce_109,
+ 2, 120, :_reduce_110,
+ 1, 127, :_reduce_111,
+ 3, 127, :_reduce_112,
+ 1, 128, :_reduce_113,
+ 3, 128, :_reduce_114,
+ 1, 115, :_reduce_115,
+ 1, 115, :_reduce_116,
+ 1, 115, :_reduce_117,
+ 1, 116, :_reduce_118,
+ 2, 97, :_reduce_119,
+ 1, 97, :_reduce_120,
+ 1, 131, :_reduce_121,
+ 3, 131, :_reduce_122,
+ 5, 131, :_reduce_123,
+ 4, 131, :_reduce_124,
+ 4, 131, :_reduce_125,
+ 3, 131, :_reduce_126,
+ 6, 131, :_reduce_127,
+ 5, 131, :_reduce_128,
+ 6, 131, :_reduce_129,
+ 5, 131, :_reduce_130,
+ 4, 131, :_reduce_131,
+ 4, 131, :_reduce_132,
+ 4, 131, :_reduce_133,
+ 3, 131, :_reduce_134,
+ 2, 130, :_reduce_135,
+ 1, 130, :_reduce_136,
+ 3, 130, :_reduce_137,
+ 2, 130, :_reduce_138,
+ 1, 132, :_reduce_139,
+ 2, 132, :_reduce_140,
+ 1, 134, :_reduce_141,
+ 3, 134, :_reduce_142,
+ 1, 136, :_reduce_143,
+ 3, 136, :_reduce_144,
+ 2, 137, :_reduce_145,
+ 2, 137, :_reduce_146,
+ 1, 137, :_reduce_147,
+ 1, 135, :_reduce_148,
+ 3, 135, :_reduce_149,
+ 2, 139, :_reduce_150,
+ 1, 139, :_reduce_151,
+ 1, 138, :_reduce_152,
+ 2, 138, :_reduce_153,
+ 1, 138, :_reduce_154,
+ 3, 140, :_reduce_155,
+ 4, 140, :_reduce_156,
+ 3, 140, :_reduce_157,
+ 3, 140, :_reduce_158,
+ 2, 140, :_reduce_159,
+ 4, 140, :_reduce_160,
+ 3, 140, :_reduce_161,
+ 4, 140, :_reduce_162,
+ 3, 140, :_reduce_163,
+ 3, 140, :_reduce_164,
+ 2, 140, :_reduce_165,
+ 1, 108, :_reduce_166,
+ 1, 118, :_reduce_167,
+ 3, 118, :_reduce_168,
+ 4, 118, :_reduce_169,
+ 2, 141, :_reduce_170,
+ 1, 141, :_reduce_171,
+ 4, 141, :_reduce_172,
+ 3, 141, :_reduce_173,
+ 2, 142, :_reduce_174,
+ 1, 143, :_reduce_175,
+ 2, 143, :_reduce_176,
+ 3, 144, :_reduce_177,
+ 2, 144, :_reduce_178,
+ 1, 145, :_reduce_179,
+ 1, 145, :_reduce_180,
+ 1, 145, :_reduce_181,
+ 3, 145, :_reduce_182,
+ 3, 145, :_reduce_183,
+ 1, 148, :_reduce_184,
+ 4, 148, :_reduce_185,
+ 4, 148, :_reduce_186,
+ 3, 148, :_reduce_187,
+ 3, 148, :_reduce_188,
+ 3, 148, :_reduce_189,
+ 2, 148, :_reduce_190,
+ 2, 148, :_reduce_191,
+ 6, 148, :_reduce_192,
+ 7, 148, :_reduce_193,
+ 1, 149, :_reduce_194,
+ 3, 149, :_reduce_195,
+ 1, 150, :_reduce_196,
+ 1, 150, :_reduce_197,
+ 1, 151, :_reduce_198,
+ 2, 151, :_reduce_199,
+ 2, 151, :_reduce_200,
+ 2, 151, :_reduce_201,
+ 2, 151, :_reduce_202,
+ 4, 151, :_reduce_203,
+ 1, 152, :_reduce_204,
+ 1, 152, :_reduce_205,
+ 1, 152, :_reduce_206,
+ 1, 152, :_reduce_207,
+ 1, 152, :_reduce_208,
+ 1, 152, :_reduce_209,
+ 1, 153, :_reduce_210,
+ 4, 153, :_reduce_211,
+ 1, 154, :_reduce_212,
+ 3, 154, :_reduce_213,
+ 3, 154, :_reduce_214,
+ 3, 154, :_reduce_215,
+ 1, 155, :_reduce_216,
+ 3, 155, :_reduce_217,
+ 3, 155, :_reduce_218,
+ 1, 156, :_reduce_219,
+ 3, 156, :_reduce_220,
+ 3, 156, :_reduce_221,
+ 1, 157, :_reduce_222,
+ 3, 157, :_reduce_223,
+ 3, 157, :_reduce_224,
+ 3, 157, :_reduce_225,
+ 3, 157, :_reduce_226,
+ 1, 158, :_reduce_227,
+ 3, 158, :_reduce_228,
+ 3, 158, :_reduce_229,
+ 1, 159, :_reduce_230,
+ 3, 159, :_reduce_231,
+ 1, 160, :_reduce_232,
+ 3, 160, :_reduce_233,
+ 1, 161, :_reduce_234,
+ 3, 161, :_reduce_235,
+ 1, 162, :_reduce_236,
+ 3, 162, :_reduce_237,
+ 1, 163, :_reduce_238,
+ 3, 163, :_reduce_239,
+ 1, 164, :_reduce_240,
+ 5, 164, :_reduce_241,
+ 1, 133, :_reduce_242,
+ 3, 133, :_reduce_243,
+ 1, 165, :_reduce_244,
+ 1, 165, :_reduce_245,
+ 1, 165, :_reduce_246,
+ 1, 165, :_reduce_247,
+ 1, 165, :_reduce_248,
+ 1, 165, :_reduce_249,
+ 1, 165, :_reduce_250,
+ 1, 165, :_reduce_251,
+ 1, 165, :_reduce_252,
+ 1, 165, :_reduce_253,
+ 1, 165, :_reduce_254,
+ 1, 111, :_reduce_255,
+ 3, 111, :_reduce_256,
+ 1, 107, :_reduce_257,
+ 1, 106, :_reduce_258,
+ 1, 146, :_reduce_259,
+ 1, 146, :_reduce_260,
+ 1, 146, :_reduce_261,
+ 1, 129, :_reduce_262,
+ 2, 147, :_reduce_263,
+ 1, 147, :_reduce_264 ]
+
+racc_reduce_n = 265
+
+racc_shift_n = 460
+
+racc_token_table = {
+ false => 0,
+ :error => 1,
+ :COLON => 2,
+ :CASE => 3,
+ :DEFAULT => 4,
+ :LBRACE => 5,
+ :RBRACE => 6,
+ :SEMICOLON => 7,
+ :IF => 8,
+ :LPAREN => 9,
+ :RPAREN => 10,
+ :ELSE => 11,
+ :SWITCH => 12,
+ :WHILE => 13,
+ :DO => 14,
+ :FOR => 15,
+ :GOTO => 16,
+ :CONTINUE => 17,
+ :BREAK => 18,
+ :RETURN => 19,
+ :COMMA => 20,
+ :EQ => 21,
+ :TYPEDEF => 22,
+ :EXTERN => 23,
+ :STATIC => 24,
+ :AUTO => 25,
+ :REGISTER => 26,
+ :VOID => 27,
+ :CHAR => 28,
+ :SHORT => 29,
+ :INT => 30,
+ :LONG => 31,
+ :FLOAT => 32,
+ :DOUBLE => 33,
+ :SIGNED => 34,
+ :UNSIGNED => 35,
+ :BOOL => 36,
+ :COMPLEX => 37,
+ :IMAGINARY => 38,
+ :STRUCT => 39,
+ :UNION => 40,
+ :ENUM => 41,
+ :CONST => 42,
+ :RESTRICT => 43,
+ :VOLATILE => 44,
+ :INLINE => 45,
+ :LBRACKET => 46,
+ :RBRACKET => 47,
+ :MUL => 48,
+ :ELLIPSIS => 49,
+ :TYPENAME => 50,
+ :DOT => 51,
+ :ARROW => 52,
+ :INC => 53,
+ :DEC => 54,
+ :SIZEOF => 55,
+ :AND => 56,
+ :ADD => 57,
+ :SUB => 58,
+ :NOT => 59,
+ :BANG => 60,
+ :DIV => 61,
+ :MOD => 62,
+ :LSHIFT => 63,
+ :RSHIFT => 64,
+ :LT => 65,
+ :GT => 66,
+ :LEQ => 67,
+ :GEQ => 68,
+ :EQEQ => 69,
+ :NEQ => 70,
+ :XOR => 71,
+ :OR => 72,
+ :ANDAND => 73,
+ :OROR => 74,
+ :QUESTION => 75,
+ :MULEQ => 76,
+ :DIVEQ => 77,
+ :MODEQ => 78,
+ :ADDEQ => 79,
+ :SUBEQ => 80,
+ :LSHIFTEQ => 81,
+ :RSHIFTEQ => 82,
+ :ANDEQ => 83,
+ :XOREQ => 84,
+ :OREQ => 85,
+ :ID => 86,
+ :ICON => 87,
+ :FCON => 88,
+ :CCON => 89,
+ :SCON => 90 }
+
+racc_nt_base = 91
+
+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",
+ "COLON",
+ "CASE",
+ "DEFAULT",
+ "LBRACE",
+ "RBRACE",
+ "SEMICOLON",
+ "IF",
+ "LPAREN",
+ "RPAREN",
+ "ELSE",
+ "SWITCH",
+ "WHILE",
+ "DO",
+ "FOR",
+ "GOTO",
+ "CONTINUE",
+ "BREAK",
+ "RETURN",
+ "COMMA",
+ "EQ",
+ "TYPEDEF",
+ "EXTERN",
+ "STATIC",
+ "AUTO",
+ "REGISTER",
+ "VOID",
+ "CHAR",
+ "SHORT",
+ "INT",
+ "LONG",
+ "FLOAT",
+ "DOUBLE",
+ "SIGNED",
+ "UNSIGNED",
+ "BOOL",
+ "COMPLEX",
+ "IMAGINARY",
+ "STRUCT",
+ "UNION",
+ "ENUM",
+ "CONST",
+ "RESTRICT",
+ "VOLATILE",
+ "INLINE",
+ "LBRACKET",
+ "RBRACKET",
+ "MUL",
+ "ELLIPSIS",
+ "TYPENAME",
+ "DOT",
+ "ARROW",
+ "INC",
+ "DEC",
+ "SIZEOF",
+ "AND",
+ "ADD",
+ "SUB",
+ "NOT",
+ "BANG",
+ "DIV",
+ "MOD",
+ "LSHIFT",
+ "RSHIFT",
+ "LT",
+ "GT",
+ "LEQ",
+ "GEQ",
+ "EQEQ",
+ "NEQ",
+ "XOR",
+ "OR",
+ "ANDAND",
+ "OROR",
+ "QUESTION",
+ "MULEQ",
+ "DIVEQ",
+ "MODEQ",
+ "ADDEQ",
+ "SUBEQ",
+ "LSHIFTEQ",
+ "RSHIFTEQ",
+ "ANDEQ",
+ "XOREQ",
+ "OREQ",
+ "ID",
+ "ICON",
+ "FCON",
+ "CCON",
+ "SCON",
+ "$start",
+ "translation_unit",
+ "external_declaration",
+ "function_definition",
+ "declaration",
+ "declaration_specifiers",
+ "declarator",
+ "declaration_list",
+ "compound_statement",
+ "statement",
+ "labeled_statement",
+ "expression_statement",
+ "selection_statement",
+ "iteration_statement",
+ "jump_statement",
+ "identifier",
+ "constant_expression",
+ "typedef_name",
+ "block_item_list",
+ "block_item",
+ "expression",
+ "init_declarator_list",
+ "storage_class_specifier",
+ "type_specifier",
+ "type_qualifier",
+ "function_specifier",
+ "init_declarator",
+ "initializer",
+ "struct_or_union_specifier",
+ "enum_specifier",
+ "struct_or_union",
+ "struct_declaration_list",
+ "struct_declaration",
+ "specifier_qualifier_list",
+ "struct_declarator_list",
+ "struct_declarator",
+ "enumerator_list",
+ "enumerator",
+ "enumeration_constant",
+ "pointer",
+ "direct_declarator",
+ "type_qualifier_list",
+ "assignment_expression",
+ "parameter_type_list",
+ "identifier_list",
+ "parameter_list",
+ "parameter_declaration",
+ "abstract_declarator",
+ "type_name",
+ "direct_abstract_declarator",
+ "initializer_list",
+ "designation",
+ "designator_list",
+ "designator",
+ "primary_expression",
+ "constant",
+ "string_literal",
+ "postfix_expression",
+ "argument_expression_list",
+ "argument_expression",
+ "unary_expression",
+ "unary_operator",
+ "cast_expression",
+ "multiplicative_expression",
+ "additive_expression",
+ "shift_expression",
+ "relational_expression",
+ "equality_expression",
+ "and_expression",
+ "exclusive_or_expression",
+ "inclusive_or_expression",
+ "logical_and_expression",
+ "logical_or_expression",
+ "conditional_expression",
+ "assignment_operator" ]
+
+Racc_debug_parser = false
+
+##### State transition tables end #####
+
+# reduce 0 omitted
+
+module_eval(<<'.,.,', 'cast.y', 32)
+ def _reduce_1(val, _values, result)
+ result = TranslationUnit.new_at(val[0].pos, NodeChain[val[0]])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 33)
+ def _reduce_2(val, _values, result)
+ result = val[0]; result.entities << val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 37)
+ def _reduce_3(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 38)
+ def _reduce_4(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 42)
+ def _reduce_5(val, _values, result)
+ result = make_function_def(val[0][0], val[0][1], val[1], val[2], val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 43)
+ def _reduce_6(val, _values, result)
+ result = make_function_def(val[0][0], val[0][1], val[1], nil , val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 47)
+ def _reduce_7(val, _values, result)
+ result = [val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 48)
+ def _reduce_8(val, _values, result)
+ result = val[0] << val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 54)
+ def _reduce_9(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 55)
+ def _reduce_10(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 56)
+ def _reduce_11(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 57)
+ def _reduce_12(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 58)
+ def _reduce_13(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 59)
+ def _reduce_14(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 63)
+ def _reduce_15(val, _values, result)
+ val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].val)); result = val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 64)
+ def _reduce_16(val, _values, result)
+ val[3].labels.unshift(Case .new_at(val[0].pos, val[1] )); result = val[3]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 65)
+ def _reduce_17(val, _values, result)
+ val[2].labels.unshift(Default .new_at(val[0].pos )); result = val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 67)
+ def _reduce_18(val, _values, result)
+ val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].name)); result = val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 71)
+ def _reduce_19(val, _values, result)
+ result = Block.new_at(val[0].pos, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 72)
+ def _reduce_20(val, _values, result)
+ result = Block.new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 76)
+ def _reduce_21(val, _values, result)
+ result = NodeChain[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 77)
+ def _reduce_22(val, _values, result)
+ result = val[0] << val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 81)
+ def _reduce_23(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 82)
+ def _reduce_24(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 86)
+ def _reduce_25(val, _values, result)
+ result = ExpressionStatement.new_at(val[0].pos, val[0])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 87)
+ def _reduce_26(val, _values, result)
+ result = ExpressionStatement.new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 91)
+ def _reduce_27(val, _values, result)
+ result = If .new_at(val[0].pos, val[2], val[4] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 92)
+ def _reduce_28(val, _values, result)
+ result = If .new_at(val[0].pos, val[2], val[4], val[6])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 93)
+ def _reduce_29(val, _values, result)
+ result = Switch.new_at(val[0].pos, val[2], val[4] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 97)
+ def _reduce_30(val, _values, result)
+ result = While.new_at(val[0].pos, val[2], val[4] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 98)
+ def _reduce_31(val, _values, result)
+ result = While.new_at(val[0].pos, val[4], val[1], :do => true )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 99)
+ def _reduce_32(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], val[4], val[6], val[8])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 100)
+ def _reduce_33(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], val[4], nil , val[7])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 101)
+ def _reduce_34(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], nil , val[5], val[7])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 102)
+ def _reduce_35(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], nil , nil , val[6])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 103)
+ def _reduce_36(val, _values, result)
+ result = For.new_at(val[0].pos, nil , val[3], val[5], val[7])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 104)
+ def _reduce_37(val, _values, result)
+ result = For.new_at(val[0].pos, nil , val[3], nil , val[6])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 105)
+ def _reduce_38(val, _values, result)
+ result = For.new_at(val[0].pos, nil , nil , val[4], val[6])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 106)
+ def _reduce_39(val, _values, result)
+ result = For.new_at(val[0].pos, nil , nil , nil , val[5])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 107)
+ def _reduce_40(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], val[3], val[5], val[7])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 108)
+ def _reduce_41(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], val[3], nil , val[6])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 109)
+ def _reduce_42(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], nil , val[4], val[6])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 110)
+ def _reduce_43(val, _values, result)
+ result = For.new_at(val[0].pos, val[2], nil , nil , val[5])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 114)
+ def _reduce_44(val, _values, result)
+ result = Goto .new_at(val[0].pos, val[1].val)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 115)
+ def _reduce_45(val, _values, result)
+ result = Continue.new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 116)
+ def _reduce_46(val, _values, result)
+ result = Break .new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 117)
+ def _reduce_47(val, _values, result)
+ result = Return .new_at(val[0].pos, val[1] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 118)
+ def _reduce_48(val, _values, result)
+ result = Return .new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 120)
+ def _reduce_49(val, _values, result)
+ result = Goto .new_at(val[0].pos, val[1].name)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 126)
+ def _reduce_50(val, _values, result)
+ result = make_declaration(val[0][0], val[0][1], val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 127)
+ def _reduce_51(val, _values, result)
+ result = make_declaration(val[0][0], val[0][1], NodeArray[])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 131)
+ def _reduce_52(val, _values, result)
+ val[1][1] << val[0][1]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 132)
+ def _reduce_53(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 133)
+ def _reduce_54(val, _values, result)
+ val[1][1] << val[0][1]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 134)
+ def _reduce_55(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 135)
+ def _reduce_56(val, _values, result)
+ val[1][1] << val[0][1]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 136)
+ def _reduce_57(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 137)
+ def _reduce_58(val, _values, result)
+ val[1][1] << val[0][1]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 138)
+ def _reduce_59(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 142)
+ def _reduce_60(val, _values, result)
+ result = NodeArray[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 143)
+ def _reduce_61(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 147)
+ def _reduce_62(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 148)
+ def _reduce_63(val, _values, result)
+ val[0].init = val[2]; result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 152)
+ def _reduce_64(val, _values, result)
+ result = [val[0].pos, :typedef ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 153)
+ def _reduce_65(val, _values, result)
+ result = [val[0].pos, :extern ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 154)
+ def _reduce_66(val, _values, result)
+ result = [val[0].pos, :static ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 155)
+ def _reduce_67(val, _values, result)
+ result = [val[0].pos, :auto ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 156)
+ def _reduce_68(val, _values, result)
+ result = [val[0].pos, :register]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 160)
+ def _reduce_69(val, _values, result)
+ result = [val[0].pos, :void ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 161)
+ def _reduce_70(val, _values, result)
+ result = [val[0].pos, :char ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 162)
+ def _reduce_71(val, _values, result)
+ result = [val[0].pos, :short ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 163)
+ def _reduce_72(val, _values, result)
+ result = [val[0].pos, :int ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 164)
+ def _reduce_73(val, _values, result)
+ result = [val[0].pos, :long ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 165)
+ def _reduce_74(val, _values, result)
+ result = [val[0].pos, :float ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 166)
+ def _reduce_75(val, _values, result)
+ result = [val[0].pos, :double ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 167)
+ def _reduce_76(val, _values, result)
+ result = [val[0].pos, :signed ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 168)
+ def _reduce_77(val, _values, result)
+ result = [val[0].pos, :unsigned ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 169)
+ def _reduce_78(val, _values, result)
+ result = [val[0].pos, :_Bool ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 170)
+ def _reduce_79(val, _values, result)
+ result = [val[0].pos, :_Complex ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 171)
+ def _reduce_80(val, _values, result)
+ result = [val[0].pos, :_Imaginary]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 172)
+ def _reduce_81(val, _values, result)
+ result = [val[0].pos, val[0] ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 173)
+ def _reduce_82(val, _values, result)
+ result = [val[0].pos, val[0] ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 174)
+ def _reduce_83(val, _values, result)
+ result = [val[0].pos, val[0] ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 178)
+ def _reduce_84(val, _values, result)
+ result = val[0][1].new_at(val[0][0], val[1].val, val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 179)
+ def _reduce_85(val, _values, result)
+ result = val[0][1].new_at(val[0][0], nil , val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 180)
+ def _reduce_86(val, _values, result)
+ result = val[0][1].new_at(val[0][0], val[1].val, nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 182)
+ def _reduce_87(val, _values, result)
+ result = val[0][1].new_at(val[0][0], val[1].name, val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 183)
+ def _reduce_88(val, _values, result)
+ result = val[0][1].new_at(val[0][0], val[1].name, nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 187)
+ def _reduce_89(val, _values, result)
+ result = [val[0].pos, Struct]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 188)
+ def _reduce_90(val, _values, result)
+ result = [val[0].pos, Union ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 192)
+ def _reduce_91(val, _values, result)
+ result = NodeArray[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 193)
+ def _reduce_92(val, _values, result)
+ val[0] << val[1]; result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 197)
+ def _reduce_93(val, _values, result)
+ result = make_declaration(val[0][0], val[0][1], val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 201)
+ def _reduce_94(val, _values, result)
+ val[1][1] << val[0][1]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 202)
+ def _reduce_95(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 203)
+ def _reduce_96(val, _values, result)
+ val[1][1] << val[0][1]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 204)
+ def _reduce_97(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 208)
+ def _reduce_98(val, _values, result)
+ result = NodeArray[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 209)
+ def _reduce_99(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 213)
+ def _reduce_100(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 214)
+ def _reduce_101(val, _values, result)
+ result = val[0]; val[0].num_bits = val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 215)
+ def _reduce_102(val, _values, result)
+ result = Declarator.new_at(val[0].pos, :num_bits => val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 219)
+ def _reduce_103(val, _values, result)
+ result = Enum.new_at(val[0].pos, val[1].val, val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 220)
+ def _reduce_104(val, _values, result)
+ result = Enum.new_at(val[0].pos, nil , val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 221)
+ def _reduce_105(val, _values, result)
+ result = Enum.new_at(val[0].pos, val[1].val, val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 222)
+ def _reduce_106(val, _values, result)
+ result = Enum.new_at(val[0].pos, nil , val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 223)
+ def _reduce_107(val, _values, result)
+ result = Enum.new_at(val[0].pos, val[1].val, nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 225)
+ def _reduce_108(val, _values, result)
+ result = Enum.new_at(val[0].pos, val[1].name, val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 226)
+ def _reduce_109(val, _values, result)
+ result = Enum.new_at(val[0].pos, val[1].name, val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 227)
+ def _reduce_110(val, _values, result)
+ result = Enum.new_at(val[0].pos, val[1].name, nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 231)
+ def _reduce_111(val, _values, result)
+ result = NodeArray[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 232)
+ def _reduce_112(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 236)
+ def _reduce_113(val, _values, result)
+ result = Enumerator.new_at(val[0].pos, val[0].val, nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 237)
+ def _reduce_114(val, _values, result)
+ result = Enumerator.new_at(val[0].pos, val[0].val, val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 241)
+ def _reduce_115(val, _values, result)
+ result = [val[0].pos, :const ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 242)
+ def _reduce_116(val, _values, result)
+ result = [val[0].pos, :restrict]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 243)
+ def _reduce_117(val, _values, result)
+ result = [val[0].pos, :volatile]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 247)
+ def _reduce_118(val, _values, result)
+ result = [val[0].pos, :inline]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 251)
+ def _reduce_119(val, _values, result)
+ result = add_decl_type(val[1], val[0])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 252)
+ def _reduce_120(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 256)
+ def _reduce_121(val, _values, result)
+ result = Declarator.new_at(val[0].pos, nil, val[0].val)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 257)
+ def _reduce_122(val, _values, result)
+ result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 258)
+ def _reduce_123(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 259)
+ def _reduce_124(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 260)
+ def _reduce_125(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos, nil, val[2]))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 261)
+ def _reduce_126(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 262)
+ def _reduce_127(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 263)
+ def _reduce_128(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 264)
+ def _reduce_129(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 265)
+ def _reduce_130(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 266)
+ def _reduce_131(val, _values, result)
+ result = add_decl_type(val[0], Array.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 267)
+ def _reduce_132(val, _values, result)
+ result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, param_list(*val[2]), :var_args => val[2][1]))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 268)
+ def _reduce_133(val, _values, result)
+ result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, val[2]))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 269)
+ def _reduce_134(val, _values, result)
+ result = add_decl_type(val[0], Function.new_at(val[0].pos ))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 273)
+ def _reduce_135(val, _values, result)
+ result = add_type_quals(Pointer.new_at(val[0].pos), val[1][1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 274)
+ def _reduce_136(val, _values, result)
+ result = Pointer.new_at(val[0].pos)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 275)
+ def _reduce_137(val, _values, result)
+ p = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]); val[2].direct_type = p; result = val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 276)
+ def _reduce_138(val, _values, result)
+ p = Pointer.new_at(val[0].pos) ; val[1].direct_type = p; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 280)
+ def _reduce_139(val, _values, result)
+ result = [val[0][0], [val[0][1]]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 281)
+ def _reduce_140(val, _values, result)
+ val[0][1] << val[1][1]; result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 285)
+ def _reduce_141(val, _values, result)
+ result = [val[0], false]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 286)
+ def _reduce_142(val, _values, result)
+ result = [val[0], true ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 290)
+ def _reduce_143(val, _values, result)
+ result = NodeArray[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 291)
+ def _reduce_144(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 295)
+ def _reduce_145(val, _values, result)
+ ind_type = val[1].indirect_type and ind_type.detach
+ result = make_parameter(val[0][0], val[0][1], ind_type, val[1].name)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 297)
+ def _reduce_146(val, _values, result)
+ result = make_parameter(val[0][0], val[0][1], val[1] , nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 298)
+ def _reduce_147(val, _values, result)
+ result = make_parameter(val[0][0], val[0][1], nil , nil )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 302)
+ def _reduce_148(val, _values, result)
+ result = NodeArray[Parameter.new_at(val[0].pos, nil, val[0].val)]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 303)
+ def _reduce_149(val, _values, result)
+ result = val[0] << Parameter.new_at(val[2].pos, nil, val[2].val)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 307)
+ def _reduce_150(val, _values, result)
+ val[1].direct_type = make_direct_type(val[0][0], val[0][1]); result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 308)
+ def _reduce_151(val, _values, result)
+ result = make_direct_type(val[0][0], val[0][1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 312)
+ def _reduce_152(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 313)
+ def _reduce_153(val, _values, result)
+ val[1].direct_type = val[0]; result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 314)
+ def _reduce_154(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 318)
+ def _reduce_155(val, _values, result)
+ result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 319)
+ def _reduce_156(val, _values, result)
+ val[0].direct_type = Array.new_at(val[0].pos, nil, val[2]); result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 320)
+ def _reduce_157(val, _values, result)
+ val[0].direct_type = Array.new_at(val[0].pos, nil, nil ); result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 321)
+ def _reduce_158(val, _values, result)
+ result = Array.new_at(val[0].pos, nil, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 322)
+ def _reduce_159(val, _values, result)
+ result = Array.new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 323)
+ def _reduce_160(val, _values, result)
+ val[0].direct_type = Array.new_at(val[0].pos); result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 324)
+ def _reduce_161(val, _values, result)
+ result = Array.new_at(val[0].pos)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 325)
+ def _reduce_162(val, _values, result)
+ val[0].direct_type = Function.new_at(val[0].pos, nil, param_list(*val[2]), val[2][1]); result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 326)
+ def _reduce_163(val, _values, result)
+ val[0].direct_type = Function.new_at(val[0].pos ); result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 327)
+ def _reduce_164(val, _values, result)
+ result = Function.new_at(val[0].pos, nil, param_list(*val[1]), val[1][1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 328)
+ def _reduce_165(val, _values, result)
+ result = Function.new_at(val[0].pos )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 334)
+ def _reduce_166(val, _values, result)
+ result = CustomType.new_at(val[0].pos, val[0].val)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 338)
+ def _reduce_167(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 339)
+ def _reduce_168(val, _values, result)
+ result = CompoundLiteral.new_at(val[0].pos, nil, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 340)
+ def _reduce_169(val, _values, result)
+ result = CompoundLiteral.new_at(val[0].pos, nil, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 344)
+ def _reduce_170(val, _values, result)
+ result = NodeArray[MemberInit.new_at(val[0][0] , val[0][1], val[1])]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 345)
+ def _reduce_171(val, _values, result)
+ result = NodeArray[MemberInit.new_at(val[0].pos, nil , val[0])]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 346)
+ def _reduce_172(val, _values, result)
+ result = val[0] << MemberInit.new_at(val[2][0] , val[2][1], val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 347)
+ def _reduce_173(val, _values, result)
+ result = val[0] << MemberInit.new_at(val[2].pos, nil , val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 351)
+ def _reduce_174(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 355)
+ def _reduce_175(val, _values, result)
+ result = val[0]; val[0][1] = NodeArray[val[0][1]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 356)
+ def _reduce_176(val, _values, result)
+ result = val[0]; val[0][1] << val[1][1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 360)
+ def _reduce_177(val, _values, result)
+ result = [val[1].pos, val[1] ]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 361)
+ def _reduce_178(val, _values, result)
+ result = [val[1].pos, Member.new_at(val[1].pos, val[1].val)]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 367)
+ def _reduce_179(val, _values, result)
+ result = Variable.new_at(val[0].pos, val[0].val)
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 368)
+ def _reduce_180(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 369)
+ def _reduce_181(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 371)
+ def _reduce_182(val, _values, result)
+ result = val[1]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 372)
+ def _reduce_183(val, _values, result)
+ block_expressions_enabled? or parse_error val[0].pos, "compound statement found where expression expected"
+ result = BlockExpression.new(val[1]); result.pos = val[0].pos
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 377)
+ def _reduce_184(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 378)
+ def _reduce_185(val, _values, result)
+ result = Index .new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 379)
+ def _reduce_186(val, _values, result)
+ result = Call .new_at(val[0].pos, val[0], val[2] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 380)
+ def _reduce_187(val, _values, result)
+ result = Call .new_at(val[0].pos, val[0], NodeArray[])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 381)
+ def _reduce_188(val, _values, result)
+ result = Dot .new_at(val[0].pos, val[0], Member.new(val[2].val))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 382)
+ def _reduce_189(val, _values, result)
+ result = Arrow .new_at(val[0].pos, val[0], Member.new(val[2].val))
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 383)
+ def _reduce_190(val, _values, result)
+ result = PostInc .new_at(val[0].pos, val[0] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 384)
+ def _reduce_191(val, _values, result)
+ result = PostDec .new_at(val[0].pos, val[0] )
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 385)
+ def _reduce_192(val, _values, result)
+ result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 386)
+ def _reduce_193(val, _values, result)
+ result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 390)
+ def _reduce_194(val, _values, result)
+ result = NodeArray[val[0]]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 391)
+ def _reduce_195(val, _values, result)
+ result = val[0] << val[2]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 395)
+ def _reduce_196(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 396)
+ def _reduce_197(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 400)
+ def _reduce_198(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 401)
+ def _reduce_199(val, _values, result)
+ result = PreInc.new_at(val[0].pos, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 402)
+ def _reduce_200(val, _values, result)
+ result = PreDec.new_at(val[0].pos, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 403)
+ def _reduce_201(val, _values, result)
+ result = val[0][0].new_at(val[0][1], val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 404)
+ def _reduce_202(val, _values, result)
+ result = Sizeof.new_at(val[0].pos, val[1])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 405)
+ def _reduce_203(val, _values, result)
+ result = Sizeof.new_at(val[0].pos, val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 409)
+ def _reduce_204(val, _values, result)
+ result = [Address , val[0].pos]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 410)
+ def _reduce_205(val, _values, result)
+ result = [Dereference, val[0].pos]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 411)
+ def _reduce_206(val, _values, result)
+ result = [Positive , val[0].pos]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 412)
+ def _reduce_207(val, _values, result)
+ result = [Negative , val[0].pos]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 413)
+ def _reduce_208(val, _values, result)
+ result = [BitNot , val[0].pos]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 414)
+ def _reduce_209(val, _values, result)
+ result = [Not , val[0].pos]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 418)
+ def _reduce_210(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 419)
+ def _reduce_211(val, _values, result)
+ result = Cast.new_at(val[0].pos, val[1], val[3])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 423)
+ def _reduce_212(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 424)
+ def _reduce_213(val, _values, result)
+ result = Multiply.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 425)
+ def _reduce_214(val, _values, result)
+ result = Divide .new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 426)
+ def _reduce_215(val, _values, result)
+ result = Mod .new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 430)
+ def _reduce_216(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 431)
+ def _reduce_217(val, _values, result)
+ result = Add .new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 432)
+ def _reduce_218(val, _values, result)
+ result = Subtract.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 436)
+ def _reduce_219(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 437)
+ def _reduce_220(val, _values, result)
+ result = ShiftLeft .new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 438)
+ def _reduce_221(val, _values, result)
+ result = ShiftRight.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 442)
+ def _reduce_222(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 443)
+ def _reduce_223(val, _values, result)
+ result = Less.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 444)
+ def _reduce_224(val, _values, result)
+ result = More.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 445)
+ def _reduce_225(val, _values, result)
+ result = LessOrEqual.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 446)
+ def _reduce_226(val, _values, result)
+ result = MoreOrEqual.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 450)
+ def _reduce_227(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 451)
+ def _reduce_228(val, _values, result)
+ result = Equal .new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 452)
+ def _reduce_229(val, _values, result)
+ result = NotEqual.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 456)
+ def _reduce_230(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 457)
+ def _reduce_231(val, _values, result)
+ result = BitAnd.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 461)
+ def _reduce_232(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 462)
+ def _reduce_233(val, _values, result)
+ result = BitXor.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 466)
+ def _reduce_234(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 467)
+ def _reduce_235(val, _values, result)
+ result = BitOr.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 471)
+ def _reduce_236(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 472)
+ def _reduce_237(val, _values, result)
+ result = And.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 476)
+ def _reduce_238(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 477)
+ def _reduce_239(val, _values, result)
+ result = Or.new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 481)
+ def _reduce_240(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 482)
+ def _reduce_241(val, _values, result)
+ result = Conditional.new_at(val[0].pos, val[0], val[2], val[4])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 486)
+ def _reduce_242(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 487)
+ def _reduce_243(val, _values, result)
+ result = val[1].new_at(val[0].pos, val[0], val[2])
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 491)
+ def _reduce_244(val, _values, result)
+ result = Assign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 492)
+ def _reduce_245(val, _values, result)
+ result = MultiplyAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 493)
+ def _reduce_246(val, _values, result)
+ result = DivideAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 494)
+ def _reduce_247(val, _values, result)
+ result = ModAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 495)
+ def _reduce_248(val, _values, result)
+ result = AddAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 496)
+ def _reduce_249(val, _values, result)
+ result = SubtractAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 497)
+ def _reduce_250(val, _values, result)
+ result = ShiftLeftAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 498)
+ def _reduce_251(val, _values, result)
+ result = ShiftRightAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 499)
+ def _reduce_252(val, _values, result)
+ result = BitAndAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 500)
+ def _reduce_253(val, _values, result)
+ result = BitXorAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 501)
+ def _reduce_254(val, _values, result)
+ result = BitOrAssign
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 505)
+ def _reduce_255(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 507)
+ def _reduce_256(val, _values, result)
+ if val[0].is_a? Comma
+ if val[2].is_a? Comma
+ val[0].exprs.push(*val[2].exprs)
+ else
+ val[0].exprs << val[2]
+ end
+ result = val[0]
+ else
+ if val[2].is_a? Comma
+ val[2].exprs.unshift(val[0])
+ val[2].pos = val[0].pos
+ result = val[2]
+ else
+ result = Comma.new_at(val[0].pos, NodeArray[val[0], val[2]])
+ end
+ end
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 527)
+ def _reduce_257(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 542)
+ def _reduce_258(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 546)
+ def _reduce_259(val, _values, result)
+ result = val[0].val; result.pos = val[0].pos
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 547)
+ def _reduce_260(val, _values, result)
+ result = val[0].val; result.pos = val[0].pos
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 550)
+ def _reduce_261(val, _values, result)
+ result = val[0].val; result.pos = val[0].pos
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 554)
+ def _reduce_262(val, _values, result)
+ result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 559)
+ def _reduce_263(val, _values, result)
+ val[0].val << val[1].val.val; result = val[0]
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'cast.y', 560)
+ def _reduce_264(val, _values, result)
+ result = val[0].val; result.pos = val[0].pos
+ result
+ end
+.,.,
+
+def _reduce_none(val, _values, result)
+ val[0]
+end
+
+ end # class Parser
+ end # module C