Adasubst is a tool for making semantic substitutions. This means that
it does not replace text, but Ada elements (identifiers) in an Ada
program by other identifiers. This substitution can therefore account
for visibility rules, to make sure that only the intended element is
replaced. But Adasubst goes far beyond that: it takes all Ada rules
into consideration. Therefore, if you substitute a name defined in a
generic, the same substitution will be applied for all instantiations
(unless there is an explicit substitution for the instantiated
element, of course). Similarly, if you substitute the name of a
primitive operation of a type, the same substitution will be applied
to the corresponding operation of all derived types.

Adasubst can also perform other kinds of semantic substitution; for
the moment:
   - it can remove all representation clauses from a program.
   - it can remove all use clauses (including or not use-type and
     use-all-type clauses), and fix identifiers accordingly.

Other forms of substitutions may be added in the future; we
are looking forward to user suggestions about what could be useful.

Please refer to the User's guide (adasubst_ug.html, adasubst_ug.pdf or
adasubst_ug.info) in directory doc for information about how to
install and run AdaSubst.

Commercial support is available for AdaSubst; please refer to
doc/support.txt for details.
