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