将C解析为Ocaml

Daz*_*Daz 7 c parsing gcc ocaml llvm

我想从C代码中获取抽象语法树(AST)到OCaml值,这样我就可以使用简单的OCaml程序进一步处理解析后的代码.

我想到使用GCC,用钩子获取AST(在GIMPLE中),并将GIMPLE代码转换为Ocaml.

但我想知道是否还有另一种方式,或者是否有人做过类似的事情.(我实际上并没有发现太多...)

我不想求助于使用CIL.它是C代码的OCaml解析器,但它不包含GCC所具有的所有优化.(我特别需要比在CIL中实现的更深入的别名分析).

LLVM可以是一个好主意吗?已经完成了吗?

有什么好主意吗?

Pas*_*uoq 9

如果您的CIL问题是所提供的别名分析的精确度,请查看Frama-C.它基于CIL,但提供了适用于指针的精确值分析.价值分析使其结果在模块化架构中可用.

  • 借调:CIL和Frama-C可能是您可能希望的最佳工具,Pascal Cuoq是最合适的人之一. (2认同)