From adca8183de133930ef4101409f652c528aabcccd Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Thu, 31 Dec 2009 17:50:12 -0500 Subject: [PATCH] adding splats to function definitions --- .../Syntaxes/CoffeeScript.tmLanguage | 4 +- lib/coffee_script/grammar.y | 11 +- lib/coffee_script/lexer.rb | 16 +- lib/coffee_script/nodes.rb | 30 +- lib/coffee_script/parser.rb | 2098 +++++++++-------- test/fixtures/execution/test_splats.coffee | 6 + 6 files changed, 1133 insertions(+), 1032 deletions(-) create mode 100644 test/fixtures/execution/test_splats.coffee diff --git a/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage b/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage index 88bb3bff..e2922226 100644 --- a/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage +++ b/lib/coffee_script/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage @@ -39,7 +39,7 @@ comment match stuff like: funcName: => … match - ([a-zA-Z0-9_?.$]*)\s*(=|:)\s*([\w,\s]*?)\s*(=>) + ([a-zA-Z0-9_?.$*]*)\s*(=|:)\s*([\w,\s]*?)\s*(=>) name meta.function.coffee @@ -60,7 +60,7 @@ comment match stuff like: a => … match - ([a-zA-Z0-9_?., $]*)\s*(=>) + ([a-zA-Z0-9_?., $*]*)\s*(=>) name meta.inline.function.coffee diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y index 2b747738..049482f3 100644 --- a/lib/coffee_script/grammar.y +++ b/lib/coffee_script/grammar.y @@ -5,7 +5,7 @@ token IF ELSE UNLESS token NUMBER STRING REGEX token TRUE FALSE YES NO ON OFF token IDENTIFIER PROPERTY_ACCESS -token CODE PARAM NEW RETURN +token CODE PARAM SPLAT NEW RETURN token TRY CATCH FINALLY THROW token BREAK CONTINUE token FOR IN WHILE @@ -187,8 +187,13 @@ rule # The parameters to a function definition. ParamList: - PARAM { result = val } - | ParamList "," PARAM { result = val[0] << val[2] } + Param { result = val } + | ParamList "," Param { result = val[0] << val[2] } + ; + + Param: + PARAM + | SPLAT { result = SplatNode.new(val[0]) } ; # Expressions that can be treated as values. diff --git a/lib/coffee_script/lexer.rb b/lib/coffee_script/lexer.rb index 48a0a32f..02341497 100644 --- a/lib/coffee_script/lexer.rb +++ b/lib/coffee_script/lexer.rb @@ -190,15 +190,23 @@ module CoffeeScript # A source of ambiguity in our grammar was parameter lists in function # definitions (as opposed to argument lists in function calls). Tag - # parameter identifiers in order to avoid this. + # parameter identifiers in order to avoid this. Also, parameter lists can + # make use of splats. def tag_parameters - index = 0 + i = 0 loop do - tok = @tokens[index -= 1] + i -= 1 + tok, prev = @tokens[i], @tokens[i - 1] return if !tok next if tok[0] == ',' return if tok[0] != :IDENTIFIER - tok[0] = :PARAM + if prev && prev[0] == '*' + tok[0] = :SPLAT + @tokens.delete_at(i - 1) + i -= 1 + else + tok[0] = :PARAM + end end end diff --git a/lib/coffee_script/nodes.rb b/lib/coffee_script/nodes.rb index 060ae24d..d2683292 100644 --- a/lib/coffee_script/nodes.rb +++ b/lib/coffee_script/nodes.rb @@ -64,6 +64,11 @@ module CoffeeScript self end + def unshift(node) + @expressions.unshift(node) + self + end + # If this Expressions consists of a single node, pull it back out. def unwrap @expressions.length == 1 ? @expressions.first : self @@ -389,7 +394,7 @@ module CoffeeScript o[:scope].find(name) unless @variable.properties? return write(@value.compile(o)) if @value.custom_assign? val = "#{name} = #{@value.compile(o)}" - write(o[:return] && !@value.custom_return? ? "return (#{val})" : val) + write(o[:return] && !@value.custom_return? ? "#{o[:indent]}return (#{val})" : val) end end @@ -459,12 +464,35 @@ module CoffeeScript o.delete(:no_wrap) name = o.delete(:immediate_assign) @params.each {|id| o[:scope].parameter(id.to_s) } + if @params.last.is_a?(SplatNode) + splat = @params.pop + splat.index = @params.length + @body.unshift(splat) + end code = @body.compile(o, :code) name_part = name ? " #{name}" : '' write("function#{name_part}(#{@params.join(', ')}) {\n#{code}\n#{indent}}") end end + # A parameter splat in a function definition. + class SplatNode < Node + attr_accessor :index + attr_reader :name + + def initialize(name) + @name = name + end + + def to_s + @name + end + + def compile(o={}) + "var #{@name} = Array.prototype.slice.call(arguments, #{@index})" + end + end + # An object literal. class ObjectNode < Node attr_reader :properties diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb index 7bd8ab91..8afed339 100644 --- a/lib/coffee_script/parser.rb +++ b/lib/coffee_script/parser.rb @@ -10,7 +10,7 @@ module CoffeeScript class Parser < Racc::Parser -module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 390) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 395) # Lex and parse a CoffeeScript. def parse(code) # Uncomment the following line to enable grammar debugging, in combination @@ -34,244 +34,240 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 390) ##### State transition tables begin ### clist = [ -'90,230,98,33,40,47,53,60,64,5,11,15,18,28,34,209,231,28,34,209,249,244', -'16,22,99,246,28,34,209,77,118,237,78,248,229,217,32,13,27,-155,-155', -'76,28,34,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110', -'113,116,119,85,88,92,95,100,103,106,109,112,115,76,138,87,91,138,81', -'138,138,131,138,57,13,1,156,33,40,47,53,60,64,5,11,15,18,137,138,39', -'46,52,56,76,257,7,16,22,25,76,37,44,122,58,150,3,8,162,137,27,32,163', -'148,76,59,63,4,10,14,21,138,237,150,76,51,222,220,76,27,136,148,259', -'122,139,164,27,139,134,139,139,134,139,142,134,138,142,138,150,225,212', -'136,81,19,27,76,148,45,139,57,13,1,134,33,40,47,53,60,64,5,11,15,18', -'94,97,39,46,52,56,27,251,7,16,22,25,242,37,44,80,58,139,3,8,166,142', -'27,32,76,28,34,59,63,4,10,14,21,28,34,227,71,51,223,228,272,139,270', -'139,274,134,243,134,28,34,227,28,34,28,34,209,94,97,102,105,108,111', -'114,94,97,19,28,34,209,45,210,57,13,1,166,33,40,47,53,60,64,5,11,15', -'18,28,34,39,46,52,56,,150,7,16,22,25,150,37,44,148,58,,3,8,148,,27,32', -'-155,-155,,59,63,4,10,14,21,-155,-155,-155,-155,51,27,,149,-155,-155', -'27,,149,94,97,102,105,108,111,114,117,120,86,89,93,96,94,97,102,105', -'108,,19,-155,-155,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,-155,-155', -'39,46,52,56,94,97,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14', -'21,,,,,51,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107', -'110,113,116,119,85,94,97,102,105,108,,19,,,,45,,57,13,1,,33,40,47,53', -'60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32', -',,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120,86,89,93', -'96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,,33,40,47', -'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27', -'32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120,86,89', -'93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,,33,40', -'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,', -'27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120,86', -'89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,,33', -'40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8', -',,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114,117,120', -'86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57,13,1,', -'33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,', -'3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114', -'117,120,86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57', -'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44', -',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114', -'117,120,86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57', -'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44', -',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114', -'117,120,86,89,93,96,101,104,107,110,113,116,119,85,,,,,,,19,,,,45,,57', -'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44', -',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105,108,111,114', -'117,120,86,89,93,96,94,97,102,105,108,111,114,117,120,86,89,93,96,,19', -',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22', -'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,94,97,102,105', -'108,111,114,117,120,86,89,93,96,94,97,102,105,108,111,114,117,120,86', -',,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,', -'7,16,22,25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,94', -'97,102,105,108,111,114,117,120,86,94,97,102,105,108,111,114,117,120', -'86,94,97,102,105,108,111,114,19,,,,45,,57,13,1,,33,40,47,53,60,64,5', -'11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63', -'4,10,14,21,,,,,51,94,97,102,105,108,111,114,,,,,,,,,,,,,,,,,,,,,19,', -',,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22', -'25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,', -',,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39', -'46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4,10,14,21', -',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60', -'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,', -'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1', -',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58', -',3,8,,,27,32,128,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,', -',,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7', -'16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,', -',,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,', -',39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21', -',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60', -'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,', -'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1', -',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58', -',3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', -',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22', -'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,', -',,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46', -'52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51', -',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11', -'15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4', -'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40', -'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,', -'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45', -',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37', -'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,', -',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56', -',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,', -',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15', -'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10', -'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,28,34,,45,,57,13,1,,33,40', -'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,', -'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45', -',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37', -'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,', -',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56', -',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,', -',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15', -'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,128,,,59,63,4', -'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40', -'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,', -'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45', -',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37', -'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,', -',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56', -',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,', -',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15', -'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,160,,59,63,4', -'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40', -'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,', -'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45', -',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37', -'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,', -',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56', -',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,', -',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15', -'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10', -'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47', -'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27', -'32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57', -'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44', -',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,', -',,,19,28,34,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56', -',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,', -',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15', -'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10', -'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47', -'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27', -'32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57', -'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44', -',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,', -',,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7', -'16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,', -',,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,', -',39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21', -',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60', -'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,', -'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1', -',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58', -',3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', -',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22', -'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,', -',,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46', -'52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51', -',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11', -'15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4', -'10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40', -'47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,', -'27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45', -',57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37', -'44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,', -',,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56', -',,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,', -',,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15', -'18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10', -'14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47', -'53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27', -'32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57', -'13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44', -',58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,', -',,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7', -'16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,', -',,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,', -',39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21', -',,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60', -'64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,', -'59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,45,,57,13,1', -',33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22,25,,37,44,,58', -',3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', -',,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46,52,56,,,7,16,22', -'25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51,,,,,,,,,,,,,,', -',,,,,,,,,,,,,19,,,,45,,57,13,1,,33,40,47,53,60,64,5,11,15,18,,,39,46', -'52,56,,,7,16,22,25,,37,44,,58,,3,8,,,27,32,,,,59,63,4,10,14,21,,,,,51', -',33,40,47,53,60,64,5,11,15,18,,,,,,,,,,16,22,,,,,,19,,,,45,,57,32,1', -'33,40,47,53,60,64,5,11,15,18,,,,,,,,,,16,22,33,40,47,53,60,64,5,11,15', -'18,,,32,,,,,,,16,22,,,131,,57,,1,,,,,,32,,,,,,,90,,98,,,,,,,,,,,,,,', -',131,,57,,1,,99,,,,,,118,263,,,,,,,,131,,57,,1,94,97,102,105,108,111', -'114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100', -'103,106,109,112,115,,,87,91,90,,98,,,245,,,,,,,,,,,,,,,,,,,99,,,,,,118', -',,,,,,207,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104', -'107,110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,', -'98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,76,,,,,,,94,97,102,105,108', -'111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95', -'100,103,106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,', -'118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104', -'107,110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,', -'98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111', -'114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100', -'103,106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118', -',,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107', -'110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,', -',,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114', -'117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103', -'106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,', -',,76,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107', -'110,113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,', -',,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114', -'117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103', -'106,109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,', -',,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110', -'113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,,,,,', -',,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117', -'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106', -'109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,76', -',,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110', -'113,116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,,,,,', -',,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117', -'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106', -'109,112,115,,,87,91,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,', -',,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113', -'116,119,85,88,92,95,100,103,106,109,112,115,,,87,91,90,,98,,,,,,,,,', -',,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117,120', -'86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106,109', -'112,115,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118,,,,,,,,,,,,,,94,97,102', -'105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88', -'92,95,100,103,106,109,112,115,90,,98,,,,,,,,,,,,,,,,,,,,,,99,,,,,,118', -',,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107', -'110,113,116,119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,', -',,,,,,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110', -'113,116,119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,,,,,', -',,,,,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113', -'116,119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,,,,,,,,,', -',94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116', -'119,85,88,92,95,100,103,106,109,112,115,99,,,,256,,118,,,,,,,,,,,,,', -'94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116', -'119,85,88,92,95,100,103,106,109,112,115,99,,,,,,118,,,,,,,,,,,,,,94', -'97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116,119', -'85,88,92,95,100,103,106,109,112,115,118,,,,,,,,,,,,,,94,97,102,105,108', -'111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95', -'100,103,106,109,112,115,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117', -'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106', -'109,112,115,118,,,,,,,,,,,,,,94,97,102,105,108,111,114,117,120,86,89', -'93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106,109,112,115', -'94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107,110,113,116', -'119,85,88,92,95,100,103,106,109,112,115,94,97,102,105,108,111,114,117', -'120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95,100,103,106', -'109,112,115,94,97,102,105,108,111,114,117,120,86,89,93,96,101,104,107', -'110,113,116,119,85,88,92,95,100,103,106,109,112,115,94,97,102,105,108', -'111,114,117,120,86,89,93,96,101,104,107,110,113,116,119,85,88,92,95', -'100,103,106,109,112,115,94,97,102,105,108,111,114,117,120,86,89,93,96', -'101,104,107,110,113,116,119,85,88,92,95,100,103,106,109,112,115' ] - racc_action_table = arr = Array.new(7689, nil) +'77,252,85,18,23,28,33,37,42,49,51,54,57,84,88,92,95,98,101,104,107,74', +'76,25,30,89,24,29,211,256,108,72,121,109,238,246,3,7,9,-157,-157,220', +'24,29,218,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103', +'106,73,75,79,82,86,90,93,96,99,102,105,262,121,78,81,237,116,116,208', +'69,219,46,9,55,223,18,23,28,33,37,42,49,51,54,57,84,88,64,67,1,5,10', +'84,88,20,25,30,34,121,43,47,245,52,207,59,63,24,29,3,7,201,202,153,17', +'27,32,36,40,45,116,24,29,211,58,212,121,18,23,28,33,37,42,49,51,54,57', +'117,117,271,228,125,112,24,29,211,239,25,30,24,29,211,19,116,116,198', +'38,257,46,9,55,7,18,23,28,33,37,42,49,51,54,57,-157,-157,64,67,1,5,10', +'236,143,20,25,30,34,121,43,47,142,52,117,59,63,129,112,3,7,133,64,67', +'17,27,32,36,40,45,116,69,121,46,58,55,3,18,23,28,33,37,42,49,51,54,57', +'117,117,274,156,125,112,24,29,211,155,25,30,-157,-157,232,19,153,116', +'129,38,121,46,9,55,7,18,23,28,33,37,42,49,51,54,57,-157,-157,64,67,1', +'5,10,121,143,20,25,30,34,121,43,47,142,52,117,59,63,234,112,3,7,275', +'143,208,17,27,32,36,40,45,142,69,,46,58,55,3,18,23,28,33,37,42,49,51', +'54,57,,117,-157,-157,143,125,,3,,144,25,30,142,,116,19,84,88,,38,,46', +'9,55,7,18,23,28,33,37,42,49,51,54,57,115,3,64,67,1,5,10,24,29,20,25', +'30,34,,43,47,265,52,143,59,63,24,29,3,7,,142,,17,27,32,36,40,45,,69', +',46,58,55,,214,114,,256,24,29,-157,-157,117,3,3,144,112,267,84,88,92', +'95,98,101,104,107,74,76,116,19,-157,-157,,38,,46,9,55,,18,23,28,33,37', +'42,49,51,54,57,115,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,24,29,218,,58,,216,,114,84,88,92,95,98,,117,', +',,112,84,88,92,95,98,101,104,107,74,76,,,19,,,,38,,46,9,55,,18,23,28', +'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63', +',,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80', +'83,87,91,94,97,100,103,106,73,75,84,88,92,95,98,,19,,,,38,,46,9,55,', +'18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52', +',59,63,,,3,7,133,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107', +'74,76,80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18', +'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,', +'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74', +'76,80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23', +'28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59', +'63,,,3,7,,205,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74', +'76,80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23', +'28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59', +'63,,,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76', +'80,83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28', +'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63', +',,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80', +'83,87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80,83', +'87,91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37', +'42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7', +',,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80,83,87', +'91,94,97,100,103,106,73,75,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42', +'49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,', +'17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80,83,87,84', +'88,92,95,98,101,104,107,74,76,80,83,87,,19,,,,38,,46,9,55,,18,23,28', +'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63', +',,3,7,,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,107,74,76,80', +'83,87,84,88,92,95,98,101,104,107,74,76,80,83,87,,19,,,,38,,46,9,55,', +'18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52', +',59,63,,,3,7,133,,,17,27,32,36,40,45,,,,,58,84,88,92,95,98,101,104,84', +'88,92,95,98,101,104,84,88,92,95,98,101,104,,,,,,,19,,,,38,,46,9,55,', +'18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52', +',59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20', +'25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,', +',,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57', +',,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36', +'40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28', +'33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63', +',,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,24,29', +',38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30', +'34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,', +',,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64', +'67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45', +',,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37', +'42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7', +',,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46', +'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43', +'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,', +',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5', +'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58', +',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51', +'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27', +'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18', +'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,', +'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', +',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25', +'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,', +',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,', +'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40', +'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,133,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38', +',46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34', +',43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,', +',,,,,,,,,,,19,24,29,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64', +'67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,133,,,17,27,32,36,40', +'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46', +'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43', +'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,', +',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5', +'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58', +',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51', +'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27', +'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18', +'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,', +'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', +',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25', +'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,', +',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,', +'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40', +'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46', +'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43', +'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,', +',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5', +'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58', +',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51', +'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27', +'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18', +'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,', +'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', +',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25', +'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,', +',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,', +'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40', +'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46', +'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43', +'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,', +',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5', +'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58', +',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51', +'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27', +'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18', +'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,', +'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', +',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25', +'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,', +',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,', +'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40', +'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46', +'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43', +'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,', +',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5', +'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58', +',,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51', +'54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27', +'32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18', +'23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,', +'59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19', +',,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25', +'30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,', +',,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,', +'64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40', +'45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33', +'37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3', +'7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46', +'9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43', +'47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,', +',,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5', +'10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,133,,,17,27,32,36,40,45,,,', +',58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42', +'49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,', +'17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55', +',18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,,,20,25,30,34,,43,47,', +'52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,', +',,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54,57,,,64,67,1,5,10,', +',20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32,36,40,45,,,,,58,,,', +',,,,,,,,,,,,,,,,,,,,,,,,19,,,,38,,46,9,55,,18,23,28,33,37,42,49,51,54', +'57,,,64,67,1,5,10,,,20,25,30,34,,43,47,,52,,59,63,,,3,7,,,,17,27,32', +'36,40,45,77,,85,,58,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,19,,,,38,,46,,55', +',,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73', +'75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,233,,,,,,,,,,,,,,,', +',,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87', +'91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,', +'85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101', +'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96', +'99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,121', +',,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106', +'73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,', +',,,,89,,,,,,72,,,,,,,121,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83', +'87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77', +',85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,121,,,,,,,84,88,92,95,98', +'101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93', +'96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,', +',,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106', +'73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,', +',,,,89,,,,,,72,,,,,,,222,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83', +'87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77', +',85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101', +'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96', +'99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,', +',,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73', +'75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,', +',89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91', +'94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85', +',,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104', +'107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102', +'105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84', +'88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79', +'82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,', +',,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97', +'100,103,106,73,75,79,82,86,90,93,96,99,102,105,,,78,81,77,,85,,,,,,', +',,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74', +'76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105', +'77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98', +'101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93', +'96,99,102,105,77,,85,,,,,,,,,,,,,,,,,,,,,,,89,,,,,,72,,,,,,,,,,,,,,84', +'88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79', +'82,86,90,93,96,99,102,105,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101', +'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96', +'99,102,105,89,,,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76', +'80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,89', +',,,,,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94', +'97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,89,,,,260,,72,,,,', +',,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103', +'106,73,75,79,82,86,90,93,96,99,102,105,89,,,,,,72,,,,,,,,,,,,,,84,88', +'92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82', +'86,90,93,96,99,102,105,72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74', +'76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105', +'72,,,,,,,,,,,,,,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100', +'103,106,73,75,79,82,86,90,93,96,99,102,105,72,,,,,,,,,,,,,,84,88,92', +'95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86', +'90,93,96,99,102,105,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94', +'97,100,103,106,73,75,79,82,86,90,93,96,99,102,105,84,88,92,95,98,101', +'104,107,74,76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96', +'99,102,105,84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103', +'106,73,75,79,82,86,90,93,96,99,102,105,84,88,92,95,98,101,104,107,74', +'76,80,83,87,91,94,97,100,103,106,73,75,79,82,86,90,93,96,99,102,105', +'84,88,92,95,98,101,104,107,74,76,80,83,87,91,94,97,100,103,106,73,75', +'79,82,86,90,93,96,99,102,105' ] + racc_action_table = arr = Array.new(7672, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -281,271 +277,271 @@ clist = [ end clist = [ -'67,159,67,263,263,263,263,263,263,263,263,263,263,213,213,213,164,219', -'219,219,222,213,263,263,67,219,157,157,157,20,67,207,20,221,157,138', -'263,122,207,144,144,220,159,159,67,67,67,67,67,67,67,67,67,67,67,67', -'67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,122,132,67,67', -'49,99,133,215,263,50,263,87,263,67,87,87,87,87,87,87,87,87,87,87,49', -'130,87,87,87,87,165,235,87,87,87,87,77,87,87,124,87,255,87,87,78,130', -'87,87,80,255,56,87,87,87,87,87,87,216,235,227,248,87,146,146,249,235', -'49,227,235,43,132,81,255,49,132,133,215,49,50,133,215,262,50,271,226', -'150,130,130,25,87,227,257,226,87,130,87,3,87,130,3,3,3,3,3,3,3,3,3,3', -'184,184,3,3,3,3,226,224,3,3,3,3,211,3,3,24,3,216,3,3,181,216,3,3,19', -'227,227,3,3,3,3,3,3,151,151,151,8,3,148,151,268,262,262,271,271,262', -'212,271,224,224,224,269,269,211,211,211,202,202,202,202,202,202,202', -'190,190,3,127,127,127,3,127,3,4,3,82,4,4,4,4,4,4,4,4,4,4,36,36,4,4,4', -'4,,57,4,4,4,4,149,4,4,57,4,,4,4,149,,4,4,154,154,,4,4,4,4,4,4,79,79', -'155,155,4,57,,57,69,69,149,,149,183,183,183,183,183,183,183,183,183', -'183,183,183,183,196,196,196,196,196,,4,72,72,,4,,4,7,4,,7,7,7,7,7,7', -'7,7,7,7,74,74,7,7,7,7,187,187,7,7,7,7,,7,7,,7,,7,7,,,7,7,,,,7,7,7,7', -'7,7,,,,,7,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176', -'176,176,176,176,176,176,193,193,193,193,193,,7,,,,7,,7,166,7,,166,166', -'166,166,166,166,166,166,166,166,,,166,166,166,166,,,166,166,166,166', -',166,166,,166,,166,166,,,166,166,,,,166,166,166,166,166,166,,,,,166', -'178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178', -'178,178,178,178,,,,,,,166,,,,166,,166,10,166,,10,10,10,10,10,10,10,10', -'10,10,,,10,10,10,10,,,10,10,10,10,,10,10,,10,,10,10,,,10,10,,,,10,10', -'10,10,10,10,,,,,10,201,201,201,201,201,201,201,201,201,201,201,201,201', -'201,201,201,201,201,201,201,201,,,,,,,10,,,,10,,10,13,10,,13,13,13,13', -'13,13,13,13,13,13,,,13,13,13,13,,,13,13,13,13,,13,13,,13,,13,13,,,13', -'13,,,,13,13,13,13,13,13,,,,,13,172,172,172,172,172,172,172,172,172,172', -'172,172,172,172,172,172,172,172,172,172,172,,,,,,,13,,,,13,,13,14,13', -',14,14,14,14,14,14,14,14,14,14,,,14,14,14,14,,,14,14,14,14,,14,14,,14', -',14,14,,,14,14,,,,14,14,14,14,14,14,,,,,14,195,195,195,195,195,195,195', -'195,195,195,195,195,195,195,195,195,195,195,195,195,195,,,,,,,14,,,', -'14,,14,142,14,,142,142,142,142,142,142,142,142,142,142,,,142,142,142', -'142,,,142,142,142,142,,142,142,,142,,142,142,,,142,142,142,,,142,142', -'142,142,142,142,,,,,142,182,182,182,182,182,182,182,182,182,182,182', -'182,182,182,182,182,182,182,182,182,182,,,,,,,142,,,,142,,142,139,142', -',139,139,139,139,139,139,139,139,139,139,,,139,139,139,139,,,139,139', -'139,139,,139,139,,139,,139,139,,,139,139,,,,139,139,139,139,139,139', -',,,,139,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169', -'169,169,169,169,169,169,,,,,,,139,,,,139,,139,21,139,,21,21,21,21,21', -'21,21,21,21,21,,,21,21,21,21,,,21,21,21,21,,21,21,,21,,21,21,,,21,21', -',,,21,21,21,21,21,21,,,,,21,198,198,198,198,198,198,198,198,198,198', -'198,198,198,198,198,198,198,198,198,198,198,,,,,,,21,,,,21,,21,136,21', -',136,136,136,136,136,136,136,136,136,136,,,136,136,136,136,,,136,136', -'136,136,,136,136,,136,,136,136,,,136,136,,,,136,136,136,136,136,136', -',,,,136,186,186,186,186,186,186,186,186,186,186,186,186,186,189,189', -'189,189,189,189,189,189,189,189,189,189,189,,136,,,,136,,136,256,136', -',256,256,256,256,256,256,256,256,256,256,,,256,256,256,256,,,256,256', -'256,256,,256,256,,256,,256,256,,,256,256,,,,256,256,256,256,256,256', -',,,,256,192,192,192,192,192,192,192,192,192,192,192,192,192,177,177', -'177,177,177,177,177,177,177,177,,,,,256,,,,256,,256,134,256,,134,134', -'134,134,134,134,134,134,134,134,,,134,134,134,134,,,134,134,134,134', -',134,134,,134,,134,134,,,134,134,134,,,134,134,134,134,134,134,,,,,134', -'179,179,179,179,179,179,179,179,179,179,173,173,173,173,173,173,173', -'173,173,173,170,170,170,170,170,170,170,134,,,,134,,134,37,134,,37,37', -'37,37,37,37,37,37,37,37,,,37,37,37,37,,,37,37,37,37,,37,37,,37,,37,37', -',,37,37,,,,37,37,37,37,37,37,,,,,37,199,199,199,199,199,199,199,,,,', -',,,,,,,,,,,,,,,,37,,,,37,,37,131,37,,131,131,131,131,131,131,131,131', -'131,131,,,131,131,131,131,,,131,131,131,131,,131,131,,131,,131,131,', -',131,131,131,,,131,131,131,131,131,131,,,,,131,,,,,,,,,,,,,,,,,,,,,', -',,,,,,131,,,,131,,131,128,131,,128,128,128,128,128,128,128,128,128,128', -',,128,128,128,128,,,128,128,128,128,,128,128,,128,,128,128,,,128,128', -'128,,,128,128,128,128,128,128,,,,,128,,,,,,,,,,,,,,,,,,,,,,,,,,,,128', -',,,128,,128,44,128,,44,44,44,44,44,44,44,44,44,44,,,44,44,44,44,,,44', -'44,44,44,,44,44,,44,,44,44,,,44,44,,,,44,44,44,44,44,44,,,,,44,,,,,', -',,,,,,,,,,,,,,,,,,,,,,44,,,,44,,44,45,44,,45,45,45,45,45,45,45,45,45', -'45,,,45,45,45,45,,,45,45,45,45,,45,45,,45,,45,45,,,45,45,45,,,45,45', -'45,45,45,45,,,,,45,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,,,,45,,45,120,45,,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,120,120,120,,,,', -'120,,,,,,,,,,,,,,,,,,,,,,,,,,,,120,,,,120,,120,119,120,,119,119,119', -'119,119,119,119,119,119,119,,,119,119,119,119,,,119,119,119,119,,119', -'119,,119,,119,119,,,119,119,,,,119,119,119,119,119,119,,,,,119,,,,,', -',,,,,,,,,,,,,,,,,,,,,,119,,,,119,,119,118,119,,118,118,118,118,118,118', -'118,118,118,118,,,118,118,118,118,,,118,118,118,118,,118,118,,118,,118', -'118,,,118,118,,,,118,118,118,118,118,118,,,,,118,,,,,,,,,,,,,,,,,,,', -',,,,,,,,118,,,,118,,118,51,118,,51,51,51,51,51,51,51,51,51,51,,,51,51', -'51,51,,,51,51,51,51,,51,51,,51,,51,51,,,51,51,,,,51,51,51,51,51,51,', -',,,51,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,,,,51,,51,52,51,,52,52,52,52,52', -'52,52,52,52,52,,,52,52,52,52,,,52,52,52,52,,52,52,,52,,52,52,,,52,52', -',,,52,52,52,52,52,52,,,,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,52,,52', -'117,52,,117,117,117,117,117,117,117,117,117,117,,,117,117,117,117,,', -'117,117,117,117,,117,117,,117,,117,117,,,117,117,,,,117,117,117,117', -'117,117,,,,,117,,,,,,,,,,,,,,,,,,,,,,,,,,,,117,,,,117,,117,116,117,', -'116,116,116,116,116,116,116,116,116,116,,,116,116,116,116,,,116,116', -'116,116,,116,116,,116,,116,116,,,116,116,,,,116,116,116,116,116,116', -',,,,116,,,,,,,,,,,,,,,,,,,,,,,,,,,,116,,,,116,,116,58,116,,58,58,58', -'58,58,58,58,58,58,58,,,58,58,58,58,,,58,58,58,58,,58,58,,58,,58,58,', -',58,58,,,,58,58,58,58,58,58,,,,,58,,,,,,,,,,,,,,,,,,,,,,,,,,,,58,,,', -'58,,58,59,58,,59,59,59,59,59,59,59,59,59,59,,,59,59,59,59,,,59,59,59', -'59,,59,59,,59,,59,59,,,59,59,,,,59,59,59,59,59,59,,,,,59,,,,,,,,,,,', -',,,,,,,,,,,,,,,,59,,,,59,,59,63,59,,63,63,63,63,63,63,63,63,63,63,,', -'63,63,63,63,,,63,63,63,63,,63,63,,63,,63,63,,,63,63,,,,63,63,63,63,63', -'63,,,,,63,,,,,,,,,,,,,,,,,,,,,,,,,,,,63,,,,63,,63,0,63,,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,,,,0,0,0,0,0,0,,,,,0', -',,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,0,,0,240,0,,240,240,240,240,240,240', -'240,240,240,240,,,240,240,240,240,,,240,240,240,240,,240,240,,240,,240', -'240,,,240,240,,,,240,240,240,240,240,240,,,,,240,,,,,,,,,,,,,,,,,,,', -',,,,,,,,240,,,,240,,240,115,240,,115,115,115,115,115,115,115,115,115', -'115,,,115,115,115,115,,,115,115,115,115,,115,115,,115,,115,115,,,115', -'115,,,,115,115,115,115,115,115,,,,,115,,,,,,,,,,,,,,,,,,,,,,,,,,,,115', -',,,115,,115,237,115,,237,237,237,237,237,237,237,237,237,237,,,237,237', -'237,237,,,237,237,237,237,,237,237,,237,,237,237,,,237,237,,,,237,237', -'237,237,237,237,,,,,237,,,,,,,,,,,,,,,,,,,,,,,,,,,,237,,,,237,,237,71', -'237,,71,71,71,71,71,71,71,71,71,71,,,71,71,71,71,,,71,71,71,71,,71,71', -',71,,71,71,,,71,71,71,,,71,71,71,71,71,71,,,,,71,,,,,,,,,,,,,,,,,,,', -',,,,,,,,71,,,,71,,71,114,71,,114,114,114,114,114,114,114,114,114,114', -',,114,114,114,114,,,114,114,114,114,,114,114,,114,,114,114,,,114,114', -',,,114,114,114,114,114,114,,,,,114,,,,,,,,,,,,,,,,,,,,,,,,,,,,114,,', -',114,,114,107,114,,107,107,107,107,107,107,107,107,107,107,,,107,107', -'107,107,,,107,107,107,107,,107,107,,107,,107,107,,,107,107,,,,107,107', -'107,107,107,107,,,,,107,,,,,,,,,,,,,,,,,,,,,,,,,,,,107,,,,107,,107,225', -'107,,225,225,225,225,225,225,225,225,225,225,,,225,225,225,225,,,225', -'225,225,225,,225,225,,225,,225,225,,,225,225,,,,225,225,225,225,225', -'225,,,,,225,,,,,,,,,,,,,,,,,,,,,,,,,,,,225,,,,225,,225,76,225,,76,76', -'76,76,76,76,76,76,76,76,,,76,76,76,76,,,76,76,76,76,,76,76,,76,,76,76', -',,76,76,,76,,76,76,76,76,76,76,,,,,76,,,,,,,,,,,,,,,,,,,,,,,,,,,,76', -',,,76,,76,223,76,,223,223,223,223,223,223,223,223,223,223,,,223,223', -'223,223,,,223,223,223,223,,223,223,,223,,223,223,,,223,223,,,,223,223', -'223,223,223,223,,,,,223,,,,,,,,,,,,,,,,,,,,,,,,,,,,223,,,,223,,223,112', -'223,,112,112,112,112,112,112,112,112,112,112,,,112,112,112,112,,,112', -'112,112,112,,112,112,,112,,112,112,,,112,112,,,,112,112,112,112,112', -'112,,,,,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,112,,,,112,,112,111,112,,111', -'111,111,111,111,111,111,111,111,111,,,111,111,111,111,,,111,111,111', -'111,,111,111,,111,,111,111,,,111,111,,,,111,111,111,111,111,111,,,,', -'111,,,,,,,,,,,,,,,,,,,,,,,,,,,,111,,,,111,,111,110,111,,110,110,110', -'110,110,110,110,110,110,110,,,110,110,110,110,,,110,110,110,110,,110', -'110,,110,,110,110,,,110,110,,,,110,110,110,110,110,110,,,,,110,,,,,', -',,,,,,,,,,,,,,,,,,,,,,110,,,,110,,110,109,110,,109,109,109,109,109,109', -'109,109,109,109,,,109,109,109,109,,,109,109,109,109,,109,109,,109,,109', -'109,,,109,109,,,,109,109,109,109,109,109,,,,,109,,,,,,,,,,,,,,,,,,,', -',,,,,,,,109,,,,109,,109,209,109,,209,209,209,209,209,209,209,209,209', -'209,,,209,209,209,209,,,209,209,209,209,,209,209,,209,,209,209,,,209', -'209,,,,209,209,209,209,209,209,,,,,209,,,,,,,,,,,,,,,,,,,,,,,,,,,,209', -'209,209,,209,,209,83,209,,83,83,83,83,83,83,83,83,83,83,,,83,83,83,83', -',,83,83,83,83,,83,83,,83,,83,83,,,83,83,,,,83,83,83,83,83,83,,,,,83', -',,,,,,,,,,,,,,,,,,,,,,,,,,,83,,,,83,,83,108,83,,108,108,108,108,108', -'108,108,108,108,108,,,108,108,108,108,,,108,108,108,108,,108,108,,108', -',108,108,,,108,108,,,,108,108,108,108,108,108,,,,,108,,,,,,,,,,,,,,', -',,,,,,,,,,,,,108,,,,108,,108,85,108,,85,85,85,85,85,85,85,85,85,85,', -',85,85,85,85,,,85,85,85,85,,85,85,,85,,85,85,,,85,85,,,,85,85,85,85', -'85,85,,,,,85,,,,,,,,,,,,,,,,,,,,,,,,,,,,85,,,,85,,85,86,85,,86,86,86', -'86,86,86,86,86,86,86,,,86,86,86,86,,,86,86,86,86,,86,86,,86,,86,86,', -',86,86,,,,86,86,86,86,86,86,,,,,86,,,,,,,,,,,,,,,,,,,,,,,,,,,,86,,,', -'86,,86,1,86,,1,1,1,1,1,1,1,1,1,1,,,1,1,1,1,,,1,1,1,1,,1,1,,1,,1,1,,', -'1,1,,,,1,1,1,1,1,1,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,1,,1,88,1,', -'88,88,88,88,88,88,88,88,88,88,,,88,88,88,88,,,88,88,88,88,,88,88,,88', -',88,88,,,88,88,,,,88,88,88,88,88,88,,,,,88,,,,,,,,,,,,,,,,,,,,,,,,,', -',,88,,,,88,,88,89,88,,89,89,89,89,89,89,89,89,89,89,,,89,89,89,89,,', -'89,89,89,89,,89,89,,89,,89,89,,,89,89,,,,89,89,89,89,89,89,,,,,89,,', -',,,,,,,,,,,,,,,,,,,,,,,,,89,,,,89,,89,90,89,,90,90,90,90,90,90,90,90', -'90,90,,,90,90,90,90,,,90,90,90,90,,90,90,,90,,90,90,,,90,90,,,,90,90', -'90,90,90,90,,,,,90,,,,,,,,,,,,,,,,,,,,,,,,,,,,90,,,,90,,90,91,90,,91', -'91,91,91,91,91,91,91,91,91,,,91,91,91,91,,,91,91,91,91,,91,91,,91,,91', +'147,221,147,246,246,246,246,246,246,246,246,246,246,172,172,172,172', +'172,172,172,172,172,172,246,246,147,206,206,206,222,4,147,234,4,206', +'214,222,246,153,127,127,143,221,221,221,147,147,147,147,147,147,147', +'147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147', +'147,147,147,147,147,147,246,153,147,147,204,197,263,130,246,142,246', +'90,246,147,90,90,90,90,90,90,90,90,90,90,179,179,90,90,90,90,90,182', +'182,90,90,90,90,236,90,90,213,90,129,90,90,204,204,90,90,120,120,150', +'90,90,90,90,90,90,196,132,132,132,90,132,209,1,1,1,1,1,1,1,1,1,1,197', +'263,263,155,197,263,213,213,213,207,1,1,229,229,229,90,22,270,116,90', +'229,90,125,90,1,125,125,125,125,125,125,125,125,125,125,122,122,125', +'125,125,125,125,203,249,125,125,125,125,108,125,125,249,125,196,125', +'125,89,196,125,125,125,109,109,125,125,125,125,125,125,70,1,202,1,125', +'1,249,262,262,262,262,262,262,262,262,262,262,22,270,270,63,22,270,194', +'194,194,62,262,262,128,128,194,125,61,71,34,125,265,125,220,125,262', +'220,220,220,220,220,220,220,220,220,220,148,148,220,220,220,220,220', +'19,217,220,220,220,220,10,220,220,217,220,70,220,220,201,70,220,220', +'272,46,173,220,220,220,220,220,220,46,262,,262,220,262,217,115,115,115', +'115,115,115,115,115,115,115,,71,131,131,218,71,,46,,46,115,115,218,', +'135,220,176,176,,220,,220,5,220,115,5,5,5,5,5,5,5,5,5,5,135,218,5,5', +'5,5,5,68,68,5,5,5,5,,5,5,254,5,144,5,5,273,273,5,5,,144,,5,5,5,5,5,5', +',115,,115,5,115,,135,135,,254,218,218,138,138,135,144,254,144,135,254', +'169,169,169,169,169,169,169,169,169,169,6,5,136,136,,5,,5,157,5,,157', +'157,157,157,157,157,157,157,157,157,6,,157,157,157,157,157,,,157,157', +'157,157,,157,157,,157,,157,157,,,157,157,,,,157,157,157,157,157,157', +'140,140,140,,157,,140,,6,188,188,188,188,188,,6,,,,6,166,166,166,166', +'166,166,166,166,166,166,,,157,,,,157,,157,9,157,,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,9,,,,9,9,9,9,9,9,,,,,9,171,171', +'171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171', +'171,171,185,185,185,185,185,,9,,,,9,,9,156,9,,156,156,156,156,156,156', +'156,156,156,156,,,156,156,156,156,156,,,156,156,156,156,,156,156,,156', +',156,156,,,156,156,156,,,156,156,156,156,156,156,,,,,156,187,187,187', +'187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187', +'187,,,,,,,156,,,,156,,156,17,156,,17,17,17,17,17,17,17,17,17,17,,,17', +'17,17,17,17,,,17,17,17,17,,17,17,,17,,17,17,,,17,17,,,,17,17,17,17,17', +'17,,,,,17,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174', +'174,174,174,174,174,174,,,,,,,17,,,,17,,17,121,17,,121,121,121,121,121', +'121,121,121,121,121,,,121,121,121,121,121,,,121,121,121,121,,121,121', +',121,,121,121,,,121,121,,121,,121,121,121,121,121,121,,,,,121,168,168', +'168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168', +'168,168,,,,,,,121,,,,121,,121,20,121,,20,20,20,20,20,20,20,20,20,20', +',,20,20,20,20,20,,,20,20,20,20,,20,20,,20,,20,20,,,20,20,,,,20,20,20', +'20,20,20,,,,,20,159,159,159,159,159,159,159,159,159,159,159,159,159', +'159,159,159,159,159,159,159,159,,,,,,,20,,,,20,,20,208,20,,208,208,208', +'208,208,208,208,208,208,208,,,208,208,208,208,208,,,208,208,208,208', +',208,208,,208,,208,208,,,208,208,,,,208,208,208,208,208,208,,,,,208', +'161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161', +'161,161,161,161,,,,,,,208,,,,208,,208,27,208,,27,27,27,27,27,27,27,27', +'27,27,,,27,27,27,27,27,,,27,27,27,27,,27,27,,27,,27,27,,,27,27,,,,27', +'27,27,27,27,27,,,,,27,165,165,165,165,165,165,165,165,165,165,165,165', +'165,165,165,165,165,165,165,165,165,,,,,,,27,,,,27,,27,32,27,,32,32', +'32,32,32,32,32,32,32,32,,,32,32,32,32,32,,,32,32,32,32,,32,32,,32,,32', +'32,,,32,32,,,,32,32,32,32,32,32,,,,,32,190,190,190,190,190,190,190,190', +'190,190,190,190,190,190,190,190,190,190,190,190,190,,,,,,,32,,,,32,', +'32,210,32,,210,210,210,210,210,210,210,210,210,210,,,210,210,210,210', +'210,,,210,210,210,210,,210,210,,210,,210,210,,,210,210,,,,210,210,210', +'210,210,210,,,,,210,178,178,178,178,178,178,178,178,178,178,178,178', +'178,181,181,181,181,181,181,181,181,181,181,181,181,181,,210,,,,210', +',210,36,210,,36,36,36,36,36,36,36,36,36,36,,,36,36,36,36,36,,,36,36', +'36,36,,36,36,,36,,36,36,,,36,36,,,,36,36,36,36,36,36,,,,,36,175,175', +'175,175,175,175,175,175,175,175,175,175,175,184,184,184,184,184,184', +'184,184,184,184,184,184,184,,36,,,,36,,36,38,36,,38,38,38,38,38,38,38', +'38,38,38,,,38,38,38,38,38,,,38,38,38,38,,38,38,,38,,38,38,,,38,38,38', +',,38,38,38,38,38,38,,,,,38,191,191,191,191,191,191,191,160,160,160,160', +'160,160,160,162,162,162,162,162,162,162,,,,,,,38,,,,38,,38,40,38,,40', +'40,40,40,40,40,40,40,40,40,,,40,40,40,40,40,,,40,40,40,40,,40,40,,40', +',40,40,,,40,40,,,,40,40,40,40,40,40,,,,,40,,,,,,,,,,,,,,,,,,,,,,,,,', +',,40,,,,40,,40,43,40,,43,43,43,43,43,43,43,43,43,43,,,43,43,43,43,43', +',,43,43,43,43,,43,43,,43,,43,43,,,43,43,,,,43,43,43,43,43,43,,,,,43', +',,,,,,,,,,,,,,,,,,,,,,,,,,,43,,,,43,,43,45,43,,45,45,45,45,45,45,45', +'45,45,45,,,45,45,45,45,45,,,45,45,45,45,,45,45,,45,,45,45,,,45,45,,', +',45,45,45,45,45,45,,,,,45,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,,,,45,,45,211', +'45,,211,211,211,211,211,211,211,211,211,211,,,211,211,211,211,211,,', +'211,211,211,211,,211,211,,211,,211,211,,,211,211,,,,211,211,211,211', +'211,211,,,,,211,,,,,,,,,,,,,,,,,,,,,,,,,,,,211,211,211,,211,,211,47', +'211,,47,47,47,47,47,47,47,47,47,47,,,47,47,47,47,47,,,47,47,47,47,,47', +'47,,47,,47,47,,,47,47,,,,47,47,47,47,47,47,,,,,47,,,,,,,,,,,,,,,,,,', +',,,,,,,,,47,,,,47,,47,52,47,,52,52,52,52,52,52,52,52,52,52,,,52,52,52', +'52,52,,,52,52,52,52,,52,52,,52,,52,52,,,52,52,,,,52,52,52,52,52,52,', +',,,52,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,,,52,,52,55,52,,55,55,55,55,55', +'55,55,55,55,55,,,55,55,55,55,55,,,55,55,55,55,,55,55,,55,,55,55,,,55', +'55,,,,55,55,55,55,55,55,,,,,55,,,,,,,,,,,,,,,,,,,,,,,,,,,,55,,,,55,', +'55,58,55,,58,58,58,58,58,58,58,58,58,58,,,58,58,58,58,58,,,58,58,58', +'58,,58,58,,58,,58,58,,,58,58,,,,58,58,58,58,58,58,,,,,58,,,,,,,,,,,', +',,,,,,,,,,,,,,,,58,,,,58,,58,59,58,,59,59,59,59,59,59,59,59,59,59,,', +'59,59,59,59,59,,,59,59,59,59,,59,59,,59,,59,59,,,59,59,,,,59,59,59,59', +'59,59,,,,,59,,,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,59,,59,117,59,,117,117', +'117,117,117,117,117,117,117,117,,,117,117,117,117,117,,,117,117,117', +'117,,117,117,,117,,117,117,,,117,117,,,,117,117,117,117,117,117,,,,', +'117,,,,,,,,,,,,,,,,,,,,,,,,,,,,117,,,,117,,117,114,117,,114,114,114', +'114,114,114,114,114,114,114,,,114,114,114,114,114,,,114,114,114,114', +',114,114,,114,,114,114,,,114,114,,,,114,114,114,114,114,114,,,,,114', +',,,,,,,,,,,,,,,,,,,,,,,,,,,114,,,,114,,114,260,114,,260,260,260,260', +'260,260,260,260,260,260,,,260,260,260,260,260,,,260,260,260,260,,260', +'260,,260,,260,260,,,260,260,,,,260,260,260,260,260,260,,,,,260,,,,,', +',,,,,,,,,,,,,,,,,,,,,,260,,,,260,,260,256,260,,256,256,256,256,256,256', +'256,256,256,256,,,256,256,256,256,256,,,256,256,256,256,,256,256,,256', +',256,256,,,256,256,,,,256,256,256,256,256,256,,,,,256,,,,,,,,,,,,,,', +',,,,,,,,,,,,,256,,,,256,,256,69,256,,69,69,69,69,69,69,69,69,69,69,', +',69,69,69,69,69,,,69,69,69,69,,69,69,,69,,69,69,,,69,69,69,,,69,69,69', +'69,69,69,,,,,69,,,,,,,,,,,,,,,,,,,,,,,,,,,,69,,,,69,,69,0,69,,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,0,,,,0,0,0,0,0', +'0,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,0,,0,112,0,,112,112,112,112', +'112,112,112,112,112,112,,,112,112,112,112,112,,,112,112,112,112,,112', +'112,,112,,112,112,,,112,112,112,,,112,112,112,112,112,112,,,,,112,,', +',,,,,,,,,,,,,,,,,,,,,,,,,112,,,,112,,112,72,112,,72,72,72,72,72,72,72', +'72,72,72,,,72,72,72,72,72,,,72,72,72,72,,72,72,,72,,72,72,,,72,72,,', +',72,72,72,72,72,72,,,,,72,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,,,,72,,72,73', +'72,,73,73,73,73,73,73,73,73,73,73,,,73,73,73,73,73,,,73,73,73,73,,73', +'73,,73,,73,73,,,73,73,,,,73,73,73,73,73,73,,,,,73,,,,,,,,,,,,,,,,,,', +',,,,,,,,,73,,,,73,,73,74,73,,74,74,74,74,74,74,74,74,74,74,,,74,74,74', +'74,74,,,74,74,74,74,,74,74,,74,,74,74,,,74,74,,,,74,74,74,74,74,74,', +',,,74,,,,,,,,,,,,,,,,,,,,,,,,,,,,74,,,,74,,74,75,74,,75,75,75,75,75', +'75,75,75,75,75,,,75,75,75,75,75,,,75,75,75,75,,75,75,,75,,75,75,,,75', +'75,,,,75,75,75,75,75,75,,,,,75,,,,,,,,,,,,,,,,,,,,,,,,,,,,75,,,,75,', +'75,76,75,,76,76,76,76,76,76,76,76,76,76,,,76,76,76,76,76,,,76,76,76', +'76,,76,76,,76,,76,76,,,76,76,,,,76,76,76,76,76,76,,,,,76,,,,,,,,,,,', +',,,,,,,,,,,,,,,,76,,,,76,,76,77,76,,77,77,77,77,77,77,77,77,77,77,,', +'77,77,77,77,77,,,77,77,77,77,,77,77,,77,,77,77,,,77,77,,,,77,77,77,77', +'77,77,,,,,77,,,,,,,,,,,,,,,,,,,,,,,,,,,,77,,,,77,,77,78,77,,78,78,78', +'78,78,78,78,78,78,78,,,78,78,78,78,78,,,78,78,78,78,,78,78,,78,,78,78', +',,78,78,,,,78,78,78,78,78,78,,,,,78,,,,,,,,,,,,,,,,,,,,,,,,,,,,78,,', +',78,,78,79,78,,79,79,79,79,79,79,79,79,79,79,,,79,79,79,79,79,,,79,79', +'79,79,,79,79,,79,,79,79,,,79,79,,,,79,79,79,79,79,79,,,,,79,,,,,,,,', +',,,,,,,,,,,,,,,,,,,79,,,,79,,79,80,79,,80,80,80,80,80,80,80,80,80,80', +',,80,80,80,80,80,,,80,80,80,80,,80,80,,80,,80,80,,,80,80,,,,80,80,80', +'80,80,80,,,,,80,,,,,,,,,,,,,,,,,,,,,,,,,,,,80,,,,80,,80,81,80,,81,81', +'81,81,81,81,81,81,81,81,,,81,81,81,81,81,,,81,81,81,81,,81,81,,81,,81', +'81,,,81,81,,,,81,81,81,81,81,81,,,,,81,,,,,,,,,,,,,,,,,,,,,,,,,,,,81', +',,,81,,81,82,81,,82,82,82,82,82,82,82,82,82,82,,,82,82,82,82,82,,,82', +'82,82,82,,82,82,,82,,82,82,,,82,82,,,,82,82,82,82,82,82,,,,,82,,,,,', +',,,,,,,,,,,,,,,,,,,,,,82,,,,82,,82,83,82,,83,83,83,83,83,83,83,83,83', +'83,,,83,83,83,83,83,,,83,83,83,83,,83,83,,83,,83,83,,,83,83,,,,83,83', +'83,83,83,83,,,,,83,,,,,,,,,,,,,,,,,,,,,,,,,,,,83,,,,83,,83,85,83,,85', +'85,85,85,85,85,85,85,85,85,,,85,85,85,85,85,,,85,85,85,85,,85,85,,85', +',85,85,,,85,85,,,,85,85,85,85,85,85,,,,,85,,,,,,,,,,,,,,,,,,,,,,,,,', +',,85,,,,85,,85,86,85,,86,86,86,86,86,86,86,86,86,86,,,86,86,86,86,86', +',,86,86,86,86,,86,86,,86,,86,86,,,86,86,,,,86,86,86,86,86,86,,,,,86', +',,,,,,,,,,,,,,,,,,,,,,,,,,,86,,,,86,,86,87,86,,87,87,87,87,87,87,87', +'87,87,87,,,87,87,87,87,87,,,87,87,87,87,,87,87,,87,,87,87,,,87,87,,', +',87,87,87,87,87,87,,,,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,,,,87,,87,219', +'87,,219,219,219,219,219,219,219,219,219,219,,,219,219,219,219,219,,', +'219,219,219,219,,219,219,,219,,219,219,,,219,219,,,,219,219,219,219', +'219,219,,,,,219,,,,,,,,,,,,,,,,,,,,,,,,,,,,219,,,,219,,219,243,219,', +'243,243,243,243,243,243,243,243,243,243,,,243,243,243,243,243,,,243', +'243,243,243,,243,243,,243,,243,243,,,243,243,,,,243,243,243,243,243', +'243,,,,,243,,,,,,,,,,,,,,,,,,,,,,,,,,,,243,,,,243,,243,91,243,,91,91', +'91,91,91,91,91,91,91,91,,,91,91,91,91,91,,,91,91,91,91,,91,91,,91,,91', '91,,,91,91,,,,91,91,91,91,91,91,,,,,91,,,,,,,,,,,,,,,,,,,,,,,,,,,,91', -',,,91,,91,92,91,,92,92,92,92,92,92,92,92,92,92,,,92,92,92,92,,,92,92', -'92,92,,92,92,,92,,92,92,,,92,92,,,,92,92,92,92,92,92,,,,,92,,,,,,,,', -',,,,,,,,,,,,,,,,,,,92,,,,92,,92,93,92,,93,93,93,93,93,93,93,93,93,93', -',,93,93,93,93,,,93,93,93,93,,93,93,,93,,93,93,,,93,93,,,,93,93,93,93', -'93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,,,,,,,,93,,,,93,,93,95,93,,95,95,95', -'95,95,95,95,95,95,95,,,95,95,95,95,,,95,95,95,95,,95,95,,95,,95,95,', -',95,95,,,,95,95,95,95,95,95,,,,,95,,,,,,,,,,,,,,,,,,,,,,,,,,,,95,,,', -'95,,95,96,95,,96,96,96,96,96,96,96,96,96,96,,,96,96,96,96,,,96,96,96', -'96,,96,96,,96,,96,96,,,96,96,,,,96,96,96,96,96,96,,,,,96,,,,,,,,,,,', -',,,,,,,,,,,,,,,,96,,,,96,,96,98,96,,98,98,98,98,98,98,98,98,98,98,,', -'98,98,98,98,,,98,98,98,98,,98,98,,98,,98,98,,,98,98,,,,98,98,98,98,98', -'98,,,,,98,,,,,,,,,,,,,,,,,,,,,,,,,,,,98,,,,98,,98,208,98,,208,208,208', -'208,208,208,208,208,208,208,,,208,208,208,208,,,208,208,208,208,,208', -'208,,208,,208,208,,,208,208,,,,208,208,208,208,208,208,,,,,208,,,,,', -',,,,,,,,,,,,,,,,,,,,,,208,,,,208,,208,100,208,,100,100,100,100,100,100', -'100,100,100,100,,,100,100,100,100,,,100,100,100,100,,100,100,,100,,100', -'100,,,100,100,,,,100,100,100,100,100,100,,,,,100,,,,,,,,,,,,,,,,,,,', -',,,,,,,,100,,,,100,,100,101,100,,101,101,101,101,101,101,101,101,101', -'101,,,101,101,101,101,,,101,101,101,101,,101,101,,101,,101,101,,,101', -'101,,,,101,101,101,101,101,101,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,,101', -',,,101,,101,102,101,,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,103', -'102,,103,103,103,103,103,103,103,103,103,103,,,103,103,103,103,,,103', -'103,103,103,,103,103,,103,,103,103,,,103,103,,,,103,103,103,103,103', -'103,,,,,103,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,,103,,103,104,103,,104', -'104,104,104,104,104,104,104,104,104,,,104,104,104,104,,,104,104,104', -'104,,104,104,,104,,104,104,,,104,104,,,,104,104,104,104,104,104,,,,', -'104,,,,,,,,,,,,,,,,,,,,,,,,,,,,104,,,,104,,104,105,104,,105,105,105', -'105,105,105,105,105,105,105,,,105,105,105,105,,,105,105,105,105,,105', +',,,91,,91,92,91,,92,92,92,92,92,92,92,92,92,92,,,92,92,92,92,92,,,92', +'92,92,92,,92,92,,92,,92,92,,,92,92,,,,92,92,92,92,92,92,,,,,92,,,,,', +',,,,,,,,,,,,,,,,,,,,,,92,,,,92,,92,93,92,,93,93,93,93,93,93,93,93,93', +'93,,,93,93,93,93,93,,,93,93,93,93,,93,93,,93,,93,93,,,93,93,,,,93,93', +'93,93,93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,,,,,,,,93,,,,93,,93,94,93,,94', +'94,94,94,94,94,94,94,94,94,,,94,94,94,94,94,,,94,94,94,94,,94,94,,94', +',94,94,,,94,94,,,,94,94,94,94,94,94,,,,,94,,,,,,,,,,,,,,,,,,,,,,,,,', +',,94,,,,94,,94,95,94,,95,95,95,95,95,95,95,95,95,95,,,95,95,95,95,95', +',,95,95,95,95,,95,95,,95,,95,95,,,95,95,,,,95,95,95,95,95,95,,,,,95', +',,,,,,,,,,,,,,,,,,,,,,,,,,,95,,,,95,,95,96,95,,96,96,96,96,96,96,96', +'96,96,96,,,96,96,96,96,96,,,96,96,96,96,,96,96,,96,,96,96,,,96,96,,', +',96,96,96,96,96,96,,,,,96,,,,,,,,,,,,,,,,,,,,,,,,,,,,96,,,,96,,96,97', +'96,,97,97,97,97,97,97,97,97,97,97,,,97,97,97,97,97,,,97,97,97,97,,97', +'97,,97,,97,97,,,97,97,,,,97,97,97,97,97,97,,,,,97,,,,,,,,,,,,,,,,,,', +',,,,,,,,,97,,,,97,,97,98,97,,98,98,98,98,98,98,98,98,98,98,,,98,98,98', +'98,98,,,98,98,98,98,,98,98,,98,,98,98,,,98,98,,,,98,98,98,98,98,98,', +',,,98,,,,,,,,,,,,,,,,,,,,,,,,,,,,98,,,,98,,98,99,98,,99,99,99,99,99', +'99,99,99,99,99,,,99,99,99,99,99,,,99,99,99,99,,99,99,,99,,99,99,,,99', +'99,,,,99,99,99,99,99,99,,,,,99,,,,,,,,,,,,,,,,,,,,,,,,,,,,99,,,,99,', +'99,100,99,,100,100,100,100,100,100,100,100,100,100,,,100,100,100,100', +'100,,,100,100,100,100,,100,100,,100,,100,100,,,100,100,,,,100,100,100', +'100,100,100,,,,,100,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,,,,100,,100,101,100', +',101,101,101,101,101,101,101,101,101,101,,,101,101,101,101,101,,,101', +'101,101,101,,101,101,,101,,101,101,,,101,101,,,,101,101,101,101,101', +'101,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,,101,,,,101,,101,102,101,,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,103,102,,103,103', +'103,103,103,103,103,103,103,103,,,103,103,103,103,103,,,103,103,103', +'103,,103,103,,103,,103,103,,,103,103,,,,103,103,103,103,103,103,,,,', +'103,,,,,,,,,,,,,,,,,,,,,,,,,,,,103,,,,103,,103,133,103,,133,133,133', +'133,133,133,133,133,133,133,,,133,133,133,133,133,,,133,133,133,133', +',133,133,,133,,133,133,,,133,133,133,,,133,133,133,133,133,133,,,,,133', +',,,,,,,,,,,,,,,,,,,,,,,,,,,133,,,,133,,133,105,133,,105,105,105,105', +'105,105,105,105,105,105,,,105,105,105,105,105,,,105,105,105,105,,105', '105,,105,,105,105,,,105,105,,,,105,105,105,105,105,105,,,,,105,,,,,', ',,,,,,,,,,,,,,,,,,,,,,105,,,,105,,105,106,105,,106,106,106,106,106,106', -'106,106,106,106,,,106,106,106,106,,,106,106,106,106,,106,106,,106,,106', -'106,,,106,106,,,,106,106,106,106,106,106,,,,,106,,,,,,,,,,,,,,,,,,,', -',,,,,,,,106,,,,106,,106,113,106,,113,113,113,113,113,113,113,113,113', -'113,,,113,113,113,113,,,113,113,113,113,,113,113,,113,,113,113,,,113', -'113,,,,113,113,113,113,113,113,,,,,113,,137,137,137,137,137,137,137', -'137,137,137,,,,,,,,,,137,137,,,,,,113,,,,113,,113,137,113,46,46,46,46', -'46,46,46,46,46,46,,,,,,,,,,46,46,243,243,243,243,243,243,243,243,243', -'243,,,46,,,,,,,243,243,,,137,,137,,137,,,,,,243,,,,,,,218,,218,,,,,', -',,,,,,,,,,46,,46,,46,,218,,,,,,218,243,,,,,,,,243,,243,,243,218,218', -'218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218', -'218,218,218,218,218,218,218,218,218,218,218,,,218,218,126,,126,,,218', -',,,,,,,,,,,,,,,,,,126,,,,,,126,,,,,,,126,,,,,,,126,126,126,126,126,126', -'126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126', -'126,126,126,126,126,126,126,,,126,126,84,,84,,,,,,,,,,,,,,,,,,,,,,84', -',,,,,84,,,,,,,84,,,,,,,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84', -'84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,,,84,84,239,,239,,,,,,', -',,,,,,,,,,,,,,,239,,,,,,239,,,,,,,,,,,,,,239,239,239,239,239,239,239', -'239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239', -'239,239,239,239,239,239,,,239,239,241,,241,,,,,,,,,,,,,,,,,,,,,,241', -',,,,,241,,,,,,,,,,,,,,241,241,241,241,241,241,241,241,241,241,241,241', -'241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241', -'241,,,241,241,261,,261,,,,,,,,,,,,,,,,,,,,,,261,,,,,,261,,,,,,,,,,,', -',,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261', -'261,261,261,261,261,261,261,261,261,261,261,261,261,,,261,261,167,,167', -',,,,,,,,,,,,,,,,,,,,,167,,,,,,167,,,,,,,,,,,,,,167,167,167,167,167,167', -'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167', -'167,167,167,167,167,167,167,,,167,167,260,,260,,,,,,,,,,,,,,,,,,,,,', -'260,,,,,,260,,,,,,,260,,,,,,,260,260,260,260,260,260,260,260,260,260', -'260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260', -'260,260,260,,,260,260,252,,252,,,,,,,,,,,,,,,,,,,,,,252,,,,,,252,,,', -',,,,,,,,,,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252', -'252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,,,252,252', -'145,,145,,,,,,,,,,,,,,,,,,,,,,145,,,,,,145,,,,,,,,,,,,,,145,145,145', -'145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145', -'145,145,145,145,145,145,145,145,145,145,,,145,145,42,,42,,,,,,,,,,,', -',,,,,,,,,,42,,,,,,42,,,,,,,,,,,,,,42,42,42,42,42,42,42,42,42,42,42,42', -'42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,,,42,42,73,,73', -',,,,,,,,,,,,,,,,,,,,,73,,,,,,73,,,,,,,73,,,,,,,73,73,73,73,73,73,73', -'73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73', -',,73,73,250,,250,,,,,,,,,,,,,,,,,,,,,,250,,,,,,250,,,,,,,,,,,,,,250', +'106,106,106,106,,,106,106,106,106,106,,,106,106,106,106,,106,106,,106', +',106,106,,,106,106,,,,106,106,106,106,106,106,,,,,106,,,,,,,,,,,,,,', +',,,,,,,,,,,,,106,,,,106,,106,107,106,,107,107,107,107,107,107,107,107', +'107,107,,,107,107,107,107,107,,,107,107,107,107,,107,107,,107,,107,107', +',,107,107,,,,107,107,107,107,107,107,,,,,107,,,,,,,,,,,,,,,,,,,,,,,', +',,,,107,,,,107,,107,104,107,,104,104,104,104,104,104,104,104,104,104', +',,104,104,104,104,104,,,104,104,104,104,,104,104,,104,,104,104,,,104', +'104,,,,104,104,104,104,104,104,199,,199,,104,,,,,,,,,,,,,,,,,,,,,199', +',,,,,199,104,,,,104,,104,,104,,,,,199,199,199,199,199,199,199,199,199', +'199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199', +'199,199,199,199,,,199,199,250,,250,,,199,,,,,,,,,,,,,,,,,,,,250,,,,', +',250,,,,,,,,,,,,,,250,250,250,250,250,250,250,250,250,250,250,250,250', '250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250', -'250,250,250,250,250,250,250,250,250,250,250,250,,,250,250,129,,129,', -',,,,,,,,,,,,,,,,,,,,129,,,,,,129,,,,,,,,,,,,,,129,129,129,129,129,129', -'129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129', -'129,129,129,129,129,129,129,,,129,129,175,,175,,,,,,,,,,,,,,,,,,,,,', -'175,,,,,,175,,,,,,,,,,,,,,175,175,175,175,175,175,175,175,175,175,175', -'175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175', -'175,175,214,,214,,,,,,,,,,,,,,,,,,,,,,214,,,,,,214,,,,,,,,,,,,,,214', -'214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214', -'214,214,214,214,214,214,214,214,214,214,214,214,171,,171,,,,,,,,,,,', -',,,,,,,,,,171,,,,,,171,,,,,,,,,,,,,,171,171,171,171,171,171,171,171', -'171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171,171', -'171,171,171,171,171,70,,,,,,70,,,,,,,,,,,,,,70,70,70,70,70,70,70,70', -'70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,267', -',,,,,267,,,,,,,,,,,,,,267,267,267,267,267,267,267,267,267,267,267,267', -'267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267,267', -'267,180,,,,,,180,,,,,,,,,,,,,,180,180,180,180,180,180,180,180,180,180', +',,250,250,261,,261,,,,,,,,,,,,,,,,,,,,,,,261,,,,,,261,,,,,,,,,,,,,,261', +'261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261', +'261,261,261,261,261,261,261,261,261,261,261,261,,,261,261,119,,119,', +',,,,,,,,,,,,,,,,,,,,,119,,,,,,119,,,,,,,119,,,,,,,119,119,119,119,119', +'119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119', +'119,119,119,119,119,119,119,119,,,119,119,137,,137,,,,,,,,,,,,,,,,,', +',,,,,137,,,,,,137,,,,,,,137,,,,,,,137,137,137,137,137,137,137,137,137', +'137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137', +'137,137,137,137,,,137,137,268,,268,,,,,,,,,,,,,,,,,,,,,,,268,,,,,,268', +',,,,,,268,,,,,,,268,268,268,268,268,268,268,268,268,268,268,268,268', +'268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268', +',,268,268,244,,244,,,,,,,,,,,,,,,,,,,,,,,244,,,,,,244,,,,,,,,,,,,,,244', +'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244', +'244,244,244,244,244,244,244,244,244,244,244,244,,,244,244,145,,145,', +',,,,,,,,,,,,,,,,,,,,,145,,,,,,145,,,,,,,145,,,,,,,145,145,145,145,145', +'145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145', +'145,145,145,145,145,145,145,145,,,145,145,2,,2,,,,,,,,,,,,,,,,,,,,,', +',2,,,,,,2,,,,,,,,,,,,,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2', +'2,2,2,2,2,2,2,,,2,2,251,,251,,,,,,,,,,,,,,,,,,,,,,,251,,,,,,251,,,,', +',,,,,,,,,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251', +'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,251,251', +'242,,242,,,,,,,,,,,,,,,,,,,,,,,242,,,,,,242,,,,,,,,,,,,,,242,242,242', +'242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242', +'242,242,242,242,242,242,242,242,242,242,,,242,242,134,,134,,,,,,,,,', +',,,,,,,,,,,,,134,,,,,,134,,,,,,,,,,,,,,134,134,134,134,134,134,134,134', +'134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134', +'134,134,134,134,134,,,134,134,230,,230,,,,,,,,,,,,,,,,,,,,,,,230,,,', +',,230,,,,,,,,,,,,,,230,230,230,230,230,230,230,230,230,230,230,230,230', +'230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230', +',,230,230,110,,110,,,,,,,,,,,,,,,,,,,,,,,110,,,,,,110,,,,,,,,,,,,,,110', +'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110', +'110,110,110,110,110,110,110,110,110,110,110,110,,,110,110,195,,195,', +',,,,,,,,,,,,,,,,,,,,,195,,,,,,195,,,,,,,,,,,,,,195,195,195,195,195,195', +'195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195', +'195,195,195,195,195,195,195,167,,167,,,,,,,,,,,,,,,,,,,,,,,167,,,,,', +'167,,,,,,,,,,,,,,167,167,167,167,167,167,167,167,167,167,167,167,167', +'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167', +'164,,164,,,,,,,,,,,,,,,,,,,,,,,164,,,,,,164,,,,,,,,,,,,,,164,164,164', +'164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164', +'164,164,164,164,164,164,164,164,164,164,170,,,,,,170,,,,,,,,,,,,,,170', +'170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170', +'170,170,170,170,170,170,170,170,170,170,170,170,124,,,,,,124,,,,,,,', +',,,,,,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124', +'124,124,124,124,124,124,124,124,124,124,124,124,124,124,269,,,,,,269', +',,,,,,,,,,,,,269,269,269,269,269,269,269,269,269,269,269,269,269,269', +'269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,240', +',,,240,,240,,,,,,,,,,,,,,240,240,240,240,240,240,240,240,240,240,240', +'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240', +'240,240,163,,,,,,163,,,,,,,,,,,,,,163,163,163,163,163,163,163,163,163', +'163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163', +'163,163,163,163,149,,,,,,,,,,,,,,149,149,149,149,149,149,149,149,149', +'149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149', +'149,149,149,149,146,,,,,,,,,,,,,,146,146,146,146,146,146,146,146,146', +'146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146', +'146,146,146,146,158,,,,,,,,,,,,,,158,158,158,158,158,158,158,158,158', +'158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158', +'158,158,158,158,177,177,177,177,177,177,177,177,177,177,177,177,177', +'177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177', +'186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186', +'186,186,186,186,186,186,186,186,186,186,186,186,186,189,189,189,189', +'189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189', +'189,189,189,189,189,189,189,189,189,183,183,183,183,183,183,183,183', +'183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183', +'183,183,183,183,183,180,180,180,180,180,180,180,180,180,180,180,180', '180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180', -'180,180,180,233,,,,233,,233,,,,,,,,,,,,,,233,233,233,233,233,233,233', -'233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233,233', -'233,233,233,233,233,233,174,,,,,,174,,,,,,,,,,,,,,174,174,174,174,174', -'174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174,174', -'174,174,174,174,174,174,174,174,200,,,,,,,,,,,,,,200,200,200,200,200', -'200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200', -'200,200,200,200,200,200,200,200,68,,,,,,,,,,,,,,68,68,68,68,68,68,68', -'68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68', -'153,,,,,,,,,,,,,,153,153,153,153,153,153,153,153,153,153,153,153,153', -'153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153', -'197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197', -'197,197,197,197,197,197,197,197,197,197,197,197,197,194,194,194,194', -'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194', -'194,194,194,194,194,194,194,194,194,188,188,188,188,188,188,188,188', -'188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188', -'188,188,188,188,188,191,191,191,191,191,191,191,191,191,191,191,191', -'191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191', -'191,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185', -'185,185,185,185,185,185,185,185,185,185,185,185,185,185' ] - racc_action_check = arr = Array.new(7689, nil) +'180' ] + racc_action_check = arr = Array.new(7672, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -555,299 +551,345 @@ clist = [ end racc_action_pointer = [ - 2548, 4163, nil, 168, 253, nil, nil, 338, 131, nil, - 508, nil, nil, 593, 678, nil, nil, nil, nil, 168, - -51, 933, nil, nil, 198, 148, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 187, 1273, nil, nil, - nil, nil, 6621, 140, 1528, 1613, 5777, nil, nil, 63, - 68, 1953, 2038, nil, nil, nil, 85, 269, 2293, 2378, - nil, nil, nil, 2463, nil, nil, nil, -2, 7419, 263, - 7131, 2888, 288, 6699, 307, nil, 3228, 71, 101, 255, - 122, 62, 230, 3823, 5997, 3993, 4078, 83, 4248, 4333, - 4418, 4503, 4588, 4673, nil, 4758, 4843, nil, 4928, 65, - 5098, 5183, 5268, 5353, 5438, 5523, 5608, 3058, 3908, 3653, - 3568, 3483, 3398, 5693, 2973, 2718, 2208, 2123, 1868, 1783, - 1698, nil, 35, nil, 110, nil, 5919, 168, 1443, 6855, - 84, 1358, 60, 65, 1188, nil, 1018, 5742, 21, 848, - nil, nil, 763, nil, -7, 6543, 115, nil, 144, 274, - 82, 135, nil, 7463, 246, 257, nil, -55, nil, -39, - nil, nil, nil, nil, 2, 65, 423, 6309, nil, 855, - 1215, 7081, 600, 1205, 7331, 6933, 345, 1123, 430, 1195, - 7231, 176, 770, 268, 137, 7613, 1025, 313, 7553, 1038, - 200, 7583, 1110, 366, 7523, 685, 281, 7493, 940, 1280, - 7375, 515, 193, nil, nil, nil, nil, 1, 5013, 3738, - nil, 155, 153, -68, 7007, 66, 116, nil, 5841, -64, - 2, 11, 6, 3313, 150, 3143, 152, 127, nil, nil, - nil, nil, nil, 7281, nil, 102, nil, 2803, nil, 6075, - 2633, 6153, nil, 5798, nil, nil, nil, nil, 95, 99, - 6777, nil, 6465, nil, nil, 109, 1103, 126, nil, nil, - 6387, 6231, 140, -2, nil, nil, nil, 7181, 183, 153, - nil, 142, nil, nil, nil ] + 2664, 135, 6439, nil, -51, 342, 407, nil, nil, 514, + 244, nil, nil, nil, nil, nil, nil, 686, nil, 238, + 858, nil, 151, nil, nil, nil, nil, 1030, nil, nil, + nil, nil, 1116, nil, 240, nil, 1288, nil, 1374, nil, + 1460, nil, nil, 1546, nil, 1632, 291, 1804, nil, nil, + nil, nil, 1890, nil, nil, 1976, nil, nil, 2062, 2148, + nil, 249, 245, 150, nil, nil, nil, nil, 282, 2578, + 204, 238, 2836, 2922, 3008, 3094, 3180, 3266, 3352, 3438, + 3524, 3610, 3696, 3782, nil, 3868, 3954, 4040, nil, 192, + 84, 4298, 4384, 4470, 4556, 4642, 4728, 4814, 4900, 4986, + 5072, 5158, 5244, 5330, 5760, 5502, 5588, 5674, 158, 194, + 6834, nil, 2750, nil, 2320, 307, 154, 2234, nil, 6044, + 102, 772, 138, nil, 7163, 170, nil, -8, 201, 33, + 54, 277, 52, 5416, 6676, 321, 377, 6123, 357, nil, + 395, nil, 6, -37, 369, 6360, 7401, -2, 224, 7357, + 123, nil, nil, 36, nil, 153, 600, 428, 7445, 865, + 1388, 951, 1395, 7313, 7063, 1037, 450, 6988, 779, 365, + 7113, 521, -34, 270, 693, 1295, 291, 7475, 1209, 52, + 7595, 1222, 59, 7565, 1308, 542, 7505, 607, 439, 7535, + 1123, 1381, nil, nil, 160, 6913, 118, 65, nil, 5807, + nil, 278, 181, 169, 38, nil, -56, 145, 944, 99, + 1202, 1718, nil, 74, -42, nil, nil, 273, 320, 4126, + 256, -40, -2, nil, nil, nil, nil, nil, nil, 80, + 6755, nil, nil, nil, -8, nil, 72, nil, nil, nil, + 7263, nil, 6597, 4212, 6281, nil, -2, nil, nil, 187, + 5886, 6518, nil, nil, 370, nil, 2492, nil, nil, nil, + 2406, 5965, 221, 66, nil, 216, nil, nil, 6202, 7213, + 152, nil, 255, 296, nil, nil, nil ] racc_action_default = [ - -1, -155, -110, -155, -155, -35, -11, -155, -155, -91, - -155, -36, -12, -155, -155, -37, -30, -13, -90, -155, - -155, -155, -31, -14, -155, -155, -92, -43, -24, -15, - -2, -93, -28, -26, -25, -16, -3, -155, -94, -88, - -27, -17, -4, -148, -155, -118, -155, -29, -18, -7, - -108, -155, -155, -32, -19, -8, -155, -102, -155, -155, - -33, -20, -9, -155, -34, -21, -10, -155, -52, -45, - -128, -118, -48, -155, -50, -87, -155, -155, -155, -49, - -155, -133, -155, -6, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -54, -155, -155, -53, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, - -155, -152, -155, -146, -148, -150, -155, -155, -118, -119, - -7, -118, -155, -109, -118, -99, -155, -155, -155, -155, - -95, -98, -118, -96, -46, -42, -155, -103, -155, -102, - -155, -155, -41, -51, -47, -44, -129, -155, -144, -155, - -23, -86, -89, 275, -155, -155, -155, -5, -130, -73, - -62, -83, -74, -63, -153, -84, -75, -64, -76, -65, - -154, -155, -77, -66, -55, -78, -67, -56, -79, -68, - -57, -80, -69, -58, -81, -70, -59, -82, -71, -60, - -85, -72, -61, -149, -145, -147, -151, -155, -155, -155, - -117, -155, -155, -155, -38, -111, -155, -97, -155, -155, - -155, -124, -155, -155, -155, -155, -155, -155, -101, -114, - -22, -134, -132, -135, -131, -155, -139, -155, -143, -121, - -155, -120, -123, -155, -112, -100, -113, -125, -155, -155, - -39, -107, -40, -105, -104, -155, -155, -155, -140, -137, - -155, -122, -155, -155, -126, -127, -106, -136, -155, -141, - -115, -155, -138, -142, -116 ] + -1, -157, -4, -43, -157, -157, -7, -28, -88, -157, + -157, -8, -94, -9, -95, -96, -10, -157, -26, -157, + -157, -11, -110, -27, -24, -30, -12, -157, -29, -25, + -31, -13, -157, -32, -157, -14, -157, -33, -120, -15, + -157, -112, -34, -157, -16, -157, -104, -157, -17, -35, + -18, -36, -157, -19, -37, -157, -20, -92, -157, -157, + -21, -150, -157, -157, -90, -2, -93, -91, -3, -120, + -157, -111, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -54, -157, -157, -157, -53, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -42, -100, -120, -101, -157, -157, -157, -157, -97, -157, + -157, -157, -47, -87, -130, -120, -98, -44, -45, -135, + -157, -48, -157, -120, -121, -7, -50, -157, -49, -41, + -157, -105, -157, -157, -104, -157, -51, -157, -46, -52, + -150, -152, -154, -157, -148, -157, -120, -6, -85, -72, + -61, -73, -62, -155, -83, -74, -63, -84, -75, -64, + -156, -76, -65, -157, -77, -66, -55, -78, -67, -56, + -79, -68, -57, -80, -69, -58, -81, -70, -59, -82, + -71, -60, -86, -89, -157, -38, -113, -157, -99, -157, + -146, -157, -157, -126, -157, -23, -157, -157, -157, -157, + -157, -157, -119, -157, -157, -132, -103, -157, -157, -157, + -157, -157, -157, -131, -153, -149, -151, -147, 277, -157, + -5, -133, -114, -102, -157, -127, -157, -22, -115, -136, + -137, -134, -123, -157, -122, -125, -157, -107, -106, -157, + -39, -40, -109, -145, -157, -141, -157, -116, -129, -128, + -157, -124, -157, -157, -108, -157, -142, -139, -157, -138, + -157, -117, -157, -143, -118, -140, -144 ] racc_goto_table = [ - 30, 143, 123, 42, 67, 152, 68, 69, 151, 36, - 70, 157, 24, 72, 253, 254, 73, 74, 236, 204, - 221, 125, 75, 124, 79, 235, 121, nil, 165, nil, - nil, nil, 130, 132, nil, nil, 83, 133, nil, nil, - 84, nil, nil, 266, nil, nil, 258, 126, 135, 135, - nil, nil, nil, nil, 144, 145, 82, nil, nil, 146, - nil, 153, 154, nil, nil, nil, 155, nil, 211, nil, - nil, nil, nil, nil, 213, nil, 158, nil, nil, 42, - 161, nil, 219, 205, 143, 159, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 152, 178, 179, - 224, 180, 206, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 215, 203, 130, 234, 216, 135, - 181, 135, 135, nil, nil, nil, nil, nil, nil, 214, - nil, nil, 218, nil, nil, nil, nil, nil, nil, nil, - nil, 226, nil, nil, nil, 238, nil, nil, nil, 83, - nil, nil, nil, nil, nil, nil, nil, 143, 232, 233, - nil, nil, nil, nil, 152, 152, nil, nil, nil, nil, - nil, nil, nil, 238, nil, nil, nil, nil, nil, nil, + 65, 113, 71, 70, 120, 139, 68, 126, 140, 154, + 151, 194, 130, 123, 209, 255, 62, 113, 247, 248, + 203, 227, 254, 150, 206, 193, 152, nil, nil, nil, + nil, nil, 213, nil, nil, nil, nil, nil, nil, nil, + 135, nil, nil, nil, nil, nil, nil, 266, nil, nil, + 264, nil, nil, nil, nil, 229, 126, 231, nil, nil, + nil, nil, nil, nil, nil, 113, 113, 173, 157, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 152, nil, nil, nil, nil, nil, 240, - nil, 239, 241, nil, 135, 135, nil, nil, nil, nil, - nil, nil, nil, 247, 226, nil, 250, 255, 252, nil, - 262, nil, nil, nil, 216, nil, nil, nil, nil, nil, - 260, nil, nil, 261, nil, nil, nil, nil, nil, nil, - 271, 264, 265, nil, 216, nil, nil, nil, nil, 267, - 268, 135, nil, 269, nil, nil, nil, nil, nil, 273, - 135 ] + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 225, 224, + nil, nil, 192, 139, nil, nil, 221, nil, nil, nil, + nil, nil, nil, 200, nil, nil, 197, 196, nil, 135, + nil, nil, nil, nil, nil, nil, nil, 204, nil, nil, + 113, 215, nil, nil, nil, nil, nil, nil, nil, nil, + 217, nil, nil, nil, nil, nil, nil, 226, 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, 139, 139, nil, nil, + nil, 253, 126, nil, nil, nil, nil, nil, nil, nil, + nil, 113, 113, nil, nil, nil, 235, nil, nil, nil, + nil, nil, nil, 241, 157, nil, nil, nil, 139, nil, + nil, 243, nil, 253, nil, nil, nil, nil, 249, nil, + nil, 217, nil, nil, nil, nil, nil, nil, 258, nil, + 259, nil, nil, nil, 2, nil, nil, nil, nil, 110, + nil, nil, nil, 119, nil, nil, nil, 197, 263, nil, + nil, 122, nil, nil, 124, nil, nil, nil, 113, 272, + nil, 127, 273, 197, 270, 113, 128, nil, nil, nil, + 131, nil, nil, 276, 136, nil, nil, 137, nil, 138, + nil, 145, nil, nil, nil, nil, 146, nil, nil, 147, + nil, nil, 148, 149, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, nil, 170, + 171, 172, nil, nil, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, nil, nil, nil, nil, nil, nil, 195, nil, + nil, 199, nil, nil, nil, 2, 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, 230, 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, 240, nil, 242, 244, nil, nil, nil, nil, + nil, nil, nil, 250, 251, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 261, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 268, nil, nil, nil, 269 ] racc_goto_check = [ - 2, 27, 39, 4, 4, 19, 4, 4, 30, 3, - 4, 32, 1, 4, 22, 22, 4, 4, 37, 38, - 33, 41, 20, 40, 4, 36, 42, nil, 35, nil, - nil, nil, 5, 5, nil, nil, 2, 28, nil, nil, - 4, nil, nil, 22, nil, nil, 37, 4, 9, 9, - nil, nil, nil, nil, 4, 4, 34, nil, nil, 20, - nil, 4, 4, nil, nil, nil, 4, nil, 32, nil, - nil, nil, nil, nil, 32, nil, 20, nil, nil, 4, - 20, nil, 32, 39, 27, 3, 4, 20, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 19, 4, 4, - 30, 4, 41, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 5, 20, 5, 35, 28, 9, - 34, 9, 9, nil, nil, nil, nil, nil, nil, 4, - nil, nil, 4, nil, nil, nil, nil, nil, nil, nil, - nil, 2, nil, nil, nil, 19, nil, nil, nil, 2, - nil, nil, nil, nil, nil, nil, nil, 27, 20, 4, - nil, nil, nil, nil, 19, 19, nil, nil, nil, nil, - nil, nil, nil, 19, nil, nil, nil, nil, nil, nil, + 2, 9, 29, 5, 20, 19, 3, 28, 31, 40, + 42, 33, 35, 20, 36, 38, 1, 9, 22, 22, + 34, 39, 37, 41, 33, 24, 43, nil, nil, nil, + nil, nil, 33, nil, nil, nil, nil, nil, nil, nil, + 5, nil, nil, nil, nil, nil, nil, 38, nil, nil, + 22, nil, nil, nil, nil, 33, 28, 36, nil, nil, + nil, nil, nil, nil, nil, 9, 9, 35, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 19, nil, nil, nil, nil, nil, 2, - nil, 4, 4, nil, 9, 9, nil, nil, nil, nil, - nil, nil, nil, 20, 2, nil, 4, 2, 4, nil, - 5, nil, nil, nil, 28, nil, nil, nil, nil, nil, - 4, nil, nil, 4, nil, nil, nil, nil, nil, nil, - 5, 20, 20, nil, 28, nil, nil, nil, nil, 4, - 20, 9, nil, 20, nil, nil, nil, nil, nil, 2, - 9 ] + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 40, 42, + nil, nil, 20, 19, nil, nil, 31, nil, nil, nil, + nil, nil, nil, 20, nil, nil, 29, 5, nil, 5, + nil, nil, nil, nil, nil, nil, nil, 3, nil, nil, + 9, 20, nil, nil, nil, nil, nil, nil, nil, nil, + 2, nil, nil, nil, nil, nil, nil, 20, 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, 19, 19, nil, nil, + nil, 19, 28, nil, nil, nil, nil, nil, nil, nil, + nil, 9, 9, nil, nil, nil, 20, nil, nil, nil, + nil, nil, nil, 20, 2, nil, nil, nil, 19, nil, + nil, 2, nil, 19, nil, nil, nil, nil, 2, nil, + nil, 2, nil, nil, nil, nil, nil, nil, 20, nil, + 20, nil, nil, nil, 4, nil, nil, nil, nil, 4, + nil, nil, nil, 4, nil, nil, nil, 29, 5, nil, + nil, 4, nil, nil, 4, nil, nil, nil, 9, 20, + nil, 4, 20, 29, 5, 9, 4, nil, nil, nil, + 4, nil, nil, 2, 4, nil, nil, 4, nil, 4, + nil, 4, nil, nil, nil, nil, 4, nil, nil, 4, + nil, nil, 4, 4, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, nil, 4, + 4, 4, nil, nil, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, nil, nil, nil, nil, nil, nil, 4, nil, + nil, 4, nil, nil, nil, 4, 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, 4, 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, 4, nil, 4, 4, nil, nil, nil, nil, + nil, nil, nil, 4, 4, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 4, nil, nil, nil, 4 ] racc_goto_pointer = [ - nil, 12, 0, 9, 3, -13, nil, nil, nil, -1, - nil, nil, nil, nil, nil, nil, nil, nil, nil, -52, - 3, nil, -212, nil, nil, nil, nil, -49, -9, nil, - -49, nil, -60, -126, 31, -54, -182, -189, -103, -41, - -20, -22, -17 ] + nil, 16, 0, 6, 234, 2, nil, nil, nil, -5, + nil, nil, nil, nil, nil, nil, nil, nil, nil, -41, + -6, nil, -199, nil, -84, nil, nil, nil, -15, 1, + nil, -38, nil, -101, -100, -22, -116, -200, -207, -132, + -52, -38, -51, -35 ] racc_goto_default = [ - nil, nil, 208, nil, 129, 49, 55, 62, 66, 6, - 12, 17, 23, 29, 35, 41, 48, 54, 61, 65, - nil, 9, 147, 20, 26, 31, 38, 140, 50, 141, - nil, 2, 127, nil, nil, nil, nil, nil, 43, nil, - nil, nil, nil ] + nil, nil, 210, nil, 134, 6, 11, 13, 16, 21, + 26, 31, 35, 39, 44, 48, 50, 53, 56, 60, + nil, 66, 141, 4, 8, 12, 14, 15, 118, 22, + 111, nil, 41, 132, nil, nil, nil, nil, nil, 61, + nil, nil, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, - 0, 91, :_reduce_1, - 1, 91, :_reduce_2, - 1, 91, :_reduce_3, - 1, 93, :_reduce_4, - 3, 93, :_reduce_5, - 2, 93, :_reduce_6, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 1, 94, :_reduce_none, - 3, 110, :_reduce_22, - 2, 110, :_reduce_23, - 1, 92, :_reduce_none, - 1, 92, :_reduce_none, - 1, 111, :_reduce_26, - 1, 111, :_reduce_27, - 1, 111, :_reduce_28, - 1, 111, :_reduce_29, - 1, 111, :_reduce_30, - 1, 111, :_reduce_31, - 1, 111, :_reduce_32, - 1, 111, :_reduce_33, - 1, 111, :_reduce_34, - 1, 111, :_reduce_35, - 1, 111, :_reduce_36, - 1, 111, :_reduce_37, - 3, 100, :_reduce_38, - 3, 112, :_reduce_39, - 3, 112, :_reduce_40, - 1, 112, :_reduce_41, - 2, 104, :_reduce_42, - 1, 109, :_reduce_43, - 2, 98, :_reduce_44, - 2, 98, :_reduce_45, - 2, 98, :_reduce_46, - 2, 98, :_reduce_47, - 2, 98, :_reduce_48, - 2, 98, :_reduce_49, - 2, 98, :_reduce_50, - 2, 98, :_reduce_51, - 2, 98, :_reduce_52, - 2, 98, :_reduce_53, - 2, 98, :_reduce_54, - 3, 98, :_reduce_55, - 3, 98, :_reduce_56, - 3, 98, :_reduce_57, - 3, 98, :_reduce_58, - 3, 98, :_reduce_59, - 3, 98, :_reduce_60, - 3, 98, :_reduce_61, - 3, 98, :_reduce_62, - 3, 98, :_reduce_63, - 3, 98, :_reduce_64, - 3, 98, :_reduce_65, - 3, 98, :_reduce_66, - 3, 98, :_reduce_67, - 3, 98, :_reduce_68, - 3, 98, :_reduce_69, - 3, 98, :_reduce_70, - 3, 98, :_reduce_71, - 3, 98, :_reduce_72, - 3, 98, :_reduce_73, - 3, 98, :_reduce_74, - 3, 98, :_reduce_75, - 3, 98, :_reduce_76, - 3, 98, :_reduce_77, - 3, 98, :_reduce_78, - 3, 98, :_reduce_79, - 3, 98, :_reduce_80, - 3, 98, :_reduce_81, - 3, 98, :_reduce_82, - 3, 98, :_reduce_83, - 3, 98, :_reduce_84, - 3, 98, :_reduce_85, - 3, 97, :_reduce_86, - 2, 97, :_reduce_87, - 1, 113, :_reduce_88, - 3, 113, :_reduce_89, - 1, 95, :_reduce_90, - 1, 95, :_reduce_91, - 1, 95, :_reduce_92, - 1, 95, :_reduce_93, - 1, 95, :_reduce_94, - 2, 95, :_reduce_95, - 2, 95, :_reduce_96, - 2, 117, :_reduce_97, - 1, 117, :_reduce_98, - 1, 117, :_reduce_99, - 3, 119, :_reduce_100, - 3, 115, :_reduce_101, - 0, 120, :_reduce_102, - 1, 120, :_reduce_103, - 3, 120, :_reduce_104, - 3, 120, :_reduce_105, - 4, 120, :_reduce_106, - 3, 120, :_reduce_107, - 1, 96, :_reduce_108, - 2, 96, :_reduce_109, - 1, 96, :_reduce_110, - 3, 108, :_reduce_111, - 4, 118, :_reduce_112, - 4, 118, :_reduce_113, - 4, 121, :_reduce_114, - 6, 99, :_reduce_115, - 7, 99, :_reduce_116, - 3, 114, :_reduce_117, - 0, 122, :_reduce_118, - 1, 122, :_reduce_119, - 3, 122, :_reduce_120, - 3, 122, :_reduce_121, - 4, 122, :_reduce_122, - 3, 122, :_reduce_123, - 3, 102, :_reduce_124, - 4, 102, :_reduce_125, - 5, 102, :_reduce_126, - 3, 123, :_reduce_127, - 2, 103, :_reduce_128, - 3, 116, :_reduce_129, - 3, 105, :_reduce_130, - 4, 106, :_reduce_131, - 4, 106, :_reduce_132, - 1, 124, :_reduce_133, - 3, 124, :_reduce_134, - 2, 125, :_reduce_135, - 4, 125, :_reduce_136, - 5, 107, :_reduce_137, - 7, 107, :_reduce_138, - 1, 126, :_reduce_139, - 2, 126, :_reduce_140, - 3, 127, :_reduce_141, - 4, 127, :_reduce_142, - 1, 127, :_reduce_none, - 3, 128, :_reduce_144, - 2, 129, :_reduce_145, - 1, 130, :_reduce_146, - 2, 130, :_reduce_147, - 0, 131, :_reduce_148, - 2, 131, :_reduce_149, - 1, 132, :_reduce_150, - 2, 132, :_reduce_151, - 2, 101, :_reduce_152, - 3, 101, :_reduce_153, - 3, 101, :_reduce_154 ] + 0, 92, :_reduce_1, + 1, 92, :_reduce_2, + 1, 92, :_reduce_3, + 1, 94, :_reduce_4, + 3, 94, :_reduce_5, + 2, 94, :_reduce_6, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 1, 95, :_reduce_none, + 3, 111, :_reduce_22, + 2, 111, :_reduce_23, + 1, 93, :_reduce_none, + 1, 93, :_reduce_none, + 1, 112, :_reduce_26, + 1, 112, :_reduce_27, + 1, 112, :_reduce_28, + 1, 112, :_reduce_29, + 1, 112, :_reduce_30, + 1, 112, :_reduce_31, + 1, 112, :_reduce_32, + 1, 112, :_reduce_33, + 1, 112, :_reduce_34, + 1, 112, :_reduce_35, + 1, 112, :_reduce_36, + 1, 112, :_reduce_37, + 3, 101, :_reduce_38, + 3, 113, :_reduce_39, + 3, 113, :_reduce_40, + 1, 113, :_reduce_41, + 2, 105, :_reduce_42, + 1, 110, :_reduce_43, + 2, 99, :_reduce_44, + 2, 99, :_reduce_45, + 2, 99, :_reduce_46, + 2, 99, :_reduce_47, + 2, 99, :_reduce_48, + 2, 99, :_reduce_49, + 2, 99, :_reduce_50, + 2, 99, :_reduce_51, + 2, 99, :_reduce_52, + 2, 99, :_reduce_53, + 2, 99, :_reduce_54, + 3, 99, :_reduce_55, + 3, 99, :_reduce_56, + 3, 99, :_reduce_57, + 3, 99, :_reduce_58, + 3, 99, :_reduce_59, + 3, 99, :_reduce_60, + 3, 99, :_reduce_61, + 3, 99, :_reduce_62, + 3, 99, :_reduce_63, + 3, 99, :_reduce_64, + 3, 99, :_reduce_65, + 3, 99, :_reduce_66, + 3, 99, :_reduce_67, + 3, 99, :_reduce_68, + 3, 99, :_reduce_69, + 3, 99, :_reduce_70, + 3, 99, :_reduce_71, + 3, 99, :_reduce_72, + 3, 99, :_reduce_73, + 3, 99, :_reduce_74, + 3, 99, :_reduce_75, + 3, 99, :_reduce_76, + 3, 99, :_reduce_77, + 3, 99, :_reduce_78, + 3, 99, :_reduce_79, + 3, 99, :_reduce_80, + 3, 99, :_reduce_81, + 3, 99, :_reduce_82, + 3, 99, :_reduce_83, + 3, 99, :_reduce_84, + 3, 99, :_reduce_85, + 3, 98, :_reduce_86, + 2, 98, :_reduce_87, + 1, 114, :_reduce_88, + 3, 114, :_reduce_89, + 1, 115, :_reduce_none, + 1, 115, :_reduce_91, + 1, 96, :_reduce_92, + 1, 96, :_reduce_93, + 1, 96, :_reduce_94, + 1, 96, :_reduce_95, + 1, 96, :_reduce_96, + 2, 96, :_reduce_97, + 2, 96, :_reduce_98, + 2, 119, :_reduce_99, + 1, 119, :_reduce_100, + 1, 119, :_reduce_101, + 3, 121, :_reduce_102, + 3, 117, :_reduce_103, + 0, 122, :_reduce_104, + 1, 122, :_reduce_105, + 3, 122, :_reduce_106, + 3, 122, :_reduce_107, + 4, 122, :_reduce_108, + 3, 122, :_reduce_109, + 1, 97, :_reduce_110, + 2, 97, :_reduce_111, + 1, 97, :_reduce_112, + 3, 109, :_reduce_113, + 4, 120, :_reduce_114, + 4, 120, :_reduce_115, + 4, 123, :_reduce_116, + 6, 100, :_reduce_117, + 7, 100, :_reduce_118, + 3, 116, :_reduce_119, + 0, 124, :_reduce_120, + 1, 124, :_reduce_121, + 3, 124, :_reduce_122, + 3, 124, :_reduce_123, + 4, 124, :_reduce_124, + 3, 124, :_reduce_125, + 3, 103, :_reduce_126, + 4, 103, :_reduce_127, + 5, 103, :_reduce_128, + 3, 125, :_reduce_129, + 2, 104, :_reduce_130, + 3, 118, :_reduce_131, + 3, 106, :_reduce_132, + 4, 107, :_reduce_133, + 4, 107, :_reduce_134, + 1, 126, :_reduce_135, + 3, 126, :_reduce_136, + 2, 127, :_reduce_137, + 4, 127, :_reduce_138, + 5, 108, :_reduce_139, + 7, 108, :_reduce_140, + 1, 128, :_reduce_141, + 2, 128, :_reduce_142, + 3, 129, :_reduce_143, + 4, 129, :_reduce_144, + 1, 129, :_reduce_none, + 3, 130, :_reduce_146, + 2, 131, :_reduce_147, + 1, 132, :_reduce_148, + 2, 132, :_reduce_149, + 0, 133, :_reduce_150, + 2, 133, :_reduce_151, + 1, 134, :_reduce_152, + 2, 134, :_reduce_153, + 2, 102, :_reduce_154, + 3, 102, :_reduce_155, + 3, 102, :_reduce_156 ] -racc_reduce_n = 155 +racc_reduce_n = 157 -racc_shift_n = 275 +racc_shift_n = 277 racc_token_table = { false => 0, @@ -868,80 +910,81 @@ racc_token_table = { :PROPERTY_ACCESS => 15, :CODE => 16, :PARAM => 17, - :NEW => 18, - :RETURN => 19, - :TRY => 20, - :CATCH => 21, - :FINALLY => 22, - :THROW => 23, - :BREAK => 24, - :CONTINUE => 25, - :FOR => 26, - :IN => 27, - :WHILE => 28, - :SWITCH => 29, - :WHEN => 30, - :DELETE => 31, - :INSTANCEOF => 32, - :TYPEOF => 33, - :SUPER => 34, - :EXTENDS => 35, - :NEWLINE => 36, - :COMMENT => 37, - :JS => 38, - :INDENT => 39, - :OUTDENT => 40, - :UMINUS => 41, - :NOT => 42, - "!" => 43, - "!!" => 44, - "~" => 45, - "++" => 46, - "--" => 47, - "*" => 48, - "/" => 49, - "%" => 50, - "+" => 51, - "-" => 52, - "<<" => 53, - ">>" => 54, - ">>>" => 55, - "&" => 56, - "|" => 57, - "^" => 58, - "<=" => 59, - "<" => 60, - ">" => 61, - ">=" => 62, - "==" => 63, - "!=" => 64, - :IS => 65, - :ISNT => 66, - "&&" => 67, - "||" => 68, - :AND => 69, - :OR => 70, - "-=" => 71, - "+=" => 72, - "/=" => 73, - "*=" => 74, - "%=" => 75, - "." => 76, - :ASSIGN => 77, - "||=" => 78, - "&&=" => 79, - "=>" => 80, - "\n" => 81, - ";" => 82, - "," => 83, - "[" => 84, - "]" => 85, - "{" => 86, - "}" => 87, - "(" => 88, - ")" => 89 } + :SPLAT => 18, + :NEW => 19, + :RETURN => 20, + :TRY => 21, + :CATCH => 22, + :FINALLY => 23, + :THROW => 24, + :BREAK => 25, + :CONTINUE => 26, + :FOR => 27, + :IN => 28, + :WHILE => 29, + :SWITCH => 30, + :WHEN => 31, + :DELETE => 32, + :INSTANCEOF => 33, + :TYPEOF => 34, + :SUPER => 35, + :EXTENDS => 36, + :NEWLINE => 37, + :COMMENT => 38, + :JS => 39, + :INDENT => 40, + :OUTDENT => 41, + :UMINUS => 42, + :NOT => 43, + "!" => 44, + "!!" => 45, + "~" => 46, + "++" => 47, + "--" => 48, + "*" => 49, + "/" => 50, + "%" => 51, + "+" => 52, + "-" => 53, + "<<" => 54, + ">>" => 55, + ">>>" => 56, + "&" => 57, + "|" => 58, + "^" => 59, + "<=" => 60, + "<" => 61, + ">" => 62, + ">=" => 63, + "==" => 64, + "!=" => 65, + :IS => 66, + :ISNT => 67, + "&&" => 68, + "||" => 69, + :AND => 70, + :OR => 71, + "-=" => 72, + "+=" => 73, + "/=" => 74, + "*=" => 75, + "%=" => 76, + "." => 77, + :ASSIGN => 78, + "||=" => 79, + "&&=" => 80, + "=>" => 81, + "\n" => 82, + ";" => 83, + "," => 84, + "[" => 85, + "]" => 86, + "{" => 87, + "}" => 88, + "(" => 89, + ")" => 90 } -racc_nt_base = 90 +racc_nt_base = 91 racc_use_result_var = true @@ -980,6 +1023,7 @@ Racc_token_to_s_table = [ "PROPERTY_ACCESS", "CODE", "PARAM", + "SPLAT", "NEW", "RETURN", "TRY", @@ -1076,6 +1120,7 @@ Racc_token_to_s_table = [ "Literal", "AssignObj", "ParamList", + "Param", "Array", "Object", "Parenthetical", @@ -1640,451 +1685,460 @@ module_eval(<<'.,.,', 'grammar.y', 190) end .,., +# reduce 90 omitted + module_eval(<<'.,.,', 'grammar.y', 195) - def _reduce_90(val, _values, result) - result = ValueNode.new(val[0]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 196) def _reduce_91(val, _values, result) - result = ValueNode.new(val[0]) + result = SplatNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 197) +module_eval(<<'.,.,', 'grammar.y', 200) def _reduce_92(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 198) +module_eval(<<'.,.,', 'grammar.y', 201) def _reduce_93(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 199) +module_eval(<<'.,.,', 'grammar.y', 202) def _reduce_94(val, _values, result) result = ValueNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 200) +module_eval(<<'.,.,', 'grammar.y', 203) def _reduce_95(val, _values, result) + result = ValueNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 204) + def _reduce_96(val, _values, result) + result = ValueNode.new(val[0]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 205) + def _reduce_97(val, _values, result) result = val[0] << val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 201) - def _reduce_96(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 206) + def _reduce_98(val, _values, result) result = ValueNode.new(val[0], [val[1]]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 206) - def _reduce_97(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 211) + def _reduce_99(val, _values, result) result = AccessorNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 207) - def _reduce_98(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 212) + def _reduce_100(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 208) - def _reduce_99(val, _values, result) - result = SliceNode.new(val[0]) - result - end -.,., - module_eval(<<'.,.,', 'grammar.y', 213) - def _reduce_100(val, _values, result) - result = IndexNode.new(val[1]) + def _reduce_101(val, _values, result) + result = SliceNode.new(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.y', 218) - def _reduce_101(val, _values, result) - result = ObjectNode.new(val[1]) + def _reduce_102(val, _values, result) + result = IndexNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 223) - def _reduce_102(val, _values, result) - result = [] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 224) def _reduce_103(val, _values, result) - result = val - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 225) - def _reduce_104(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 226) - def _reduce_105(val, _values, result) - result = val[0] << val[2] + result = ObjectNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 228) - def _reduce_106(val, _values, result) - result = val[0] << val[3] + def _reduce_104(val, _values, result) + result = [] result end .,., module_eval(<<'.,.,', 'grammar.y', 229) + def _reduce_105(val, _values, result) + result = val + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 230) + def _reduce_106(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 231) def _reduce_107(val, _values, result) - result = val[1] + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 233) + def _reduce_108(val, _values, result) + result = val[0] << val[3] result end .,., module_eval(<<'.,.,', 'grammar.y', 234) - def _reduce_108(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 235) def _reduce_109(val, _values, result) - result = val[1].new_instance + result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 236) +module_eval(<<'.,.,', 'grammar.y', 239) def _reduce_110(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 241) +module_eval(<<'.,.,', 'grammar.y', 240) def _reduce_111(val, _values, result) - result = ExtendsNode.new(val[0], val[2]) + result = val[1].new_instance + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 241) + def _reduce_112(val, _values, result) + result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.y', 246) - def _reduce_112(val, _values, result) - result = CallNode.new(val[0], val[2]) + def _reduce_113(val, _values, result) + result = ExtendsNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 247) - def _reduce_113(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 251) + def _reduce_114(val, _values, result) result = CallNode.new(val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 252) - def _reduce_114(val, _values, result) - result = CallNode.new(:super, val[2]) + def _reduce_115(val, _values, result) + result = CallNode.new(val[0], val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 257) - def _reduce_115(val, _values, result) + def _reduce_116(val, _values, result) + result = CallNode.new(:super, val[2]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 262) + def _reduce_117(val, _values, result) result = RangeNode.new(val[1], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 258) - def _reduce_116(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 263) + def _reduce_118(val, _values, result) result = RangeNode.new(val[1], val[5], true) result end .,., -module_eval(<<'.,.,', 'grammar.y', 263) - def _reduce_117(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 268) + def _reduce_119(val, _values, result) result = ArrayNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 268) - def _reduce_118(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 273) + def _reduce_120(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'grammar.y', 269) - def _reduce_119(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 274) + def _reduce_121(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 270) - def _reduce_120(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 271) - def _reduce_121(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 272) +module_eval(<<'.,.,', 'grammar.y', 275) def _reduce_122(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 276) + def _reduce_123(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 277) + def _reduce_124(val, _values, result) result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 273) - def _reduce_123(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 278) + def _reduce_125(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 278) - def _reduce_124(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 283) + def _reduce_126(val, _values, result) result = TryNode.new(val[1], val[2][0], val[2][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 279) - def _reduce_125(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 284) + def _reduce_127(val, _values, result) result = TryNode.new(val[1], nil, nil, val[3]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 281) - def _reduce_126(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 286) + def _reduce_128(val, _values, result) result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 286) - def _reduce_127(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 291) + def _reduce_129(val, _values, result) result = [val[1], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 291) - def _reduce_128(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 296) + def _reduce_130(val, _values, result) result = ThrowNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 296) - def _reduce_129(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 301) + def _reduce_131(val, _values, result) result = ParentheticalNode.new(val[1], val[0].line) result end .,., -module_eval(<<'.,.,', 'grammar.y', 301) - def _reduce_130(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 306) + def _reduce_132(val, _values, result) result = WhileNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 308) - def _reduce_131(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 313) + def _reduce_133(val, _values, result) result = ForNode.new(val[0], val[3][0], val[2][0], val[3][1], val[2][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 309) - def _reduce_132(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 314) + def _reduce_134(val, _values, result) result = ForNode.new(val[3], val[2][0], val[1][0], val[2][1], val[1][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 314) - def _reduce_133(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 319) + def _reduce_135(val, _values, result) result = val result end .,., -module_eval(<<'.,.,', 'grammar.y', 315) - def _reduce_134(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 320) + def _reduce_136(val, _values, result) result = [val[0], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 320) - def _reduce_135(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 325) + def _reduce_137(val, _values, result) result = [val[1]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 322) - def _reduce_136(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 327) + def _reduce_138(val, _values, result) result = [val[1], val[3]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 328) - def _reduce_137(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 333) + def _reduce_139(val, _values, result) result = val[3].rewrite_condition(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 330) - def _reduce_138(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 335) + def _reduce_140(val, _values, result) result = val[3].rewrite_condition(val[1]).add_else(val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 335) - def _reduce_139(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 340) + def _reduce_141(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 336) - def _reduce_140(val, _values, result) - result = val[0] << val[1] - result - end -.,., - module_eval(<<'.,.,', 'grammar.y', 341) - def _reduce_141(val, _values, result) - result = IfNode.new(val[1], val[2], nil, {:statement => true}) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 342) def _reduce_142(val, _values, result) + result = val[0] << val[1] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 346) + def _reduce_143(val, _values, result) result = IfNode.new(val[1], val[2], nil, {:statement => true}) result end .,., -# reduce 143 omitted - -module_eval(<<'.,.,', 'grammar.y', 350) +module_eval(<<'.,.,', 'grammar.y', 347) def _reduce_144(val, _values, result) + result = IfNode.new(val[1], val[2], nil, {:statement => true}) + result + end +.,., + +# reduce 145 omitted + +module_eval(<<'.,.,', 'grammar.y', 355) + def _reduce_146(val, _values, result) result = IfNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 355) - def _reduce_145(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 360) + def _reduce_147(val, _values, result) result = val[1].force_statement result end .,., -module_eval(<<'.,.,', 'grammar.y', 360) - def _reduce_146(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 365) + def _reduce_148(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 361) - def _reduce_147(val, _values, result) - result = val[0].add_else(val[1]) - result - end -.,., - module_eval(<<'.,.,', 'grammar.y', 366) - def _reduce_148(val, _values, result) + def _reduce_149(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 371) + def _reduce_150(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'grammar.y', 367) - def _reduce_149(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 372) + def _reduce_151(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 372) - def _reduce_150(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 377) + def _reduce_152(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 373) - def _reduce_151(val, _values, result) - result = val[0].add_else(val[1]) - result - end -.,., - module_eval(<<'.,.,', 'grammar.y', 378) - def _reduce_152(val, _values, result) + def _reduce_153(val, _values, result) result = val[0].add_else(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 379) - def _reduce_153(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 383) + def _reduce_154(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 384) + def _reduce_155(val, _values, result) result = IfNode.new(val[2], Expressions.new([val[0]]), nil, {:statement => true}) result end .,., -module_eval(<<'.,.,', 'grammar.y', 380) - def _reduce_154(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 385) + def _reduce_156(val, _values, result) result = IfNode.new(val[2], Expressions.new([val[0]]), nil, {:statement => true, :invert => true}) result end diff --git a/test/fixtures/execution/test_splats.coffee b/test/fixtures/execution/test_splats.coffee new file mode 100644 index 00000000..6b273137 --- /dev/null +++ b/test/fixtures/execution/test_splats.coffee @@ -0,0 +1,6 @@ +func: first, second, *rest => + rest.join(' ') + +result: func(1, 2, 3, 4, 5) + +print(result is "3 4 5") \ No newline at end of file