Skip to content

Commit

Permalink
AST: generalized a way to handle STAR node type
Browse files Browse the repository at this point in the history
  • Loading branch information
bogdan committed May 23, 2012
1 parent 622f535 commit d59c75e
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 27 deletions.
2 changes: 1 addition & 1 deletion lib/journey/nodes/node.rb
Expand Up @@ -29,7 +29,7 @@ def to_sym
end end


def name def name
left.tr ':', '' left.tr '*:', ''
end end


def type def type
Expand Down
38 changes: 19 additions & 19 deletions lib/journey/parser.rb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/journey/parser.y
Expand Up @@ -20,7 +20,7 @@ rule
: expressions OR expression { result = Or.new([val.first, val.last]) } : expressions OR expression { result = Or.new([val.first, val.last]) }
; ;
star star
: STAR literal { result = Star.new(Symbol.new(val.last.left)) } : STAR { result = Star.new(Symbol.new(val.last)) }
; ;
terminal terminal
: symbol : symbol
Expand Down
2 changes: 1 addition & 1 deletion lib/journey/scanner.rb
Expand Up @@ -35,7 +35,7 @@ def scan
# / # /
when text = @ss.scan(/\//) when text = @ss.scan(/\//)
[:SLASH, text] [:SLASH, text]
when text = @ss.scan(/\*/) when text = @ss.scan(/\*\w+/)
[:STAR, text] [:STAR, text]
when text = @ss.scan(/\(/) when text = @ss.scan(/\(/)
[:LPAREN, text] [:LPAREN, text]
Expand Down
4 changes: 0 additions & 4 deletions lib/journey/visitors.rb
Expand Up @@ -68,10 +68,6 @@ def terminal node
node.left node.left
end end


def visit_STAR node
"*" + super
end

def visit_GROUP node def visit_GROUP node
"(#{visit node.left})" "(#{visit node.left})"
end end
Expand Down
2 changes: 1 addition & 1 deletion test/route/definition/test_scanner.rb
Expand Up @@ -11,7 +11,7 @@ def setup
def test_tokens def test_tokens
[ [
['/', [[:SLASH, '/']]], ['/', [[:SLASH, '/']]],
['*omg', [[:STAR, '*'], [:LITERAL, 'omg']]], ['*omg', [[:STAR, '*omg']]],
['/page', [[:SLASH, '/'], [:LITERAL, 'page']]], ['/page', [[:SLASH, '/'], [:LITERAL, 'page']]],
['/~page', [[:SLASH, '/'], [:LITERAL, '~page']]], ['/~page', [[:SLASH, '/'], [:LITERAL, '~page']]],
['/pa-ge', [[:SLASH, '/'], [:LITERAL, 'pa-ge']]], ['/pa-ge', [[:SLASH, '/'], [:LITERAL, 'pa-ge']]],
Expand Down

0 comments on commit d59c75e

Please sign in to comment.