diff options
Diffstat (limited to 'bnf.txt')
-rw-r--r-- | bnf.txt | 630 |
1 files changed, 630 insertions, 0 deletions
@@ -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 |