A simple model and representation of files.
The grammar in grammar represents the required structure
of the content of a translation unit,
which corresponds to the content of a file
after it has been subjected to preprocessing
(which may add content from
Often a C program, or a C library, or other meaningful C code component, consists of multiple translation units, more in general multiple files, which in the future will include both headers and source files. So here we introduce a notion of a file set as a collection of files, purported to contain, together, a C program, or C library, or other meaningful C component.