我是编译器业务的新手,使用 ANTLR 语法(开源)解析具有许多外部头文件的 C 源文件,即包含文件和库文件等。
这些头文件的定义语法是怎样的?有什么方法可以将这些包含文件解析为简单的源文件吗?
是否可以将所有这些源+include 文件集成到一个包中,并使用 ANTLR 或其他 C 解析器 (JavaCC) 对其进行解析。
等待您的建议。
最佳答案
为 C 实现完整的预处理器和解析器链并不容易。但是您可以重用现有的预处理器(例如,gcc -E
)和现有的解析器(clang -Xclang -ast-print-xml
或 gcc-xml 都是不错的选择)然后解析一个简单的 XML 输出。
关于c - 是否可以使用 ANTLR 解析 C 头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5078088/