小编Wei*_*Wei的帖子

在antlr中,有没有办法在AST模式下获取CommonTree的解析文本?

一个简单的例子:

(grammar):

stat: ID '=' expr NEWLINE -> ^('=' ID expr)

expr: atom '+' atom -> ^(+ atom atom)

atom: INT | ID

...

(input text): a = 3 + 5
Run Code Online (Sandbox Code Playgroud)

相应的'3 + 5'的CommonTree包含一个'+'标记和两个子标记(3,5).

此时,恢复解析为此树('3 + 5')的原始输入文本的最佳方法是什么?

我已经获得了CommonTree对象中单个标记的文本,位置和行号,因此从理论上讲,可以确保只丢弃空格标记并使用此信息将它们拼凑在一起,但它看起来容易出错.

有一个更好的方法吗?

java antlr

5
推荐指数
1
解决办法
1124
查看次数

标签 统计

antlr ×1

java ×1