Playframework 扩展Play Framework 2.4.x背后的方法

Playframework 扩展Play Framework 2.4.x背后的方法,playframework,playframework-2.4,Playframework,Playframework 2.4,我有语言设计背景,希望开始将功能移植到Play框架(Scala版本)。然而,我很难找到构建或扩展框架核心背后的方法。关于Play的扩展,我有以下几点要问: AST更新:我应该将该剧视为经典意义上的语言吗?在这种情况下,是否需要更新AST和代码生成模块?通常对于语言扩展,我会扩展AST,然后更新代码生成函数,以便新的AST生成现有的AST(不要再发明轮子) 存储库和相关文档:如果有一点是正确的,我查看了,但没有得到任何用于扩展解析器/代码生成管道的文档。唯一可用的资源是代码本身及其注释 注意:我发

我有语言设计背景,希望开始将功能移植到Play框架(Scala版本)。然而,我很难找到构建或扩展框架核心背后的方法。关于Play的扩展,我有以下几点要问:

  • AST更新:我应该将该剧视为经典意义上的语言吗?在这种情况下,是否需要更新AST和代码生成模块?通常对于语言扩展,我会扩展AST,然后更新代码生成函数,以便新的AST生成现有的AST(不要再发明轮子)

  • 存储库和相关文档:如果有一点是正确的,我查看了,但没有得到任何用于扩展解析器/代码生成管道的文档。唯一可用的资源是代码本身及其注释


  • 注意:我发现Play writing Module for contribution(为贡献而编写的模块)在编译时的不同阶段都迫切需要使用AST;我认为使用这些模块是不可能的

    Play是一个web框架而不是一种语言,twirl只是操作输出的模板引擎,Scala是您想要扩展的语言。Scala支持宏,允许您访问AST来创建您的魔术


    祝你好运,让我们惊喜你的新功能。

    我想这就是你正在寻找的repo:Twirl是Payframework的临时语言。我敢肯定,解析器/编译器都是独立的模块。模板语法是基于scala的,所以我想你可以说是的,这是它自己的语言。