aboutsummaryrefslogtreecommitdiffstats
path: root/bnf.txt
diff options
context:
space:
mode:
Diffstat (limited to 'bnf.txt')
-rw-r--r--bnf.txt630
1 files changed, 630 insertions, 0 deletions
diff --git a/bnf.txt b/bnf.txt
new file mode 100644
index 0000000..3f7ca2d
--- /dev/null
+++ b/bnf.txt
@@ -0,0 +1,630 @@
+ModuleDefinition ::=
+ ModuleIdentifier
+ DEFINITIONS
+ EncodingReferenceDefault
+ TagDefault
+ ExtensionDefault
+ "::="
+ BEGIN
+ ModuleBody
+ EncodingControlSections
+ END
+ModuleIdentifier ::=
+ modulereference
+ DefinitiveIdentification
+DefinitiveIdentification ::=
+ | DefinitiveOID
+ | DefinitiveOIDandIRI
+ | empty
+DefinitiveOID ::=
+ "{" DefinitiveObjIdComponentList "}"
+DefinitiveOIDandIRI ::=
+ DefinitiveOID
+ IRIValue
+DefinitiveObjIdComponentList ::=
+ DefinitiveObjIdComponent
+ | DefinitiveObjIdComponent DefinitiveObjIdComponentList
+DefinitiveObjIdComponent ::=
+ NameForm
+ | DefinitiveNumberForm
+ | DefinitiveNameAndNumberForm
+DefinitiveNumberForm ::= number
+DefinitiveNameAndNumberForm ::= identifier "(" DefinitiveNumberForm ")"
+EncodingReferenceDefault ::=
+ encodingreference INSTRUCTIONS
+ | empty
+TagDefault ::=
+ EXPLICIT TAGS
+ | IMPLICIT TAGS
+ | AUTOMATIC TAGS
+ | empty
+ExtensionDefault ::=
+ EXTENSIBILITY IMPLIED
+ | empty
+ModuleBody ::=
+ Exports Imports AssignmentList
+ | empty
+Exports ::=
+ EXPORTS SymbolsExported ";"
+ | EXPORTS ALL ";"
+ | empty
+SymbolsExported ::=
+ SymbolList
+ | empty
+Imports ::=
+ IMPORTS SymbolsImported ";"
+ | empty
+SymbolsImported ::=
+ SymbolsFromModuleList
+ | empty
+SymbolsFromModuleList ::=
+ SymbolsFromModule
+ | SymbolsFromModuleList SymbolsFromModule
+SymbolsFromModule ::=
+ SymbolList FROM GlobalModuleReference
+GlobalModuleReference ::=
+ modulereference AssignedIdentifier
+AssignedIdentifier ::=
+ ObjectIdentifierValue
+ | DefinedValue
+ | empty
+SymbolList ::=
+ Symbol
+ | SymbolList "," Symbol
+Symbol ::=
+ Reference
+ | ParameterizedReference
+Reference ::=
+ typereference
+ | valuereference
+ | objectclassreference
+ | objectreference
+ | objectsetreference
+AssignmentList ::=
+ Assignment
+ | AssignmentList Assignment
+Assignment ::=
+ TypeAssignment
+ | ValueAssignment
+ | ValueSetTypeAssignment
+ | ObjectClassAssignment
+ | ObjectAssignment
+ | ObjectSetAssignment
+ | ParameterizedAssignment
+DefinedType ::=
+ ExternalTypeReference
+ | typereference
+ | ParameterizedType
+ | ParameterizedValueSetType
+DefinedValue ::=
+ ExternalValueReference
+ | valuereference
+ | ParameterizedValue
+NonParameterizedTypeName ::=
+ ExternalTypeReference
+ | typereference
+ | xmlasn1typename
+ExternalTypeReference ::=
+ modulereference
+ "."
+ typereference
+ExternalValueReference ::=
+ modulereference
+ "."
+ valuereference
+AbsoluteReference ::=
+ "@" ModuleIdentifier
+ "."
+ ItemSpec
+ItemSpec ::=
+ typereference
+ | ItemId "." ComponentId
+ItemId ::= ItemSpec
+ComponentId ::=
+ identifier
+ | number
+ | "*"
+TypeAssignment ::=
+ typereference
+ "::="
+ Type
+ValueAssignment ::=
+ valuereference
+ Type
+ "::="
+ Value
+ValueSetTypeAssignment ::=
+ typereference
+ Type
+ "::="
+ ValueSet
+ValueSet ::= "{" ElementSetSpecs "}"
+Type ::= BuiltinType | ReferencedType | ConstrainedType
+BuiltinType ::=
+ BitStringType
+ | BooleanType
+ | CharacterStringType
+ | ChoiceType
+ | DateType
+ | DateTimeType
+ | DurationType
+ | EmbeddedPDVType
+ | EnumeratedType
+ | ExternalType
+ | InstanceOfType
+ | IntegerType
+ | IRIType
+ | NullType
+ | ObjectClassFieldType
+ | ObjectIdentifierType
+ | OctetStringType
+ | RealType
+ | RelativeIRIType
+ | RelativeOIDType
+ | SequenceType
+ | SequenceOfType
+ | SetType
+ | SetOfType
+ | PrefixedType
+ | TimeType
+ | TimeOfDayType
+ReferencedType ::=
+ DefinedType
+ | UsefulType
+ | SelectionType
+ | TypeFromObject
+ | ValueSetFromObjects
+NamedType ::= identifier Type
+Value ::=
+ BuiltinValue
+ | ReferencedValue
+ | ObjectClassFieldValue
+BuiltinValue ::=
+ BitStringValue
+ | BooleanValue
+ | CharacterStringValue
+ | ChoiceValue
+ | EmbeddedPDVValue
+ | EnumeratedValue
+ | ExternalValue
+ | InstanceOfValue
+ | IntegerValue
+ | IRIValue
+ | NullValue
+ | ObjectIdentifierValue
+ | OctetStringValue
+ | RealValue
+ | RelativeIRIValue
+ | RelativeOIDValue
+ | SequenceValue
+ | SequenceOfValue
+ | SetValue
+ | SetOfValue
+ | PrefixedValue
+ | TimeValue
+ReferencedValue ::=
+ DefinedValue
+ | ValueFromObject
+NamedValue ::= identifier Value
+BooleanType ::=BOOLEAN
+BooleanValue::= TRUE | FALSE
+EmptyElementBoolean ::=
+ "<" & "true" "/>"
+ | "<" & "false" "/>"
+TextBoolean ::=
+ extended-true
+ | extended-false
+IntegerType ::=
+ INTEGER
+ | INTEGER "{" NamedNumberList "}"
+NamedNumberList ::=
+ NamedNumber
+ | NamedNumberList "," NamedNumber
+NamedNumber ::=
+ identifier "(" SignedNumber ")"
+ | identifier "(" DefinedValue ")"
+SignedNumber ::=
+ number
+ | "-" number
+IntegerValue ::=
+ SignedNumber
+ | identifier
+EmptyElementInteger ::=
+ | "<" & identifier "/>"
+TextInteger ::=
+ identifier
+EnumeratedType ::=
+ ENUMERATED "{" Enumerations "}"
+Enumerations ::=
+ RootEnumeration
+ | RootEnumeration "," "..." ExceptionSpec
+ | RootEnumeration "," "..." ExceptionSpec "," AdditionalEnumeration
+RootEnumeration ::= Enumeration
+AdditionalEnumeration ::= Enumeration
+Enumeration ::= EnumerationItem | EnumerationItem "," Enumeration
+EnumerationItem ::= identifier | NamedNumber
+EnumeratedValue ::= identifier
+EmptyElementEnumerated ::= "<" & identifier "/>"
+TextEnumerated ::= identifier
+RealType ::= REAL
+RealValue ::=
+ NumericRealValue
+ | SpecialRealValue
+NumericRealValue ::=
+ realnumber
+ | "-" realnumber
+ | SequenceValue
+SpecialRealValue ::=
+ PLUS-INFINITY
+ | MINUS-INFINITY
+ | NOT-A-NUMBER
+EmptyElementReal ::=
+ "<" & PLUS-INFINITY "/>"
+ | "<" & MINUS-INFINITY "/>"
+ | "<" & NOT-A-NUMBER "/>"
+TextReal ::=
+ "INF"
+ | "-" & "INF"
+ | "NaN"
+BitStringType ::=
+ BIT STRING
+ | BIT STRING "{" NamedBitList "}"
+NamedBitList ::=
+ NamedBit
+ | NamedBitList "," NamedBit
+NamedBit ::=
+ identifier "(" number ")"
+ | identifier "(" DefinedValue ")"
+BitStringValue ::=
+ bstring
+ | hstring
+ | "{" IdentifierList "}"
+ | "{" "}"
+ | CONTAINING Value
+IdentifierList ::=
+ identifier
+ | IdentifierList "," identifier
+EmptyElementList ::=
+ "<" & identifier "/>"
+ | EmptyElementList "<" & identifier "/>"
+TextList ::=
+ identifier
+ | TextList identifier
+OctetStringType ::= OCTET STRING
+OctetStringValue ::=
+ bstring
+ | hstring
+ | CONTAINING Value
+NullType ::= NULL
+NullValue ::= NULL
+SequenceType ::=
+ SEQUENCE "{" "}"
+ | SEQUENCE "{" ExtensionAndException OptionalExtensionMarker "}"
+ | SEQUENCE "{" ComponentTypeLists "}"
+ExtensionAndException ::= "..." | "..." ExceptionSpec
+OptionalExtensionMarker ::= "," "..." | empty
+ComponentTypeLists ::=
+ RootComponentTypeList
+ | RootComponentTypeList "," ExtensionAndException ExtensionAdditions
+ OptionalExtensionMarker
+ | RootComponentTypeList "," ExtensionAndException ExtensionAdditions
+ ExtensionEndMarker "," RootComponentTypeList
+ | ExtensionAndException ExtensionAdditions ExensionEndMarker ","
+ RootComponentTypeList
+ | ExtensionAndException ExtensionAdditions OptionalExtensionMarker
+RootComponentTypeList ::= ComponentTypeList
+ExtensionEndMarker ::= "," "..."
+ExtensionAdditions ::=
+ "," ExtensionAdditionList
+ | empty
+ExtensionAdditionList ::=
+ ExtensionAddition
+ | ExtensionAdditionList "," ExtensionAddition
+ExtensionAddition ::=
+ ComponentType
+ | ExtensionAdditionGroup
+ExtensionAdditionGroup ::= "[[" VersionNumber ComponentTypeList "]]"
+VersionNumber ::= empty | number ":"
+ComponentTypeList ::=
+ ComponentType
+ | ComponentTypeList "," ComponentType
+ComponentType ::=
+ NamedType
+ | NamedType OPTIONAL
+ | NamedType DEFAULT Value
+ | COMPONENTS OF Type
+SequenceValue ::=
+ "{" ComponentValueList "}"
+ | "{" "}"
+ComponentValueList ::=
+ NamedValue
+ | ComponentValueList "," NamedValue
+SequenceOfType ::= SEQUENCE OF Type | SEQUENCE OF NamedType
+SequenceOfValue ::=
+ "{" ValueList "}"
+ | "{" NamedValueList "}"
+ | "{" "}"
+ValueList ::=
+ Value
+ | ValueList "," Value
+NamedValueList ::=
+ NamedValue
+ | NamedValueList "," NamedValue
+SetType ::=
+ SET "{" "}"
+ | SET "{" ExtensionAndException OptionalExtensionMarker "}"
+ | SET "{" ComponentTypeLists "}"
+SetValue ::=
+ "{" ComponentValueList "}"
+ | "{" "}"
+SetOfType ::=
+ SET OF Type
+ | SET OF NamedType
+SetOfValue ::=
+ "{" ValueList "}"
+ | "{" NamedValueList "}"
+ | "{" "}"
+ChoiceType ::= CHOICE "{" AlternativeTypeLists "}"
+AlternativeTypeLists ::=
+ RootAlternativeTypeList
+ | RootAlternativeTypeList ","
+ ExtensionAndException ExtensionAdditionAlternatives
+ OptionalExtensionMarker
+RootAlternativeTypeList ::= AlternativeTypeList
+ExtensionAdditionAlternatives ::=
+ "," ExtensionAdditionAlternativesList
+ | empty
+ExtensionAdditionAlternativesList ::=
+ ExtensionAdditionAlternative
+ | ExtensionAdditionAlternativesList "," ExtensionAdditionAlternative
+ExtensionAdditionAlternative ::=
+ ExtensionAdditionAlternativesGroup
+ | NamedType
+ExtensionAdditionAlternativesGroup ::=
+ "[[" VersionNumber AlternativeTypeList "]]"
+AlternativeTypeList ::=
+ NamedType
+ | AlternativeTypeList "," NamedType
+ChoiceValue ::= identifier ":" Value
+SelectionType ::= identifier "<" Type
+PrefixedType ::=
+ TaggedType
+ | EncodingPrefixedType
+PrefixedValue ::= Value
+EncodingPrefixedType ::=
+ EncodingPrefix Type
+EncodingPrefix ::=
+ "[" EncodingReference EncodingInstruction "]"
+TaggedType ::=
+ Tag Type
+ | Tag IMPLICIT Type
+ | Tag EXPLICIT Type
+Tag ::= "[" EncodingReference Class ClassNumber "]"
+EncodingReference ::=
+encodingreference ":"
+ | empty
+ClassNumber ::=
+ number
+ | DefinedValue
+Class ::=
+ UNIVERSAL
+ | APPLICATION
+ | PRIVATE
+ | empty
+EncodingPrefixedType ::=
+ EncodingPrefix Type
+EncodingPrefix ::=
+ "[" EncodingReference EncodingInstruction "]"
+ObjectIdentifierType ::=
+ OBJECT IDENTIFIER
+ObjectIdentifierValue ::=
+ "{" ObjIdComponentsList "}"
+ | "{" DefinedValue ObjIdComponentsList "}"
+ObjIdComponentsList ::=
+ ObjIdComponents
+ | ObjIdComponents ObjIdComponentsList
+ObjIdComponents ::=
+ NameForm
+ | NumberForm
+ | NameAndNumberForm
+ | DefinedValue
+NameForm ::= identifier
+NumberForm ::= number | DefinedValue
+NameAndNumberForm ::=
+ identifier "(" NumberForm ")"
+RelativeOIDType ::= RELATIVE-OID
+RelativeOIDValue ::=
+ "{" RelativeOIDComponentsList "}"
+RelativeOIDComponentsList ::=
+ RelativeOIDComponents
+ | RelativeOIDComponents RelativeOIDComponentsList
+RelativeOIDComponents ::=
+ NumberForm
+ | NameAndNumberForm
+ | DefinedValue
+IRIType ::= OID-IRI
+IRIValue ::=
+ """
+ FirstArcIdentifier
+ SubsequentArcIdentifier
+ """
+FirstArcIdentifier ::=
+ "/" ArcIdentifier
+SubsequentArcIdentifier ::=
+ "/" ArcIdentifier SubsequentArcIdentifier
+ | empty
+ArcIdentifier ::=
+ integerUnicodeLabel
+ | non-integerUnicodeLabel
+RelativeIRIType ::= RELATIVE-OID-IRI
+RelativeIRIValue ::=
+ """
+ FirstRelativeArcIdentifier
+ SubsequentArcIdentifier
+ """
+FirstRelativeArcIdentifier ::=
+ ArcIdentifier
+EmbeddedPDVType ::= EMBEDDED PDV
+EmbeddedPDVValue ::= SequenceValue
+ExternalType ::= EXTERNAL
+ExternalValue ::= SequenceValue
+TimeType ::= TIME
+TimeValue ::= tstring
+DateType ::= DATE
+TimeOfDayType ::= TIME-OF-DAY
+DateTimeType ::= DATE-TIME
+DurationType ::= DURATION
+CharacterStringType ::=
+ RestrictedCharacterStringType
+ | UnrestrictedCharacterStringType
+CharacterStringValue ::=
+ RestrictedCharacterStringValue
+ | UnrestrictedCharacterStringValue
+RestrictedCharacterStringType ::=
+ BMPString
+ | GeneralString
+ | GraphicString
+ | IA5String
+ | ISO646String
+ | NumericString
+ | PrintableString
+ | TeletexString
+ | T61String
+ | UniversalString
+ | UTF8String
+ | VideotexString
+ | VisibleString
+RestrictedCharacterStringValue ::=
+ cstring
+ | CharacterStringList
+ | Quadruple
+ | Tuple
+CharacterStringList ::= "{" CharSyms "}"
+CharSyms ::=
+ CharsDefn
+ | CharSyms "," CharsDefn
+CharsDefn ::=
+ cstring
+ | Quadruple
+ | Tuple
+ | DefinedValue
+Quadruple ::= "{" Group "," Plane "," Row "," Cell "}"
+Group ::= number
+Plane ::= number
+Row ::= number
+Cell ::= number
+Tuple ::= "{" TableColumn "," TableRow "}"
+TableColumn ::= number
+TableRow ::= number
+UnrestrictedCharacterStringType ::= CHARACTER STRING
+UnrestrictedCharacterStringValue ::= SequenceValue
+UsefulType ::= typereference
+he following character string types are defined in 41.1:
+ UTF8String GraphicString
+ NumericString VisibleString
+ PrintableString ISO646String
+ TeletexString GeneralString
+ T61String UniversalString
+ VideotexString BMPString
+ IA5String
+he following useful types are defined in clauses 46 to 48:
+ GeneralizedTime
+ UTCTime
+ ObjectDescriptor
+he following productions are used in clauses 49 to 51:
+ConstrainedType ::=
+ Type Constraint
+ | TypeWithConstraint
+TypeWithConstraint ::=
+ SET Constraint OF Type
+ | SET SizeConstraint OF Type
+ | SEQUENCE Constraint OF Type
+ | SEQUENCE SizeConstraint OF Type
+ | SET Constraint OF NamedType
+ | SET SizeConstraint OF NamedType
+ | SEQUENCE Constraint OF NamedType
+ | SEQUENCE SizeConstraint OF NamedType
+Constraint ::= "(" ConstraintSpec ExceptionSpec ")"
+ConstraintSpec ::= SubtypeConstraint
+ | GeneralConstraint
+SubtypeConstraint ::= ElementSetSpecs
+ElementSetSpecs ::=
+ RootElementSetSpec
+ | RootElementSetSpec "," "..."
+ | RootElementSetSpec "," "..." "," AdditionalElementSetSpec
+RootElementSetSpec ::= ElementSetSpec
+AdditionalElementSetSpec ::= ElementSetSpec
+ElementSetSpec ::= Unions
+ | ALL Exclusions
+Unions ::= Intersections
+ | UElems UnionMark Intersections
+UElems ::= Unions
+Intersections ::= IntersectionElements
+ | IElems IntersectionMark IntersectionElements
+IElems ::= Intersections
+IntersectionElements ::= Elements | Elems Exclusions
+Elems ::= Elements
+Exclusions ::= EXCEPT Elements
+UnionMark ::= "|" | UNION
+IntersectionMark ::= "^" | INTERSECTION
+Elements ::=
+ SubtypeElements
+ | ObjectSetElements
+ | "(" ElementSetSpec ")"
+SubtypeElements ::=
+ SingleValue
+ | ContainedSubtype
+ | ValueRange
+ | PermittedAlphabet
+ | SizeConstraint
+ | TypeConstraint
+ | InnerTypeConstraints
+ | PatternConstraint
+ | PropertySettings
+ | DurationRange
+ | TimePointRange
+ | RecurrenceRange
+SingleValue ::= Value
+ContainedSubtype ::= Includes Type
+Includes ::= INCLUDES | empty
+ValueRange ::= LowerEndpoint ".." UpperEndpoint
+LowerEndpoint ::= LowerEndValue | LowerEndValue "<"
+UpperEndpoint ::= UpperEndValue | "<" UpperEndValue
+LowerEndValue ::= Value | MIN
+UpperEndValue ::= Value | MAX
+SizeConstraint ::= SIZE Constraint
+TypeConstraint ::= Type
+PermittedAlphabet ::= FROM Constraint
+InnerTypeConstraints ::=
+ WITH COMPONENT SingleTypeConstraint
+ | WITH COMPONENTS MultipleTypeConstraints
+SingleTypeConstraint::= Constraint
+MultipleTypeConstraints ::=
+ FullSpecification
+ | PartialSpecification
+FullSpecification ::= "{" TypeConstraints "}"
+PartialSpecification ::= "{" "..." "," TypeConstraints "}"
+TypeConstraints ::=
+ NamedConstraint
+ | NamedConstraint "," TypeConstraints
+NamedConstraint ::=
+ identifier ComponentConstraint
+ComponentConstraint ::= ValueConstraint PresenceConstraint
+ValueConstraint ::= Constraint | empty
+PresenceConstraint ::= PRESENT | ABSENT | OPTIONAL | empty
+PatternConstraint ::= PATTERN Value
+PropertySettings ::= SETTINGS simplestring
+PropertySettingsList ::=
+ PropertyAndSettingPair
+ | PropertySettingsList PropertyAndSettingPair
+PropertyAndSettingPair ::= PropertyName "=" SettingName
+PropertyName ::= psname
+SettingName ::= psname
+DurationRange ::= ValueRange
+TimePointRange ::= ValueRange
+RecurrenceRange ::= ValueRange
+ExceptionSpec ::= "!" ExceptionIdentification | empty
+ExceptionIdentification ::=
+ SignedNumber
+ | DefinedValue
+| Type ":" Value