我工作的一个解析器C.我试图找到所有的上下文推导的列表为C.理想情况下是在BNF或相似。我确信这样的事情在那里,但是用谷歌搜索并没有给我太多。上下文无关文法对C
阅读现有的解析器/编译器的源代码已被证明是有用的相比更为混乱,因为我发现大多数是一个比我建立更加雄心勃勃和复杂。
我工作的一个解析器C.我试图找到所有的上下文推导的列表为C.理想情况下是在BNF或相似。我确信这样的事情在那里,但是用谷歌搜索并没有给我太多。上下文无关文法对C
阅读现有的解析器/编译器的源代码已被证明是有用的相比更为混乱,因为我发现大多数是一个比我建立更加雄心勃勃和复杂。
你总是可以使用C11标准本身的附录A。免费提供的草案标准将适用于您的目的,在http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf。
这是ANSI-C语法,更新为C11标准。应该为你的目的服务。
的ANSI语法为C99在对外声明中的错误:函数的定义。
你可以用它和Kernighan的还附录A.13 - C程序设计语言,ANSI C版。
对于C yacc语法:http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus 2013-03-19 06:04:26
我可以证实,这是件好事。我在那个页面的LEX/YACC语法构建了一个flex/bison解析器,就在这一周。 – 2013-03-19 06:26:46
@CongXu,看起来不错,唯一的缺点是我看到它只有历史C,既不是C99也不是C11。 – 2013-03-19 08:51:49