verbatim60
Value Definition
verbatim61
Along with the type definition, this allows constant values
to be assigned to meaningful names, and then used (in
context) to set values.
verbatim62
The MacroBody definition follows the normal rules of BNF,
specifying the production sequences defining the result of
Macro expansion.
-
To ensure unambiguous expansion ALL terminals must be
quoted within macros.
-
The reference name VALUE must occur once only in the
Macro.
-
Embedded definitions may be included, which are
expanded during parsing of the macro. -This is an
alternative to specifying choices which are made during
actual use of the specification and can be considered
analogous to compiled-in verses run-time decisions.
Module Definition
verbatim63
The module name can be used to discriminate between named
objects of grouped definitions by the concatenation:
ModuleName;SPM_quot;.;SPM_quot;identifier
verbatim64
The built in types are used in the recursive definition of
other types and construction of complex types. each Type is
matched by a Value or set of Values.
verbatim65
The contents are encoded as a twos complement binary number,
of the shortest possible number of octets. MSB = Bit 8 of
Octet 1; LSB = Bit 1 of last Octet.
No more than the first 9 bits may be all 0 or all 1.
Bitstring
verbatim66
When BITSTRING is defined as type constructor it is as if it
was defined
[universal 3] IMPLICIT SEQUENCE OF BIT STRING
This is typically used with indefinite length encoding when
the length is unknown or very long, so that each substring
can be encoded with known lengths. OctetString
verbatim67
When OCTETSTRING is defined as type constructor it is as if
it was defined
verbatim68
This is typically used with indefinite length encoding when
the length is unknown or very long, so that each substring
can be encoded with known lengths.
verbatim69
The SEQUENCE is the ordered list constructor. Items must
occur in the order of the specification. The OPTIONAL
construct allows for variant structures, but also introduces
an element of ambiguity that can only be resolved by careful
use of TAGGING and reference-naming options.
the COMPONENTS OF structure allows other sequences to be
referenced by their type, the effect is to insert the
members of its argument as members of the sequence within
those of the sequence being defined.
verbatim70
The Set type is the unordered list constructor. As for
SEQUENCE constructs care must be taken to disambiguate any
construction that uses OPTIONAL or COMPONENTS OF forms.
verbatim71
Tags allow already allocated identifiers to be re-used, the
attached type being either explicit or implicit. CHOICE and
ANY may not be tagged.
Tagging is provided to allow already typed objects to be
further distinguished. the IMPLICIT facility allows complex
Type information to be ;SPM_quot;taken as read;SPM_quot; so that the context
and tag becomes sufficient to identify the remaining data.
verbatim72
The Choice Constructor allows for variant structure in
specifications. As with Set and Sequence care must be taken
to disambiguate components.
a variant form is the BOUND CHOICE
verbatim73
the representation is that of the chosen alternative. the
alternatives must have distinct identifiers, typically
achieved by use of the tagged type.
verbatim74
The Builtin Type ANY allows any other defined Type to be
substituted.
Defined Types
Defined types have been built up using the above rules and
definitions, and are included as ;SPM_quot;predefined;SPM_quot; by agreement
amongst the standards bodies.
verbatim75
This represents the ordered set of zero or more characters
encoding numeric information in textual form.
verbatim76