【问题标题】:C code preprocessing in PerlPerl 中的 C 代码预处理
【发布时间】:2018-03-22 02:59:06
【问题描述】:

我在Perl 中处理C 代码解析器。

目前我需要对代码进行预处理。 预处理的实现似乎需要做很多工作,所以我正在寻找一个可以对文件进行预处理的脚本或库。

我发现了以下可能性:

  1. Text::CPP
  2. Filter::CPP

这两个都需要cpp,我的 Windows 机器上没有。还有其他选择吗?

【问题讨论】:

  • search.cpan.org/perldoc?Filter%3A%3AcppThis source filter pipes the current source file through the C pre-processor (cpp) if it is available.
  • Text::CPP 说它需要A working C compiler
  • @devnull 这是个问题...
  • 为什么会有问题?如果不是编译器,谁会进行预处理?
  • @Alex - 预处理通常是通用的,因此您可以为此插入 gcc 而不是您的专有编译器。

标签: c perl preprocessor


【解决方案1】:

我不确定我是否了解您的需求,但您是对的,您自己实现此功能可能是一个糟糕的选择。我最近也在寻找替代的 C 预处理器。

Text::CPP 模块应该只需要一个编译器来编译它自己。如果你能找到一个预编译版本,它应该适合你。

同一作者的JCPP Java C Preprocessor 可能会起作用。您可能必须在外部进行处理,然后加载结果。

Filepp 是一个较旧的 Perl 程序,声称与 CPP 兼容。有一个预编译的 Windows 二进制文件可供下载。

有一个全新的Lua C-Preprocessor LCPP 可能是您可以使用的。可能最好作为独立的,但你也许可以使用Inline::Lua

SWIG 带有自己的预处理器实现。我认为这将适用于 Windows。

还有什么? Boost Wave Preprocessor 可能运行良好并且适用于 Windows。 MSVC 编译器可以preprocess to a file

不过,最简单和最好的长期解决方案可能是只安装 CPP。它是 GCC 的一部分,您可以从 CygwinMinGW 获得。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多