tokenizer_testcase.rb

来自「用ruby on rails写的一个博客程序,还不错..ruby on rail」· RB 代码 · 共 41 行

RB
41
字号
$:.unshift File.dirname(__FILE__) + "/../../lib"require 'test/unit'require 'syntax'class TokenizerTestCase < Test::Unit::TestCase  def self.syntax( type )    class_eval <<-EOF      def setup        @tokenizer = Syntax.load(#{type.inspect})      end    EOF  end  def default_test  end  private    attr_reader :tokenizer    def tokenize( string )      @tokens = []      @tokenizer.tokenize( string ) { |tok| @tokens << tok }    end    def assert_next_token(group, lexeme, instruction=:none)      assert false, "no tokens in stack" if @tokens.nil? or @tokens.empty?      assert_equal [group, lexeme, instruction],        [@tokens.first.group, @tokens.first, @tokens.shift.instruction]    end    def assert_no_next_token      assert @tokens.empty?    end    def skip_token( n=1 )      n.times { @tokens.shift } unless @tokens.nil? || @tokens.empty?    endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?