我正在使用 Bison 和 Java 进行解析器,但我遇到了一些问题。我使用我自己的类型“TreeNode”作为默认语义值。这是我的 .y 文件中的代码:
prog: def_var TERMINATOR inc_val {
TreeNode t = new TreeNode();
t = $1;
}
它的代码由 Bison 生成:
TreeNode t = new TreeNode();
t = ((Integer)(yystack.valueAt (9-(1))));
而且我有错误“不可转换的类型”,因为我的 TreeNode 无法转换为整数。如何禁用此自动转换?