1

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

newClassKeyword C { /* something here */ }
4

2 回答 2

2

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

我忘了补充一点,InfoQ有一篇文章概述了 Groovy 1.6 的新特性。Guillaume LaForge 撰写了这篇文章,并在其中描述了一些关于 AST 的内容。

于 2009-03-23T01:42:17.057 回答
1

您无法使用 AST 转换来扩展 Groovy 的语法,但您可以为现有语法赋予全新的语义。因为 Groovy 的语法非常灵活,这可以让您走得很远。

于 2009-03-31T00:20:13.037 回答