Standard syntax (i.e. without GCC extensions).
Our abstract syntax includes constructs for GCC extensions. Standard C syntax corresponds to a subset of our abstract syntax. Here we define predicates that characterize the standard subset.
In the future, we might defines predicates for subsets corresponding to different versions of standard C, different GCC extensions, etc. For now we just have a boolean choice (GCC extensions or not), and the full abstract syntax corresponds to including GCC extensions, while the predicates defined here correspond to excluding them.