not getting anywhere

This commit is contained in:
Jeremy Ashkenas
2009-12-13 23:25:00 -05:00
parent 896440df7c
commit c18cc036ae
4 changed files with 334 additions and 509 deletions

View File

@@ -60,6 +60,7 @@ rule
| Array
| If
| Return
| Parenthetical
;
# All tokens that can terminate an expression
@@ -135,8 +136,7 @@ rule
# Method definition
Code:
ParamList "=>" Expression { result = CodeNode.new(val[0], val[2]) }
| ParamList "=>" Expressions "." { result = CodeNode.new(val[0], val[2]) }
ParamList "=>" Expressions "." { result = CodeNode.new(val[0], val[2]) }
;
ParamList:
@@ -207,6 +207,10 @@ rule
ELSE Expressions "." { result = IfNode.new(val[1], val[3], val[6]) }
;
Parenthetical:
"(" Expressions ")" { result = ParentheticalNode.new(val[1]) }
;
end
---- header

View File

@@ -172,7 +172,7 @@ class CodeNode < Node
end
def compile(indent, last=false)
nodes = @body.reduce
nodes = @body.respond_to?(:reduce) ? @body.reduce : [@body]
code = nodes.map { |node|
last = node == nodes.last
line = node.compile(indent + TAB, last)
@@ -238,3 +238,15 @@ class IfNode < Node
"#{if_part} : #{else_part}"
end
end
class ParentheticalNode < Node
def initialize(expressions)
@expressions = expressions
end
def compile(indent, last=false)
compiled = @expressions.compile(indent)
compiled = compiled[0...-1] if compiled[-1..-1] == ';'
"(#{compiled})"
end
end

819
parser.rb
View File

@@ -11,7 +11,7 @@ require 'racc/parser.rb'
class Parser < Racc::Parser
module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 217)
module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 221)
def parse(code, show_tokens=false)
# @yydebug = true
@tokens = Lexer.new.tokenize(code)
@@ -25,475 +25,280 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 217)
...end grammar.y/module_eval...
##### State transition tables begin ###
racc_action_table = [
-1, -73, 5, 75, 70, 116, 19, 21, 25, 28,
31, 1, 3, 75, 3, 11, 14, 18, 14, 24,
27, 66, 5, 67, 118, 8, 19, 21, 25, 28,
31, 1, 3, 40, 43, 11, 14, 18, -73, 24,
27, 71, 29, 32, 144, 8, 70, 40, 43, 85,
16, 5, 23, 70, 123, 19, 21, 25, 28, 31,
1, 3, 40, 43, 11, 14, 18, 75, 24, 27,
16, 5, 23, 133, 8, 19, 21, 25, 28, 31,
1, 3, 121, 71, 11, 14, 18, 110, 24, 27,
71, 29, 32, 35, 8, 29, 32, 29, 32, 16,
5, 23, 125, 149, 19, 21, 25, 28, 31, 1,
3, 75, 75, 11, 14, 18, nil, 24, 27, 16,
5, 23, nil, 8, 19, 21, 25, 28, 31, 1,
3, 40, 43, 11, 14, 18, nil, 24, 27, 29,
32, 29, 32, 8, nil, -56, nil, -56, 16, 5,
23, nil, 79, 19, 21, 25, 28, 31, 1, 3,
29, 32, 11, 14, 18, nil, 24, 27, 16, 5,
23, nil, 8, 19, 21, 25, 28, 31, 1, 3,
40, 43, 11, 14, 18, nil, 24, 27, 29, 32,
29, 32, 8, 29, 32, 112, 132, 16, 5, 23,
nil, 134, 19, 21, 25, 28, 31, 1, 3, 29,
32, 11, 14, 18, nil, 24, 27, 16, nil, 23,
nil, 8, 40, 43, 5, 146, nil, nil, 19, 21,
25, 28, 31, 1, 3, nil, nil, 11, 14, 18,
nil, 24, 27, -56, nil, -56, 16, 8, 23, nil,
5, nil, nil, nil, 19, 21, 25, 28, 31, 1,
3, nil, nil, 11, 14, 18, nil, 24, 27, -56,
nil, -56, 16, 8, 23, nil, 5, nil, nil, nil,
19, 21, 25, 28, 31, 1, 3, nil, nil, 11,
14, 18, nil, 24, 27, nil, nil, 5, 16, 8,
23, 19, 21, 25, 28, 31, 1, 3, nil, nil,
11, 14, 18, nil, 24, 27, 29, 32, nil, nil,
8, nil, 141, 5, 16, nil, 23, 19, 21, 25,
28, 31, 1, 3, nil, nil, 11, 14, 18, nil,
24, 27, nil, nil, 5, 16, 8, 23, 19, 21,
25, 28, 31, 1, 3, nil, nil, 11, 14, 18,
nil, 24, 27, nil, nil, nil, nil, 8, nil, nil,
5, 16, nil, 23, 19, 21, 25, 28, 31, 1,
3, nil, nil, 11, 14, 18, nil, 24, 27, -56,
nil, -56, 16, 8, 23, nil, 5, nil, nil, nil,
19, 21, 25, 28, 31, 1, 3, nil, nil, 11,
14, 18, nil, 24, 27, nil, nil, 5, 16, 8,
23, 19, 21, 25, 28, 31, 1, 3, nil, nil,
11, 14, 18, nil, 24, 27, nil, nil, nil, nil,
8, nil, nil, 5, 16, nil, 23, 19, 21, 25,
28, 31, 1, 3, nil, nil, 11, 14, 18, nil,
24, 27, nil, nil, 5, 16, 8, 23, 19, 21,
25, 28, 31, 1, 3, nil, nil, 11, 14, 18,
nil, 24, 27, nil, nil, nil, nil, 8, nil, nil,
5, 16, nil, 23, 19, 21, 25, 28, 31, 1,
3, nil, nil, 11, 14, 18, nil, 24, 27, -56,
nil, -56, 16, 8, 23, nil, 5, nil, nil, nil,
19, 21, 25, 28, 31, 1, 3, nil, nil, 11,
14, 18, nil, 24, 27, nil, nil, 5, 16, 8,
23, 19, 21, 25, 28, 31, 1, 3, nil, nil,
11, 14, 18, nil, 24, 27, nil, nil, nil, nil,
8, nil, nil, 5, 16, nil, 23, 19, 21, 25,
28, 31, 1, 3, nil, nil, 11, 14, 18, nil,
24, 27, nil, nil, 5, 16, 8, 23, 19, 21,
25, 28, 31, 1, 3, nil, nil, 11, 14, 18,
nil, 24, 27, nil, nil, nil, nil, 8, nil, nil,
5, 16, nil, 23, 19, 21, 25, 28, 31, 1,
3, nil, nil, 11, 14, 18, nil, 24, 27, nil,
nil, 5, 16, 8, 23, 19, 21, 25, 28, 31,
1, 3, nil, nil, 11, 14, 18, nil, 24, 27,
nil, nil, nil, nil, 8, nil, nil, 5, 16, nil,
23, 19, 21, 25, 28, 31, 1, 3, nil, nil,
11, 14, 18, nil, 24, 27, nil, nil, 5, 16,
8, 23, 19, 21, 25, 28, 31, 1, 3, nil,
nil, 11, 14, 18, nil, 24, 27, nil, nil, nil,
nil, 8, nil, nil, 5, 16, nil, 23, 19, 21,
25, 28, 31, 1, 3, nil, nil, 11, 14, 18,
nil, 24, 27, nil, nil, 5, 16, 8, 23, 19,
21, 25, 28, 31, 1, 3, nil, nil, 11, 14,
18, nil, 24, 27, nil, nil, nil, nil, 8, nil,
nil, 5, 16, nil, 23, 19, 21, 25, 28, 31,
1, 3, nil, nil, 11, 14, 18, nil, 24, 27,
nil, nil, 5, 16, 8, 23, 19, 21, 25, 28,
31, 1, 3, nil, nil, 11, 14, 18, nil, 24,
27, nil, nil, nil, nil, 8, nil, nil, 5, 16,
nil, 23, 19, 21, 25, 28, 31, 1, 3, nil,
nil, 11, 14, 18, nil, 24, 27, nil, nil, 5,
16, 8, 23, 19, 21, 25, 28, 31, 1, 3,
nil, nil, 11, 14, 18, nil, 24, 27, nil, nil,
nil, nil, 8, nil, nil, 5, 16, nil, 23, 19,
21, 25, 28, 31, 1, 3, nil, nil, 11, 14,
18, nil, 24, 27, nil, nil, 5, 16, 8, 23,
19, 21, 25, 28, 31, 1, 3, nil, nil, 11,
14, 18, nil, 24, 27, nil, nil, nil, nil, 8,
nil, nil, 5, 16, nil, 23, 19, 21, 25, 28,
31, 1, 3, nil, nil, 11, 14, 18, nil, 24,
27, nil, nil, 5, 16, 8, 23, 19, 21, 25,
28, 31, 1, 3, nil, nil, 11, 14, 18, nil,
24, 27, nil, nil, nil, nil, 8, nil, nil, 5,
16, nil, 23, 19, 21, 25, 28, 31, 1, 3,
nil, nil, 11, 14, 18, nil, 24, 27, nil, nil,
5, 16, 8, 23, 19, 21, 25, 28, 31, 1,
3, nil, nil, 11, 14, 18, nil, 24, 27, nil,
nil, nil, nil, 8, nil, nil, 5, 16, nil, 23,
19, 21, 25, 28, 31, 1, 3, nil, nil, 11,
14, 18, nil, 24, 27, nil, nil, 5, 16, 8,
23, 19, 21, 25, 28, 31, 1, 3, nil, nil,
11, 14, 18, 70, 24, 27, nil, nil, nil, nil,
8, nil, nil, 5, 16, nil, 23, 19, 21, 25,
28, 31, 1, 3, nil, nil, 11, 14, 18, nil,
24, 27, 29, 32, 69, 16, 8, 23, nil, 112,
71, 29, 32, nil, 74, 143, 139, nil, 125, 29,
32, nil, 126, 29, 32, nil, 112, nil, 113, nil,
nil, 16, nil, 23, 60, 39, 42, 45, 47, 49,
51, 53, 55, 57, 58, 59, 38, 41, 44, 46,
48, 50, 52, 54, 56, 83, nil, nil, 40, 43,
nil, 140, 19, 21, 25, 28, 31, 1, nil, nil,
nil, nil, 60, 39, 42, 45, 47, 49, 51, 53,
55, 57, 58, 59, 38, 41, 44, 46, 48, 50,
52, 54, 56, 29, 32, nil, 40, 43, 60, 39,
42, 45, 47, 49, 51, 53, 55, 57, 58, 59,
38, 41, 44, 46, 48, 50, 52, 54, 56, nil,
nil, nil, 40, 43, nil, 147, 60, 39, 42, 45,
47, 49, 51, 53, 55, 57, 58, 59, 38, 41,
44, 46, 48, 50, 52, 54, 56, -3, -3, nil,
40, 43, nil, -3, 60, 39, 42, 45, 47, 49,
51, 53, 55, 57, 58, 59, 38, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 40, 43,
60, 39, 42, 45, 47, 49, 51, 53, 55, 57,
58, 59, 38, 41, 44, 46, 48, 50, 52, 54,
56, nil, nil, nil, 40, 43, 60, 39, 42, 45,
47, 49, 51, 53, 55, 57, 58, 59, 38, 41,
44, 46, 48, 50, 52, 54, 56, nil, nil, nil,
40, 43, 60, 39, 42, 45, 47, 49, 51, 53,
55, 57, 58, 59, 38, 41, 44, 46, 48, 50,
52, 54, 56, nil, nil, nil, 40, 43, 60, 39,
42, 45, 47, 49, 51, 53, 55, 57, 58, 59,
38, 41, 44, 46, 48, 50, 52, 54, 56, nil,
nil, nil, 40, 43, 60, 39, 42, 45, 47, 49,
51, 53, 55, 57, 58, 59, 38, 41, 44, 46,
48, 50, 52, 54, 56, nil, nil, nil, 40, 43,
60, 39, 42, 45, 47, 49, 51, 53, 55, 57,
58, 59, 38, 41, 44, 46, 48, 50, 52, 54,
56, nil, nil, nil, 40, 43, 60, 39, 42, 45,
47, 49, 51, 53, 55, 57, 58, 59, 38, 41,
44, 46, 48, 50, 52, 54, 56, nil, nil, nil,
40, 43, 60, 39, 42, 45, 47, 49, 51, 53,
55, 57, 58, 59, 38, 41, 44, 46, 48, 50,
52, 54, 56, nil, nil, nil, 40, 43, 60, 39,
42, 45, 47, 49, 51, 53, 55, 57, 58, 59,
38, 41, 44, 46, 48, 50, 52, 54, 56, 60,
39, 42, 40, 43, 60, 39, 42, 45, 47, 49,
51, 53, 55, 57, 58, 59, 38, nil, nil, 60,
39, 42, nil, 40, 43, nil, nil, nil, 40, 43,
60, 39, 42, 45, 47, 49, 51, 53, 55, 57,
58, 59, 38, 40, 43, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 40, 43, 60, 39, 42, 45,
47, 49, 51, 53, 55, 57, 58, 59, 38, 41,
44, 46, 48, 50, 52, 54, 56, nil, nil, nil,
40, 43, 60, 39, 42, 45, 47, 49, 51, 53,
55, 57, 58, 59, 38, nil, nil, 60, 39, 42,
45, 47, nil, nil, nil, nil, 40, 43, 60, 39,
42, 45, 47, 49, 51, 53, 55, 57, 58, 59,
38, 40, 43, 60, 39, 42, 45, 47, nil, nil,
nil, nil, 40, 43, 60, 39, 42, 45, 47, 49,
51, 53, 55, 57, 58, 59, 38, 40, 43, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 40, 43,
60, 39, 42, 45, 47, 49, 51, 53, 55, 57,
58, 59, 38, 41, 44, 46, 48, 50, 52, 54,
56, nil, nil, nil, 40, 43, 60, 39, 42, 45,
47, 49, 51, 53, 55, 57, 58, 59, 38, 41,
44, 46, 48, 50, 52, 54, 56, nil, nil, nil,
40, 43, 60, 39, 42, 45, 47, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 40, 43, 60, 39,
42, 45, 47, 49, 51, 53, 55, 57, 58, 59,
38, 41, 44, 46, 48, 50, 52, 54, 56, nil,
nil, nil, 40, 43, 60, 39, 42, 45, 47, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 40, 43,
60, 39, 42, 45, 47, 49, 51, 53, 55, 57,
58, 59, 38, 41, 44, 46, 48, 50, 52, 54,
56, nil, nil, nil, 40, 43, 60, 39, 42, 45,
47, 49, 51, 53, 55, 57, 58, 59, 38, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
40, 43, 60, 39, 42, 45, 47, 49, 51, 53,
55, 57, 58, 59, 38, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 40, 43 ]
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
racc_action_check = [
0, 143, 0, 136, 26, 67, 0, 0, 0, 0,
0, 0, 0, 77, 14, 0, 0, 0, 14, 0,
0, 17, 5, 17, 70, 0, 5, 5, 5, 5,
5, 5, 5, 80, 80, 5, 5, 5, 143, 5,
5, 26, 0, 0, 136, 5, 61, 82, 82, 35,
0, 146, 0, 62, 77, 146, 146, 146, 146, 146,
146, 146, 88, 88, 146, 146, 146, 124, 146, 146,
5, 8, 5, 119, 146, 8, 8, 8, 8, 8,
8, 8, 75, 61, 8, 8, 8, 61, 8, 8,
62, 146, 146, 7, 8, 122, 122, 148, 148, 146,
110, 146, 122, 148, 110, 110, 110, 110, 110, 110,
110, 23, 125, 110, 110, 110, nil, 110, 110, 8,
66, 8, nil, 110, 66, 66, 66, 66, 66, 66,
66, 36, 36, 66, 66, 66, nil, 66, 66, 10,
10, 23, 23, 66, nil, 110, nil, 110, 110, 83,
110, nil, 23, 83, 83, 83, 83, 83, 83, 83,
66, 66, 83, 83, 83, nil, 83, 83, 66, 15,
66, nil, 83, 15, 15, 15, 15, 15, 15, 15,
109, 109, 15, 15, 15, nil, 15, 15, 120, 120,
114, 114, 15, 63, 63, 120, 114, 83, 16, 83,
nil, 120, 16, 16, 16, 16, 16, 16, 16, 15,
15, 16, 16, 16, nil, 16, 16, 15, nil, 15,
nil, 16, 91, 91, 142, 142, nil, nil, 142, 142,
142, 142, 142, 142, 142, nil, nil, 142, 142, 142,
nil, 142, 142, 16, nil, 16, 16, 142, 16, nil,
18, nil, nil, nil, 18, 18, 18, 18, 18, 18,
18, nil, nil, 18, 18, 18, nil, 18, 18, 142,
nil, 142, 142, 18, 142, nil, 111, nil, nil, nil,
111, 111, 111, 111, 111, 111, 111, nil, nil, 111,
111, 111, nil, 111, 111, nil, nil, 112, 18, 111,
18, 112, 112, 112, 112, 112, 112, 112, nil, nil,
112, 112, 112, nil, 112, 112, 128, 128, nil, nil,
112, nil, 128, 24, 111, nil, 111, 24, 24, 24,
24, 24, 24, 24, nil, nil, 24, 24, 24, nil,
24, 24, nil, nil, 74, 112, 24, 112, 74, 74,
74, 74, 74, 74, 74, nil, nil, 74, 74, 74,
nil, 74, 74, nil, nil, nil, nil, 74, nil, nil,
27, 24, nil, 24, 27, 27, 27, 27, 27, 27,
27, nil, nil, 27, 27, 27, nil, 27, 27, 74,
nil, 74, 74, 27, 74, nil, 121, nil, nil, nil,
121, 121, 121, 121, 121, 121, 121, nil, nil, 121,
121, 121, nil, 121, 121, nil, nil, 139, 27, 121,
27, 139, 139, 139, 139, 139, 139, 139, nil, nil,
139, 139, 139, nil, 139, 139, nil, nil, nil, nil,
139, nil, nil, 69, 121, nil, 121, 69, 69, 69,
69, 69, 69, 69, nil, nil, 69, 69, 69, nil,
69, 69, nil, nil, 37, 139, 69, 139, 37, 37,
37, 37, 37, 37, 37, nil, nil, 37, 37, 37,
nil, 37, 37, nil, nil, nil, nil, 37, nil, nil,
38, 69, nil, 69, 38, 38, 38, 38, 38, 38,
38, nil, nil, 38, 38, 38, nil, 38, 38, 37,
nil, 37, 37, 38, 37, nil, 39, nil, nil, nil,
39, 39, 39, 39, 39, 39, 39, nil, nil, 39,
39, 39, nil, 39, 39, nil, nil, 40, 38, 39,
38, 40, 40, 40, 40, 40, 40, 40, nil, nil,
40, 40, 40, nil, 40, 40, nil, nil, nil, nil,
40, nil, nil, 41, 39, nil, 39, 41, 41, 41,
41, 41, 41, 41, nil, nil, 41, 41, 41, nil,
41, 41, nil, nil, 42, 40, 41, 40, 42, 42,
42, 42, 42, 42, 42, nil, nil, 42, 42, 42,
nil, 42, 42, nil, nil, nil, nil, 42, nil, nil,
43, 41, nil, 41, 43, 43, 43, 43, 43, 43,
43, nil, nil, 43, 43, 43, nil, 43, 43, nil,
nil, 44, 42, 43, 42, 44, 44, 44, 44, 44,
44, 44, nil, nil, 44, 44, 44, nil, 44, 44,
nil, nil, nil, nil, 44, nil, nil, 45, 43, nil,
43, 45, 45, 45, 45, 45, 45, 45, nil, nil,
45, 45, 45, nil, 45, 45, nil, nil, 46, 44,
45, 44, 46, 46, 46, 46, 46, 46, 46, nil,
nil, 46, 46, 46, nil, 46, 46, nil, nil, nil,
nil, 46, nil, nil, 47, 45, nil, 45, 47, 47,
47, 47, 47, 47, 47, nil, nil, 47, 47, 47,
nil, 47, 47, nil, nil, 48, 46, 47, 46, 48,
48, 48, 48, 48, 48, 48, nil, nil, 48, 48,
48, nil, 48, 48, nil, nil, nil, nil, 48, nil,
nil, 49, 47, nil, 47, 49, 49, 49, 49, 49,
49, 49, nil, nil, 49, 49, 49, nil, 49, 49,
nil, nil, 50, 48, 49, 48, 50, 50, 50, 50,
50, 50, 50, nil, nil, 50, 50, 50, nil, 50,
50, nil, nil, nil, nil, 50, nil, nil, 51, 49,
nil, 49, 51, 51, 51, 51, 51, 51, 51, nil,
nil, 51, 51, 51, nil, 51, 51, nil, nil, 52,
50, 51, 50, 52, 52, 52, 52, 52, 52, 52,
nil, nil, 52, 52, 52, nil, 52, 52, nil, nil,
nil, nil, 52, nil, nil, 53, 51, nil, 51, 53,
53, 53, 53, 53, 53, 53, nil, nil, 53, 53,
53, nil, 53, 53, nil, nil, 54, 52, 53, 52,
54, 54, 54, 54, 54, 54, 54, nil, nil, 54,
54, 54, nil, 54, 54, nil, nil, nil, nil, 54,
nil, nil, 55, 53, nil, 53, 55, 55, 55, 55,
55, 55, 55, nil, nil, 55, 55, 55, nil, 55,
55, nil, nil, 56, 54, 55, 54, 56, 56, 56,
56, 56, 56, 56, nil, nil, 56, 56, 56, nil,
56, 56, nil, nil, nil, nil, 56, nil, nil, 57,
55, nil, 55, 57, 57, 57, 57, 57, 57, 57,
nil, nil, 57, 57, 57, nil, 57, 57, nil, nil,
58, 56, 57, 56, 58, 58, 58, 58, 58, 58,
58, nil, nil, 58, 58, 58, nil, 58, 58, nil,
nil, nil, nil, 58, nil, nil, 59, 57, nil, 57,
59, 59, 59, 59, 59, 59, 59, nil, nil, 59,
59, 59, nil, 59, 59, nil, nil, 60, 58, 59,
58, 60, 60, 60, 60, 60, 60, 60, nil, nil,
60, 60, 60, 22, 60, 60, nil, nil, nil, nil,
60, nil, nil, 84, 59, nil, 59, 84, 84, 84,
84, 84, 84, 84, nil, nil, 84, 84, 84, nil,
84, 84, 129, 129, 22, 60, 84, 60, nil, 129,
22, 78, 78, nil, 22, 129, 127, nil, 78, 65,
65, nil, 78, 84, 84, nil, 65, nil, 65, nil,
nil, 84, nil, 84, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 34, nil, nil, 127, 127,
nil, 127, 71, 71, 71, 71, 71, 71, nil, nil,
nil, nil, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, nil, 34, 34, 145, 145,
145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
145, 145, 145, 145, 145, 145, 145, 145, 145, nil,
nil, nil, 145, 145, nil, 145, 115, 115, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115, 115, nil,
115, 115, nil, 115, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 87, 87,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
68, nil, nil, nil, 68, 68, 130, 130, 130, 130,
130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
130, 130, 130, 130, 130, 130, 130, nil, nil, nil,
130, 130, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, nil, nil, nil, 131, 131, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64, 64, nil,
nil, nil, 64, 64, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, nil, nil, nil, 13, 13,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
86, nil, nil, nil, 86, 86, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, nil, nil, nil,
117, 117, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, nil, nil, nil, 135, 135, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 89, 89, 89, 94,
94, 94, 89, 89, 90, 90, 90, 90, 90, 90,
90, 90, 90, 90, 90, 90, 90, nil, nil, 96,
96, 96, nil, 94, 94, nil, nil, nil, 90, 90,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 96, 96, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 108, 108, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, nil, nil, nil,
92, 92, 93, 93, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, nil, nil, 98, 98, 98,
98, 98, nil, nil, nil, nil, 93, 93, 95, 95,
95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
95, 98, 98, 100, 100, 100, 100, 100, nil, nil,
nil, nil, 95, 95, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 100, 100, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 97, 97,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
99, nil, nil, nil, 99, 99, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
101, 101, 101, 101, 101, 101, 101, nil, nil, nil,
101, 101, 102, 102, 102, 102, 102, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 102, 102, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
103, 103, 103, 103, 103, 103, 103, 103, 103, nil,
nil, nil, 103, 103, 104, 104, 104, 104, 104, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 104, 104,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, nil, nil, nil, 105, 105, 107, 107, 107, 107,
107, 107, 107, 107, 107, 107, 107, 107, 107, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
107, 107, 106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 106, 106 ]
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, 93, 69, nil,
97, nil, nil, 1313, 2, 167, 196, -26, 248, nil,
nil, nil, 1010, 99, 321, nil, -9, 368, nil, nil,
nil, nil, nil, nil, 1101, 49, 86, 462, 488, 514,
535, 561, 582, 608, 629, 655, 676, 702, 723, 749,
770, 796, 817, 843, 864, 890, 911, 937, 958, 984,
1005, 33, 40, 151, 1287, 1027, 118, -10, 1209, 441,
12, 1106, nil, nil, 342, 38, nil, 1, 1019, nil,
-12, nil, 2, 147, 1031, nil, 1339, 1183, 17, 1417,
1443, 177, 1495, 1521, 1438, 1547, 1458, 1573, 1536, 1599,
1562, 1625, 1651, 1677, 1703, 1729, 1781, 1755, 1469, 135,
98, 274, 295, nil, 148, 1155, nil, 1365, nil, 22,
146, 394, 53, nil, 55, 100, nil, 1063, 274, 1010,
1235, 1261, nil, nil, nil, 1391, -9, nil, nil, 415,
nil, nil, 222, -12, nil, 1127, 49, nil, 55, nil ]
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, -24, -12, -59, -13, -56, -14, -84, -56, -15,
-2, -57, -16, -3, -84, -56, -76, -84, -56, -19,
-7, -20, -8, -69, -56, -21, -9, -56, -22, -17,
-10, -23, -18, -11, -84, -84, -29, -5, -56, -56,
-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, -84, -84, -6, -77, -84, -56, -84, -27, -56,
-84, -84, -60, -63, -76, -84, -70, -69, -84, -65,
-30, -61, -28, -56, -56, 150, -4, -43, -32, -52,
-44, -33, -53, -45, -34, -46, -35, -47, -36, -48,
-37, -49, -38, -50, -39, -51, -40, -41, -42, -31,
-76, -56, -56, -75, -84, -54, -58, -25, -62, -84,
-84, -56, -84, -66, -84, -84, -67, -84, -84, -84,
-79, -78, -55, -64, -73, -26, -84, -72, -71, -56,
-80, -81, -5, -74, -68, -84, -56, -82, -84, -83 ]
-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, 37, 65, 78, 81, 137, 138, 61, 62, 119,
7, nil, nil, nil, 77, 63, nil, 137, nil, nil,
nil, nil, nil, nil, nil, 84, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
81, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 37, nil, 111, 122, nil, nil,
120, nil, nil, nil, nil, nil, 114, nil, nil, 124,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 128, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 129, nil, nil, nil,
nil, nil, nil, nil, nil, 37, nil, nil, nil, nil,
nil, 111, nil, 136, nil, 34, nil, nil, 36, 142,
111, nil, nil, nil, nil, nil, 64, nil, 68, nil,
nil, nil, nil, nil, 80, nil, nil, 82, nil, 37,
nil, nil, nil, nil, nil, nil, 148, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
109, nil, nil, nil, nil, nil, 115, nil, nil, 117,
nil, nil, nil, nil, 64, nil, nil, nil, nil, nil,
nil, nil, nil, 127, nil, nil, nil, nil, nil, nil,
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,
64, 130, 131, nil, nil, nil, nil, nil, nil, nil,
nil, 135, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, 145,
nil, nil, 86 ]
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, 20, 19, 17, 15, 15, 6, 7, 5,
1, nil, nil, nil, 4, 2, nil, 15, nil, nil,
nil, nil, nil, nil, nil, 4, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
17, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 4, nil, 4, 19, nil, nil,
20, nil, nil, nil, nil, nil, 2, nil, nil, 4,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, 2, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, 20, nil, nil, nil,
nil, nil, nil, nil, nil, 4, nil, nil, nil, nil,
nil, 4, nil, 4, nil, 3, nil, nil, 3, 4,
4, nil, nil, nil, nil, nil, 3, nil, 3, nil,
nil, nil, nil, nil, 3, nil, nil, 3, nil, 4,
nil, nil, nil, nil, nil, nil, 2, 3, 3, 3,
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, 3, 3, 3, 3, 3,
3, nil, nil, nil, nil, nil, 3, nil, nil, 3,
nil, nil, nil, nil, 3, nil, nil, nil, nil, nil,
nil, nil, nil, 3, nil, nil, nil, nil, nil, nil,
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,
3, 3, 3, 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, 3,
nil, nil, 3 ]
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, 110, -9, -62, -7, -6, nil, nil,
nil, nil, nil, nil, nil, -119, nil, -22, nil, -20,
-14 ]
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, 15, 20, 22, 26, 30, 33,
2, 4, 6, 9, 12, 76, 17, 72, 73, nil,
nil ]
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,
@@ -513,21 +318,21 @@ racc_reduce_table = [
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_19,
1, 61, :_reduce_20,
1, 61, :_reduce_21,
1, 61, :_reduce_22,
1, 61, :_reduce_23,
1, 61, :_reduce_24,
3, 64, :_reduce_25,
3, 71, :_reduce_26,
2, 70, :_reduce_27,
2, 67, :_reduce_28,
1, 61, :_reduce_25,
3, 64, :_reduce_26,
3, 72, :_reduce_27,
2, 70, :_reduce_28,
2, 67, :_reduce_29,
2, 67, :_reduce_30,
3, 67, :_reduce_31,
2, 67, :_reduce_31,
3, 67, :_reduce_32,
3, 67, :_reduce_33,
3, 67, :_reduce_34,
@@ -550,40 +355,41 @@ racc_reduce_table = [
3, 67, :_reduce_51,
3, 67, :_reduce_52,
3, 67, :_reduce_53,
3, 66, :_reduce_54,
3, 67, :_reduce_54,
4, 66, :_reduce_55,
0, 72, :_reduce_56,
1, 72, :_reduce_57,
3, 72, :_reduce_58,
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, 73, :_reduce_62,
1, 73, :_reduce_63,
3, 74, :_reduce_64,
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, 75, :_reduce_69,
1, 75, :_reduce_70,
3, 75, :_reduce_71,
3, 75, :_reduce_72,
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, 76, :_reduce_76,
1, 76, :_reduce_77,
3, 76, :_reduce_78,
3, 76, :_reduce_79,
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 ]
8, 69, :_reduce_83,
3, 71, :_reduce_84 ]
racc_reduce_n = 84
racc_reduce_n = 85
racc_shift_n = 150
racc_shift_n = 153
racc_token_table = {
false => 0,
@@ -735,6 +541,7 @@ Racc_token_to_s_table = [
"Array",
"If",
"Return",
"Parenthetical",
"AssignObj",
"ParamList",
"Accessor",
@@ -742,7 +549,7 @@ Racc_token_to_s_table = [
"AssignList",
"ArgList" ]
Racc_debug_parser = false
Racc_debug_parser = true
##### State transition tables end #####
@@ -814,12 +621,7 @@ module_eval(<<'.,.,', 'grammar.y', 47)
# reduce 18 omitted
module_eval(<<'.,.,', 'grammar.y', 72)
def _reduce_19(val, _values, result)
result = LiteralNode.new(val[0])
result
end
.,.,
# reduce 19 omitted
module_eval(<<'.,.,', 'grammar.y', 73)
def _reduce_20(val, _values, result)
@@ -837,49 +639,49 @@ module_eval(<<'.,.,', 'grammar.y', 74)
module_eval(<<'.,.,', 'grammar.y', 75)
def _reduce_22(val, _values, result)
result = LiteralNode.new(true)
result = LiteralNode.new(val[0])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 76)
def _reduce_23(val, _values, result)
result = LiteralNode.new(false)
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', 82)
def _reduce_25(val, _values, result)
module_eval(<<'.,.,', 'grammar.y', 83)
def _reduce_26(val, _values, result)
result = AssignNode.new(val[0], val[2])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 87)
def _reduce_26(val, _values, result)
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', 92)
def _reduce_27(val, _values, result)
result = ReturnNode.new(val[1])
result
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 99)
module_eval(<<'.,.,', 'grammar.y', 93)
def _reduce_28(val, _values, result)
result = OpNode.new(val[0], val[1])
result = ReturnNode.new(val[1])
result
end
.,.,
@@ -898,9 +700,9 @@ module_eval(<<'.,.,', 'grammar.y', 101)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 104)
module_eval(<<'.,.,', 'grammar.y', 102)
def _reduce_31(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result = OpNode.new(val[0], val[1])
result
end
.,.,
@@ -919,7 +721,7 @@ module_eval(<<'.,.,', 'grammar.y', 106)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 108)
module_eval(<<'.,.,', 'grammar.y', 107)
def _reduce_34(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -933,7 +735,7 @@ module_eval(<<'.,.,', 'grammar.y', 109)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 111)
module_eval(<<'.,.,', 'grammar.y', 110)
def _reduce_36(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -961,7 +763,7 @@ module_eval(<<'.,.,', 'grammar.y', 114)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 116)
module_eval(<<'.,.,', 'grammar.y', 115)
def _reduce_40(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -989,7 +791,7 @@ module_eval(<<'.,.,', 'grammar.y', 119)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 121)
module_eval(<<'.,.,', 'grammar.y', 120)
def _reduce_44(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1017,7 +819,7 @@ module_eval(<<'.,.,', 'grammar.y', 124)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 126)
module_eval(<<'.,.,', 'grammar.y', 125)
def _reduce_48(val, _values, result)
result = OpNode.new(val[1], val[0], val[2])
result
@@ -1059,9 +861,9 @@ module_eval(<<'.,.,', 'grammar.y', 131)
end
.,.,
module_eval(<<'.,.,', 'grammar.y', 137)
module_eval(<<'.,.,', 'grammar.y', 132)
def _reduce_54(val, _values, result)
result = CodeNode.new(val[0], val[2])
result = OpNode.new(val[1], val[0], val[2])
result
end
.,.,
@@ -1269,6 +1071,13 @@ module_eval(<<'.,.,', 'grammar.y', 206)
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

View File

@@ -1,6 +1,6 @@
# Recompile the Parser.
# With debugging and verbose: -v -g
`racc -o parser.rb grammar.y`
`racc -g -o parser.rb grammar.y`
# Parse and print "code.jaa".
require "parser.rb"