2013-03-19 108 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版。