术语 - 一次性代码生成指令

Terminology - one-time code generation directives

有没有预处理器这样的东西,它的语句一旦被处理,就会完全消失,并永久地被目标语言语法取代?

我想在网络上进行研究,但不知道要搜索什么词。如果我搜索 "code generator"、"templating language"、"preprocessor directives"、"mixins"、"annotations",我会得到其输入成为真实来源的生成器。

我能想到的最接近的是macro

我想做什么

我经常不得不编写冗长且不必要的体力劳动的代码,并且正在寻找一种更智能的方法来输入至少大部分代码并自动转换它并且仅对输出进行源代码控制(如果需要,则手动编辑必要的)。例如:

我只是想把它当作我自己的 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";重写规则不可见。