1#!/usr/bin/ruby
2# encoding: utf-8
3
4require 'antlr3/test/functional'
5
6class TestBug80 < ANTLR3::Test::Functional
7  inline_grammar( <<-'END' )
8    lexer grammar Bug80;
9    options { language = Ruby; }
10     
11    ID_LIKE
12        : 'defined' 
13        | {false}? Identifier 
14        | Identifier 
15        ; 
16     
17    fragment
18    // with just 'a', output compiles
19    Identifier: 'a'..'z'+ ;
20  END
21  
22  example "um... something" do
23    lexer = Bug80::Lexer.new( 'defined' )
24    tokens = lexer.each { |tk| tk }
25  end
26end
27
28
29class TestEOF < ANTLR3::Test::Functional
30
31  inline_grammar( <<-'END' )
32    lexer grammar EndOfFile;
33    
34    options {
35      language = Ruby;
36    }
37    
38    KEND: EOF;
39    SPACE: ' ';
40  END
41  
42  example 'referencing EOF in a rule' do
43    lexer = EndOfFile::Lexer.new( " " )
44    tks = lexer.map { |tk| tk }
45  end
46end
47