C的递归下降解析器

Ima*_*ist 8 c parsing

我正在为C寻找解析器.这就是我需要的:

  1. 用C 语言编写(不是 C++).
  2. 手写(未生成).
  3. BSD或类似的许可证.
  4. 能够非常地解析自身(可以是C的子集).

它可以是项目的一部分,只要它解耦,以便我可以拔出解析器.

是否存在满足这些要求的现有解析器?

Nor*_*sey 7

如果你不需要C99,那么lcc是一个扣篮:

  • 它记录在一本非常清晰,写得很好的书中.
  • Dave Hanson在文章和技术报告中详细记录了用于递归下降解析具有优先级的运算符的技术.
  • 清晰的手写ANSI C代码.

一个潜在的缺点是lcc解析器不构建抽象语法树 - 它直接从解析到中间代码.

如果你必须有C99那么我认为tinycc(tcc)是你最好的选择.


Gra*_*dpa -1

GCC 在 gcc/c-parser.c 中有一个。