| #!/usr/bin/ruby |
| # encoding: utf-8 |
| |
| require 'antlr3/test/functional' |
| |
| class TestBug80 < ANTLR3::Test::Functional |
| inline_grammar( <<-'END' ) |
| lexer grammar Bug80; |
| options { language = Ruby; } |
| |
| ID_LIKE |
| : 'defined' |
| | {false}? Identifier |
| | Identifier |
| ; |
| |
| fragment |
| // with just 'a', output compiles |
| Identifier: 'a'..'z'+ ; |
| END |
| |
| example "um... something" do |
| lexer = Bug80::Lexer.new( 'defined' ) |
| tokens = lexer.each { |tk| tk } |
| end |
| end |
| |
| |
| class TestEOF < ANTLR3::Test::Functional |
| |
| inline_grammar( <<-'END' ) |
| lexer grammar EndOfFile; |
| |
| options { |
| language = Ruby; |
| } |
| |
| KEND: EOF; |
| SPACE: ' '; |
| END |
| |
| example 'referencing EOF in a rule' do |
| lexer = EndOfFile::Lexer.new( " " ) |
| tks = lexer.map { |tk| tk } |
| end |
| end |