My aim is not to write a C compiler, however I do require the full syntax of the C programming language. This will allow me to write program(s) to format, manage, and analyze C programs and libraries more easily. To achieve that, I have no option other than to get my hands on the entire syntax of the language.
The syntax shall clearly state what is valid and what is not valid. Consider the following line of code:
int (x) = 0;
A C programmer glancing at this statement might hesitate about its validity and until he tries to compile it, he may not know that it is actually valid C. Of course, it is easy to tell that it is equivalent to int x = 0;
and that the enclosing parenthesis around the x
are redundant, but its not clear to a programmer who sees it for the first time whether it is allowed or not.
This is the level of detail that I require regarding the full syntax of the language. It must be sufficient to an implementer to use it to write a compiler that can compile any C code, even though my intention is not to write a compiler yet full syntax details are required for my project.