JavaCC AST表示

时间:2014-05-04 16:46:59

标签: abstract-syntax-tree javacc

我使用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(")");
  }
}

如何才能获得加号并在最后一部分删除,,,

0 个答案:

没有答案