![]() |
![]() |
![]() |
![]() |
![]() |
The ASN1 Syntax Productions in BNF
- moduleidentifier ::= BoundedFreeText
- typereference ::= Identifier
- valuereference ::= Identifier
- TypeAssignment ::= typereference "::=" ASN1_main_Type
- ASN1_main_Type ::= BuiltinType | DefinedType | SubType
- BuiltinType ::= BooleanType | IntegerType | BitStringType | OctetStringType
| NullType | SequenceType | SequenceOfType | SetType | SetOfType | ChoiceType | SelectionType | TaggedType | AnyType | ObjectIdentifierType
| CharacterStringType | UsefulType | EnumeratedType | RealType- NamedType ::= Identifier ASN1_main_Type | ASN1_main_Type | SelectionType
- ASN1_Value ::= BuiltinValue | DefinedValue
- BuiltinValue ::= BooleanValue | IntegerValue | BitStringValue | OctetStringValue | NullValue | SequenceValue | SequenceOfValue | SetValue | SetOfValue
| ChoiceValue | SelectionValue | TaggedValue | ASN1_AnyValue
| ObjectIdentifierValue | CharacterStringValue | EnumeratedValue | RealValue- NamedValue ::= Identifier ASN1_Value | ASN1_Value
- BooleanType ::= BOOLEAN
- IntegerType ::= INTEGER | INTEGER "{" NamedNumberList "}"
- NamedNumberList ::= NamedNumber | NamedNumberList Comma
NamedNumber- NamedNumber ::= Identifier "(" Minus Number ")" | Identifier "(" Number ")"
| Identifier "(" DefinedValue ")"- IntegerValue ::= Minus Number | Number | Identifier
- EnumeratedType ::= ENUMERATED "{" Enumeration "}"
- Enumeration ::= NamedNumber | Enumeration Comma NamedNumber
- EnumeratedValue ::= Identifier
- RealType ::= REAL
- RealValue ::= NumericalRealValue | SpecialRealValue
- NumericalRealValue ::= "{" Mantissa Comma Base Comma Exponent "}"
- Mantissa ::= Minus Number | Number
- Base ::= Two | Ten
- Exponent ::= Minus Number | Number
- SpecialRealValue ::= PLUS_INFINITY | MINUS_INFINITY
- BitStringType ::= BIT STRING | BIT STRING "{" NamedBitList "}"
- NamedBitList ::= NamedBit | NamedBitList Comma NamedBitList
- NamedBit ::= Identifier "(" Number ")" | Identifier "(" DefinedValue ")"
- BitStringValue ::= Bstring | Hstring | "{" IdentifierList "}" | "{" "}"
- IdentifierList ::= Identifier | IdentifierList Comma Identifier
- OctetStringType ::= OCTET STRING
- OctetStringValue ::= Bstring | Hstring
- NullType ::= NULL
- NullValue ::= NULL
- SequenceType ::= SEQUENCE "{" ElementTypeList "}"
- ElementTypeList ::= | ElementType | ElementTypeList Comma ElementType
- ElementType ::= NamedType | NamedType OPTIONAL | NamedType DEFAULT ASN1_Value | COMPONENTS OF ASN1_main_Type
- SequenceValue ::= "{" ElementValueList "}" | "{" "}"
- ElementValueList ::= NamedValue | ElementValueList Comma NamedValue
- SequenceOfType ::= SEQUENCE OF ASN1_main_Type | SEQUENCE
- SequenceOfValue ::= LBRACE ASN1_ValueList RBRACE | LBRACE RBRACE
- ASN1_ValueList ::= ASN1_Value | ASN1_ValueList Comma ASN1_Value
- SetType ::= SET "{" ElementTypeList "}"
- SetValue ::= "{" ElementValueList "}" | "{" "}"
- SetOfType ::= SET OF ASN1_main_Type | SET
- SetOfValue ::= "{" ASN1_ValueList "}" | "{" "}"
- ChoiceType ::= CHOICE "{" AlternativeTypeList "}"
- AlternativeTypeList ::= NamedType | AlternativeTypeList Comma NamedType
- ChoiceValue::=Identifier : Value
- SelectionType ::= Identifier "<" ASN1_main_Type
- SelectionValue ::= NamedValue
- TaggedType ::= Tag ASN1_main_Type | Tag IMPLICIT ASN1_main_Type
| Tag EXPLICIT ASN1_main_Type- Tag ::= "(" Class ClassNumber ")"
- Class ::= UNIVERSAL | APPLICATION | PRIVATE | empty
- ClassNumber ::= Number | DefinedValue
- TaggedValue ::= ASN1_Value
- AnyType ::= ANY | ANY DEFINED_ BY Identifier
- ASN1_AnyValue ::= ASN1_main_Type Colon ASN1_Value
- ObjectIdentifierType ::= OBJECT IDENTIFIER
- ObjectIdentifierValue ::= "{" ObjIdComponentList "}"
| "{" DefinedValue ObjIdComponentList "}"- ObjIdComponentList ::= ObjComponent | ObjIdComponentList ObjComponent
- ObjComponent ::= NameForm | NumberForm | NameAndNumberForm
- NameForm ::= Identifier
- NumberForm ::= Number | DefinedValue
- NameAndNumberForm ::= Identifier "{" NumberForm "}"
- CharacterStringType ::= Identifier
- CharacterStringValue ::= Cstring
- UsefulType ::= Identifier
- SubType ::= ParentType SubtypeSpec | SET SizeConstraint OF ASN1_main_Type | SEQUENCE SizeConstraint OF ASN1_main_Type
- ParentType ::= ASN1_main_Type
- SubtypeSpec ::= "(" SubtypeValueSetList ")"
- SubtypeValueSetList ::= SubtypeValueSet | SubtypeValueSetList `|'
SubtypeValueSet- SubtypeValueSet ::= ASN1_Value | ContainedSubtype | ASN1_ValueRange
| PermittedAlphabet | SizeConstraint | InnerTypeConstraints- ContainedSubtype ::= INCLUDES ASN1_main_Type
- ASN1_ValueRange ::= LowerEndpoint DotDot UpperEndpoint
- LowerEndpoint ::= LowerEndValue | LowerEndValue "<"
- LowerEndValue ::= ASN1_Value | MIN
- UpperEndpoint ::= UpperEndValue | "<" UpperEndValue
- UpperEndValue ::= ASN1_Value | MAX
- SizeConstraint ::= SIZE SubtypeSpec
- PermittedAlphabet ::= FROM SubtypeSpec
- InnerTypeConstraints ::= WITH COMPONENT SingleTypeConstraint
| WITH COMPONENTS MultipleTypeConstraints- SingleTypeConstraint ::= SubtypeSpec
- MultipleTypeConstraints ::= FullSpecification | PartialSpecification
- FullSpecification ::= "{" TypeConstraints "}"
- PartialSpecification ::= "{" DotDotDot Comma TypeConstraints "}"
- TypeConstraints ::= NamedConstraint | NamedConstraint Comma
TypeConstraints- NamedConstraint ::= Identifier Constraint | Constraint
- Constraint ::= ValueConstraint PresenceConstraint
- ValueConstraint ::= SubtypeSpec | empty
- PresenceConstraint ::= PRESENT | ABSENT | OPTIONAL | empty
http://www.ibm.com/rational |
![]() |
![]() |
![]() |
![]() |