Type Definition

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