23.11 Naming Conventions for GNAT Source Files
In order to examine the workings of the GNAT system, the following
brief description of its organization may be helpful:
Files with prefix `^sc^SC^' contain the lexical scanner.
All files prefixed with `^par^PAR^' are components of the parser. The
numbers correspond to chapters of the Ada 95 Reference Manual. For example,
parsing of select statements can be found in `par-ch9.adb'.
All files prefixed with `^sem^SEM^' perform semantic analysis. The
numbers correspond to chapters of the Ada standard. For example, all
issues involving context clauses can be found in `sem_ch10.adb'. In
addition, some features of the language require sufficient special processing
to justify their own semantic files: sem_aggr for aggregates, sem_disp for
dynamic dispatching, etc.
All files prefixed with `^exp^EXP^' perform normalization and
expansion of the intermediate representation (abstract syntax tree, or AST).
these files use the same numbering scheme as the parser and semantics files.
For example, the construction of record initialization procedures is done in
The files prefixed with `^bind^BIND^' implement the binder, which
verifies the consistency of the compilation, determines an order of
elaboration, and generates the bind file.
The files `atree.ads' and `atree.adb' detail the low-level
data structures used by the front-end.
The files `sinfo.ads' and `sinfo.adb' detail the structure of
the abstract syntax tree as produced by the parser.
The files `einfo.ads' and `einfo.adb' detail the attributes of
all entities, computed during semantic analysis.
Library management issues are dealt with in files with prefix
Ada files with the prefix `^a-^A-^' are children of
defined in Annex A.
Files with prefix `^i-^I-^' are children of
defined in Annex B.
Files with prefix `^s-^S-^' are children of
System. This includes
both language-defined children and GNAT run-time routines.
Files with prefix `^g-^G-^' are children of
GNAT. These are useful
general-purpose packages, fully documented in their specifications. All
the other `.c' files are modifications of common