2013-03-19 72 views
13

我工作的一个解析器C.我试图找到所有的上下文推导的列表为C.理想情况下是在BNF或相似。我确信这样的事情在那里,但是用谷歌搜索并没有给我太多。上下文无关文法对C

阅读现有的解析器/编译器的源代码已被证明是有用的相比更为混乱,因为我发现大多数是一个比我建立更加雄心勃勃和复杂。

+5

对于C yacc语法:http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus 2013-03-19 06:04:26

+0

我可以证实,这是件好事。我在那个页面的LEX/YACC语法构建了一个flex/bison解析器,就在这一周。 – 2013-03-19 06:26:46

+0

@CongXu,看起来不错,唯一的缺点是我看到它只有历史C,既不是C99也不是C11。 – 2013-03-19 08:51:49

回答

0

的ANSI语法为C99在对外声明中的错误:函数的定义。

你可以用它和Kernighan的还附录A.13 - C程序设计语言,ANSI C版。