我工作的一個解析器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