我使用JavaCC生成解析器,一个方法是接受4 + 5,例如效果很好。
但是现在我需要修改它以便打印PlusNode(IntegerLiteral(4),IntegerLiteral(5))
我为此修改了一些代码,但它正在打印:
(ExprNode(IntegerLiteral(4),PlusNode,IntegerLiteral(5),),)
因为规则是
INTLITERAL PLUS INTLITERAL
我在SimpleNode中的转储方法是:
public void dump(String prefix) {
System.out.print(toString(prefix));
if (children != null) {
System.out.print("(");
for (int i = 0; i < children.length; ++i) {
SimpleNode n = (SimpleNode)children[i];
if (n != null) {
n.dump(prefix +"");
}System.out.print(",");
}
System.out.print(")");
}
}
如何才能获得加号并在最后一部分删除,,,