gpt4 book ai didi

Ruby StringScanner 用于词法分析 : how to get the line number?

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:57 26 4
gpt4 key购买 nike

我正在使用 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

初步估计,这很好用,只是我不知道现在如何获取@line 编号。

我已经阅读了文档,begin_of_line 在哪里?方法似乎合适,但我不知道如何使用它。

最佳答案

将您正在扫描的文本保存在一个变量中并使用“计数”

我在我的代码中使用了以下内容:

def current_line_number; @text[0..@scanner.pos].count("\n") + 1; end

关于Ruby StringScanner 用于词法分析 : how to get the line number?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com