Validation for our C syntax for tools.
Besides syntactic validity, C code must satisfy a number of additional constraints in order to be compiled. These constraints form the static semantics of C. C compilers check that the code satisfies these constraints prior to translating it.
We provide an executable validator, which performs a (currently conservative) validation of C code, and also annotates the ASTs with information (e.g. calculated types).