diff --git a/code.jaa b/code.jaa index 1136439f..474503b1 100644 --- a/code.jaa +++ b/code.jaa @@ -1,5 +1,6 @@ # TODO: switch/case statements # Make array comprehensions expressions. (return the computed array). +# Make arbitrary-length if else if else if chains possible. # Think of a name for this crazy thing. # Functions: diff --git a/grammar.y b/grammar.y index b748a101..8d0b2856 100644 --- a/grammar.y +++ b/grammar.y @@ -174,7 +174,7 @@ rule ; Index: - "[" Literal "]" { result = IndexNode.new(val[1]) } + "[" Expression "]" { result = IndexNode.new(val[1]) } ; Object: diff --git a/nodes.rb b/nodes.rb index f56756ca..bf18f4da 100644 --- a/nodes.rb +++ b/nodes.rb @@ -74,14 +74,14 @@ class Nodes < Node def compile(indent='', scope=nil, opts={}) return begin_compile unless scope @nodes.map { |n| - if opts[:return] && n == @nodes.last && !n.custom_return? - if n.statement? + if opts[:return] && n == @nodes.last + if n.statement? || n.custom_return? "#{indent}#{n.compile(indent, scope, opts)}#{n.line_ending}" else "#{indent}return #{n.compile(indent, scope, opts)}#{n.line_ending}" end else - "#{indent}#{n.compile(indent, scope, opts)}#{n.line_ending}" + "#{indent}#{n.compile(indent, scope)}#{n.line_ending}" end }.join("\n") end @@ -109,7 +109,8 @@ class ReturnNode < Node end def compile(indent, scope, opts={}) - "return #{@expression.compile(indent, scope)}" + compiled = @expression.compile(indent, scope) + @expression.statement? ? "#{compiled}\n#{indent}return null" : "return #{compiled}" end end diff --git a/parser.rb b/parser.rb index 30ce0aa7..df4533b3 100644 --- a/parser.rb +++ b/parser.rb @@ -27,15 +27,50 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 300) clist = [ '11,196,55,87,30,34,39,43,48,4,8,159,160,20,23,28,33,49,5,46,3,9,78,55', -'19,194,29,177,38,42,108,184,109,179,16,49,5,117,5,182,195,188,8,115', -'55,116,49,5,67,55,58,105,49,5,75,80,15,122,87,27,11,36,178,45,30,34', -'39,43,48,4,8,58,170,20,23,28,33,78,99,46,3,9,49,5,19,103,29,185,38,42', -'72,27,58,36,16,45,45,58,111,87,71,45,165,5,121,165,5,172,115,75,80,127', -'87,67,163,132,15,163,78,27,11,36,167,45,30,34,39,43,48,4,8,78,67,20', -'23,28,33,131,5,46,3,9,132,129,19,54,29,71,38,42,75,80,49,5,16,49,5,204', -'138,87,183,49,5,75,80,,190,,49,5,49,5,87,197,,124,15,,78,27,11,36,,45', -'30,34,39,43,48,4,8,78,,20,23,28,33,49,5,46,3,9,186,,19,,29,,38,42,75', -'80,49,5,16,30,34,39,43,48,4,,,75,80,,,,,,,3,9,,,,15,29,,27,11,36,,45', +'19,188,29,177,38,42,108,184,109,182,16,49,5,117,5,167,195,105,8,115', +'55,116,49,5,67,55,58,121,49,5,75,80,15,67,87,27,11,36,178,45,30,34,39', +'43,48,4,8,58,99,20,23,28,33,78,194,46,3,9,49,5,19,103,29,185,38,42,72', +'27,58,36,16,45,45,58,67,87,71,45,165,5,111,165,5,127,115,75,80,179,87', +'132,163,170,15,163,78,27,11,36,132,45,30,34,39,43,48,4,8,78,122,20,23', +'28,33,131,5,46,3,9,54,129,19,138,29,71,38,42,75,80,49,5,16,49,5,124', +',87,190,49,5,75,80,,197,,49,5,49,5,87,204,,183,15,,78,27,11,36,,45,30', +'34,39,43,48,4,8,78,,20,23,28,33,49,5,46,3,9,186,,19,,29,,38,42,75,80', +'49,5,16,,,,,,,,,75,80,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4', +'8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,', +',15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29', +',38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43', +'48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,', +',,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,', +'19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34', +'39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,', +',,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46', +'3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30', +'34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,', +',,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33', +',,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,', +'45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', +',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', +'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36', +',45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', +',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', +'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11', +'36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,', +',16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15', +',,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38', +'42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43,48,4', +'8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,', +',15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29', +',38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48', +'4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,', +',,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19', +',29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39', +'43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,', +',,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9', +',,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34', +'39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,', +',,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46', +'3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45', '30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,', ',,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33', ',,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36', @@ -53,115 +88,81 @@ clist = [ '23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', '11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', ',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', -'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15', -',,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38', -'42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43,48,4', -'8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49', -'5,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19', -',29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39', -'43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,', -',,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9', -',,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34', -'39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,', -',,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46', -'3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45', -'30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,', -',,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33', -',,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,', -'45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', -',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', -'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11', -'36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,', -',16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', '23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', '11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', ',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', -'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15', -',,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38', -'42,,,,,16,,,,,,,,,,,,,,,,,,49,5,,,15,,,27,11,36,,45,30,34,39,43,48,4', -'8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,', -',15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29', -',38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48', -'4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,', -',,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19', -',29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43', -'48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,', -',,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,', -'19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39', -'43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,', -',,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9', -',,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34', -'39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,', -',,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46', -'3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30', -'34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,', -',,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,', -'46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45', -'30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,', -',,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33', -',,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,', -'45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', -',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', -'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36', -',45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', -',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', -'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36', -',45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', -',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', -'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36', -',45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', -',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', -'33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36', -',45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16', -',,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20,23,28', -'33,,,46,3,9,,,19,,29,,38,42,,,,,16,192,,,87,,,,,,,,,,,,,,,,,,15,78,', -'27,,36,,45,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91', -'93,95,,-115,75,80,87,193,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86', -'88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,202,75,80,87,201,,,,', -',,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81', -'83,85,,89,91,93,95,,-115,75,80,87,203,,,,,,,,,,,,,,,,,,78,,,,,,,,98', -'74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,79,75', -'80,87,206,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27', +'11,36,,45,30,34,39,43,48,4,8,,,20,23,28,33,,,46,3,9,,,19,,29,,38,42', +',,,,16,,,,,,,,,,,,,,,,,,,,,,15,,,27,11,36,,45,30,34,39,43,48,4,8,,,20', +'23,28,33,,,46,3,9,,,19,,29,,38,42,,,,,16,79,,,87,,,,,,,,,,,,,,,,,,15', +'78,,27,,36,,45,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,', +'89,91,93,95,,-115,75,80,87,,,,172,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82', +'84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,192,75,80,87,201', +',,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76', +'81,83,85,,89,91,93,95,,202,75,80,87,193,,,,,,,,,,,,,,,,,,78,,,,,,,,98', +'74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,-115,75', +'80,87,203,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96', +'97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,206,,,,,,,,,,,,,,,,,,78', +',,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93', +'95,,-115,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90', +'92,94,96,97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,,,,,,,,,,', +',,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89', +'91,93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86', +'88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,,,,', +',,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85', +',89,91,93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84', +'86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,', +',,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83', +'85,,89,91,93,95,,,75,80,79,,119,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74', +'77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,49,5,75,80', +'79,,,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96', '97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,', ',,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95', ',79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92', -'94,96,97,73,76,81,83,85,,89,91,93,95,,-115,75,80,87,,,,,,,,,,,,,,,,', -',,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91', -'93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88', -'90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,,75,80,79,,119,87,,,,,,', -',,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83', -'85,,89,91,93,95,49,5,75,80,79,,,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74', -'77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,,75,80,79', -',119,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96', -'97,73,76,81,83,85,,89,91,93,95,49,5,75,80,79,,,87,,,,,,,,,,,,,,,,,,', +'94,96,97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,', '78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,,89,91', -'93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88', -'90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,,,,,,,', -',,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,', -'89,91,93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84', -'86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,79,75,80,87,,,,,,', -',,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83', -'85,,89,91,93,95,,79,75,80,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82', -'84,86,88,90,92,94,96,97,73,76,81,83,85,87,89,91,93,95,,,75,80,,,,,,', -',,,,78,,87,,,,,87,98,74,77,82,84,86,88,90,92,94,96,97,73,78,,,,,78,', -',98,74,77,75,80,98,74,77,82,84,86,88,90,92,94,96,97,73,87,,,,,,75,80', -',,,75,80,,,,,,,78,,,,,,,87,98,74,77,82,84,86,88,90,92,94,96,97,73,,', -',,,78,,,,,,75,80,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85', -'87,89,91,93,95,,,75,80,,,,,,,,,,,78,,,,,,,87,98,74,77,82,84,86,88,90', -'92,94,96,97,73,76,81,83,85,,78,,,,,,75,80,98,74,77,82,84,86,88,90,92', -'94,96,97,73,76,81,83,85,87,89,91,93,95,87,,75,80,,,,,,,,,,,78,,,,,78', -',,98,74,77,82,84,98,74,77,82,84,,,87,,,,,,,,,,,,75,80,,,,75,80,78,,87', -',,,,87,98,74,77,82,84,86,88,90,92,94,96,97,73,78,,,,,78,,,98,74,77,75', -'80,98,74,77,82,84,86,88,90,92,94,96,97,73,87,,,,,,75,80,,,,75,80,,,', -',,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,87,89', -'91,93,95,,,75,80,,,,,,,,,,,78,,,,,,,87,98,74,77,82,84,86,88,90,92,94', -'96,97,73,,,,,,78,,,,,,75,80,98,74,77,82,84,86,88,90,92,94,96,97,73,87', -',,,,,,,,,,75,80,,,,,,,78,,,,,,,87,98,74,77,82,84,86,88,90,92,94,96,97', -'73,,,,,,78,,,,,,75,80,98,74,77,82,84,,,87,,,,,,,,,,,,,,,,,75,80,78,', -',,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,87,89,91,93', -'95,,,75,80,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,,,,,,,,,,,,,,,,,,,,75', -'80' ] - racc_action_table = arr = Array.new(4873, nil) +'93,95,,,75,80,79,,119,87,,,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84', +'86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,49,5,75,80,79,,,87', +',,,,,,,,,,,,,,,,,,78,,,,,,,,98,74,77,82,84,86,88,90,92,94,96,97,73,76', +'81,83,85,87,89,91,93,95,,,75,80,,,,,,,,,,,78,,87,,,,,87,98,74,77,82', +'84,86,88,90,92,94,96,97,73,78,,,,,78,,,98,74,77,75,80,98,74,77,82,84', +'86,88,90,92,94,96,97,73,87,,,,,,75,80,,,,75,80,,,,,,,78,,,,,,,87,98', +'74,77,82,84,86,88,90,92,94,96,97,73,,,,,,78,,,,,,75,80,98,74,77,82,84', +'86,88,90,92,94,96,97,73,76,81,83,85,87,89,91,93,95,,,75,80,,,,,,,,,', +',78,,,,,,,87,98,74,77,82,84,86,88,90,92,94,96,97,73,,,,,,78,,,,,,75', +'80,98,74,77,82,84,86,88,90,92,94,96,97,73,76,81,83,85,87,89,91,93,95', +'87,,75,80,,,,,,,,,,,78,,,,,78,,,98,74,77,82,84,98,74,77,82,84,86,88', +'90,92,94,96,97,73,87,,,,,,75,80,,,,75,80,,,,,,,78,,,,,,,87,98,74,77', +'82,84,86,88,90,92,94,96,97,73,76,81,83,85,,78,,,,,,75,80,98,74,77,82', +'84,86,88,90,92,94,96,97,73,87,,,,,,,,,,,75,80,,,,,,,78,,87,,,,,87,98', +'74,77,82,84,86,88,90,92,94,96,97,73,78,,,,,78,,,98,74,77,75,80,98,74', +'77,82,84,86,88,90,92,94,96,97,73,87,,,,,87,75,80,,,,75,80,,,,,,87,78', +',,,,78,,,98,74,77,82,84,98,74,77,82,84,78,,,,,,,87,98,74,77,82,84,,75', +'80,,,,75,80,,,,,,78,,,,,,75,80,98,74,77,82,84,86,88,90,92,94,96,97,73', +'76,81,83,85,87,89,91,93,95,,,75,80,,,,,,,,,,,78,,,,,,,,98,74,77,82,84', +'86,88,90,92,94,96,97,73,76,81,83,85,,89,91,93,95,,,75,80' ] + racc_action_table = arr = Array.new(4932, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -171,160 +172,162 @@ clist = [ end clist = [ -'0,189,65,158,0,0,0,0,0,0,0,101,101,0,0,0,0,22,22,0,0,0,158,14,0,188', -'0,138,0,0,41,171,41,159,0,189,189,52,52,165,189,178,23,52,66,52,101', -'101,24,35,65,36,0,0,158,158,0,55,110,0,1,0,138,0,1,1,1,1,1,1,1,14,117', -'1,1,1,1,110,27,1,1,1,171,171,1,35,1,171,1,1,24,23,66,23,1,23,66,35,45', -'107,24,35,162,162,54,106,106,123,162,110,110,67,61,128,162,72,1,106', -'107,1,11,1,109,1,11,11,11,11,11,11,11,61,129,11,11,11,11,69,69,11,11', -'11,131,69,11,13,11,69,11,11,107,107,200,200,11,166,166,200,78,134,166', -'180,180,61,61,,180,,191,191,60,60,137,191,,60,11,,134,11,202,11,,11', -'202,202,202,202,202,202,202,137,,202,202,202,202,173,173,202,202,202', -'173,,202,,202,,202,202,134,134,62,62,202,58,58,58,58,58,58,,,137,137', -',,,,,,58,58,,,,202,58,,202,90,202,,202,90,90,90,90,90,90,90,,,90,90', -'90,90,,,90,90,90,,,90,,90,,90,90,,,,,90,,,,,,,,,,,,,,,,,,,,,,90,,,90', -'15,90,,90,15,15,15,15,15,15,15,,,15,15,15,15,,,15,15,15,,,15,,15,,15', -'15,,,,,15,,,,,,,,,,,,,,,,,,15,15,,,15,,,15,16,15,,15,16,16,16,16,16', -'16,16,,,16,16,16,16,,,16,16,16,,,16,,16,,16,16,,,,,16,,,,,,,,,,,,,,', -',,,,,,,16,,,16,18,16,,16,18,18,18,18,18,18,18,,,18,18,18,18,,,18,18', -'18,,,18,,18,,18,18,,,,,18,,,,,,,,,,,,,,,,,,18,18,,,18,,,18,19,18,,18', -'19,19,19,19,19,19,19,,,19,19,19,19,,,19,19,19,,,19,,19,,19,19,,,,,19', -',,,,,,,,,,,,,,,,,,,,,19,,,19,89,19,,19,89,89,89,89,89,89,89,,,89,89', -'89,89,,,89,89,89,,,89,,89,,89,89,,,,,89,,,,,,,,,,,,,,,,,,,,,,89,,,89', -'196,89,,89,196,196,196,196,196,196,196,,,196,196,196,196,,,196,196,196', -',,196,,196,,196,196,,,,,196,,,,,,,,,,,,,,,,,,196,196,,,196,,,196,194', -'196,,196,194,194,194,194,194,194,194,,,194,194,194,194,,,194,194,194', -',,194,,194,,194,194,,,,,194,,,,,,,,,,,,,,,,,,,,,,194,,,194,192,194,', -'194,192,192,192,192,192,192,192,,,192,192,192,192,,,192,192,192,,,192', -',192,,192,192,,,,,192,,,,,,,,,,,,,,,,,,,,,,192,,,192,88,192,,192,88', -'88,88,88,88,88,88,,,88,88,88,88,,,88,88,88,,,88,,88,,88,88,,,,,88,,', -',,,,,,,,,,,,,,,,,,,88,,,88,28,88,,88,28,28,28,28,28,28,28,,,28,28,28', -'28,,,28,28,28,,,28,,28,,28,28,,,,,28,,,,,,,,,,,,,,,,,,,,,,28,,,28,33', -'28,,28,33,33,33,33,33,33,33,,,33,33,33,33,,,33,33,33,,,33,,33,,33,33', -',,,,33,,,,,,,,,,,,,,,,,,33,33,,,33,,,33,184,33,,33,184,184,184,184,184', -'184,184,,,184,184,184,184,,,184,184,184,,,184,,184,,184,184,,,,,184', -',,,,,,,,,,,,,,,,,184,184,,,184,,,184,179,184,,184,179,179,179,179,179', -'179,179,,,179,179,179,179,,,179,179,179,,,179,,179,,179,179,,,,,179', -',,,,,,,,,,,,,,,,,179,179,,,179,,,179,37,179,,179,37,37,37,37,37,37,37', -',,37,37,37,37,,,37,37,37,,,37,,37,,37,37,,,,,37,,,,,,,,,,,,,,,,,,37', -'37,,,37,,,37,38,37,,37,38,38,38,38,38,38,38,,,38,38,38,38,,,38,38,38', -',,38,,38,,38,38,,,,,38,,,,,,,,,,,,,,,,,,,,,,38,,,38,177,38,,38,177,177', -'177,177,177,177,177,,,177,177,177,177,,,177,177,177,,,177,,177,,177', -'177,,,,,177,,,,,,,,,,,,,,,,,,,,,,177,,,177,42,177,,177,42,42,42,42,42', -'42,42,,,42,42,42,42,,,42,42,42,,,42,,42,,42,42,,,,,42,,,,,,,,,,,,,,', -',,,,,,,42,,,42,160,42,,42,160,160,160,160,160,160,160,,,160,160,160', -'160,,,160,160,160,,,160,,160,,160,160,,,,,160,,,,,,,,,,,,,,,,,,160,160', -',,160,,,160,46,160,,160,46,46,46,46,46,46,46,,,46,46,46,46,,,46,46,46', -',,46,,46,,46,46,,,,,46,,,,,,,,,,,,,,,,,,,,,,46,,,46,91,46,,46,91,91', -'91,91,91,91,91,,,91,91,91,91,,,91,91,91,,,91,,91,,91,91,,,,,91,,,,,', -',,,,,,,,,,,,,,,,91,,,91,127,91,,91,127,127,127,127,127,127,127,,,127', -'127,127,127,,,127,127,127,,,127,,127,,127,127,,,,,127,,,,,,,,,,,,,,', -',,,,,,,127,,,127,125,127,,127,125,125,125,125,125,125,125,,,125,125', -'125,125,,,125,125,125,,,125,,125,,125,125,,,,,125,,,,,,,,,,,,,,,,,,125', -'125,,,125,,,125,120,125,,125,120,120,120,120,120,120,120,,,120,120,120', -'120,,,120,120,120,,,120,,120,,120,120,,,,,120,,,,,,,,,,,,,,,,,,120,120', -',,120,,,120,115,120,,120,115,115,115,115,115,115,115,,,115,115,115,115', -',,115,115,115,,,115,,115,,115,115,,,,,115,,,,,,,,,,,,,,,,,,,,,,115,', -',115,87,115,,115,87,87,87,87,87,87,87,,,87,87,87,87,,,87,87,87,,,87', -',87,,87,87,,,,,87,,,,,,,,,,,,,,,,,,,,,,87,,,87,59,87,,87,59,59,59,59', -'59,59,59,,,59,59,59,59,,,59,59,59,,,59,,59,,59,59,,,,,59,,,,,,,,,,,', -',,,,,,59,59,,,59,,,59,108,59,,59,108,108,108,108,108,108,108,,,108,108', -'108,108,,,108,108,108,,,108,,108,,108,108,,,,,108,,,,,,,,,,,,,,,,,,108', -'108,,,108,,,108,104,108,,108,104,104,104,104,104,104,104,,,104,104,104', -'104,,,104,104,104,,,104,,104,,104,104,,,,,104,,,,,,,,,,,,,,,,,,,,,,104', -',,104,103,104,,104,103,103,103,103,103,103,103,,,103,103,103,103,,,103', -'103,103,,,103,,103,,103,103,,,,,103,,,,,,,,,,,,,,,,,,,,,,103,,,103,98', -'103,,103,98,98,98,98,98,98,98,,,98,98,98,98,,,98,98,98,,,98,,98,,98', -'98,,,,,98,,,,,,,,,,,,,,,,,,,,,,98,,,98,64,98,,98,64,64,64,64,64,64,64', -',,64,64,64,64,,,64,64,64,,,64,,64,,64,64,,,,,64,,,,,,,,,,,,,,,,,,,,', -',64,,,64,97,64,,64,97,97,97,97,97,97,97,,,97,97,97,97,,,97,97,97,,,97', -',97,,97,97,,,,,97,,,,,,,,,,,,,,,,,,,,,,97,,,97,96,97,,97,96,96,96,96', -'96,96,96,,,96,96,96,96,,,96,96,96,,,96,,96,,96,96,,,,,96,,,,,,,,,,,', -',,,,,,,,,,96,,,96,95,96,,96,95,95,95,95,95,95,95,,,95,95,95,95,,,95', -'95,95,,,95,,95,,95,95,,,,,95,,,,,,,,,,,,,,,,,,,,,,95,,,95,94,95,,95', -'94,94,94,94,94,94,94,,,94,94,94,94,,,94,94,94,,,94,,94,,94,94,,,,,94', -',,,,,,,,,,,,,,,,,,,,,94,,,94,93,94,,94,93,93,93,93,93,93,93,,,93,93', +'0,189,65,158,0,0,0,0,0,0,0,101,101,0,0,0,0,62,62,0,0,0,158,14,0,178', +'0,138,0,0,41,171,41,165,0,189,189,52,52,109,189,36,23,52,66,52,101,101', +'24,35,65,54,0,0,158,158,0,128,110,0,1,0,138,0,1,1,1,1,1,1,1,14,27,1', +'1,1,1,110,188,1,1,1,171,171,1,35,1,171,1,1,24,23,66,23,1,23,66,35,129', +'107,24,35,162,162,45,106,106,67,162,110,110,159,134,72,162,117,1,106', +'107,1,11,1,131,1,11,11,11,11,11,11,11,134,55,11,11,11,11,69,69,11,11', +'11,13,69,11,78,11,69,11,11,107,107,60,60,11,180,180,60,,137,180,191', +'191,134,134,,191,,200,200,166,166,61,200,,166,11,,137,11,202,11,,11', +'202,202,202,202,202,202,202,61,,202,202,202,202,173,173,202,202,202', +'173,,202,,202,,202,202,137,137,22,22,202,,,,,,,,,61,61,,,,,,,,,,,,202', +',,202,92,202,,202,92,92,92,92,92,92,92,,,92,92,92,92,,,92,92,92,,,92', +',92,,92,92,,,,,92,,,,,,,,,,,,,,,,,,,,,,92,,,92,15,92,,92,15,15,15,15', +'15,15,15,,,15,15,15,15,,,15,15,15,,,15,,15,,15,15,,,,,15,,,,,,,,,,,', +',,,,,,15,15,,,15,,,15,16,15,,15,16,16,16,16,16,16,16,,,16,16,16,16,', +',16,16,16,,,16,,16,,16,16,,,,,16,,,,,,,,,,,,,,,,,,,,,,16,,,16,18,16', +',16,18,18,18,18,18,18,18,,,18,18,18,18,,,18,18,18,,,18,,18,,18,18,,', +',,18,,,,,,,,,,,,,,,,,,18,18,,,18,,,18,19,18,,18,19,19,19,19,19,19,19', +',,19,19,19,19,,,19,19,19,,,19,,19,,19,19,,,,,19,,,,,,,,,,,,,,,,,,,,', +',19,,,19,91,19,,19,91,91,91,91,91,91,91,,,91,91,91,91,,,91,91,91,,,91', +',91,,91,91,,,,,91,,,,,,,,,,,,,,,,,,,,,,91,,,91,196,91,,91,196,196,196', +'196,196,196,196,,,196,196,196,196,,,196,196,196,,,196,,196,,196,196', +',,,,196,,,,,,,,,,,,,,,,,,196,196,,,196,,,196,194,196,,196,194,194,194', +'194,194,194,194,,,194,194,194,194,,,194,194,194,,,194,,194,,194,194', +',,,,194,,,,,,,,,,,,,,,,,,,,,,194,,,194,192,194,,194,192,192,192,192', +'192,192,192,,,192,192,192,192,,,192,192,192,,,192,,192,,192,192,,,,', +'192,,,,,,,,,,,,,,,,,,,,,,192,,,192,90,192,,192,90,90,90,90,90,90,90', +',,90,90,90,90,,,90,90,90,,,90,,90,,90,90,,,,,90,,,,,,,,,,,,,,,,,,,,', +',90,,,90,28,90,,90,28,28,28,28,28,28,28,,,28,28,28,28,,,28,28,28,,,28', +',28,,28,28,,,,,28,,,,,,,,,,,,,,,,,,,,,,28,,,28,33,28,,28,33,33,33,33', +'33,33,33,,,33,33,33,33,,,33,33,33,,,33,,33,,33,33,,,,,33,,,,,,,,,,,', +',,,,,,33,33,,,33,,,33,184,33,,33,184,184,184,184,184,184,184,,,184,184', +'184,184,,,184,184,184,,,184,,184,,184,184,,,,,184,,,,,,,,,,,,,,,,,,184', +'184,,,184,,,184,179,184,,184,179,179,179,179,179,179,179,,,179,179,179', +'179,,,179,179,179,,,179,,179,,179,179,,,,,179,,,,,,,,,,,,,,,,,,179,179', +',,179,,,179,37,179,,179,37,37,37,37,37,37,37,,,37,37,37,37,,,37,37,37', +',,37,,37,,37,37,,,,,37,,,,,,,,,,,,,,,,,,37,37,,,37,,,37,38,37,,37,38', +'38,38,38,38,38,38,,,38,38,38,38,,,38,38,38,,,38,,38,,38,38,,,,,38,,', +',,,,,,,,,,,,,,,,,,,38,,,38,177,38,,38,177,177,177,177,177,177,177,,', +'177,177,177,177,,,177,177,177,,,177,,177,,177,177,,,,,177,,,,,,,,,,', +',,,,,,,,,,,177,,,177,42,177,,177,42,42,42,42,42,42,42,,,42,42,42,42', +',,42,42,42,,,42,,42,,42,42,,,,,42,,,,,,,,,,,,,,,,,,,,,,42,,,42,160,42', +',42,160,160,160,160,160,160,160,,,160,160,160,160,,,160,160,160,,,160', +',160,,160,160,,,,,160,,,,,,,,,,,,,,,,,,160,160,,,160,,,160,46,160,,160', +'46,46,46,46,46,46,46,,,46,46,46,46,,,46,46,46,,,46,,46,,46,46,,,,,46', +',,,,,,,,,,,,,,,,,,,,,46,,,46,93,46,,46,93,93,93,93,93,93,93,,,93,93', '93,93,,,93,93,93,,,93,,93,,93,93,,,,,93,,,,,,,,,,,,,,,,,,,,,,93,,,93', -'73,93,,93,73,73,73,73,73,73,73,,,73,73,73,73,,,73,73,73,,,73,,73,,73', -'73,,,,,73,,,,,,,,,,,,,,,,,,,,,,73,,,73,74,73,,73,74,74,74,74,74,74,74', -',,74,74,74,74,,,74,74,74,,,74,,74,,74,74,,,,,74,,,,,,,,,,,,,,,,,,,,', -',74,,,74,75,74,,74,75,75,75,75,75,75,75,,,75,75,75,75,,,75,75,75,,,75', -',75,,75,75,,,,,75,,,,,,,,,,,,,,,,,,,,,,75,,,75,76,75,,75,76,76,76,76', -'76,76,76,,,76,76,76,76,,,76,76,76,,,76,,76,,76,76,,,,,76,,,,,,,,,,,', -',,,,,,,,,,76,,,76,77,76,,76,77,77,77,77,77,77,77,,,77,77,77,77,,,77', -'77,77,,,77,,77,,77,77,,,,,77,,,,,,,,,,,,,,,,,,,,,,77,,,77,92,77,,77', -'92,92,92,92,92,92,92,,,92,92,92,92,,,92,92,92,,,92,,92,,92,92,,,,,92', -',,,,,,,,,,,,,,,,,,,,,92,,,92,79,92,,92,79,79,79,79,79,79,79,,,79,79', -'79,79,,,79,79,79,,,79,,79,,79,79,,,,,79,,,,,,,,,,,,,,,,,,,,,,79,,,79', -'80,79,,79,80,80,80,80,80,80,80,,,80,80,80,80,,,80,80,80,,,80,,80,,80', -'80,,,,,80,,,,,,,,,,,,,,,,,,,,,,80,,,80,81,80,,80,81,81,81,81,81,81,81', -',,81,81,81,81,,,81,81,81,,,81,,81,,81,81,,,,,81,,,,,,,,,,,,,,,,,,,,', -',81,,,81,82,81,,81,82,82,82,82,82,82,82,,,82,82,82,82,,,82,82,82,,,82', -',82,,82,82,,,,,82,,,,,,,,,,,,,,,,,,,,,,82,,,82,83,82,,82,83,83,83,83', -'83,83,83,,,83,83,83,83,,,83,83,83,,,83,,83,,83,83,,,,,83,,,,,,,,,,,', -',,,,,,,,,,83,,,83,84,83,,83,84,84,84,84,84,84,84,,,84,84,84,84,,,84', -'84,84,,,84,,84,,84,84,,,,,84,,,,,,,,,,,,,,,,,,,,,,84,,,84,85,84,,84', -'85,85,85,85,85,85,85,,,85,85,85,85,,,85,85,85,,,85,,85,,85,85,,,,,85', -',,,,,,,,,,,,,,,,,,,,,85,,,85,86,85,,85,86,86,86,86,86,86,86,,,86,86', -'86,86,,,86,86,86,,,86,,86,,86,86,,,,,86,,,,,,,,,,,,,,,,,,,,,,86,,,86', -'114,86,,86,114,114,114,114,114,114,114,,,114,114,114,114,,,114,114,114', -',,114,,114,,114,114,,,,,114,187,,,187,,,,,,,,,,,,,,,,,,114,187,,114', -',114,,114,,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187', -'187,187,,187,187,187,187,,198,187,187,198,187,,,,,,,,,,,,,,,,,,198,', -',,,,,,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198', -'198,,198,198,198,198,,199,198,198,199,198,,,,,,,,,,,,,,,,,,199,,,,,', -',,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199', -',199,199,199,199,,205,199,199,205,199,,,,,,,,,,,,,,,,,,205,,,,,,,,205', -'205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,,205', -'205,205,205,,100,205,205,100,205,,,,,,,,,,,,,,,,,,100,,,,,,,,100,100', -'100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,,100,100', -'100,100,,140,100,100,140,,,,,,,,,,,,,,,,,,,140,,,,,,,,140,140,140,140', -'140,140,140,140,140,140,140,140,140,140,140,140,140,,140,140,140,140', -',26,140,140,26,,,,,,,,,,,,,,,,,,,26,,,,,,,,26,26,26,26,26,26,26,26,26', -'26,26,26,26,26,26,26,26,,26,26,26,26,,139,26,26,139,,,,,,,,,,,,,,,,', -',,139,,,,,,,,139,139,139,139,139,139,139,139,139,139,139,139,139,139', -'139,139,139,,139,139,139,139,,135,139,139,135,,,,,,,,,,,,,,,,,,,135', -',,,,,,,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135', -'135,,135,135,135,135,,,135,135,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,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,53,,53,53,,,,,,,,,,,,,,,,,,,53,,,,,,,,53,53,53,53,53,53,53,53,53', -'53,53,53,53,53,53,53,53,,53,53,53,53,53,53,53,53,147,,,147,,,,,,,,,', -',,,,,,,,,147,,,,,,,,147,147,147,147,147,147,147,147,147,147,147,147', -'147,147,147,147,147,,147,147,147,147,,51,147,147,51,,,,,,,,,,,,,,,,', -',,51,,,,,,,,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,,51,51', -'51,51,,169,51,51,169,,,,,,,,,,,,,,,,,,,169,,,,,,,,169,169,169,169,169', -'169,169,169,169,169,169,169,169,169,169,169,169,,169,169,169,169,,126', -'169,169,126,,,,,,,,,,,,,,,,,,,126,,,,,,,,126,126,126,126,126,126,126', -'126,126,126,126,126,126,126,126,126,126,,126,126,126,126,,168,126,126', -'168,,,,,,,,,,,,,,,,,,,168,,,,,,,,168,168,168,168,168,168,168,168,168', -'168,168,168,168,168,168,168,168,,168,168,168,168,,174,168,168,174,,', -',,,,,,,,,,,,,,,,174,,,,,,,,174,174,174,174,174,174,174,174,174,174,174', -'174,174,174,174,174,174,154,174,174,174,174,,,174,174,,,,,,,,,,,154', -',142,,,,,157,154,154,154,154,154,154,154,154,154,154,154,154,154,142', -',,,,157,,,142,142,142,154,154,157,157,157,157,157,157,157,157,157,157', -'157,157,157,156,,,,,,142,142,,,,157,157,,,,,,,156,,,,,,,155,156,156', -'156,156,156,156,156,156,156,156,156,156,156,,,,,,155,,,,,,156,156,155', -'155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,161', -'155,155,155,155,,,155,155,,,,,,,,,,,161,,,,,,,153,161,161,161,161,161', -'161,161,161,161,161,161,161,161,161,161,161,161,,153,,,,,,161,161,153', -'153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,152', -'153,153,153,153,150,,153,153,,,,,,,,,,,152,,,,,150,,,152,152,152,152', -'152,150,150,150,150,150,,,133,,,,,,,,,,,,152,152,,,,150,150,133,,144', -',,,,136,133,133,133,133,133,133,133,133,133,133,133,133,133,144,,,,', -'136,,,144,144,144,133,133,136,136,136,136,136,136,136,136,136,136,136', -'136,136,149,,,,,,144,144,,,,136,136,,,,,,,149,,,,,,,,149,149,149,149', -'149,149,149,149,149,149,149,149,149,149,149,149,149,141,149,149,149', -'149,,,149,149,,,,,,,,,,,141,,,,,,,143,141,141,141,141,141,141,141,141', -'141,141,141,141,141,,,,,,143,,,,,,141,141,143,143,143,143,143,143,143', -'143,143,143,143,143,143,145,,,,,,,,,,,143,143,,,,,,,145,,,,,,,148,145', -'145,145,145,145,145,145,145,145,145,145,145,145,,,,,,148,,,,,,145,145', -'148,148,148,148,148,,,151,,,,,,,,,,,,,,,,,148,148,151,,,,,,,,151,151', -'151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,146,151', -'151,151,151,,,151,151,,,,,,,,,,,146,,,,,,,,146,146,146,146,146,,,,,', -',,,,,,,,,,,,,,146,146' ] - racc_action_check = arr = Array.new(4873, nil) +'127,93,,93,127,127,127,127,127,127,127,,,127,127,127,127,,,127,127,127', +',,127,,127,,127,127,,,,,127,,,,,,,,,,,,,,,,,,,,,,127,,,127,125,127,', +'127,125,125,125,125,125,125,125,,,125,125,125,125,,,125,125,125,,,125', +',125,,125,125,,,,,125,,,,,,,,,,,,,,,,,,125,125,,,125,,,125,89,125,,125', +'89,89,89,89,89,89,89,,,89,89,89,89,,,89,89,89,,,89,,89,,89,89,,,,,89', +',,,,,,,,,,,,,,,,,,,,,89,,,89,120,89,,89,120,120,120,120,120,120,120', +',,120,120,120,120,,,120,120,120,,,120,,120,,120,120,,,,,120,,,,,,,,', +',,,,,,,,,120,120,,,120,,,120,58,120,,120,58,58,58,58,58,58,58,,,58,58', +'58,58,,,58,58,58,,,58,,58,,58,58,,,,,58,,,,,,,,,,,,,,,,,,,,,,58,,,58', +'59,58,,58,59,59,59,59,59,59,59,,,59,59,59,59,,,59,59,59,,,59,,59,,59', +'59,,,,,59,,,,,,,,,,,,,,,,,,59,59,,,59,,,59,115,59,,59,115,115,115,115', +'115,115,115,,,115,115,115,115,,,115,115,115,,,115,,115,,115,115,,,,', +'115,,,,,,,,,,,,,,,,,,,,,,115,,,115,114,115,,115,114,114,114,114,114', +'114,114,,,114,114,114,114,,,114,114,114,,,114,,114,,114,114,,,,,114', +',,,,,,,,,,,,,,,,,,,,,114,,,114,108,114,,114,108,108,108,108,108,108', +'108,,,108,108,108,108,,,108,108,108,,,108,,108,,108,108,,,,,108,,,,', +',,,,,,,,,,,,,108,108,,,108,,,108,104,108,,108,104,104,104,104,104,104', +'104,,,104,104,104,104,,,104,104,104,,,104,,104,,104,104,,,,,104,,,,', +',,,,,,,,,,,,,,,,,104,,,104,64,104,,104,64,64,64,64,64,64,64,,,64,64', +'64,64,,,64,64,64,,,64,,64,,64,64,,,,,64,,,,,,,,,,,,,,,,,,,,,,64,,,64', +'103,64,,64,103,103,103,103,103,103,103,,,103,103,103,103,,,103,103,103', +',,103,,103,,103,103,,,,,103,,,,,,,,,,,,,,,,,,,,,,103,,,103,98,103,,103', +'98,98,98,98,98,98,98,,,98,98,98,98,,,98,98,98,,,98,,98,,98,98,,,,,98', +',,,,,,,,,,,,,,,,,,,,,98,,,98,97,98,,98,97,97,97,97,97,97,97,,,97,97', +'97,97,,,97,97,97,,,97,,97,,97,97,,,,,97,,,,,,,,,,,,,,,,,,,,,,97,,,97', +'96,97,,97,96,96,96,96,96,96,96,,,96,96,96,96,,,96,96,96,,,96,,96,,96', +'96,,,,,96,,,,,,,,,,,,,,,,,,,,,,96,,,96,95,96,,96,95,95,95,95,95,95,95', +',,95,95,95,95,,,95,95,95,,,95,,95,,95,95,,,,,95,,,,,,,,,,,,,,,,,,,,', +',95,,,95,73,95,,95,73,73,73,73,73,73,73,,,73,73,73,73,,,73,73,73,,,73', +',73,,73,73,,,,,73,,,,,,,,,,,,,,,,,,,,,,73,,,73,74,73,,73,74,74,74,74', +'74,74,74,,,74,74,74,74,,,74,74,74,,,74,,74,,74,74,,,,,74,,,,,,,,,,,', +',,,,,,,,,,74,,,74,75,74,,74,75,75,75,75,75,75,75,,,75,75,75,75,,,75', +'75,75,,,75,,75,,75,75,,,,,75,,,,,,,,,,,,,,,,,,,,,,75,,,75,76,75,,75', +'76,76,76,76,76,76,76,,,76,76,76,76,,,76,76,76,,,76,,76,,76,76,,,,,76', +',,,,,,,,,,,,,,,,,,,,,76,,,76,88,76,,76,88,88,88,88,88,88,88,,,88,88', +'88,88,,,88,88,88,,,88,,88,,88,88,,,,,88,,,,,,,,,,,,,,,,,,,,,,88,,,88', +'94,88,,88,94,94,94,94,94,94,94,,,94,94,94,94,,,94,94,94,,,94,,94,,94', +'94,,,,,94,,,,,,,,,,,,,,,,,,,,,,94,,,94,79,94,,94,79,79,79,79,79,79,79', +',,79,79,79,79,,,79,79,79,,,79,,79,,79,79,,,,,79,,,,,,,,,,,,,,,,,,,,', +',79,,,79,80,79,,79,80,80,80,80,80,80,80,,,80,80,80,80,,,80,80,80,,,80', +',80,,80,80,,,,,80,,,,,,,,,,,,,,,,,,,,,,80,,,80,81,80,,80,81,81,81,81', +'81,81,81,,,81,81,81,81,,,81,81,81,,,81,,81,,81,81,,,,,81,,,,,,,,,,,', +',,,,,,,,,,81,,,81,82,81,,81,82,82,82,82,82,82,82,,,82,82,82,82,,,82', +'82,82,,,82,,82,,82,82,,,,,82,,,,,,,,,,,,,,,,,,,,,,82,,,82,83,82,,82', +'83,83,83,83,83,83,83,,,83,83,83,83,,,83,83,83,,,83,,83,,83,83,,,,,83', +',,,,,,,,,,,,,,,,,,,,,83,,,83,84,83,,83,84,84,84,84,84,84,84,,,84,84', +'84,84,,,84,84,84,,,84,,84,,84,84,,,,,84,,,,,,,,,,,,,,,,,,,,,,84,,,84', +'85,84,,84,85,85,85,85,85,85,85,,,85,85,85,85,,,85,85,85,,,85,,85,,85', +'85,,,,,85,,,,,,,,,,,,,,,,,,,,,,85,,,85,86,85,,85,86,86,86,86,86,86,86', +',,86,86,86,86,,,86,86,86,,,86,,86,,86,86,,,,,86,,,,,,,,,,,,,,,,,,,,', +',86,,,86,87,86,,86,87,87,87,87,87,87,87,,,87,87,87,87,,,87,87,87,,,87', +',87,,87,87,,,,,87,,,,,,,,,,,,,,,,,,,,,,87,,,87,77,87,,87,77,77,77,77', +'77,77,77,,,77,77,77,77,,,77,77,77,,,77,,77,,77,77,,,,,77,123,,,123,', +',,,,,,,,,,,,,,,,77,123,,77,,77,,77,,123,123,123,123,123,123,123,123', +'123,123,123,123,123,123,123,123,123,,123,123,123,123,,198,123,123,198', +',,,123,,,,,,,,,,,,,,,198,,,,,,,,198,198,198,198,198,198,198,198,198', +'198,198,198,198,198,198,198,198,,198,198,198,198,,187,198,198,187,198', +',,,,,,,,,,,,,,,,,187,,,,,,,,187,187,187,187,187,187,187,187,187,187', +'187,187,187,187,187,187,187,,187,187,187,187,,199,187,187,199,187,,', +',,,,,,,,,,,,,,,199,,,,,,,,199,199,199,199,199,199,199,199,199,199,199', +'199,199,199,199,199,199,,199,199,199,199,,205,199,199,205,199,,,,,,', +',,,,,,,,,,,205,,,,,,,,205,205,205,205,205,205,205,205,205,205,205,205', +'205,205,205,205,205,,205,205,205,205,,174,205,205,174,205,,,,,,,,,,', +',,,,,,,174,,,,,,,,174,174,174,174,174,174,174,174,174,174,174,174,174', +'174,174,174,174,,174,174,174,174,,139,174,174,139,,,,,,,,,,,,,,,,,,', +'139,,,,,,,,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139', +'139,139,,139,139,139,139,,26,139,139,26,,,,,,,,,,,,,,,,,,,26,,,,,,,', +'26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,,26,26,26,26,,51', +'26,26,51,,,,,,,,,,,,,,,,,,,51,,,,,,,,51,51,51,51,51,51,51,51,51,51,51', +'51,51,51,51,51,51,,51,51,51,51,,100,51,51,100,,,,,,,,,,,,,,,,,,,100', +',,,,,,,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100', +'100,,100,100,100,100,,135,100,100,135,,,,,,,,,,,,,,,,,,,135,,,,,,,,135', +'135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,,135', +'135,135,135,,140,135,135,140,,,,,,,,,,,,,,,,,,,140,,,,,,,,140,140,140', +'140,140,140,140,140,140,140,140,140,140,140,140,140,140,,140,140,140', +'140,,,140,140,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,147,,,147', +',,,,,,,,,,,,,,,,,,147,,,,,,,,147,147,147,147,147,147,147,147,147,147', +'147,147,147,147,147,147,147,,147,147,147,147,,112,147,147,112,,,,,,', +',,,,,,,,,,,,112,,,,,,,,112,112,112,112,112,112,112,112,112,112,112,112', +'112,112,112,112,112,,112,112,112,112,,169,112,112,169,,,,,,,,,,,,,,', +',,,,169,,,,,,,,169,169,169,169,169,169,169,169,169,169,169,169,169,169', +'169,169,169,,169,169,169,169,,168,169,169,168,,,,,,,,,,,,,,,,,,,168', +',,,,,,,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168', +'168,,168,168,168,168,,,168,168,53,,53,53,,,,,,,,,,,,,,,,,,,53,,,,,,', +',53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,,53,53,53,53,53', +'53,53,53,126,,,126,,,,,,,,,,,,,,,,,,,126,,,,,,,,126,126,126,126,126', +'126,126,126,126,126,126,126,126,126,126,126,126,136,126,126,126,126', +',,126,126,,,,,,,,,,,136,,142,,,,,157,136,136,136,136,136,136,136,136', +'136,136,136,136,136,142,,,,,157,,,142,142,142,136,136,157,157,157,157', +'157,157,157,157,157,157,157,157,157,156,,,,,,142,142,,,,157,157,,,,', +',,156,,,,,,,155,156,156,156,156,156,156,156,156,156,156,156,156,156', +',,,,,155,,,,,,156,156,155,155,155,155,155,155,155,155,155,155,155,155', +'155,155,155,155,155,154,155,155,155,155,,,155,155,,,,,,,,,,,154,,,,', +',,153,154,154,154,154,154,154,154,154,154,154,154,154,154,,,,,,153,', +',,,,154,154,153,153,153,153,153,153,153,153,153,153,153,153,153,153', +'153,153,153,152,153,153,153,153,133,,153,153,,,,,,,,,,,152,,,,,133,', +',152,152,152,152,152,133,133,133,133,133,133,133,133,133,133,133,133', +'133,161,,,,,,152,152,,,,133,133,,,,,,,161,,,,,,,141,161,161,161,161', +'161,161,161,161,161,161,161,161,161,161,161,161,161,,141,,,,,,161,161', +'141,141,141,141,141,141,141,141,141,141,141,141,141,143,,,,,,,,,,,141', +'141,,,,,,,143,,144,,,,,145,143,143,143,143,143,143,143,143,143,143,143', +'143,143,144,,,,,145,,,144,144,144,143,143,145,145,145,145,145,145,145', +'145,145,145,145,145,145,146,,,,,150,144,144,,,,145,145,,,,,,148,146', +',,,,150,,,146,146,146,146,146,150,150,150,150,150,148,,,,,,,149,148', +'148,148,148,148,,146,146,,,,150,150,,,,,,149,,,,,,148,148,149,149,149', +'149,149,149,149,149,149,149,149,149,149,149,149,149,149,151,149,149', +'149,149,,,149,149,,,,,,,,,,,151,,,,,,,,151,151,151,151,151,151,151,151', +'151,151,151,151,151,151,151,151,151,,151,151,151,151,,,151,151' ] + racc_action_check = arr = Array.new(4932, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -335,26 +338,26 @@ clist = [ racc_action_pointer = [ -2, 58, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 118, nil, 145, 10, 298, 358, nil, 418, 478, - nil, nil, -37, 30, 36, nil, 3651, 24, 838, nil, - nil, nil, nil, 898, nil, 36, -3, 1078, 1138, nil, - nil, -28, 1258, nil, nil, 44, 1378, nil, nil, nil, - nil, 4034, -17, 3925, 104, 45, nil, nil, 209, 1798, - 116, 107, 158, 3813, 2098, -11, 31, 62, nil, 83, - nil, nil, 51, 2458, 2518, 2578, 2638, 2698, 146, 2818, - 2878, 2938, 2998, 3058, 3118, 3178, 3238, 1738, 778, 538, - 238, 1438, 2758, 2398, 2338, 2278, 2218, 2158, 2038, nil, - 3545, -8, nil, 1978, 1918, nil, 51, 94, 1858, 107, - 53, nil, 3869, nil, 3298, 1678, nil, 10, nil, nil, - 1618, nil, nil, 45, nil, 1558, 4140, 1498, 101, 120, - nil, 78, nil, 4535, 154, 3757, 4561, 167, 2, 3704, - 3598, 4645, 4311, 4671, 4556, 4711, 4815, 3981, 4737, 4601, - 4501, 4771, 4496, 4452, 4290, 4382, 4356, 4316, -2, 21, - 1318, 4426, 48, nil, nil, -27, 101, nil, 4193, 4087, - nil, 28, nil, 143, 4246, nil, nil, 1198, 29, 1018, - 107, nil, nil, nil, 958, nil, nil, 3333, 0, -19, - nil, 114, 718, nil, 658, nil, 598, nil, 3386, 3439, - 98, nil, 178, nil, nil, 3492, nil ] + nil, 118, nil, 142, 10, 298, 358, nil, 418, 478, + nil, nil, 158, 30, 36, nil, 3764, 18, 838, nil, + nil, nil, nil, 898, nil, 36, -13, 1078, 1138, nil, + nil, -28, 1258, nil, nil, 50, 1378, nil, nil, nil, + nil, 3817, -17, 4303, 51, 120, nil, nil, 1738, 1798, + 98, 167, -37, 4032, 2098, -11, 31, 58, nil, 83, + nil, nil, 49, 2458, 2518, 2578, 2638, 3358, 133, 2818, + 2878, 2938, 2998, 3058, 3118, 3178, 3238, 3298, 2698, 1618, + 778, 538, 238, 1438, 2758, 2398, 2338, 2278, 2218, nil, + 3870, -8, nil, 2158, 2038, nil, 51, 94, 1978, 24, + 53, nil, 4141, nil, 1918, 1858, nil, 53, nil, nil, + 1678, nil, nil, 3393, nil, 1558, 4359, 1498, 45, 86, + nil, 58, nil, 4614, 107, 3923, 4403, 154, 2, 3711, + 3976, 4680, 4424, 4720, 4741, 4746, 4786, 4088, 4804, 4830, + 4791, 4874, 4609, 4565, 4539, 4495, 4469, 4429, -2, 99, + 1318, 4654, 48, nil, nil, -33, 116, nil, 4247, 4194, + nil, 28, nil, 143, 3658, nil, nil, 1198, 13, 1018, + 101, nil, nil, nil, 958, nil, nil, 3499, 53, -19, + nil, 107, 718, nil, 658, nil, 598, nil, 3446, 3552, + 114, nil, 178, nil, nil, 3605, nil ] racc_action_default = [ -1, -85, -68, -31, -30, -21, -13, -69, -66, -32, @@ -380,12 +383,12 @@ racc_action_default = [ -115, -101, -115, -100, -95, -115, -102 ] racc_goto_table = [ - 51, 52, 22, 164, 68, 102, 120, 70, 13, 104, - 53, 69, 65, 66, 123, 61, 125, 60, 63, 113, + 51, 52, 22, 164, 68, 104, 120, 70, 13, 102, + 53, 65, 69, 66, 113, 61, 125, 60, 63, nil, nil, nil, nil, nil, nil, nil, nil, 100, nil, nil, - nil, nil, nil, nil, nil, 101, 102, 107, nil, 106, - 104, 110, nil, nil, nil, 112, 18, nil, nil, 130, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 181, + nil, nil, nil, nil, nil, 101, 104, 107, nil, 106, + 102, 110, nil, nil, nil, 112, 18, nil, nil, 130, + nil, nil, nil, nil, nil, nil, nil, 123, nil, 181, nil, nil, nil, 126, nil, nil, nil, nil, 64, nil, nil, nil, 133, 134, 135, 136, 137, nil, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, @@ -407,12 +410,12 @@ racc_goto_table = [ nil, nil, nil, nil, nil, nil, 64 ] racc_goto_check = [ - 4, 30, 3, 31, 27, 23, 17, 18, 1, 29, - 4, 28, 24, 6, 5, 4, 17, 3, 4, 33, + 4, 30, 3, 31, 27, 29, 17, 18, 1, 23, + 4, 24, 28, 6, 33, 4, 17, 3, 4, nil, nil, nil, nil, nil, nil, nil, nil, 4, nil, nil, - nil, nil, nil, nil, nil, 3, 23, 4, nil, 3, - 29, 4, nil, nil, nil, 4, 2, nil, nil, 27, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 31, + nil, nil, nil, nil, nil, 3, 29, 4, nil, 3, + 23, 4, nil, nil, nil, 4, 2, nil, nil, 27, + nil, nil, nil, nil, nil, nil, nil, 4, nil, 31, nil, nil, nil, 4, nil, nil, nil, nil, 2, nil, nil, nil, 4, 4, 4, 4, 4, nil, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -434,10 +437,10 @@ racc_goto_check = [ nil, nil, nil, nil, nil, nil, 2 ] racc_goto_pointer = [ - nil, 8, 46, 2, -1, -44, -10, nil, nil, nil, + nil, 8, 46, 2, -1, nil, -10, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, -47, -17, nil, - nil, nil, nil, -30, -11, nil, nil, -20, -13, -26, - 0, -103, nil, -33 ] + nil, nil, nil, -26, -12, nil, nil, -20, -12, -30, + 0, -103, nil, -38 ] racc_goto_default = [ nil, nil, 59, 62, 26, 32, 35, 40, 44, 50, diff --git a/underscore.jaa b/underscore.jaa index 449330a8..fa7b8741 100644 --- a/underscore.jaa +++ b/underscore.jaa @@ -47,15 +47,12 @@ _.each: obj, iterator, context => index: 0 try - return obj.forEach(iterator, context) if obj.forEach - canLoop: _.isArray(obj) or _.isArguments(obj) - return for (i=0, l=obj.length; i