⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asn_ref_grammar.y

📁 asn格式文件的编译器
💻 Y
📖 第 1 页 / 共 2 页
字号:
  : 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 + -