diff --git a/code.jaa b/code.jaa index 4fe45f83..e06648c0 100644 --- a/code.jaa +++ b/code.jaa @@ -53,6 +53,9 @@ race: => good ||= evil wine &&= cheese +# Nested property access and calls. +((moon.turn(360))).shapes[3].move({x: 45, y: 30}).position + diff --git a/grammar.y b/grammar.y index c9a4391d..f79aca02 100644 --- a/grammar.y +++ b/grammar.y @@ -148,7 +148,8 @@ rule Variable: IDENTIFIER { result = VariableNode.new(val) } | Variable Accessor { result = val[0] << val[1] } - | Call Accessor { result = VariableNode.new(val[0], [val[1]]) } + | Invocation Accessor { result = VariableNode.new(val[0], [val[1]]) } + | Parenthetical Accessor { result = VariableNode.new(val[0], [val[1]]) } ; Accessor: diff --git a/parser.rb b/parser.rb index 6605b5c3..8b1bd38a 100644 --- a/parser.rb +++ b/parser.rb @@ -11,7 +11,7 @@ require 'racc/parser.rb' class Parser < Racc::Parser -module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 225) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 226) def parse(code, show_tokens=false) # @yydebug = true @tokens = Lexer.new.tokenize(code) @@ -26,79 +26,79 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 225) ##### State transition tables begin ### clist = [ -'6,81,-73,81,21,24,28,31,35,2,4,127,76,13,16,20,81,27,30,76,6,76,81,10', -'21,24,28,31,35,2,4,92,4,13,16,20,16,27,30,-73,32,36,128,10,149,9,32', -'36,19,77,26,139,34,80,32,36,77,84,77,32,36,119,73,124,74,9,131,140,19', -'6,26,81,34,21,24,28,31,35,2,4,45,48,13,16,20,76,27,30,39,6,45,48,10', -'21,24,28,31,35,2,4,32,36,13,16,20,122,27,30,,32,36,,10,133,9,,75,19', -',26,,34,77,,32,36,80,32,36,32,36,131,,138,9,132,,19,6,26,,34,21,24,28', -'31,35,2,4,45,48,13,16,20,,27,30,,6,32,36,10,21,24,28,31,35,2,4,45,48', -'13,16,20,,27,30,65,44,47,,10,,9,32,36,19,,26,,34,119,,120,65,44,47,50', -'52,32,36,45,48,9,,93,19,6,26,,34,21,24,28,31,35,2,4,45,48,13,16,20,', -'27,30,,6,151,,10,21,24,28,31,35,2,4,45,48,13,16,20,,27,30,,32,36,,10', -',9,32,36,19,,26,,34,45,48,,65,44,47,50,52,32,36,,,9,,147,19,6,26,,34', -'21,24,28,31,35,2,4,45,48,13,16,20,,27,30,,6,,,10,21,24,28,31,35,2,4', -',,13,16,20,,27,30,,32,36,,10,,9,,,19,,26,,34,32,36,,65,44,47,154,,,', -',,9,,,19,6,26,,34,21,24,28,31,35,2,4,45,48,13,16,20,,27,30,,6,,,10,21', -'24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,65,44,47', -'50,52,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,45,48,13,16,20,,27,30,', -'6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,21', -'24,28,31,35,2,,32,36,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20', -',27,30,,6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,', -'26,,34,,,,65,44,47,50,52,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,45,48', -'13,16,20,,27,30,,6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10', -',9,,,19,,26,,34,,,,,,,,32,36,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,', -',13,16,20,,27,30,,6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10', -',9,,,19,,26,,34,,,,,,,,,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13', -'16,20,,27,30,,6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9', -',,19,,26,,34,,,,,,,,,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16', -'20,,27,30,,6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19', -',26,,34,,,,,,,,,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27', -'30,,6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,', -'34,,,,,,,,,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30', -',6,,,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34', -',,,,,,,,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6', -',,10,21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,', -',,,,,,,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10', -'21,24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,', -',,,,9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10,21', -'24,28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,,,,', -',9,,,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10,21,24', -'28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,,,,,,9', -',,19,6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10,21,24,28', -'31,35,2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,,,,,,9,,,19', -'6,26,,34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10,21,24,28,31,35', -'2,4,,,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,,,,,,9,,,19,6,26', -',34,21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10,21,24,28,31,35,2,4', -',,13,16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,,,,,,9,,,19,6,26,,34', -'21,24,28,31,35,2,4,,,13,16,20,,27,30,,6,,,10,21,24,28,31,35,2,4,,,13', -'16,20,,27,30,,,,,10,,9,,,19,,26,,34,,,,,,,,,,,,,9,,,19,6,26,,34,21,24', -'28,31,35,2,4,,,13,16,20,,27,30,,,,,10,,,,,,,,,,,,145,,,,,,,,,,9,,,19', -',26,,34,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59', -'61,90,,,45,48,,146,,,,,,,,,,,65,44,47,50,52,54,56,58,60,62,63,64,43', -'46,49,51,53,55,57,59,61,32,36,,45,48,65,44,47,50,52,54,56,58,60,62,63', -'64,43,46,49,51,53,55,57,59,61,,,,45,48,,152,65,44,47,50,52,54,56,58', -'60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64', -'43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63', -'64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62', -'63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60', -'62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58', -'60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56', -'58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54,56,58,60,62,63', -'64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49', -'51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,46', -'49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43', +'5,83,3,125,20,23,27,31,35,1,3,93,69,12,15,19,83,26,30,83,5,69,69,9,20', +'23,27,31,35,1,3,32,36,12,15,19,83,26,30,83,32,36,133,9,34,8,32,36,18', +'70,25,69,34,81,69,32,36,86,70,70,150,77,129,78,137,8,130,119,18,5,25', +'39,34,20,23,27,31,35,1,3,32,36,12,15,19,69,26,30,70,5,131,70,9,20,23', +'27,31,35,1,3,32,36,12,15,19,,26,30,,32,36,,9,134,8,,79,18,,25,,34,70', +',32,36,81,45,48,32,36,122,,123,8,45,48,18,5,25,,34,20,23,27,31,35,1', +'3,45,48,12,15,19,,26,30,,5,152,,9,20,23,27,31,35,1,3,45,48,12,15,19', +',26,30,65,44,47,,9,,8,32,36,18,,25,,34,129,32,36,65,44,47,50,52,122', +',45,48,8,,141,18,5,25,,34,20,23,27,31,35,1,3,45,48,12,15,19,,26,30,', +'5,45,48,9,20,23,27,31,35,1,3,45,48,12,15,19,,26,30,65,44,47,,9,,8,,', +'18,,25,,34,,,,65,44,47,50,52,32,36,45,48,8,,148,18,5,25,,34,20,23,27', +'31,35,1,3,45,48,12,15,19,,26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19', +',26,30,,32,36,,9,,8,94,,18,,25,,34,32,36,,32,36,,140,32,36,155,,,8,', +',18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5,,,9,20,23,27,31', +'35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,,,65,44,47,50,52,,,', +',8,,,18,5,25,,34,20,23,27,31,35,1,3,45,48,12,15,19,,26,30,,5,,,9,20', +'23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,20,23,27,31', +'35,1,,32,36,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30', +',5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,', +',65,44,47,50,52,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,45,48,12,15,19', +',26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25', +',34,,,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30', +',5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,32,36,,9,,8,,,18,,25,,34', +',,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5', +',,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,32,36,,9,,8,,,18,,25,,34,', +',,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5,', +',9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,,,,,', +',,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5,,,9,20', +'23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,,,,,,,,,,,', +'8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5,,,9,20,23,27', +'31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,,,,,,,,,,,,8,,,18', +'5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5,,,9,20,23,27,31,35', +'1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,,,,,,,,,,,,8,,,18,5,25', +',34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,5,,,9,20,23,27,31,35,1,3,', +',12,15,19,,26,30,,,,,9,,8,,,18,,25,,34,,,,,,,,,,,,,8,,,18,5,25,,34,20', +'23,27,31,35,1,3,,,12,15,19,,26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15', +'19,,26,30,,,,,9,,8,,,18,,25,,34,,,,,,,,,,,,,8,,,18,5,25,,34,20,23,27', +'31,35,1,3,,,12,15,19,,26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26', +'30,,,,,9,,8,,,18,,25,,34,,,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35', +'1,3,,,12,15,19,,26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,', +',,9,,8,,,18,,25,,34,,,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,', +',12,15,19,,26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,', +'8,,,18,,25,,34,,,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15', +'19,,26,30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18', +',25,,34,,,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26', +'30,,5,,,9,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,,,9,,8,,,18,,25,,34', +',,,,,,,,,,,,8,,,18,5,25,,34,20,23,27,31,35,1,3,,,12,15,19,,26,30,,,', +',9,,,,,,,,,,,,146,,,,,,,,,,8,,,18,,25,,34,65,44,47,50,52,54,56,58,60', +'62,63,64,43,46,49,51,53,55,57,59,61,91,,,45,48,,147,,,,,,,,,,,65,44', +'47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,32,36,,45,48', +'65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45', +'48,,153,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59', +'61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57', +'59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45', +'48,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,', +',45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61', +',,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65', +'44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48', +'65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45', +'48,65,44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47', +'50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44', +'47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65', +'44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48', +'65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45', +'48,65,44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47', +'50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44', +'47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65', +'44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47,50,52', +'54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54,56,58,60', +'62,63,64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43', '46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64', '43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63', -'64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49', -'51,53,55,57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,,', -',,,,,,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,46,49,51,53,55', -'57,59,61,,,,45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,', -'45,48,65,44,47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44', -'47,50,52,54,56,58,60,62,63,64,43,,,,,,,,,,,,45,48,65,44,47,50,52,54', -'56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50,52', -'54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48,65,44,47,50', -'52,54,56,58,60,62,63,64,43,46,49,51,53,55,57,59,61,,,,45,48' ] +'64,43,,,,,,,,,,,,45,48' ] racc_action_table = arr = Array.new(2235, nil) idx = 0 clist.each do |str| @@ -109,88 +109,88 @@ clist = [ end clist = [ -'0,82,66,142,0,0,0,0,0,0,0,81,67,0,0,0,26,0,0,68,6,29,131,0,6,6,6,6,6', -'6,6,39,16,6,6,6,16,6,6,66,0,0,82,6,142,0,26,26,0,67,0,125,0,67,126,126', -'68,26,29,129,129,126,23,76,23,6,129,126,6,151,6,130,6,151,151,151,151', -'151,151,151,88,88,151,151,151,25,151,151,8,9,99,99,151,9,9,9,9,9,9,9', -'89,89,9,9,9,74,9,9,,151,151,,9,89,151,,25,151,,151,,151,25,,85,85,25', -'121,121,9,9,85,,121,9,85,,9,10,9,,9,10,10,10,10,10,10,10,117,117,10', -'10,10,,10,10,,75,12,12,10,75,75,75,75,75,75,75,96,96,75,75,75,,75,75', -'102,102,102,,75,,10,70,70,10,,10,,10,70,,70,112,112,112,112,112,40,40', -'102,102,75,,40,75,91,75,,75,91,91,91,91,91,91,91,112,112,91,91,91,,91', -'91,,148,148,,91,148,148,148,148,148,148,148,86,86,148,148,148,,148,148', -',91,91,,148,,91,69,69,91,,91,,91,41,41,,110,110,110,110,110,135,135', -',,148,,135,148,18,148,,148,18,18,18,18,18,18,18,110,110,18,18,18,,18', -'18,,19,,,18,19,19,19,19,19,19,19,,,19,19,19,,19,19,,18,18,,19,,18,,', -'18,,18,,18,153,153,,104,104,104,153,,,,,,19,,,19,20,19,,19,20,20,20', -'20,20,20,20,104,104,20,20,20,,20,20,,145,,,20,145,145,145,145,145,145', -'145,,,145,145,145,,145,145,,,,,145,,20,,,20,,20,,20,,,,106,106,106,106', -'106,,,,,145,,,145,127,145,,145,127,127,127,127,127,127,127,106,106,127', -'127,127,,127,127,,73,,,127,73,73,73,73,73,73,73,,,73,73,73,,73,73,,', -',,73,,127,,,127,,127,,127,77,77,77,77,77,77,,73,73,,,,73,,,73,27,73', -',73,27,27,27,27,27,27,27,,,27,27,27,,27,27,,119,,,27,119,119,119,119', -'119,119,119,,,119,119,119,,119,119,,,,,119,,27,,,27,,27,,27,,,,108,108', -'108,108,108,,,,,119,,,119,30,119,,119,30,30,30,30,30,30,30,108,108,30', -'30,30,,30,30,,34,,,30,34,34,34,34,34,34,34,,,34,34,34,,34,34,,,,,34', -',30,,,30,,30,,30,,,,,,,,34,34,,,,34,,,34,80,34,,34,80,80,80,80,80,80', -'80,,,80,80,80,,80,80,,118,,,80,118,118,118,118,118,118,118,,,118,118', -'118,,118,118,,,,,118,,80,,,80,,80,,80,,,,,,,,,,,,,118,,,118,90,118,', -'118,90,90,90,90,90,90,90,,,90,90,90,,90,90,,65,,,90,65,65,65,65,65,65', -'65,,,65,65,65,,65,65,,,,,65,,90,,,90,,90,,90,,,,,,,,,,,,,65,,,65,42', -'65,,65,42,42,42,42,42,42,42,,,42,42,42,,42,42,,43,,,42,43,43,43,43,43', -'43,43,,,43,43,43,,43,43,,,,,43,,42,,,42,,42,,42,,,,,,,,,,,,,43,,,43', -'44,43,,43,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,,44,,,44,,44,,44,,,,,,,,,,,,,45,,', -'45,46,45,,45,46,46,46,46,46,46,46,,,46,46,46,,46,46,,47,,,46,47,47,47', -'47,47,47,47,,,47,47,47,,47,47,,,,,47,,46,,,46,,46,,46,,,,,,,,,,,,,47', -',,47,64,47,,47,64,64,64,64,64,64,64,,,64,64,64,,64,64,,49,,,64,49,49', -'49,49,49,49,49,,,49,49,49,,49,49,,,,,49,,64,,,64,,64,,64,,,,,,,,,,,', -',49,,,49,50,49,,49,50,50,50,50,50,50,50,,,50,50,50,,50,50,,51,,,50,51', -'51,51,51,51,51,51,,,51,51,51,,51,51,,,,,51,,50,,,50,,50,,50,,,,,,,,', -',,,,51,,,51,52,51,,51,52,52,52,52,52,52,52,,,52,52,52,,52,52,,53,,,52', -'53,53,53,53,53,53,53,,,53,53,53,,53,53,,,,,53,,52,,,52,,52,,52,,,,,', -',,,,,,,53,,,53,54,53,,53,54,54,54,54,54,54,54,,,54,54,54,,54,54,,55', -',,54,55,55,55,55,55,55,55,,,55,55,55,,55,55,,,,,55,,54,,,54,,54,,54', -',,,,,,,,,,,,55,,,55,56,55,,55,56,56,56,56,56,56,56,,,56,56,56,,56,56', -',57,,,56,57,57,57,57,57,57,57,,,57,57,57,,57,57,,,,,57,,56,,,56,,56', -',56,,,,,,,,,,,,,57,,,57,58,57,,57,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,,58,,,58,', -'58,,58,,,,,,,,,,,,,59,,,59,60,59,,59,60,60,60,60,60,60,60,,,60,60,60', -',60,60,,61,,,60,61,61,61,61,61,61,61,,,61,61,61,,61,61,,,,,61,,60,,', -'60,,60,,60,,,,,,,,,,,,,61,,,61,62,61,,61,62,62,62,62,62,62,62,,,62,62', -'62,,62,62,,63,,,62,63,63,63,63,63,63,63,,,63,63,63,,63,63,,,,,63,,62', -',,62,,62,,62,,,,,,,,,,,,,63,,,63,48,63,,63,48,48,48,48,48,48,48,,,48', -'48,48,,48,48,,,,,48,,,,,,,,,,,,134,,,,,,,,,,48,,,48,,48,,48,134,134', -'134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134', -'134,134,38,,,134,134,,134,,,,,,,,,,,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,150,150,150,150,150,150,150', -'150,150,150,150,150,150,150,150,150,150,150,150,150,150,,,,150,150,', -'150,116,116,116,116,116,116,116,116,116,116,116,116,116,,,,,,,,,,,,116', -'116,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,', -',,72,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71', -'71,,,,71,71,136,136,136,136,136,136,136,136,136,136,136,136,136,136', -'136,136,136,136,136,136,136,,,,136,136,137,137,137,137,137,137,137,137', -'137,137,137,137,137,137,137,137,137,137,137,137,137,,,,137,137,123,123', -'123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123', -'123,123,,,,123,123,115,115,115,115,115,115,115,115,115,115,115,115,115', -',,,,,,,,,,,115,115,114,114,114,114,114,114,114,114,114,114,114,114,114', -',,,,,,,,,,,114,114,113,113,113,113,113,113,113,113,113,113,113,113,113', -'113,113,113,113,113,113,113,113,,,,113,113,141,141,141,141,141,141,141', -'141,141,141,141,141,141,141,141,141,141,141,141,141,141,,,,141,141,15', -'15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,,,,15,15', -'94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,,,,94', -'94,95,95,95,95,95,95,95,95,95,95,95,95,95,,,,,,,,,,,,95,95,97,97,97', -'97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,,,,97,97,98,98', -'98,98,98,98,98,98,98,98,98,98,98,,,,,,,,,,,,98,98,100,100,100,100,100', -'100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,,,,100', -'100,101,101,101,101,101,101,101,101,101,101,101,101,101,,,,,,,,,,,,101', -'101,103,103,103,103,103,103,103,103,103,103,103,103,103,,,,,,,,,,,,103', -'103,105,105,105,105,105,105,105,105,105,105,105,105,105,,,,,,,,,,,,105', -'105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107', -'107,107,107,107,107,,,,107,107,109,109,109,109,109,109,109,109,109,109', -'109,109,109,109,109,109,109,109,109,109,109,,,,109,109,111,111,111,111', -'111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111', -',,,111,111' ] +'0,84,15,78,0,0,0,0,0,0,0,39,67,0,0,0,25,0,0,145,5,16,68,0,5,5,5,5,5', +'5,5,73,73,5,5,5,129,5,5,128,0,0,84,5,15,0,25,25,0,67,0,29,0,67,66,82', +'82,25,16,68,145,22,82,22,120,5,82,69,5,152,5,7,5,152,152,152,152,152', +'152,152,11,11,152,152,152,24,152,152,29,8,83,66,152,8,8,8,8,8,8,8,90', +'90,8,8,8,,8,8,,152,152,,8,90,152,,24,152,,152,,152,24,,74,74,24,118', +'118,8,8,74,,74,8,100,100,8,9,8,,8,9,9,9,9,9,9,9,97,97,9,9,9,,9,9,,149', +'149,,9,149,149,149,149,149,149,149,89,89,149,149,149,,149,149,103,103', +'103,,149,,9,132,132,9,,9,,9,132,127,127,113,113,113,113,113,127,,103', +'103,149,,127,149,146,149,,149,146,146,146,146,146,146,146,113,113,146', +'146,146,,146,146,,131,87,87,146,131,131,131,131,131,131,131,41,41,131', +'131,131,,131,131,105,105,105,,131,,146,,,146,,146,,146,,,,107,107,107', +'107,107,136,136,105,105,131,,136,131,122,131,,131,122,122,122,122,122', +'122,122,107,107,122,122,122,,122,122,,17,,,122,17,17,17,17,17,17,17', +',,17,17,17,,17,17,,40,40,,17,,122,40,,122,,122,,122,124,124,,154,154', +',124,17,17,154,,,17,,,17,18,17,,17,18,18,18,18,18,18,18,,,18,18,18,', +'18,18,,19,,,18,19,19,19,19,19,19,19,,,19,19,19,,19,19,,,,,19,,18,,,18', +',18,,18,,,,109,109,109,109,109,,,,,19,,,19,121,19,,19,121,121,121,121', +'121,121,121,109,109,121,121,121,,121,121,,92,,,121,92,92,92,92,92,92', +'92,,,92,92,92,,92,92,,,,,92,,121,,,121,,121,,121,70,70,70,70,70,70,', +'92,92,,,,92,,,92,91,92,,92,91,91,91,91,91,91,91,,,91,91,91,,91,91,,26', +',,91,26,26,26,26,26,26,26,,,26,26,26,,26,26,,,,,26,,91,,,91,,91,,91', +',,,111,111,111,111,111,,,,,26,,,26,81,26,,26,81,81,81,81,81,81,81,111', +'111,81,81,81,,81,81,,30,,,81,30,30,30,30,30,30,30,,,30,30,30,,30,30', +',,,,30,,81,,,81,,81,,81,,,,,,,,,,,,,30,,,30,34,30,,30,34,34,34,34,34', +'34,34,,,34,34,34,,34,34,,79,,,34,79,79,79,79,79,79,79,,,79,79,79,,79', +'79,,34,34,,79,,34,,,34,,34,,34,,,,,,,,,,,,,79,,,79,77,79,,79,77,77,77', +'77,77,77,77,,,77,77,77,,77,77,,65,,,77,65,65,65,65,65,65,65,,,65,65', +'65,,65,65,,77,77,,65,,77,,,77,,77,,77,,,,,,,,,,,,,65,,,65,64,65,,65', +'64,64,64,64,64,64,64,,,64,64,64,,64,64,,42,,,64,42,42,42,42,42,42,42', +',,42,42,42,,42,42,,,,,42,,64,,,64,,64,,64,,,,,,,,,,,,,42,,,42,43,42', +',42,43,43,43,43,43,43,43,,,43,43,43,,43,43,,44,,,43,44,44,44,44,44,44', +'44,,,44,44,44,,44,44,,,,,44,,43,,,43,,43,,43,,,,,,,,,,,,,44,,,44,45', +'44,,44,45,45,45,45,45,45,45,,,45,45,45,,45,45,,46,,,45,46,46,46,46,46', +'46,46,,,46,46,46,,46,46,,,,,46,,45,,,45,,45,,45,,,,,,,,,,,,,46,,,46', +'63,46,,46,63,63,63,63,63,63,63,,,63,63,63,,63,63,,48,,,63,48,48,48,48', +'48,48,48,,,48,48,48,,48,48,,,,,48,,63,,,63,,63,,63,,,,,,,,,,,,,48,,', +'48,49,48,,48,49,49,49,49,49,49,49,,,49,49,49,,49,49,,50,,,49,50,50,50', +'50,50,50,50,,,50,50,50,,50,50,,,,,50,,49,,,49,,49,,49,,,,,,,,,,,,,50', +',,50,51,50,,50,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,,51,,,51,,51,,51,,,,,,,,,,,', +',52,,,52,53,52,,52,53,53,53,53,53,53,53,,,53,53,53,,53,53,,54,,,53,54', +'54,54,54,54,54,54,,,54,54,54,,54,54,,,,,54,,53,,,53,,53,,53,,,,,,,,', +',,,,54,,,54,55,54,,54,55,55,55,55,55,55,55,,,55,55,55,,55,55,,56,,,55', +'56,56,56,56,56,56,56,,,56,56,56,,56,56,,,,,56,,55,,,55,,55,,55,,,,,', +',,,,,,,56,,,56,57,56,,56,57,57,57,57,57,57,57,,,57,57,57,,57,57,,58', +',,57,58,58,58,58,58,58,58,,,58,58,58,,58,58,,,,,58,,57,,,57,,57,,57', +',,,,,,,,,,,,58,,,58,59,58,,58,59,59,59,59,59,59,59,,,59,59,59,,59,59', +',60,,,59,60,60,60,60,60,60,60,,,60,60,60,,60,60,,,,,60,,59,,,59,,59', +',59,,,,,,,,,,,,,60,,,60,61,60,,60,61,61,61,61,61,61,61,,,61,61,61,,61', +'61,,62,,,61,62,62,62,62,62,62,62,,,62,62,62,,62,62,,,,,62,,61,,,61,', +'61,,61,,,,,,,,,,,,,62,,,62,47,62,,62,47,47,47,47,47,47,47,,,47,47,47', +',47,47,,,,,47,,,,,,,,,,,,135,,,,,,,,,,47,,,47,,47,,47,135,135,135,135', +'135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135', +'38,,,135,135,,135,,,,,,,,,,,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,151,151,151,151,151,151,151,151,151', +'151,151,151,151,151,151,151,151,151,151,151,151,,,,151,151,,151,114', +'114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114', +'114,114,114,,,,114,114,144,144,144,144,144,144,144,144,144,144,144,144', +'144,144,144,144,144,144,144,144,144,,,,144,144,116,116,116,116,116,116', +'116,116,116,116,116,116,116,,,,,,,,,,,,116,116,138,138,138,138,138,138', +'138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,,,,138,138', +'76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,,,,76', +'76,115,115,115,115,115,115,115,115,115,115,115,115,115,,,,,,,,,,,,115', +'115,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,', +',,75,75,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139', +'139,139,139,139,139,139,,,,139,139,117,117,117,117,117,117,117,117,117', +'117,117,117,117,,,,,,,,,,,,117,117,14,14,14,14,14,14,14,14,14,14,14', +'14,14,14,14,14,14,14,14,14,14,,,,14,14,95,95,95,95,95,95,95,95,95,95', +'95,95,95,95,95,95,95,95,95,95,95,,,,95,95,112,112,112,112,112,112,112', +'112,112,112,112,112,112,112,112,112,112,112,112,112,112,,,,112,112,98', +'98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,,,,98,98', +'99,99,99,99,99,99,99,99,99,99,99,99,99,,,,,,,,,,,,99,99,126,126,126', +'126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126', +'126,,,,126,126,101,101,101,101,101,101,101,101,101,101,101,101,101,101', +'101,101,101,101,101,101,101,,,,101,101,102,102,102,102,102,102,102,102', +'102,102,102,102,102,,,,,,,,,,,,102,102,104,104,104,104,104,104,104,104', +'104,104,104,104,104,,,,,,,,,,,,104,104,106,106,106,106,106,106,106,106', +'106,106,106,106,106,,,,,,,,,,,,106,106,108,108,108,108,108,108,108,108', +'108,108,108,108,108,108,108,108,108,108,108,108,108,,,,108,108,110,110', +'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110', +'110,110,,,,110,110,96,96,96,96,96,96,96,96,96,96,96,96,96,,,,,,,,,,', +',96,96' ] racc_action_check = arr = Array.new(2235, nil) idx = 0 clist.each do |str| @@ -201,86 +201,86 @@ clist = [ end racc_action_pointer = [ - -2, nil, nil, nil, nil, nil, 18, nil, 88, 87, - 136, nil, 117, nil, nil, 1902, 20, nil, 274, 294, - 343, nil, nil, 15, nil, 72, 4, 481, nil, 8, - 550, nil, nil, nil, 570, nil, nil, nil, 1588, 31, - 157, 215, 757, 777, 826, 846, 895, 915, 1516, 984, - 1033, 1053, 1102, 1122, 1171, 1191, 1240, 1260, 1309, 1329, - 1378, 1398, 1447, 1467, 964, 708, -11, -1, 6, 211, - 142, 1694, 1668, 432, 90, 156, 51, 461, nil, nil, - 619, -33, -11, nil, nil, 82, 193, nil, 35, 58, - 688, 205, nil, nil, 1928, 1954, 124, 1980, 2006, 45, - 2032, 2058, 156, 2084, 311, 2110, 380, 2136, 518, 2162, - 242, 2188, 173, 1850, 1824, 1798, 1642, 104, 639, 501, - nil, 85, nil, 1772, nil, 0, 12, 412, nil, 17, - 59, 10, nil, nil, 1550, 226, 1720, 1746, nil, nil, - nil, 1876, -9, nil, nil, 363, nil, nil, 225, nil, - 1614, 67, nil, 287, nil ] + -2, nil, nil, nil, nil, 18, nil, 71, 87, 136, + nil, 38, nil, nil, 1876, -10, 8, 294, 343, 363, + nil, nil, 14, nil, 72, 4, 501, nil, nil, 38, + 570, nil, nil, nil, 619, nil, nil, nil, 1588, 11, + 274, 193, 777, 826, 846, 895, 915, 1516, 984, 1033, + 1053, 1102, 1122, 1171, 1191, 1240, 1260, 1309, 1329, 1378, + 1398, 1447, 1467, 964, 757, 708, 41, -1, 9, 55, + 461, nil, nil, -11, 82, 1798, 1746, 688, -12, 639, + nil, 550, 13, 46, -11, nil, nil, 183, nil, 124, + 58, 481, 432, nil, nil, 1902, 2188, 104, 1954, 1980, + 90, 2032, 2058, 156, 2084, 225, 2110, 242, 2136, 380, + 2162, 518, 1928, 173, 1642, 1772, 1694, 1850, 82, nil, + 13, 412, 274, nil, 287, nil, 2006, 150, 27, 24, + nil, 225, 142, nil, nil, 1550, 226, nil, 1720, 1824, + nil, nil, nil, nil, 1668, 7, 205, nil, nil, 156, + nil, 1614, 67, nil, 290, nil ] racc_action_default = [ - -1, -73, -25, -12, -59, -13, -86, -14, -86, -86, - -86, -15, -2, -57, -16, -3, -86, -17, -86, -77, - -86, -20, -7, -86, -21, -8, -69, -86, -22, -9, - -86, -23, -18, -10, -86, -24, -19, -11, -86, -86, - -86, -30, -5, -86, -86, -86, -86, -86, -86, -86, - -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, - -86, -86, -86, -86, -86, -86, -74, -86, -86, -6, - -86, -78, -28, -86, -86, -86, -86, -86, -60, -63, - -77, -86, -69, -70, -65, -86, -31, -61, -29, -86, - -86, -86, 155, -56, -4, -44, -33, -53, -45, -34, - -54, -46, -35, -47, -36, -48, -37, -49, -38, -50, - -39, -51, -40, -52, -41, -42, -43, -32, -86, -86, - -76, -86, -58, -26, -62, -86, -86, -86, -66, -86, - -86, -86, -67, -85, -86, -86, -80, -79, -55, -64, - -75, -27, -86, -72, -71, -86, -81, -82, -5, -68, - -86, -86, -83, -86, -84 ] + -1, -25, -12, -59, -13, -87, -14, -87, -87, -87, + -15, -2, -57, -16, -3, -87, -17, -87, -78, -87, + -20, -7, -87, -21, -8, -70, -87, -22, -9, -74, + -87, -23, -18, -10, -87, -24, -19, -11, -87, -87, + -87, -30, -5, -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, -75, -87, + -87, -62, -64, -6, -87, -79, -28, -87, -87, -87, + -60, -78, -87, -87, -70, -71, -66, -31, -61, -29, + -87, -87, -87, 156, -56, -4, -44, -33, -53, -45, + -34, -54, -46, -35, -47, -36, -48, -37, -49, -38, + -50, -39, -51, -40, -52, -41, -42, -43, -32, -63, + -87, -87, -87, -77, -87, -58, -26, -87, -87, -87, + -68, -87, -87, -67, -86, -87, -87, -65, -81, -80, + -55, -76, -73, -72, -27, -87, -87, -82, -83, -5, + -69, -87, -87, -84, -87, -85 ] racc_goto_table = [ - 12, 38, 70, 68, 67, 41, 85, 42, 125, 40, - 66, 143, 144, 8, 71, 72, nil, nil, 69, nil, - nil, 82, 86, 143, nil, 88, nil, 87, nil, nil, - nil, nil, nil, 91, 89, 42, nil, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, nil, 129, 126, 42, 118, 87, nil, nil, nil, - 123, nil, nil, 121, nil, 71, nil, nil, nil, nil, - 130, nil, nil, nil, 42, 134, nil, nil, nil, nil, - nil, 135, nil, nil, nil, nil, nil, nil, nil, nil, + 11, 74, 38, 66, 42, 67, 41, 68, 40, 82, + 120, 142, 143, 7, nil, 75, 76, 73, 84, nil, + nil, nil, nil, 87, nil, nil, nil, 89, 142, nil, + 80, 92, nil, 42, 90, 88, nil, nil, nil, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, nil, 127, nil, 42, 121, 132, nil, + nil, nil, nil, 80, 88, 128, 126, 124, 75, nil, + nil, nil, nil, 42, nil, nil, nil, nil, 135, nil, + nil, nil, 136, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 136, 137, nil, 42, nil, nil, nil, - nil, 118, 141, nil, 142, nil, nil, nil, nil, nil, - 148, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 150, nil, nil, 94, nil, nil, nil, nil, 42, nil, - nil, 153 ] + nil, nil, nil, nil, nil, nil, nil, 42, 138, 139, + 121, nil, nil, nil, nil, 145, nil, nil, 144, 149, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 151, nil, nil, 95, 42, nil, nil, + nil, nil, 154 ] racc_goto_check = [ - 2, 3, 22, 7, 6, 3, 20, 4, 5, 2, - 21, 16, 16, 1, 3, 3, nil, nil, 2, nil, - nil, 4, 3, 16, nil, 3, nil, 18, nil, nil, - nil, nil, nil, 4, 2, 4, nil, 3, 3, 3, + 2, 22, 3, 15, 4, 6, 3, 19, 2, 21, + 5, 16, 16, 1, nil, 3, 3, 2, 4, nil, + nil, nil, nil, 3, nil, nil, nil, 3, 16, nil, + 18, 4, nil, 4, 2, 18, nil, nil, nil, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, nil, 20, 22, 4, 4, 18, nil, nil, nil, - 3, nil, nil, 2, nil, 3, nil, nil, nil, nil, - 4, nil, nil, nil, 4, 3, nil, nil, nil, nil, - nil, 2, nil, nil, nil, nil, nil, nil, nil, nil, + 3, 3, 3, nil, 22, nil, 4, 4, 21, nil, + nil, nil, nil, 18, 18, 4, 3, 2, 3, nil, + nil, nil, nil, 4, nil, nil, nil, nil, 3, nil, + nil, nil, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 3, 3, nil, 4, nil, nil, nil, - nil, 4, 3, nil, 4, nil, nil, nil, nil, nil, - 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 3, nil, nil, 3, nil, nil, nil, nil, 4, nil, - nil, 2 ] + nil, nil, nil, nil, nil, nil, nil, 4, 3, 3, + 4, nil, nil, nil, nil, 4, nil, nil, 3, 4, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 3, nil, nil, 3, 4, nil, nil, + nil, nil, 2 ] racc_goto_pointer = [ - nil, 13, 0, -5, -5, -69, -12, -13, nil, nil, - nil, nil, nil, nil, nil, nil, -119, nil, -2, nil, - -20, -6, -17 ] + nil, 13, 0, -3, -7, -60, -10, nil, nil, nil, + nil, nil, nil, nil, nil, -12, -117, nil, 6, -8, + nil, -16, -17 ] racc_goto_default = [ - nil, nil, nil, 15, 18, 22, 25, 29, 33, 37, - 3, 5, 7, 11, 14, 17, 83, 23, 78, 79, - nil, 1, nil ] + nil, nil, nil, 14, 17, 21, 24, 28, 33, 37, + 2, 4, 6, 10, 13, 16, 85, 22, 71, 29, + 72, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, @@ -345,34 +345,35 @@ racc_reduce_table = [ 1, 62, :_reduce_59, 2, 62, :_reduce_60, 2, 62, :_reduce_61, - 2, 74, :_reduce_62, - 1, 74, :_reduce_63, - 3, 75, :_reduce_64, - 2, 65, :_reduce_65, - 3, 65, :_reduce_66, + 2, 62, :_reduce_62, + 2, 74, :_reduce_63, + 1, 74, :_reduce_64, + 3, 76, :_reduce_65, + 2, 65, :_reduce_66, 3, 65, :_reduce_67, - 5, 65, :_reduce_68, - 0, 76, :_reduce_69, - 1, 76, :_reduce_70, - 3, 76, :_reduce_71, - 3, 76, :_reduce_72, - 1, 63, :_reduce_73, - 2, 63, :_reduce_74, - 4, 77, :_reduce_75, - 3, 68, :_reduce_76, - 0, 78, :_reduce_77, - 1, 78, :_reduce_78, - 3, 78, :_reduce_79, + 3, 65, :_reduce_68, + 5, 65, :_reduce_69, + 0, 77, :_reduce_70, + 1, 77, :_reduce_71, + 3, 77, :_reduce_72, + 3, 77, :_reduce_73, + 1, 63, :_reduce_74, + 2, 63, :_reduce_75, + 4, 75, :_reduce_76, + 3, 68, :_reduce_77, + 0, 78, :_reduce_78, + 1, 78, :_reduce_79, 3, 78, :_reduce_80, - 5, 69, :_reduce_81, + 3, 78, :_reduce_81, 5, 69, :_reduce_82, - 7, 69, :_reduce_83, - 8, 69, :_reduce_84, - 3, 71, :_reduce_85 ] + 5, 69, :_reduce_83, + 7, 69, :_reduce_84, + 8, 69, :_reduce_85, + 3, 71, :_reduce_86 ] -racc_reduce_n = 86 +racc_reduce_n = 87 -racc_shift_n = 155 +racc_shift_n = 156 racc_token_table = { false => 0, @@ -528,9 +529,9 @@ Racc_token_to_s_table = [ "AssignObj", "ParamList", "Accessor", + "Invocation", "Index", "AssignList", - "Invocation", "ArgList" ] Racc_debug_parser = false @@ -901,30 +902,30 @@ module_eval(<<'.,.,', 'grammar.y', 150) end .,., -module_eval(<<'.,.,', 'grammar.y', 154) +module_eval(<<'.,.,', 'grammar.y', 151) def _reduce_62(val, _values, result) - result = AccessorNode.new(val[1]) + result = VariableNode.new(val[0], [val[1]]) result end .,., module_eval(<<'.,.,', 'grammar.y', 155) def _reduce_63(val, _values, result) + result = AccessorNode.new(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 156) + def _reduce_64(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 159) - def _reduce_64(val, _values, result) - result = IndexNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 163) +module_eval(<<'.,.,', 'grammar.y', 160) def _reduce_65(val, _values, result) - result = ObjectNode.new([]) + result = IndexNode.new(val[1]) result end .,., @@ -938,35 +939,35 @@ module_eval(<<'.,.,', 'grammar.y', 164) module_eval(<<'.,.,', 'grammar.y', 165) def _reduce_67(val, _values, result) + result = ObjectNode.new([]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 166) + def _reduce_68(val, _values, result) result = ObjectNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 167) - def _reduce_68(val, _values, result) - result = ObjectNode.new(val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 171) +module_eval(<<'.,.,', 'grammar.y', 168) def _reduce_69(val, _values, result) - result = [] + result = ObjectNode.new(val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 172) def _reduce_70(val, _values, result) - result = val + result = [] result end .,., module_eval(<<'.,.,', 'grammar.y', 173) def _reduce_71(val, _values, result) - result = val[0] << val[2] + result = val result end .,., @@ -978,51 +979,51 @@ module_eval(<<'.,.,', 'grammar.y', 174) end .,., -module_eval(<<'.,.,', 'grammar.y', 179) +module_eval(<<'.,.,', 'grammar.y', 175) def _reduce_73(val, _values, result) - result = val[0] + result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 180) def _reduce_74(val, _values, result) + result = val[0] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 181) + def _reduce_75(val, _values, result) result = val[0].new_instance result end .,., -module_eval(<<'.,.,', 'grammar.y', 184) - def _reduce_75(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 185) + def _reduce_76(val, _values, result) result = CallNode.new(val[0], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 189) - def _reduce_76(val, _values, result) - result = ArrayNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 194) +module_eval(<<'.,.,', 'grammar.y', 190) def _reduce_77(val, _values, result) - result = [] + result = ArrayNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 195) def _reduce_78(val, _values, result) - result = val + result = [] result end .,., module_eval(<<'.,.,', 'grammar.y', 196) def _reduce_79(val, _values, result) - result = val[0] << val[2] + result = val result end .,., @@ -1034,36 +1035,43 @@ module_eval(<<'.,.,', 'grammar.y', 197) end .,., -module_eval(<<'.,.,', 'grammar.y', 202) +module_eval(<<'.,.,', 'grammar.y', 198) def _reduce_81(val, _values, result) - result = IfNode.new(val[1], val[3]) + result = val[0] << val[2] result end .,., -module_eval(<<'.,.,', 'grammar.y', 204) +module_eval(<<'.,.,', 'grammar.y', 203) def _reduce_82(val, _values, result) result = IfNode.new(val[1], val[3]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 207) +module_eval(<<'.,.,', 'grammar.y', 205) def _reduce_83(val, _values, result) + result = IfNode.new(val[1], val[3]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 208) + def _reduce_84(val, _values, result) result = IfNode.new(val[1], val[3], val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 210) - def _reduce_84(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 211) + def _reduce_85(val, _values, result) result = IfNode.new(val[1], val[3], val[6]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 214) - def _reduce_85(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 215) + def _reduce_86(val, _values, result) result = ParentheticalNode.new(val[1]) result end