Java中的Javascript AST生成器和代码编写器

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:

是否存在允许我在代码中创建Javascript AST然后将AST序列化为有效Javascript字符串的Java库

我发现的最接近的东西是用Javascript编写的,因此我必须使用Rhino或Node来执行它,但它在JSON定义中接受AST。Java代码只需构建JSON即可


但我希望这不是最好的办法,应该有更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()谢谢,刚刚检查过。请你作为正常答案回答,我会接受的?