- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 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/
我正在尝试使用 StringScanner将字符串解析为标记以便稍后处理。在我测试正则表达式语法解析之前,一切都很顺利。 Regexen 看起来像这样: r|hello|gmi r:there|the
我正在使用 Ruby 的 StringScanner 规范化一些英文文本。 def normalize text s = '' ss = StringScanner.new text wh
是否有相当于ruby 的StringScanner class 的python 类? ?我可以一起破解一些东西,但如果已经存在,我不想重新发明轮子。 最佳答案 有趣的是,有一个未记录的 Scanner
我有一个使用 ruby 的标准 StringScanner 编写的解析器。如果我可以在流式文件上使用它,那就太好了。有没有不需要我将整个字符串加载到内存中的 StringScanner 等效项?
我正在使用 StringScanner 进行词法分析,如下所示: def next @scanner.skip(/\s+/) value,kind=nil,nil TOKEN_DEF.each{
我有兴趣将文本分词器从 Ruby 移植到 R,我不能只使用 system() 函数从 R 中调用 Ruby 扫描器。现有的 Ruby 实现大量使用了 Ruby 的 StringScanner 中的一些
我是一名优秀的程序员,十分优秀!