1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#!/usr/bin/ruby
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# encoding: utf-8
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'antlr3/test/functional'
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestSyntacticPredicate < ANTLR3::Test::Functional
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  inline_grammar( <<-'END' )
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    lexer grammar SyntacticPredicateGate;
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    options {
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      language = Ruby;
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOO
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      : ('ab')=> A
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      | ('ac')=> B
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      ;
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    fragment
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    A: 'a';
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    fragment
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    B: 'a';
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  END
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  example 'gating syntactic predicate rule' do
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    lexer = SyntacticPredicateGate::Lexer.new( 'ac' )
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    token = lexer.next_token
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend
32