我在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中有一些功能?
答案 0 :(得分:1)
它让我觉得你好像在使用JJT。以下是使用JavaCC或JJT将输入文件转换为XML文件的3种方法。
可以轻松编辑生成的SimpleNode
类,以便输出XML - 或者您想要的任何格式。
另一种方法是使用JavaCC而不是JJT并进行SAX调用,以便您的解析器构造XML文档。然后很容易输出XML文档。
第三种选择是坚持使用JJT并修改SimpleNode
类以生成XML文档(使用SAX或DOM)。然后可以输出XML文档。