Haskell Parsec,MegaParsec或Happy的简单C语法

时间:2018-06-20 13:12:38

标签: parsing haskell parsec happy megaparsec

我开发了将C语句的子集转换为gcc _asm语句的预处理器。对于这个项目,我将很乐意重用任何流行的Haskell技术编写的现有C语句解析器,或者只是从一些简单的C子集解析器开始,以避免重做现有工作。

不幸的是,到目前为止,我发现了除C以外的所有语法。虽然我可以从Java / Go的Parsec语法开始,但是MegaParsec似乎是更可取的选择?

我可以为小型C子集快速开发语法,但是针对较大C子集的即用型语法将使我完全跳过C语句解析器的开发,而专注于项目的核心-asm代码生成。

最终,它可能会转换为C ++代码的LLVM传递代码,但是对于快速原型,我更喜欢Haskell,尤其是在我可以找到现成的解析器的情况下。

1 个答案:

答案 0 :(得分:1)

Haskell库解析C99语法(部分解析C11):

https://hackage.haskell.org/package/language-c