EBNF Grammar for ANSI C (+ Guide on reading EBNF)

ChubakPDP11+TakeWithGrainOfSalt@programming.dev to Programming@programming.dev – 19 points –
EBNF Grammar for C
gist.github.com

This is EBNF grammar for ANSI C (C99) and it contains almost every rule. It may be missing stuff, please tell me if you notice something missing.

I am writing a C compiler, with my backend and hopefully my own frontend in OCaml. That is why I wrote this grammar. I also have written the AWK grammar, but it's not uploaded anywhere. Tell me if you want it.

Thanks.

10

You are viewing a single comment

I think digraphs and trigraphs are part of the preprocessor? I did not add any preprocessor stuff to this grammar. I am adding them to the new version I am working on.

I have read the C17 standard fully and I did recall it from memory from time to time but it seems like I had forgotten a lot of stuff. I am redefining it, and I am redigning my AWK grammar too.

I am hoping I could perhaps make a Github pages website called Internet Grammar Database and have all sorts of grammar inside it. Thoughts?

Trigraphs are handled by the preprocessor, so if you're not handling that, then that's fine. Digraphs are handled by the tokenizer, however.