Ruby StringScanner используется для лексического анализа: как получить номер строки?

Я использую StringScanner для лексического анализа следующим образом:

def next
 @scanner.skip(/\s+/)
 value,kind=nil,nil
 TOKEN_DEF.each{|tok,regex| (kind=tok;break) if @scanner.scan(regex)}
 return Token.new(kind,value,@line,@scanner.pos)
end

В первом приближении, это работает хорошо, за исключением того, что я не могу понять, как теперь получить номер @строки.

Я прочитал документацию, где метод begin_of_line? кажется подходящим, но я не могу понять, как его использовать.

5
задан JCLL 10 February 2012 в 15:08
поделиться