2013-03-19 20 views
13

Ich arbeite an einem Parser für C. Ich versuche, eine Liste aller kontextfreien Ableitungen für C zu finden. Idealerweise wäre es in BNF oder ähnlichem. Ich bin mir sicher, dass so etwas da draußen ist, aber herum zu googeln hat mir nicht viel gegeben.Kontextfreie Grammatik für C

Das Lesen des Quellcodes für vorhandene Parser/Compiler hat sich als viel verwirrender als hilfreich erwiesen, da die meisten, die ich gefunden habe, viel ehrgeiziger und komplizierter sind als die, die ich erstelle.

+5

yacc Grammatik für C: http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus

+0

Ich kann bestätigen, das ist gut. Ich habe einen Flex/Bison-Parser aus den LEX/YACC-Grammatiken von dieser Seite erst in der anderen Woche gebaut. –

+0

@CongXu, sieht gut aus, der einzige Nachteil, den ich habe, dass ich sehe, dass es nur historische C und weder C99 noch C11 ist. –

Antwort

0

Die ANSI Grammatik für C99 hat einen Fehler in externer Deklaration: function-Definition.

Sie können es verwenden und auch Anhang A.13 von Kernighan - Die C-Programmiersprache, ANSI C-Ausgabe.

Verwandte Themen