术语 - 一次性代码生成指令
Terminology - one-time code generation directives
有没有预处理器这样的东西,它的语句一旦被处理,就会完全消失,并永久地被目标语言语法取代?
我想在网络上进行研究,但不知道要搜索什么词。如果我搜索 "code generator"、"templating language"、"preprocessor directives"、"mixins"、"annotations",我会得到其输入成为真实来源的生成器。
我能想到的最接近的是macro。
我想做什么
我经常不得不编写冗长且不必要的体力劳动的代码,并且正在寻找一种更智能的方法来输入至少大部分代码并自动转换它并且仅对输出进行源代码控制(如果需要,则手动编辑必要的)。例如:
- Java 代码 - 而不是写 getters/setters,javadoc(也许转换器可以是一个 maven 插件)
- HTML - 我只想添加 URL,并让我的预处理器自动将它们转换为链接、图像、视频、音频等,具体取决于带有一些正则表达式替换的文件扩展名(目前我 运行 通过 cron 作业的 perl 脚本)
我只是想把它当作我自己的 shorthand 使用,而不是在我的项目中强制使用它,并使输出可编辑,这样其他人就必须学习新的框架或语言(如 Protobuf、Stringtemplate、GWT、 C 哈希定义,PHP,JSP 等)。
应该没有直接线索表明我使用 template/preprocessor 生成了它。
似乎 Transpiler 是描述它的一种方式。
你要的是"program transformation system"。参见 https://en.wikipedia.org/wiki/Program_transformation。 (这是 "transpilers" [丑陋的术语] 的超集)。
一个好的源到源转换系统可以让您应用以下形式的重写规则:
if you see *this*, replace it by *that* if *this_condition*.
然后您可以使用您的源代码,运行 一组跨该代码的重写规则来更改它。
结果代码是"transformed";重写规则不可见。
有没有预处理器这样的东西,它的语句一旦被处理,就会完全消失,并永久地被目标语言语法取代?
我想在网络上进行研究,但不知道要搜索什么词。如果我搜索 "code generator"、"templating language"、"preprocessor directives"、"mixins"、"annotations",我会得到其输入成为真实来源的生成器。
我能想到的最接近的是macro。
我想做什么
我经常不得不编写冗长且不必要的体力劳动的代码,并且正在寻找一种更智能的方法来输入至少大部分代码并自动转换它并且仅对输出进行源代码控制(如果需要,则手动编辑必要的)。例如:
- Java 代码 - 而不是写 getters/setters,javadoc(也许转换器可以是一个 maven 插件)
- HTML - 我只想添加 URL,并让我的预处理器自动将它们转换为链接、图像、视频、音频等,具体取决于带有一些正则表达式替换的文件扩展名(目前我 运行 通过 cron 作业的 perl 脚本)
我只是想把它当作我自己的 shorthand 使用,而不是在我的项目中强制使用它,并使输出可编辑,这样其他人就必须学习新的框架或语言(如 Protobuf、Stringtemplate、GWT、 C 哈希定义,PHP,JSP 等)。
应该没有直接线索表明我使用 template/preprocessor 生成了它。
似乎 Transpiler 是描述它的一种方式。
你要的是"program transformation system"。参见 https://en.wikipedia.org/wiki/Program_transformation。 (这是 "transpilers" [丑陋的术语] 的超集)。
一个好的源到源转换系统可以让您应用以下形式的重写规则:
if you see *this*, replace it by *that* if *this_condition*.
然后您可以使用您的源代码,运行 一组跨该代码的重写规则来更改它。
结果代码是"transformed";重写规则不可见。