Files
coffeescript/parser.rb
2009-12-13 23:25:31 -05:00

1086 lines
32 KiB
Ruby

#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.6
# from Racc grammer file "".
#
require 'racc/parser.rb'
require "lexer"
require "nodes"
class Parser < Racc::Parser
module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 221)
def parse(code, show_tokens=false)
# @yydebug = true
@tokens = Lexer.new.tokenize(code)
puts @tokens.inspect if show_tokens
do_parse
end
def next_token
@tokens.shift
end
...end grammar.y/module_eval...
##### State transition tables begin ###
clist = [
'-1,72,5,77,-73,77,19,22,26,29,33,1,3,118,72,11,14,18,72,25,28,72,5,77',
'120,8,19,22,26,29,33,1,3,30,34,11,14,18,73,25,28,-73,30,34,80,8,147',
'30,34,71,17,73,24,144,32,73,30,34,73,76,30,34,113,115,124,88,69,115',
'70,137,17,5,24,146,32,19,22,26,29,33,1,3,77,3,11,14,18,14,25,28,136',
'5,42,45,8,19,22,26,29,33,1,3,30,34,11,14,18,123,25,28,37,30,34,77,8',
'129,30,34,,17,,24,135,32,30,34,,62,41,44,,127,30,34,,128,30,34,152,17',
'5,24,,32,19,22,26,29,33,1,3,42,45,11,14,18,,25,28,,5,42,45,8,19,22,26',
'29,33,1,3,42,45,11,14,18,,25,28,,30,34,,8,30,34,42,45,17,,24,115,32',
'116,30,34,62,41,44,42,45,127,19,22,26,29,33,1,17,5,24,,32,19,22,26,29',
'33,1,3,42,45,11,14,18,,25,28,,5,30,34,8,19,22,26,29,33,1,3,42,45,11',
'14,18,,25,28,,,,,8,,-56,,-56,17,,24,,32,,,,,,,,30,34,,,,,,,17,5,24,',
'32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,',
'11,14,18,,25,28,,,,,8,,-56,,-56,17,,24,,32,,,,,,,,62,41,44,47,49,,,',
'17,,24,,32,5,149,,,19,22,26,29,33,1,3,42,45,11,14,18,,25,28,,5,,,8,19',
'22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,-56,,-56,17,,24,,32,,,,62,41',
'44,47,49,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,42,45,11,14,18,,25,28',
',5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,',
'62,41,44,47,49,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,42,45,11,14,18',
',25,28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,-56,,-56,17',
',24,,32,,,,62,41,44,47,49,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,42,45',
'11,14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,30,34,',
'8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11',
'14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17',
',24,,32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25',
'28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,30,34,,8,,,,,17,,24',
',32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28',
',5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,',
',,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,,,8',
'19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,,,,,,,,',
',,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,,,8,19,22,26',
'29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17,5',
'24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,,,8,19,22,26,29,33,1',
'3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17,5,24,,32',
'19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,,11',
'14,18,,25,28,,,,,8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26',
'29,33,1,3,,,11,14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25',
'28,,,,,8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1',
'3,,,11,14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,',
'8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11',
'14,18,,25,28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17',
',24,,32,,,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25',
'28,,5,,,8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32',
',,,,,,,,,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,',
',8,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,,,,,',
',,,,,,,,17,5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,5,,,8,19,22',
'26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,17,,24,,32,,,,,,,,,,,,,,,,17',
'5,24,,32,19,22,26,29,33,1,3,,,11,14,18,,25,28,,,,,8,,,,,,,,,,,,142,',
',,,,,,,,-56,,-56,17,,24,,32,62,41,44,47,49,51,53,55,57,59,60,61,40,43',
'46,48,50,52,54,56,58,86,,,42,45,,143,,,,,,,,,,,62,41,44,47,49,51,53',
'55,57,59,60,61,40,43,46,48,50,52,54,56,58,30,34,,42,45,62,41,44,47,49',
'51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45,,150,62,41',
'44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45,62',
'41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45',
'62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42',
'45,62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,',
',42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58',
',,,42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,,,,,,,,,,,,42,45,62',
'41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45',
'62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42',
'45,62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,',
',42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,,,,,,,,,,,,42,45,62,41',
'44,47,49,51,53,55,57,59,60,61,40,,,,,,,,,,,,42,45,62,41,44,47,49,51',
'53,55,57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45,62,41,44,47,49',
'51,53,55,57,59,60,61,40,,,,,,,,,,,,42,45,62,41,44,47,49,51,53,55,57',
'59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45,62,41,44,47,49,51,53,55',
'57,59,60,61,40,43,46,48,50,52,54,56,58,,,,42,45,62,41,44,47,49,51,53',
'55,57,59,60,61,40,,,,,,,,,,,,42,45,62,41,44,47,49,51,53,55,57,59,60',
'61,40,,,,,,,,,,,,42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,,,,,,',
',,,,,42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52,54',
'56,58,,,,42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50,52',
'54,56,58,,,,42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,43,46,48,50',
'52,54,56,58,,,,42,45,62,41,44,47,49,51,53,55,57,59,60,61,40,,,,,,,,',
',,,42,45' ]
racc_action_table = arr = Array.new(2241, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
arr[idx] = i.to_i unless i.empty?
idx += 1
end
end
clist = [
'0,64,0,24,146,139,0,0,0,0,0,0,0,70,27,0,0,0,23,0,0,63,5,78,72,0,5,5',
'5,5,5,5,5,24,24,5,5,5,64,5,5,146,0,0,24,5,139,131,131,23,0,27,0,131',
'0,23,122,122,63,23,132,132,63,122,78,37,21,132,21,122,5,149,5,132,5',
'149,149,149,149,149,149,149,126,14,149,149,149,14,149,149,121,8,38,38',
'149,8,8,8,8,8,8,8,85,85,8,8,8,77,8,8,7,149,149,127,8,85,117,117,,149',
',149,117,149,81,81,,97,97,97,,81,151,151,,81,10,10,151,8,87,8,,8,87',
'87,87,87,87,87,87,97,97,87,87,87,,87,87,,86,84,84,87,86,86,86,86,86',
'86,86,82,82,86,86,86,,86,86,,87,87,,86,66,66,112,112,87,,87,66,87,66',
'125,125,99,99,99,91,91,125,73,73,73,73,73,73,86,113,86,,86,113,113,113',
'113,113,113,113,99,99,113,113,113,,113,113,,16,65,65,113,16,16,16,16',
'16,16,16,94,94,16,16,16,,16,16,,,,,16,,113,,113,113,,113,,113,,,,,,',
',16,16,,,,,,,16,17,16,,16,17,17,17,17,17,17,17,,,17,17,17,,17,17,,18',
',,17,18,18,18,18,18,18,18,,,18,18,18,,18,18,,,,,18,,17,,17,17,,17,,17',
',,,,,,,101,101,101,101,101,,,,18,,18,,18,145,145,,,145,145,145,145,145',
'145,145,101,101,145,145,145,,145,145,,114,,,145,114,114,114,114,114',
'114,114,,,114,114,114,,114,114,,,,,114,,145,,145,145,,145,,145,,,,103',
'103,103,103,103,,,,,,,,114,115,114,,114,115,115,115,115,115,115,115',
'103,103,115,115,115,,115,115,,25,,,115,25,25,25,25,25,25,25,,,25,25',
'25,,25,25,,,,,25,,,,,115,,115,,115,,,,105,105,105,105,105,,,,,,,,25',
'76,25,,25,76,76,76,76,76,76,76,105,105,76,76,76,,76,76,,28,,,76,28,28',
'28,28,28,28,28,,,28,28,28,,28,28,,,,,28,,76,,76,76,,76,,76,,,,107,107',
'107,107,107,,,,,,,,28,32,28,,28,32,32,32,32,32,32,32,107,107,32,32,32',
',32,32,,123,,,32,123,123,123,123,123,123,123,,,123,123,123,,123,123',
',32,32,,123,,,,,32,,32,,32,,,,,,,,,,,,,,,,123,142,123,,123,142,142,142',
'142,142,142,142,,,142,142,142,,142,142,,71,,,142,71,71,71,71,71,71,71',
',,71,71,71,,71,71,,,,,71,,,,,142,,142,,142,,,,,,,,,,,,,,,,71,69,71,',
'71,69,69,69,69,69,69,69,,,69,69,69,,69,69,,40,,,69,40,40,40,40,40,40',
'40,,,40,40,40,,40,40,,69,69,,40,,,,,69,,69,,69,,,,,,,,,,,,,,,,40,41',
'40,,40,41,41,41,41,41,41,41,,,41,41,41,,41,41,,42,,,41,42,42,42,42,42',
'42,42,,,42,42,42,,42,42,,,,,42,,,,,41,,41,,41,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,46,47,46,',
'46,47,47,47,47,47,47,47,,,47,47,47,,47,47,,48,,,47,48,48,48,48,48,48',
'48,,,48,48,48,,48,48,,,,,48,,,,,47,,47,,47,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,62,39,62,',
'62,39,39,39,39,39,39,39,,,39,39,39,,39,39,,,,,39,,,,,,,,,,,,130,,,,',
',,,,,39,,39,39,,39,,39,130,130,130,130,130,130,130,130,130,130,130,130',
'130,130,130,130,130,130,130,130,130,36,,,130,130,,130,,,,,,,,,,,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',
'148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148',
'148,148,148,148,,,,148,148,,148,89,89,89,89,89,89,89,89,89,89,89,89',
'89,89,89,89,89,89,89,89,89,,,,89,89,133,133,133,133,133,133,133,133',
'133,133,133,133,133,133,133,133,133,133,133,133,133,,,,133,133,68,68',
'68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,,,,68,68,67',
'67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,,,,67,67',
'134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134',
'134,134,134,134,,,,134,134,111,111,111,111,111,111,111,111,111,111,111',
'111,111,,,,,,,,,,,,111,111,13,13,13,13,13,13,13,13,13,13,13,13,13,13',
'13,13,13,13,13,13,13,,,,13,13,138,138,138,138,138,138,138,138,138,138',
'138,138,138,138,138,138,138,138,138,138,138,,,,138,138,119,119,119,119',
'119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119',
',,,119,119,90,90,90,90,90,90,90,90,90,90,90,90,90,,,,,,,,,,,,90,90,110',
'110,110,110,110,110,110,110,110,110,110,110,110,,,,,,,,,,,,110,110,92',
'92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,,,,92,92',
'93,93,93,93,93,93,93,93,93,93,93,93,93,,,,,,,,,,,,93,93,108,108,108',
'108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108',
'108,,,,108,108,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95',
'95,95,95,,,,95,95,96,96,96,96,96,96,96,96,96,96,96,96,96,,,,,,,,,,,',
'96,96,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,102,102',
'102,102,102,102,102,102,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,104,104,104,104,104,104,,,,104,104,106,106,106,106,106,106,106',
'106,106,106,106,106,106,106,106,106,106,106,106,106,106,,,,106,106,109',
'109,109,109,109,109,109,109,109,109,109,109,109,,,,,,,,,,,,109,109' ]
racc_action_check = arr = Array.new(2241, nil)
idx = 0
clist.each do |str|
str.split(',', -1).each do |i|
arr[idx] = i.to_i unless i.empty?
idx += 1
end
end
racc_action_pointer = [
0, nil, nil, nil, nil, 20, nil, 110, 89, nil,
94, nil, nil, 1804, 71, nil, 227, 276, 296, nil,
nil, 19, nil, 5, -9, 438, nil, 1, 507, nil,
nil, nil, 556, nil, nil, nil, 1594, 65, 47, 1522,
714, 763, 783, 832, 852, 901, 921, 970, 990, 1039,
1059, 1108, 1128, 1177, 1197, 1246, 1266, 1315, 1335, 1384,
1404, 1453, 1473, 8, -12, 188, 142, 1726, 1700, 694,
-2, 645, 12, 196, nil, nil, 487, 63, 11, nil,
nil, 82, 126, nil, 116, 60, 158, 138, nil, 1648,
1882, 154, 1934, 1960, 195, 2012, 2038, 106, 2064, 175,
2090, 317, 2116, 386, 2142, 455, 2168, 524, 1986, 2194,
1908, 1778, 141, 207, 369, 418, nil, 74, nil, 1856,
nil, 39, 14, 576, nil, 152, 70, 101, nil, nil,
1556, 5, 18, 1674, 1752, nil, nil, nil, 1830, -7,
nil, nil, 625, nil, nil, 349, -9, nil, 1620, 69,
nil, 90, nil ]
racc_action_default = [
-56, -25, -12, -59, -13, -56, -14, -85, -56, -15,
-2, -57, -16, -3, -85, -17, -56, -76, -56, -20,
-7, -85, -21, -8, -69, -56, -22, -9, -56, -23,
-18, -10, -56, -24, -19, -11, -85, -85, -30, -5,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -85, -85, -6, -85, -77, -28, -56,
-85, -56, -85, -85, -60, -63, -76, -85, -69, -70,
-65, -85, -31, -61, -29, -85, -56, -56, 153, -4,
-44, -33, -53, -45, -34, -54, -46, -35, -47, -36,
-48, -37, -49, -38, -50, -39, -51, -40, -52, -41,
-42, -43, -32, -76, -56, -56, -75, -85, -58, -26,
-62, -85, -85, -56, -66, -85, -85, -85, -67, -84,
-85, -85, -85, -79, -78, -55, -64, -73, -27, -85,
-72, -71, -56, -80, -81, -5, -74, -68, -85, -56,
-82, -85, -83 ]
racc_goto_table = [
10, 39, 66, 83, 81, 140, 141, 63, 64, 121,
7, nil, nil, nil, nil, 78, 65, nil, 140, nil,
nil, nil, nil, nil, nil, nil, nil, 87, nil, nil,
nil, nil, 85, nil, nil, nil, nil, nil, nil, nil,
83, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 39, 114, 125, nil,
nil, 122, nil, nil, nil, nil, nil, nil, nil, 117,
nil, nil, 126, nil, nil, nil, 39, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, 131, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 132, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 39, nil,
nil, nil, nil, 114, nil, nil, 139, 36, nil, nil,
38, nil, 145, 114, nil, nil, nil, nil, nil, 67,
68, nil, nil, nil, nil, nil, nil, 82, nil, nil,
84, nil, 39, nil, nil, nil, nil, nil, nil, 151,
nil, 89, 90, 91, 92, 93, 94, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, nil, nil, nil, nil, nil,
nil, nil, nil, 119, nil, nil, nil, nil, 67, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 130, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, 67, 133, 134, nil, nil,
nil, nil, nil, nil, nil, 138, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 148, nil, nil, 89 ]
racc_goto_check = [
2, 4, 21, 18, 20, 16, 16, 6, 7, 5,
1, nil, nil, nil, nil, 4, 2, nil, 16, nil,
nil, nil, nil, nil, nil, nil, nil, 4, nil, nil,
nil, nil, 2, nil, nil, nil, nil, nil, nil, nil,
18, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 4, 4, 20, nil,
nil, 21, nil, nil, nil, nil, nil, nil, nil, 2,
nil, nil, 4, nil, nil, nil, 4, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, 2, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 21, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 4, nil,
nil, nil, nil, 4, nil, nil, 4, 3, nil, nil,
3, nil, 4, 4, nil, nil, nil, nil, nil, 3,
3, nil, nil, nil, nil, nil, nil, 3, nil, nil,
3, nil, 4, nil, nil, nil, nil, nil, nil, 2,
nil, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, nil, nil, nil, nil, nil,
nil, nil, nil, 3, nil, nil, nil, nil, 3, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 3, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, 3, 3, 3, nil, nil,
nil, nil, nil, nil, nil, 3, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 3, nil, nil, 3 ]
racc_goto_pointer = [
nil, 10, 0, 112, -9, -64, -7, -6, nil, nil,
nil, nil, nil, nil, nil, nil, -121, nil, -24, nil,
-20, -15 ]
racc_goto_default = [
nil, nil, nil, 13, 16, 20, 23, 27, 31, 35,
2, 4, 6, 9, 12, 15, 79, 21, 74, 75,
nil, nil ]
racc_reduce_table = [
0, 0, :racc_error,
0, 57, :_reduce_1,
1, 57, :_reduce_2,
1, 58, :_reduce_3,
3, 58, :_reduce_4,
2, 58, :_reduce_5,
2, 58, :_reduce_6,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 59, :_reduce_none,
1, 60, :_reduce_none,
1, 60, :_reduce_none,
1, 61, :_reduce_20,
1, 61, :_reduce_21,
1, 61, :_reduce_22,
1, 61, :_reduce_23,
1, 61, :_reduce_24,
1, 61, :_reduce_25,
3, 64, :_reduce_26,
3, 72, :_reduce_27,
2, 70, :_reduce_28,
2, 67, :_reduce_29,
2, 67, :_reduce_30,
2, 67, :_reduce_31,
3, 67, :_reduce_32,
3, 67, :_reduce_33,
3, 67, :_reduce_34,
3, 67, :_reduce_35,
3, 67, :_reduce_36,
3, 67, :_reduce_37,
3, 67, :_reduce_38,
3, 67, :_reduce_39,
3, 67, :_reduce_40,
3, 67, :_reduce_41,
3, 67, :_reduce_42,
3, 67, :_reduce_43,
3, 67, :_reduce_44,
3, 67, :_reduce_45,
3, 67, :_reduce_46,
3, 67, :_reduce_47,
3, 67, :_reduce_48,
3, 67, :_reduce_49,
3, 67, :_reduce_50,
3, 67, :_reduce_51,
3, 67, :_reduce_52,
3, 67, :_reduce_53,
3, 67, :_reduce_54,
4, 66, :_reduce_55,
0, 73, :_reduce_56,
1, 73, :_reduce_57,
3, 73, :_reduce_58,
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,
3, 65, :_reduce_67,
5, 65, :_reduce_68,
0, 76, :_reduce_69,
1, 76, :_reduce_70,
3, 76, :_reduce_71,
3, 76, :_reduce_72,
4, 63, :_reduce_73,
5, 63, :_reduce_74,
3, 68, :_reduce_75,
0, 77, :_reduce_76,
1, 77, :_reduce_77,
3, 77, :_reduce_78,
3, 77, :_reduce_79,
5, 69, :_reduce_80,
5, 69, :_reduce_81,
7, 69, :_reduce_82,
8, 69, :_reduce_83,
3, 71, :_reduce_84 ]
racc_reduce_n = 85
racc_shift_n = 153
racc_token_table = {
false => 0,
:error => 1,
:IF => 2,
:ELSE => 3,
:THEN => 4,
:NEWLINE => 5,
:NUMBER => 6,
:STRING => 7,
:REGEX => 8,
:TRUE => 9,
:FALSE => 10,
:NULL => 11,
:IDENTIFIER => 12,
:PROPERTY_ACCESS => 13,
:CODE => 14,
:PARAM => 15,
:NEW => 16,
:RETURN => 17,
:UMINUS => 18,
:NOT => 19,
"!" => 20,
"*" => 21,
"/" => 22,
"%" => 23,
"+" => 24,
"-" => 25,
"<=" => 26,
"<" => 27,
">" => 28,
">=" => 29,
"==" => 30,
"!=" => 31,
:IS => 32,
:AINT => 33,
"&&" => 34,
"||" => 35,
:AND => 36,
:OR => 37,
"-=" => 38,
"+=" => 39,
"/=" => 40,
"*=" => 41,
"\n" => 42,
";" => 43,
":" => 44,
"||=" => 45,
"&&=" => 46,
"=>" => 47,
"." => 48,
"," => 49,
"[" => 50,
"]" => 51,
"{" => 52,
"}" => 53,
"(" => 54,
")" => 55 }
racc_nt_base = 56
racc_use_result_var = true
Racc_arg = [
racc_action_table,
racc_action_check,
racc_action_default,
racc_action_pointer,
racc_goto_table,
racc_goto_check,
racc_goto_default,
racc_goto_pointer,
racc_nt_base,
racc_reduce_table,
racc_token_table,
racc_shift_n,
racc_reduce_n,
racc_use_result_var ]
Racc_token_to_s_table = [
"$end",
"error",
"IF",
"ELSE",
"THEN",
"NEWLINE",
"NUMBER",
"STRING",
"REGEX",
"TRUE",
"FALSE",
"NULL",
"IDENTIFIER",
"PROPERTY_ACCESS",
"CODE",
"PARAM",
"NEW",
"RETURN",
"UMINUS",
"NOT",
"\"!\"",
"\"*\"",
"\"/\"",
"\"%\"",
"\"+\"",
"\"-\"",
"\"<=\"",
"\"<\"",
"\">\"",
"\">=\"",
"\"==\"",
"\"!=\"",
"IS",
"AINT",
"\"&&\"",
"\"||\"",
"AND",
"OR",
"\"-=\"",
"\"+=\"",
"\"/=\"",
"\"*=\"",
"\"\\n\"",
"\";\"",
"\":\"",
"\"||=\"",
"\"&&=\"",
"\"=>\"",
"\".\"",
"\",\"",
"\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"(\"",
"\")\"",
"$start",
"Root",
"Expressions",
"Expression",
"Terminator",
"Literal",
"Variable",
"Call",
"Assign",
"Object",
"Code",
"Operation",
"Array",
"If",
"Return",
"Parenthetical",
"AssignObj",
"ParamList",
"Accessor",
"Index",
"AssignList",
"ArgList" ]
Racc_debug_parser = true
##### State transition tables end #####
# reduce 0 omitted
module_eval(<<'.,.,', 'grammar.y', 38)
def _reduce_1(val, _values, result)
result = Nodes.new([])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 39)
def _reduce_2(val, _values, result)
result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 44)
def _reduce_3(val, _values, result)
result = Nodes.new(val)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 45)
def _reduce_4(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 46)
def _reduce_5(val, _values, result)
result = val[0]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 47)
def _reduce_6(val, _values, result)
result = val[1]
result
end
.,.,
# reduce 7 omitted
# reduce 8 omitted
# reduce 9 omitted
# reduce 10 omitted
# reduce 11 omitted
# reduce 12 omitted
# reduce 13 omitted
# reduce 14 omitted
# reduce 15 omitted
# reduce 16 omitted
# reduce 17 omitted
# reduce 18 omitted
# reduce 19 omitted
module_eval(<<'.,.,', 'grammar.y', 73)
def _reduce_20(val, _values, result)
result = LiteralNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 74)
def _reduce_21(val, _values, result)
result = LiteralNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 75)
def _reduce_22(val, _values, result)
result = LiteralNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 76)
def _reduce_23(val, _values, result)
result = LiteralNode.new(true)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 77)
def _reduce_24(val, _values, result)
result = LiteralNode.new(false)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 78)
def _reduce_25(val, _values, result)
result = LiteralNode.new(nil)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 83)
def _reduce_26(val, _values, result)
result = AssignNode.new(val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 88)
def _reduce_27(val, _values, result)
result = AssignNode.new(val[0], val[2], :object)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 93)
def _reduce_28(val, _values, result)
result = ReturnNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 100)
def _reduce_29(val, _values, result)
result = OpNode.new(val[0], val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 101)
def _reduce_30(val, _values, result)
result = OpNode.new(val[0], val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 102)
def _reduce_31(val, _values, result)
result = OpNode.new(val[0], val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 105)
def _reduce_32(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 106)
def _reduce_33(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 107)
def _reduce_34(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 109)
def _reduce_35(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 110)
def _reduce_36(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 112)
def _reduce_37(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 113)
def _reduce_38(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 114)
def _reduce_39(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 115)
def _reduce_40(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 117)
def _reduce_41(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 118)
def _reduce_42(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 119)
def _reduce_43(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 120)
def _reduce_44(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 122)
def _reduce_45(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 123)
def _reduce_46(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 124)
def _reduce_47(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 125)
def _reduce_48(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 127)
def _reduce_49(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 128)
def _reduce_50(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 129)
def _reduce_51(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 130)
def _reduce_52(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 131)
def _reduce_53(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 132)
def _reduce_54(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 138)
def _reduce_55(val, _values, result)
result = CodeNode.new(val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 142)
def _reduce_56(val, _values, result)
result = []
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 143)
def _reduce_57(val, _values, result)
result = val
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 144)
def _reduce_58(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 148)
def _reduce_59(val, _values, result)
result = VariableNode.new(val)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 149)
def _reduce_60(val, _values, result)
result = val[0] << val[1]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 150)
def _reduce_61(val, _values, result)
result = VariableNode.new(val[0], [val[1]])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 154)
def _reduce_62(val, _values, result)
result = AccessorNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 155)
def _reduce_63(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)
def _reduce_65(val, _values, result)
result = ObjectNode.new([])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 164)
def _reduce_66(val, _values, result)
result = ObjectNode.new([])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 165)
def _reduce_67(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)
def _reduce_69(val, _values, result)
result = []
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 172)
def _reduce_70(val, _values, result)
result = val
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 173)
def _reduce_71(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 174)
def _reduce_72(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 179)
def _reduce_73(val, _values, result)
result = CallNode.new(val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 180)
def _reduce_74(val, _values, result)
result = CallNode.new(val[1], val[3], true)
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 185)
def _reduce_75(val, _values, result)
result = ArrayNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 190)
def _reduce_76(val, _values, result)
result = []
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 191)
def _reduce_77(val, _values, result)
result = val
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 192)
def _reduce_78(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 193)
def _reduce_79(val, _values, result)
result = val[0] << val[2]
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 198)
def _reduce_80(val, _values, result)
result = IfNode.new(val[1], val[3])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 200)
def _reduce_81(val, _values, result)
result = IfNode.new(val[1], val[3])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 203)
def _reduce_82(val, _values, result)
result = IfNode.new(val[1], val[3], val[5])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 206)
def _reduce_83(val, _values, result)
result = IfNode.new(val[1], val[3], val[6])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 210)
def _reduce_84(val, _values, result)
result = ParentheticalNode.new(val[1])
result
end
.,.,
def _reduce_none(val, _values, result)
val[0]
end
end # class Parser