m4 可以与不同的编程语言一起使用,因为它对无法识别的文本的默认策略是输出,并且它具有方便预处理器使用所需的引用机制。我的意思是,我可以以我的 IDE 认为它是 Ada 的方式编写预处理代码。m4 宏调用(包括、定义)隐藏在 Ada 注释中。Ada 注释以 -- 开头,Prolog 注释以 % 或 /* */ 开头。我不能轻易混合 Ada 和 Prolog。
m4 的预处理做得很好,但它的编程方面很糟糕。我想:我为什么不试试通用语言呢?Prolog 看起来适合我的任务。Prolog 具有 ISO 标准,逻辑编程看起来对推理源生成很有用。
所以我们在这里:我们有一种任意的输出语言(Ada,然后是 JavaScript,然后可能是其他语言),并且大多数时候在本地 IDE 中为相应语言编写源代码会很好。我需要预处理器来拥有一个合适的解析器(就像 m4 一样)。这个解析器不应该有 Ada 语法知识,而应该只知道 Ada 词法,并且应该可以使其宏调用看起来像 Ada 函数调用。
它的命令行界面应该类似于 m4 或 gcc -E。应该可以进行两种包含:纯 Prolog 源代码和预处理代码。
如果你知道我怎样才能很快实现这些目标,请写在这里。我可能可以接受非 Prolog 解决方案,但在其他解决方案中,我更喜欢标准语言。例如,m4 是 POSIX 的一部分。