gpt4 book ai didi

ANTLR 忽略 AST 运算符

转载 作者:行者123 更新时间:2023-12-01 14:56:22 25 4
gpt4 key购买 nike

我正在使用 ^ 和 !运算符分别设置根节点和不包含在 AST 中。但是,它对 ANTLRWorks 生成的树没有影响。所以我不确定我的语法是否不正确,或者 ANTLRWorks 是否没有创建正确的树。

这是我的语法片段

expr
: '('! logExpr ')'!;

这些括号不应包含在 AST 中。

addExpr
: multExpr ( (PLUS|MINUS)^ multExpr )*;

PLUS 或 MINUS 应该是 AST 中的根节点。

然而,这些事情都没有按照我期望的方式发生。当我将它们取下或放回去时,它们没有任何区别。 ANTLRWorks 1.4.3 ANTLR 3.4

最佳答案

ANTLRWorks 的解释器显示解析树,即使您已将 output=AST; 放入语法的选项 block 中,正如您已经发现的那样。

但是,ANTLRWorks 的调试器确实 显示了 AST。要激活调试器,请按 CTL+D 或选择 Run->Debug从菜单栏。

调试器能够可视化解析树和 AST。请注意,它不会处理 Java 以外的嵌入式代码。

enter image description here

关于ANTLR 忽略 AST 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9473366/

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