提交 fe06e9ac 编写于 作者: A Aaron Patterson

make the AST go from left to right, rather than right to left

上级 dc2e3ea8
#
# DO NOT MODIFY!!!!
# This file is automatically generated by Racc 1.4.9
# from Racc grammar file "".
# This file is automatically generated by Racc 1.4.11
# from Racc grammer file "".
#
require 'racc/parser.rb'
......@@ -9,42 +9,38 @@
require 'action_dispatch/journey/parser_extras'
module ActionDispatch
module Journey # :nodoc:
class Parser < Racc::Parser # :nodoc:
module Journey
class Parser < Racc::Parser
##### State transition tables begin ###
racc_action_table = [
17, 21, 13, 15, 14, 7, nil, 16, 8, 19,
13, 15, 14, 7, 23, 16, 8, 19, 13, 15,
14, 7, nil, 16, 8, 13, 15, 14, 7, nil,
16, 8, 13, 15, 14, 7, nil, 16, 8 ]
13, 15, 14, 7, 21, 16, 8, 19, 13, 15,
14, 7, 17, 16, 8, 13, 15, 14, 7, 24,
16, 8, 13, 15, 14, 7, 19, 16, 8 ]
racc_action_check = [
1, 17, 1, 1, 1, 1, nil, 1, 1, 1,
20, 20, 20, 20, 20, 20, 20, 20, 7, 7,
7, 7, nil, 7, 7, 19, 19, 19, 19, nil,
19, 19, 0, 0, 0, 0, nil, 0, 0 ]
2, 2, 2, 2, 17, 2, 2, 2, 0, 0,
0, 0, 1, 0, 0, 19, 19, 19, 19, 20,
19, 19, 7, 7, 7, 7, 22, 7, 7 ]
racc_action_pointer = [
30, 0, nil, nil, nil, nil, nil, 16, nil, nil,
nil, nil, nil, nil, nil, nil, nil, 1, nil, 23,
8, nil, nil, nil ]
6, 12, -2, nil, nil, nil, nil, 20, nil, nil,
nil, nil, nil, nil, nil, nil, nil, 4, nil, 13,
13, nil, 17, nil, nil ]
racc_action_default = [
-18, -18, -2, -3, -4, -5, -6, -18, -9, -10,
-11, -12, -13, -14, -15, -16, -17, -18, -1, -18,
-18, 24, -8, -7 ]
-19, -19, -2, -3, -4, -5, -6, -19, -10, -11,
-12, -13, -14, -15, -16, -17, -18, -19, -1, -19,
-19, 25, -8, -9, -7 ]
racc_goto_table = [
18, 1, nil, nil, nil, nil, nil, nil, 20, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 22, 18 ]
1, 22, 18, 23, nil, nil, nil, 20 ]
racc_goto_check = [
2, 1, nil, nil, nil, nil, nil, nil, 1, nil,
nil, nil, nil, nil, nil, nil, nil, nil, 2, 2 ]
1, 2, 1, 3, nil, nil, nil, 1 ]
racc_goto_pointer = [
nil, 1, -1, nil, nil, nil, nil, nil, nil, nil,
nil, 0, -18, -16, nil, nil, nil, nil, nil, nil,
nil ]
racc_goto_default = [
......@@ -61,19 +57,20 @@ class Parser < Racc::Parser # :nodoc:
1, 12, :_reduce_none,
3, 15, :_reduce_7,
3, 13, :_reduce_8,
1, 16, :_reduce_9,
3, 13, :_reduce_9,
1, 16, :_reduce_10,
1, 14, :_reduce_none,
1, 14, :_reduce_none,
1, 14, :_reduce_none,
1, 14, :_reduce_none,
1, 19, :_reduce_14,
1, 17, :_reduce_15,
1, 18, :_reduce_16,
1, 20, :_reduce_17 ]
1, 19, :_reduce_15,
1, 17, :_reduce_16,
1, 18, :_reduce_17,
1, 20, :_reduce_18 ]
racc_reduce_n = 18
racc_reduce_n = 19
racc_shift_n = 24
racc_shift_n = 25
racc_token_table = {
false => 0,
......@@ -137,12 +134,12 @@ class Parser < Racc::Parser # :nodoc:
# reduce 0 omitted
def _reduce_1(val, _values, result)
result = Cat.new(val.first, val.last)
result = Cat.new(val.first, val.last)
result
end
def _reduce_2(val, _values, result)
result = val.first
result = val.first
result
end
......@@ -155,21 +152,24 @@ def _reduce_2(val, _values, result)
# reduce 6 omitted
def _reduce_7(val, _values, result)
result = Group.new(val[1])
result = Group.new(val[1])
result
end
def _reduce_8(val, _values, result)
result = Or.new([val.first, val.last])
result = Or.new([val.first, val.last])
result
end
def _reduce_9(val, _values, result)
result = Star.new(Symbol.new(val.last))
result = Or.new([val.first, val.last])
result
end
# reduce 10 omitted
def _reduce_10(val, _values, result)
result = Star.new(Symbol.new(val.last))
result
end
# reduce 11 omitted
......@@ -177,23 +177,25 @@ def _reduce_9(val, _values, result)
# reduce 13 omitted
def _reduce_14(val, _values, result)
result = Slash.new('/')
result
end
# reduce 14 omitted
def _reduce_15(val, _values, result)
result = Symbol.new(val.first)
result = Slash.new('/')
result
end
def _reduce_16(val, _values, result)
result = Literal.new(val.first)
result = Symbol.new(val.first)
result
end
def _reduce_17(val, _values, result)
result = Dot.new(val.first)
result = Literal.new(val.first)
result
end
def _reduce_18(val, _values, result)
result = Dot.new(val.first)
result
end
......
......@@ -4,7 +4,7 @@ token SLASH LITERAL SYMBOL LPAREN RPAREN DOT STAR OR
rule
expressions
: expressions expression { result = Cat.new(val.first, val.last) }
: expression expressions { result = Cat.new(val.first, val.last) }
| expression { result = val.first }
| or
;
......@@ -17,7 +17,8 @@ rule
: LPAREN expressions RPAREN { result = Group.new(val[1]) }
;
or
: expressions OR expression { result = Or.new([val.first, val.last]) }
: expression OR expression { result = Or.new([val.first, val.last]) }
| expression OR or { result = Or.new([val.first, val.last]) }
;
star
: STAR { result = Star.new(Symbol.new(val.last)) }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册