树顶:获取节点的偏移量
我正在使用Treetop为小编程语言生成解析器。
解析成功后,我想对语法树进行一些语义分析。理想情况下,每当遇到一段(语义上)无效代码时,我想打印出一条错误消息,其中包含发生错误的行。我知道这是可能的,因为如果我这样做
parser = MyParser.new
tree = parser.parse("foobar")
p tree
我得到类似的东西
SyntaxNode offset=0, "foobar":
SyntaxNode offset=0, "f"
SyntaxNode offset=1, "o"
SyntaxNode offset=2, "o"
SyntaxNode offset=3, "b"
SyntaxNode offset=4, "a"
SyntaxNode offset=5, "r"
本质上,我想要一种方法来访问给定SyntaxNode
对象(或其子类)的offset
属性。不幸的是,根据http://treetop.rubyforge.org/semantic_interpretation.html,Treetop::Runtime::SyntaxNode
上唯一可用的方法是terminal?
,nonterminal?
,text_value
和elements
,所以似乎没有内置的方法来做到这一点。
没有找到相关结果
已邀请:
1 个回复
怪酞撩匹