使用JavaCC解析树表示

时间:2014-05-03 15:20:12

标签: java xml parsing tree javacc

我在JavaCC中构建了一个解析器,例如:let a:int = 5 + 4; 它显示:

Start
 Sxl
  Statement
   VariableDecl
    Identifier
    Type
    Expression
     SimpleExpression
      Term
       Factor
        Literal
         IntegerLiteral
      AdditiveOp
      Term
       Factor
        Literal
         IntegerLiteral
 Parsed.

工作正常然而我需要增强此解析器输出到xml文件并输出以下输出的上述输出:

letNode( Identier(X), ExprNode( PlusNode( IntegerLiteral(8), IntegerLiteral(2) )))

如何做到这一点,我需要使用普通的Java还是JavaCC中有一些功能?

1 个答案:

答案 0 :(得分:1)

它让我觉得你好像在使用JJT。以下是使用JavaCC或JJT将输入文件转换为XML文件的3种方法。

  1. 可以轻松编辑生成的SimpleNode类,以便输出XML - 或者您想要的任何格式。

  2. 另一种方法是使用JavaCC而不是JJT并进行SAX调用,以便您的解析器构造XML文档。然后很容易输出XML文档。

  3. 第三种选择是坚持使用JJT并修改SimpleNode类以生成XML文档(使用SAX或DOM)。然后可以输出XML文档。