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