我是编译器业务的新手,并使用ANTLR语法(开源)来解析具有许多外部头文件的C源文件,即包含文件和库文件等。
这些头文件的定义语法是什么?有没有办法将这些包含文件解析为简单的源文件?
是否可以将所有这些源+包含文件集成到一个包中,并使用ANTLR或其他C语法分析器(JavaCC)对其进行解析。
等待你的建议。
答案 0 :(得分:1)
为C实现预处理器和解析器的完整链并不容易。但是您可以重用现有的预处理器(例如gcc -E
)和现有的解析器(clang -Xclang -ast-print-xml
或gcc-xml都是不错的选择)然后解析一个简单的XML输出。