我可以在Groovy中使用AST转换来扩展其语法吗?

我可以在Groovy中使用AST转换来扩展其语法吗?,groovy,abstract-syntax-tree,Groovy,Abstract Syntax Tree,我已经看到了一些示例,说明了如何使用Groovy AST转换来扩展语言,例如,在方法调用之前和之后进行日志记录,如图所示。然而,是否也可以使用这个框架来扩展语言本身的语法?例如,如果我希望能够将以下内容解析并转换为AST,然后生成一组语句,该怎么办 newClassKeyword C { /* something here */ } 我不是Groovy专家,但我一直在研究1.6版本中出现的一些新框架,我特别感兴趣的是。这可能正是您想要的,因为他们使用AST转换来定义整个测试规范语言 我忘了添加

我已经看到了一些示例,说明了如何使用Groovy AST转换来扩展语言,例如,在方法调用之前和之后进行日志记录,如图所示。然而,是否也可以使用这个框架来扩展语言本身的语法?例如,如果我希望能够将以下内容解析并转换为AST,然后生成一组语句,该怎么办

newClassKeyword C { /* something here */ }

我不是Groovy专家,但我一直在研究1.6版本中出现的一些新框架,我特别感兴趣的是。这可能正是您想要的,因为他们使用AST转换来定义整个测试规范语言


我忘了添加概述Groovy 1.6新特性的InfoQ。Guillaume LaForge撰写了这篇文章,他在文章中介绍了一点AST。

您不能用AST转换扩展Groovy的语法,但可以为现有语法提供全新的语义。因为Groovy的语法非常灵活,这可以让您走得更远