2013-03-19 21 views
13

Pracuję nad parserem dla C. Próbuję znaleźć listę wszystkich pochodnych bez kontekstu dla C. Idealnie byłoby w BNF lub podobnym. Jestem pewien, że coś takiego istnieje, ale szukanie w Google nie dało mi wiele.Gramatyka bezkontekstowa dla C

Czytanie kodu źródłowego dla istniejących parserów/kompilatorów okazało się dużo bardziej zagmatwane niż pomocne, ponieważ większość, które znalazłem, jest znacznie bardziej ambitna i skomplikowana niż ta, którą buduję.

+5

Gramatyka YACC dla C: http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus

+0

Mogę potwierdzić, że jest dobra. Z tej strony zbudowałem parser typu flex/bison z gramatyk LEX/YACC, tylko z drugiego tygodnia. –

+0

@CongXu, wygląda dobrze, jedyna wada, która ma, że ​​widzę, że jest tylko historyczne C i ani C99, ani C11. –

Odpowiedz

0

Gramatyka ANSI dla C99 ma błąd w zewnętrznym-deklarację: funkcja rozdzielczości.

Możesz go używać, a także Dodatek A.13 Kernighan - Język programowania C, edycja ANSI C.

Powiązane problemy