If you want to examine the workings of the XGC Ada system, the following brief description of its organization may be helpful:
Files with prefix sc contain the lexical scanner.
All files prefixed with par are components of the parser. The numbers correspond to chapters of the Ada standard. For example, parsing of select statements can be found in par-ch9.adb.
All files prefixed with 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.
All files prefixed with exp perform AST normalization and expansion, using the same numbering scheme. For example, the construction of record initialization procedures is done in exp_ch3.adb.
The files prefixed with 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 lib.
Ada files with the prefix a- are children of Ada, as defined in Annex A.
Files with prefix i- are children of Interfaces, as defined in Annex B.
Files with prefix s- are children of System. This includes both language-defined children and XGC Ada run-time routines).