xref: /aosp_15_r20/external/antlr/runtime/Ruby/test/unit/test-recognizers.rb (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robot#!/usr/bin/ruby
2*16467b97STreehugger Robot# encoding: utf-8
3*16467b97STreehugger Robot
4*16467b97STreehugger Robotrequire 'antlr3'
5*16467b97STreehugger Robotrequire 'test/unit'
6*16467b97STreehugger Robotrequire 'spec'
7*16467b97STreehugger Robot
8*16467b97STreehugger Robotinclude ANTLR3
9*16467b97STreehugger Robot
10*16467b97STreehugger Robotclass TestTokenSource < Test::Unit::TestCase
11*16467b97STreehugger Robot  TrivialToken = Struct.new(:type) do
12*16467b97STreehugger Robot    include Token
13*16467b97STreehugger Robot  end
14*16467b97STreehugger Robot  class TestSource
15*16467b97STreehugger Robot    include TokenSource
16*16467b97STreehugger Robot    def initialize
17*16467b97STreehugger Robot      @tokens = (1..4).map { |i| TrivialToken[i] }
18*16467b97STreehugger Robot      @tokens << TrivialToken[EOF]
19*16467b97STreehugger Robot    end
20*16467b97STreehugger Robot
21*16467b97STreehugger Robot    def next_token
22*16467b97STreehugger Robot      @tokens.shift
23*16467b97STreehugger Robot    end
24*16467b97STreehugger Robot  end
25*16467b97STreehugger Robot
26*16467b97STreehugger Robot  def test_iterator_interface
27*16467b97STreehugger Robot    src = TestSource.new
28*16467b97STreehugger Robot    tokens = []
29*16467b97STreehugger Robot    src.each do |token|
30*16467b97STreehugger Robot      tokens << token.type
31*16467b97STreehugger Robot    end
32*16467b97STreehugger Robot    tokens.should == [1,2,3,4]
33*16467b97STreehugger Robot  end
34*16467b97STreehugger Robot
35*16467b97STreehugger Robotend
36*16467b97STreehugger Robot
37*16467b97STreehugger Robotclass TestLexer < Test::Unit::TestCase
38*16467b97STreehugger Robot  class TLexer < Lexer
39*16467b97STreehugger Robot    @antlr_version = ANTLR3::ANTLR_VERSION.dup
40*16467b97STreehugger Robot  end
41*16467b97STreehugger Robot  def test_init
42*16467b97STreehugger Robot    stream = StringStream.new('foo')
43*16467b97STreehugger Robot    TLexer.new(stream)
44*16467b97STreehugger Robot  end
45*16467b97STreehugger Robotend
46*16467b97STreehugger Robot
47*16467b97STreehugger Robot__END__
48*16467b97STreehugger Robottestrecognizers.py                           | LN | STATUS
49*16467b97STreehugger Robot---------------------------------------------+----+--------------
50*16467b97STreehugger Robotclass TestBaseRecognizer(unittest.TestCase)  | 07 | [x]
51*16467b97STreehugger Robot    def testGetRuleInvocationStack(self)     | 10 | [x]
52*16467b97STreehugger Robotclass TestTokenSource(unittest.TestCase)     | 20 | [x]
53*16467b97STreehugger Robot    def testIteratorInterface(self)          | 24 | [x]
54*16467b97STreehugger Robotclass TestLexer(unittest.TestCase)           | 54 | [x]
55*16467b97STreehugger Robot    def testInit(self)                       | 56 | [x]