我开发了一个预处理器,可以将C语句的子集转换为gcc的_asm语句。对于这个项目,我很乐意重用现有的用任何流行的Haskell技术编写的C语句解析器,或者只是从一些简单的C子集paser开始,以避免重复现有的工作。
不幸的是,到目前为止,我发现除了C之外的所有语法都适用。虽然我可以从Java/Go的Parsec语法开始,但似乎MegaParsec是更好的选择?
我可以快速地为较小的C子集开发语法,但对于较大的C子集,现成的语法将允许我完全跳过C语句解析器的开发,而专注于项目的核心- asm代码生成。
最终,它可能会转换成LLVM,转译C++代码的一部分,但对于快速原型,我更喜欢Haskell,特别是如果我能找到现成的解析器的话。
发布于 2018-06-23 06:03:03
Haskell库可以解析C99语法(和部分C11 ):
https://stackoverflow.com/questions/50949118
复制相似问题