Tokens used by tdfada
For now we use many tokens visible outside of a capsula. Our compilation model differs from usual for tendra. Program represented as set of capsules. To produce binary code these capsules should be merged in one at linking time. When we figure out which tokens we need we will change to usual compilation model, when installer could translate each capsula to separate object file.
For now follow tokens defined:
- For implicit predefined types
- A_UNIVERSAL_INTEGER_DEFINITION.V - variety for universal_integer type (in ada.pl)
- A_ROOT_INTEGER_DEFINITION.V - variety for root_integer type (in ada.pl)
- For each discrete type
- External_Name_Image.UPPER - upper bound (EXP (A_UNIVERSAL_INTEGER_DEFINITION.V))
- External_Name_Image.LOWER - lower bound (EXP (A_UNIVERSAL_INTEGER_DEFINITION.V))
- External_Name_Image.V - integer variety (defined over .UPPER, .LOWER tokens)
- External_Name_Image - shape token (defined over .V token)
- For each signed integer type
- External_Name_Image.BASE_UPPER - upper bound of base subtype (EXP (Type.V))
- External_Name_Image.BASE_LOWER - lower bound of base subtype (EXP (Type.V))
- For each object declaration:
- External_Name_Image.N - name (address) token
- External_Name_Image.V - value token
- For each attribute (except 'Class, 'Base) there is token
Implementation dependent values are marked 'implementation-defined' in library specifications like this:
type Integer is range implementation-defined .. implementation-defined;
For such values corresponding tokens are not defined in capsule. These tokens defined in ada.pl.
All evaluation of discrete static expressions done in universal_integer type and corresponding variety. This variety is installer dependent. For now it 64-bit signed integer (but there are some problems, see #79).