# File lib/journey/scanner.rb, line 5 def initialize @ss = nil end
# File lib/journey/scanner.rb, line 13 def eos? @ss.eos? end
# File lib/journey/scanner.rb, line 25 def next_token return if @ss.eos? until token = scan || @ss.eos?; end token end
# File lib/journey/scanner.rb, line 17 def pos @ss.pos end
# File lib/journey/scanner.rb, line 21 def pre_match @ss.pre_match end
# File lib/journey/scanner.rb, line 9 def scan_setup str @ss = StringScanner.new str end
# File lib/journey/scanner.rb, line 33 def scan case # / when text = @ss.scan(/\//) [:SLASH, text] when text = @ss.scan(/\*/) [:STAR, text] when text = @ss.scan(/\(/) [:LPAREN, text] when text = @ss.scan(/\)/) [:RPAREN, text] when text = @ss.scan(/\|/) [:OR, text] when text = @ss.scan(/\./) [:DOT, text] when text = @ss.scan(/:\w+/) [:SYMBOL, text] when text = @ss.scan(/[\w%\-~]+/) [:LITERAL, text] # any char when text = @ss.scan(/./) [:LITERAL, text] end end