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 Gruverclass DFASubclass < ANTLR3::DFA 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver EOT = [1, 2].freeze 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver EOF = [3, 4].freeze 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver MAX = [5, 6].freeze 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver MIN = [7, 8].freeze 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ACCEPT = [9, 10, 11].freeze 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver SPECIAL = [12].freeze 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver TRANSITION = [ 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver [13, 14, 15, 16].freeze, 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver [].freeze 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ].freeze 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestDFA < Test::Unit::TestCase 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_init 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa = DFASubclass.new(nil, 1) 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.eot.should == DFASubclass::EOT 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.eof.should == DFASubclass::EOF 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.max.should == DFASubclass::MAX 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.min.should == DFASubclass::MIN 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.accept.should == DFASubclass::ACCEPT 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.special.should == DFASubclass::SPECIAL 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver dfa.transition.should == DFASubclass::TRANSITION 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver def test_unpack 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver packed = [ 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 1, 3, 1, 4, 2, -1, 1, 5, 18, -1, 1, 2, 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 25, -1, 1, 6, 6, -1, 26, 6, 4, -1, 1, 6, 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 1, -1, 26, 6 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ] 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver unpacked = [ 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 3, 4, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6, -1, -1, -1, -1, -1, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -1, -1, -1, -1, 6, -1, 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6, 6, 6, 6, 6 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ] 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ANTLR3::DFA.unpack(*packed).should == unpacked 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver end 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverend 53