我正在为C寻找解析器。这就是我需要的:
它可以是项目的一部分,只要它解耦,以便我可以拔出解析器。
是否存在满足这些要求的现有解析器?
答案 0 :(得分:7)
如果你不需要C99,那么lcc就是扣篮:
一个潜在的缺点是lcc
解析器不构建抽象语法树 - 它直接从解析到中间代码。
如果你必须拥有C99,那么我认为tinycc(tcc)是你最好的选择。
答案 1 :(得分:2)
Sparse怎么样?
答案 2 :(得分:1)
您可以尝试TCC。它是根据较小的GPL许可的。
答案 3 :(得分:0)
似乎nwcc足以满足您的要求。
答案 4 :(得分:0)
此位置存在良好的c编译器。简单易用。 https://github.com/rui314/8cc
答案 5 :(得分:-1)
GCC在gcc / c-parser.c中有一个。
答案 6 :(得分:-1)
检查elsa,它使用广义LR算法。
它主要用于C ++,但它也解析C代码。
检查page,在“Elsa解析多少C?”一节中。它说它可以解析大多数C程序,包括Linux内核。
它是在BSD许可下发布的。
答案 7 :(得分:-1)
这是一个移植到C的递归下降解析器: http://www.gabotronics.com/resources/recursive-descent-parser.htm