1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#!/usr/bin/ruby
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# encoding: utf-8
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'antlr3'
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'test/unit'
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverrequire 'spec'
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverinclude ANTLR3
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestTokenSource < Test::Unit::TestCase
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  TrivialToken = Struct.new(:type) do
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    include Token
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  class TestSource
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    include TokenSource
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def initialize
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      @tokens = (1..4).map { |i| TrivialToken[i] }
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      @tokens << TrivialToken[EOF]
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def next_token
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      @tokens.shift
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_iterator_interface
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    src = TestSource.new
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    tokens = []
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    src.each do |token|
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver      tokens << token.type
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    end
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    tokens.should == [1,2,3,4]
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestLexer < Test::Unit::TestCase
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  class TLexer < Lexer
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @antlr_version = ANTLR3::ANTLR_VERSION.dup
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  def test_init
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    stream = StringStream.new('foo')
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    TLexer.new(stream)
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver  end
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver__END__
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertestrecognizers.py                           | LN | STATUS
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver---------------------------------------------+----+--------------
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestBaseRecognizer(unittest.TestCase)  | 07 | [x]
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def testGetRuleInvocationStack(self)     | 10 | [x]
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestTokenSource(unittest.TestCase)     | 20 | [x]
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def testIteratorInterface(self)          | 24 | [x]
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestLexer(unittest.TestCase)           | 54 | [x]
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def testInit(self)                       | 56 | [x]