gnatpp allows you to specify the casing for reserved words, pragma names, attribute designators and identifiers. For identifiers you may define a general rule for name casing but also override this rule via a set of dictionary files.
Three types of casing are supported: lower case, upper case, and mixed case. Lower and upper case are self-explanatory (but since some letters in Latin1 and other GNAT-supported character sets exist only in lower-case form, an upper case conversion will have no effect on them.) “Mixed case” means that the first letter, and also each letter immediately following an underscore, are converted to their uppercase forms; all the other letters are converted to their lowercase forms.
gnatpp implicitly uses a default dictionary file
to define the casing for the Ada predefined names and
the names declared in the GNAT libraries.
The structure of a dictionary file, and details on the conventions used in the default dictionary file, are defined in Name Casing.
The -D- and -Dfile switches are mutually compatible.