ParamBasic DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

General1{T,T:val} ::= SEQUENCE {
  number  INTEGER,
  string  T DEFAULT val
}

T11 ::= General1{PrintableString,"hej"}

T12 ::= General1{BIT STRING,'1010'B}

General2{T} ::= SEQUENCE {
  number  INTEGER,
  string  T
}

T21 ::= General2{PrintableString}

T22 ::= General2{BIT STRING}


--
-- Test a class parameter that is the governor for another parameter.
--

AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
  SEQUENCE {
     algorithm  ALGORITHM-TYPE.&id   ({AlgorithmSet}),
     type       ALGORITHM-TYPE.&Type ({AlgorithmSet}{@algorithm})
  }

AnAlgorithm ::= AlgorithmIdentifier{ SIGNATURE-ALGORITHM,
	                             { {KEY 1 CONTAINING INTEGER} |
				       {KEY 2 CONTAINING BOOLEAN} } }

SIGNATURE-ALGORITHM ::= CLASS {
    &id    INTEGER UNIQUE,
    &Type
} WITH SYNTAX {
    KEY &id CONTAINING &Type
}

END