| #!/usr/bin/ruby |
| # encoding: utf-8 |
| |
| require 'antlr3' |
| require 'test/unit' |
| require 'spec' |
| |
| class DFASubclass < ANTLR3::DFA |
| EOT = [1, 2].freeze |
| EOF = [3, 4].freeze |
| MAX = [5, 6].freeze |
| MIN = [7, 8].freeze |
| ACCEPT = [9, 10, 11].freeze |
| SPECIAL = [12].freeze |
| TRANSITION = [ |
| [13, 14, 15, 16].freeze, |
| [].freeze |
| ].freeze |
| end |
| |
| class TestDFA < Test::Unit::TestCase |
| def test_init |
| dfa = DFASubclass.new(nil, 1) |
| dfa.eot.should == DFASubclass::EOT |
| dfa.eof.should == DFASubclass::EOF |
| dfa.max.should == DFASubclass::MAX |
| dfa.min.should == DFASubclass::MIN |
| dfa.accept.should == DFASubclass::ACCEPT |
| dfa.special.should == DFASubclass::SPECIAL |
| dfa.transition.should == DFASubclass::TRANSITION |
| end |
| |
| def test_unpack |
| packed = [ |
| 1, 3, 1, 4, 2, -1, 1, 5, 18, -1, 1, 2, |
| 25, -1, 1, 6, 6, -1, 26, 6, 4, -1, 1, 6, |
| 1, -1, 26, 6 |
| ] |
| unpacked = [ |
| 3, 4, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, |
| 6, -1, -1, -1, -1, -1, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
| 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -1, -1, -1, -1, 6, -1, |
| 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
| 6, 6, 6, 6, 6 |
| ] |
| |
| ANTLR3::DFA.unpack(*packed).should == unpacked |
| end |
| |
| end |