Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
开源ANSIC99解析器?_C_Parsing - Fatal编程技术网

开源ANSIC99解析器?

开源ANSIC99解析器?,c,parsing,C,Parsing,我对在C语言的基础上添加一些语言特性很感兴趣,我正试图找到一个好的开源解析器,我可以用它来修改语法,但我还没有幸运。有谁知道一个好的“独立”解析器可以通过这种方式修改吗?如果您是用Python编写的,可以使用。这是一个完全兼容的C99解析器,在3条款BSD许可下被许可。这可能会有帮助:我确实想到了CLAN,但是我被它的统一的解析器关闭了,包括C++、ObjuleC等等。如果我成功了并且想发布我的新语言,那就需要携带很多额外的代码…GCC有什么问题?那么,如果只使用一个解析器,你会做什么呢?哈哈,

我对在C语言的基础上添加一些语言特性很感兴趣,我正试图找到一个好的开源解析器,我可以用它来修改语法,但我还没有幸运。有谁知道一个好的“独立”解析器可以通过这种方式修改吗?

如果您是用Python编写的,可以使用。这是一个完全兼容的C99解析器,在3条款BSD许可下被许可。

这可能会有帮助:我确实想到了CLAN,但是我被它的统一的解析器关闭了,包括C++、ObjuleC等等。如果我成功了并且想发布我的新语言,那就需要携带很多额外的代码…GCC有什么问题?那么,如果只使用一个解析器,你会做什么呢?哈哈,是的,不幸的是,情况就是这样。然而,我有一个结论,LLVM,CLAN的基础,有一些相当广阔的AST库,所以我想你可以很容易地分离ANSI C和C++等。听起来很不错,但我不确定我是否可以假设我一直都有python可用=(@gct:你是什么意思?CPython是非常可移植的。他们甚至有一个Android版本!另外,你可以将它嵌入到C程序中。我仔细看了一下,他们似乎只是使用Lexx/Yacc生成python代码,所以它可能也不是最容易修改的。@gct:不是真的。PLY(它使用的内容)是一个行为类似于Lex/Yacc的库。pycparser有一组扩展名为,它增加了对GNU扩展的支持。这是扩展pycparser的一个很好的例子。现在看一看,也许这对我想要做的事情有用。