You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
#!/usr/bin/ruby
|
|
# encoding: utf-8
|
|
|
|
require 'antlr3'
|
|
require 'test/unit'
|
|
require 'spec'
|
|
|
|
include ANTLR3
|
|
|
|
class TestTokenSource < Test::Unit::TestCase
|
|
TrivialToken = Struct.new(:type) do
|
|
include Token
|
|
end
|
|
class TestSource
|
|
include TokenSource
|
|
def initialize
|
|
@tokens = (1..4).map { |i| TrivialToken[i] }
|
|
@tokens << TrivialToken[EOF]
|
|
end
|
|
|
|
def next_token
|
|
@tokens.shift
|
|
end
|
|
end
|
|
|
|
def test_iterator_interface
|
|
src = TestSource.new
|
|
tokens = []
|
|
src.each do |token|
|
|
tokens << token.type
|
|
end
|
|
tokens.should == [1,2,3,4]
|
|
end
|
|
|
|
end
|
|
|
|
class TestLexer < Test::Unit::TestCase
|
|
class TLexer < Lexer
|
|
@antlr_version = ANTLR3::ANTLR_VERSION.dup
|
|
end
|
|
def test_init
|
|
stream = StringStream.new('foo')
|
|
TLexer.new(stream)
|
|
end
|
|
end
|
|
|
|
__END__
|
|
testrecognizers.py | LN | STATUS
|
|
---------------------------------------------+----+--------------
|
|
class TestBaseRecognizer(unittest.TestCase) | 07 | [x]
|
|
def testGetRuleInvocationStack(self) | 10 | [x]
|
|
class TestTokenSource(unittest.TestCase) | 20 | [x]
|
|
def testIteratorInterface(self) | 24 | [x]
|
|
class TestLexer(unittest.TestCase) | 54 | [x]
|
|
def testInit(self) | 56 | [x] |