📄 asn_ref_grammar.y
字号:
: EMBEDDED PDV ;EnumeratedType : ENUMERATED '{' '}' ;ExternalType : EXTERNAL ;AnyType : ANY | ANY DEFINED BY IDENTIFIER ;InstanceOfType : INSTANCE OF_t DefinedObjectClass ;IntegerType : INTEGER_t | INTEGER_t '{' '}' ;NullType : NULL_t ;ObjectClassFieldType : DefinedObjectClass '.' FieldName ;ObjectIdentifierType : OBJECT IDENTIFIER_t ;OctetStringType : OCTET STRING ;RealType : REAL ;SequenceType : SEQUENCE '{' '}' ;SequenceOfType : SEQUENCE OF_t Type ;SetType : SET '{' '}' ;SetOfType : SET OF_t Type ;TaggedType : Tag Type | Tag IMPLICIT Type | Tag EXPLICIT Type ;Tag : '[' ']' ;SelectionType : IDENTIFIER '<' Type { delete $1; } ;UsefulType : GeneralizedTime | UTCTime | ObjectDescriptor_t ;InformationFromObjects : ReferencedObjects '.' FieldName { } ;ReferencedObjects : IDENTIFIER { delete $1; } | IDENTIFIER '{' '}' { delete $1; } | TypeReference { delete $1; } | ParameterizedType ;/********/ConstrainedType : Type Constraint | TypeWithConstraint ;TypeWithConstraint : SET Constraint OF_t Type | SET SizeConstraint OF_t Type | SEQUENCE Constraint OF_t Type | SEQUENCE SizeConstraint OF_t Type ;Constraint : '(' ')' ;SizeConstraint : SIZE_t Constraint ;/********/ObjectClassAssignment : WOULDBE_OBJECTCLASSREFERENCE ASSIGNMENT ObjectClass { Module->AddIdentifier($1, OBJECTCLASSREFERENCE); } ;ObjectAssignment : IDENTIFIER DefinedObjectClass ASSIGNMENT Object { Module->AddIdentifier($1, OBJECTREFERENCE); } ;ObjectSetAssignment : TYPEREFERENCE DefinedObjectClass ASSIGNMENT ObjectSet { Module->AddIdentifier($1, OBJECTSETREFERENCE); } | WOULDBE_OBJECTCLASSREFERENCE DefinedObjectClass ASSIGNMENT ObjectSet { Module->AddIdentifier($1, OBJECTSETREFERENCE); } ;ObjectClass : DefinedObjectClass | ObjectClassDefn | ParameterizedObjectClass ;DefinedObjectClass : ExternalObjectClassReference | OBJECTCLASSREFERENCE { delete $1; } | UsefulObjectClassReference ;ExternalObjectClassReference : MODULEREFERENCE '.' OBJECTCLASSREFERENCE { delete $1; delete $3; } ;UsefulObjectClassReference : TYPE_IDENTIFIER | ABSTRACT_SYNTAX ;ObjectClassDefn : CLASS '{' '}' WithSyntaxSpec ;WithSyntaxSpec : WITH SYNTAX '{' '}' | /* empty */ ;DefinedObject : ExternalObjectReference | IDENTIFIER { delete $1; } ;ExternalObjectReference : MODULEREFERENCE '.' IDENTIFIER { delete $1; delete $3; } ;ParameterizedObjectClass : DefinedObjectClass '{' '}' ;FieldName : FieldName '.' FIELDREFERENCE { delete $3; } | FIELDREFERENCE { delete $1; } ;Object : DefinedObject | '{' '}' | InformationFromObjects/* | ParameterizedObject */ ;ObjectSet : '{' '}' ;/********/ParameterizedAssignment : ParameterizedTypeAssignment | ParameterizedValueAssignment | ParameterizedValueSetTypeAssignment | ParameterizedObjectClassAssignment | ParameterizedObjectAssignment | ParameterizedObjectSetAssignment ;ParameterizedTypeAssignment : ParameterizedTypeReference ASSIGNMENT Type { Module->AddIdentifier($1, PARAMETERIZEDTYPEREFERENCE); } | ParameterizedWouldbeObjectClassReference ASSIGNMENT Type { Module->AddIdentifier($1, PARAMETERIZEDTYPEREFERENCE); } ;ParameterizedValueAssignment : ParameterizedIdentifier Type ASSIGNMENT Value { Module->AddIdentifier($1, PARAMETERIZEDVALUEREFERENCE); } ;ParameterizedValueSetTypeAssignment : ParameterizedTypeReference Type ASSIGNMENT '{' '}' { Module->AddIdentifier($1, PARAMETERIZEDTYPEREFERENCE); } | ParameterizedWouldbeObjectClassReference Type ASSIGNMENT '{' '}' { Module->AddIdentifier($1, PARAMETERIZEDTYPEREFERENCE); } ;ParameterizedObjectClassAssignment : ParameterizedWouldbeObjectClassReference ASSIGNMENT ObjectClass { Module->AddIdentifier($1, PARAMETERIZEDOBJECTCLASSREFERENCE); } ;ParameterizedObjectAssignment : ParameterizedIdentifier DefinedObjectClass ASSIGNMENT Object { Module->AddIdentifier($1, PARAMETERIZEDOBJECTREFERENCE); } ;ParameterizedObjectSetAssignment : ParameterizedTypeReference DefinedObjectClass ASSIGNMENT ObjectSet { Module->AddIdentifier($1, PARAMETERIZEDOBJECTSETREFERENCE); } | ParameterizedWouldbeObjectClassReference DefinedObjectClass ASSIGNMENT ObjectSet { Module->AddIdentifier($1, PARAMETERIZEDOBJECTSETREFERENCE); } ;ParameterizedWouldbeObjectClassReference : WOULDBE_OBJECTCLASSREFERENCE ParameterList ; ParameterizedTypeReference : TYPEREFERENCE ParameterList ;ParameterizedIdentifier : IDENTIFIER ParameterList ;ParameterList : '{' '}' ;/********/ValueAssignment : IDENTIFIER Type ASSIGNMENT Value { Module->AddIdentifier($1, VALUEREFERENCE); } ;Value : NonOpenTypeValue | ObjectClassFieldValue ;NonOpenTypeValue : BuiltinValue | ReferencedValue ;BuiltinValue : BitStringValue | BooleanValue | CharacterStringValue | ChoiceValue /*| EmbeddedPDVValue synonym to SequenceValue *//*| EnumeratedValue synonym to IDENTIFIER *//*| ExternalValue synonym to SequenceValue *//*| InstanceOfValue synonym to Value *//*| SignedNumber */ | NullValue | ObjectIdentifierValue | RealValue /*!!!! | SequenceValue | SequenceOfValue*//*| SetValue synonym to SequenceValue *//*| SetOfValue synonym to SequenceOfValue *//*| TaggedValue synonym to Value */ ;DefinedValue : ExternalValueReference | IDENTIFIER { delete $1; } | ParameterizedValue ;ExternalValueReference : MODULEREFERENCE '.' IDENTIFIER { delete $1; delete $3; } ;ObjectIdentifierValue : '{' '}' ;BitStringValue : BSTRING | HSTRING ;BooleanValue : TRUE_t | FALSE_t ;CharacterStringValue : RestrictedCharacterStringValue/*!!! | UnrestrictedCharacterStringValue*/ ;RestrictedCharacterStringValue : CSTRING ;ChoiceValue : IDENTIFIER ':' Value { delete $1; } ;NullValue : NULL_t ;RealValue : NumericRealValue | SpecialRealValue ;NumericRealValue : '0' ;SpecialRealValue : PLUS_INFINITY | MINUS_INFINITY ;ObjectClassFieldValue : OpenTypeFieldVal ;OpenTypeFieldVal : Type ':' Value ;ReferencedValue : DefinedValue | InformationFromObjects ;ParameterizedValue : SimpleDefinedValue '{' '}' ;SimpleDefinedValue : ExternalValueReference | IDENTIFIER { delete $1; } ;TypeReference : TYPEREFERENCE | WOULDBE_OBJECTCLASSREFERENCE ;Reference : TypeReference | IDENTIFIER ;/** End of File ****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -