Java中的Javascript AST生成器和代码编写器
是否存在允许我在代码中创建Javascript AST然后将AST序列化为有效Javascript字符串的Java库 我发现的最接近的东西是用Javascript编写的,因此我必须使用Rhino或Node来执行它,但它在JSON定义中接受AST。Java代码只需构建JSON即可Java中的Javascript AST生成器和代码编写器,java,javascript,abstract-syntax-tree,Java,Javascript,Abstract Syntax Tree,是否存在允许我在代码中创建Javascript AST然后将AST序列化为有效Javascript字符串的Java库 我发现的最接近的东西是用Javascript编写的,因此我必须使用Rhino或Node来执行它,但它在JSON定义中接受AST。Java代码只需构建JSON即可 但我希望这不是最好的办法,应该有更Java本地的方法来做。在问题的评论中尝试了McDowell的建议。Rhino的AstNode.toSource()正在按预期工作。我可以使用Groovy像这样构建和序列化简单AST:
但我希望这不是最好的办法,应该有更Java本地的方法来做。在问题的评论中尝试了McDowell的建议。Rhino的
AstNode.toSource()
正在按预期工作。我可以使用Groovy像这样构建和序列化简单AST:
def astRoot = new AstRoot()
astRoot.with {
def expressionStatement = new ExpressionStatement()
addChild(expressionStatement)
expressionStatement.with {
expression = new FunctionCall()
expression.with {
target = new Name()
target.identifier = "alert"
def arg = new StringLiteral()
arg.value = "Test"
arg.quoteChar = '"'
arguments = [ arg ]
}
}
}
println astRoot.toSource()
这将打印:
alert(“Test”)
Rhino中有一个ASTAPI。很好,我会检查一下。它允许写入AST吗?请参阅AstNode.toSource()谢谢,刚刚检查过。请你作为正常答案回答,我会接受的?