566 lines
31 KiB
C
566 lines
31 KiB
C
#ifndef _ASN1_PARSER_
|
|
#define _ASN1_PARSER_
|
|
/* Copyright (C) Boris Nikolaus, Germany, 1996-1997. All rights reserved. */
|
|
|
|
typedef char *XString;
|
|
typedef char32_t *XString32;
|
|
typedef intx_t XNumber;
|
|
typedef ASN1bool_t XBoolean;
|
|
typedef Type_t *XType;
|
|
typedef TagType_e XTagType;
|
|
typedef TagClass_e XTagClass;
|
|
typedef Tag_t *XTags;
|
|
typedef ExtensionType_e XExtensionType;
|
|
typedef NamedType_t *XNamedType;
|
|
typedef ComponentList_t XComponents;
|
|
typedef Constraint_t *XConstraints;
|
|
typedef ElementSetSpec_t *XElementSetSpec;
|
|
typedef SubtypeElement_t *XSubtypeElement;
|
|
typedef ObjectSetElement_t *XObjectSetElement;
|
|
typedef DirectiveList_t XDirectives;
|
|
typedef NamedConstraintList_t XNamedConstraints;
|
|
typedef Presence_e XPresence;
|
|
typedef NamedNumberList_t XNamedNumbers;
|
|
typedef Value_t *XValue;
|
|
typedef ValueSet_t *XValueSet;
|
|
typedef EndPoint_t XEndPoint;
|
|
typedef Tuple_t XTuple;
|
|
typedef Quadruple_t XQuadruple;
|
|
typedef NamedValueList_t XNamedValues;
|
|
typedef ModuleIdentifier_t *XModuleIdentifier;
|
|
typedef NamedObjIdValueList_t XNamedObjIdValue;
|
|
typedef ObjectClass_t *XObjectClass;
|
|
typedef ObjectSet_t *XObjectSet;
|
|
typedef Object_t *XObject;
|
|
typedef SyntaxSpecList_t XSyntaxSpecs;
|
|
typedef FieldSpecList_t XFieldSpecs;
|
|
typedef Optionality_t *XOptionality;
|
|
typedef SettingList_t XSettings;
|
|
typedef StringList_t XStrings;
|
|
typedef StringModuleList_t XStringModules;
|
|
typedef Macro_t *XMacro;
|
|
typedef MacroProduction_t *XMacroProduction;
|
|
typedef NamedMacroProductionList_t XMacroProductions;
|
|
typedef MacroLocalAssignmentList_t XMacroLocalAssignments;
|
|
typedef PrivateDirectives_t *XPrivateDirectives;
|
|
typedef struct LLPOS {
|
|
int line;
|
|
int column;
|
|
char *file;
|
|
} LLPOS;
|
|
typedef struct LLSTATE {
|
|
LLPOS pos;
|
|
AssignmentList_t Assignments;
|
|
AssignedObjIdList_t AssignedObjIds;
|
|
UndefinedSymbolList_t Undefined;
|
|
UndefinedSymbolList_t BadlyDefined;
|
|
ModuleIdentifier_t *Module;
|
|
ModuleIdentifier_t *MainModule;
|
|
StringModuleList_t Imported;
|
|
TagType_e TagDefault;
|
|
ExtensionType_e ExtensionDefault;
|
|
} LLSTATE;
|
|
int ll_Main(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ModuleDefinition_ESeq(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ModuleDefinition(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ModuleIdentifier(XModuleIdentifier *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinitiveIdentifier(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinitiveObjIdComponentList(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinitiveObjIdComponent(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinitiveNumberForm(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinitiveNameAndNumberForm(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TagDefault(XTagType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExtensionDefault(XExtensionType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ModuleBody(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Exports(XStrings *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SymbolsExported(XStrings *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Imports(XStringModules *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SymbolsImported(XStringModules *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SymbolsFromModule_ESeq(XStringModules *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SymbolsFromModule(XStringModules *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_GlobalModuleReference(XModuleIdentifier *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AssignedIdentifier(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SymbolList(XStrings *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Symbol(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Reference(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AssignmentList(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Assignment_ESeq(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Assignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_typereference(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Externaltypereference(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_valuereference(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Externalvaluereference(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_objectclassreference(XObjectClass *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExternalObjectClassReference(XObjectClass *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_objectreference(XObject *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExternalObjectReference(XObject *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_objectsetreference(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExternalObjectSetReference(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_macroreference(XMacro *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Externalmacroreference(XMacro *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_localtypereference(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_localvaluereference(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_productionreference(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_modulereference(XModuleIdentifier *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_typefieldreference(XString *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_valuefieldreference(XString *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_valuesetfieldreference(XString *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_objectfieldreference(XString *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_objectsetfieldreference(XString *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_word(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_identifier(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ucsymbol(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ocsymbol(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_astring(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TypeAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ValueSetTypeAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ValueSet(XValueSet *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_Type(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_UndirectivedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_UntaggedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ConstrainableType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Constraint_ESeq(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_BuiltinType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ReferencedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NamedType(XNamedType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_BooleanType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_IntegerType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NamedNumberList(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NamedNumber(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_EnumeratedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Enumerations(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_EnumerationExtension(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Enumeration(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_EnumerationItem(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_RealType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_BitStringType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NamedBitList(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NamedBit(XNamedNumbers *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_OctetStringType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_UTF8StringType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NullType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SequenceType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExtensionAndException(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExtendedComponentTypeList(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ComponentTypeListExtension(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AdditionalComponentTypeList(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ComponentTypeList(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ComponentType(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ComponentTypePostfix(XComponents *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SequenceOfType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SetType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SetOfType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ChoiceType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExtendedAlternativeTypeList(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AlternativeTypeListExtension(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AdditionalAlternativeTypeList(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AlternativeTypeList(XComponents *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AnyType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_SelectionType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TaggedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TagType(XTagType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Tag(XTags *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ClassNumber(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Class(XTagClass *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectIdentifierType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_EmbeddedPDVType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExternalType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_CharacterStringType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_RestrictedCharacterStringType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_UnrestrictedCharacterStringType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_UsefulType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TypeWithConstraint(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinedValue(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ValueAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Value(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_BuiltinValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ReferencedValue(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NamedValue(XNamedValues *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_BooleanValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SignedNumber(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_IntegerValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_EnumeratedValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_RealValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_NumericRealValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SpecialRealValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_BitStringValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_IdentifierList(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_Identifier_EList(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_IdentifierList_Elem(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_OctetStringValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_NullValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_GeneralizedTimeValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_UTCTimeValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ObjectDescriptorValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SequenceValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ComponentValueList(XNamedValues *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_ComponentValueCList(XNamedValues *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_SequenceOfValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ValueList(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ValueCList(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SetValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SetOfValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ChoiceValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ObjectIdentifierValue(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjIdComponentList(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjIdComponent_ESeq(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjIdComponent(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NameForm(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NumberForm(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_NameAndNumberForm(XNamedObjIdValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_EmbeddedPDVValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ExternalValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_CharacterStringValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_RestrictedCharacterStringValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_UnrestrictedCharacterStringValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_CharacterStringList(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_CharSyms(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_CharDefn(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_Quadruple(XQuadruple *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Tuple(XTuple *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_AnyValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_Constraint(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_ConstraintSpec(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_SubtypeConstraint(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_ExceptionSpec(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ExceptionIdentification(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ElementSetSpecs(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_ElementSetSpecExtension(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_AdditionalElementSetSpec(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_ElementSetSpec(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_Unions(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_UnionList(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_Intersections(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_IntersectionList(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_IntersectionElements(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_Exclusions_Opt(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_Exclusions(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_UnionMark(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_IntersectionMark(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Elements(XElementSetSpec *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XObjectClass llarg_objectclass, XBoolean llarg_permalpha);
|
|
int ll_SubtypeElements(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type, XBoolean llarg_permalpha);
|
|
int ll_SingleValue(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ContainedSubtype(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_Includes(XBoolean *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ValueRange(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_LowerEndpoint(XEndPoint *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_UpperEndpoint(XEndPoint *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_LowerEndValue(XEndPoint *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_UpperEndValue(XEndPoint *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SizeConstraint(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TypeConstraint(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PermittedAlphabet(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_InnerTypeConstraints(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_SingleTypeConstraint(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_MultipleTypeConstraints(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_FullSpecification(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_PartialSpecification(XSubtypeElement *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_TypeConstraints(XNamedConstraints *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_NamedConstraint(XNamedConstraints *llret, LLSTATE *llin, LLSTATE *llout, XComponents llarg_components);
|
|
int ll_ComponentConstraint(XNamedConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ValueConstraint(XConstraints *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_PresenceConstraint(XPresence *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_GeneralConstraint(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_LocalTypeDirectiveSeq(XDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_LocalTypeDirectiveESeq(XDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_LocalTypeDirective(XDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_LocalSizeDirectiveSeq(XDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_LocalSizeDirectiveESeq(XDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_LocalSizeDirective(XDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Type(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Field(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Value(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Public(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Intx(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_LenPtr(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Pointer(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_Array(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_NoCode(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_NoMemCopy(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_OidPacked(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_OidArray(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_SLinked(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDir_DLinked(int *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_PrivateDirectives(XPrivateDirectives *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinedObjectClass(XObjectClass *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinedObject(XObject *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_DefinedObjectSet(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Usefulobjectclassreference(XObjectClass *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectClassAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectClass(XObjectClass *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectClassDefn(XObjectClass *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_FieldSpec_List(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_FieldSpec_EList(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_WithSyntaxSpec_opt(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_FieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_TypeFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_TypeOptionalitySpec_opt(XOptionality *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_FixedTypeValueFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_UNIQUE_opt(XBoolean *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ValueOptionalitySpec_opt(XOptionality *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_VariableTypeValueFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_FixedTypeValueSetFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ValueSetOptionalitySpec_opt(XOptionality *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_VariableTypeValueSetFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectOptionalitySpec_opt(XOptionality *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectSetFieldSpec(XFieldSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectSetOptionalitySpec_opt(XOptionality *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_PrimitiveFieldName(XString *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_FieldName(XStrings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_SyntaxList(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_TokenOrGroupSpec_Seq(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_TokenOrGroupSpec_ESeq(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_TokenOrGroupSpec(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_OptionalGroup(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_RequiredToken(XSyntaxSpecs *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_Literal(XString *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_Object(XObject *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectDefn(XObject *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_DefaultSyntax(XObject *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_FieldSetting_EList(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se);
|
|
int ll_FieldSetting_EListC(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se);
|
|
int ll_FieldSetting(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se);
|
|
int ll_DefinedSyntax(XObject *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_DefinedSyntaxToken_ESeq(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se, XSyntaxSpecs llarg_sy);
|
|
int ll_DefinedSyntaxToken(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se, XSyntaxSpecs llarg_sy);
|
|
int ll_DefinedSyntaxToken_Elem(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se, XSyntaxSpecs llarg_sy);
|
|
int ll_Setting(XSettings *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc, XSettings llarg_se, XString llarg_f);
|
|
int ll_ObjectSetAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectSet(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectSetSpec(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectSetElements(XObjectSetElement *llret, LLSTATE *llin, LLSTATE *llout, XObjectClass llarg_oc);
|
|
int ll_ObjectClassFieldType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectClassFieldValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_OpenTypeFieldVal(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_FixedTypeFieldVal(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ValueFromObject(XValue *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ValueSetFromObjects(XValueSet *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_TypeFromObject(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectFromObject(XObject *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ObjectSetFromObjects(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ReferencedObjects(XObject *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ReferencedObjectSets(XObjectSet *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_InstanceOfType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_InstanceOfValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_MacroDefinition(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_MacroDefinedType(XType *llret, LLSTATE *llin, LLSTATE *llout);
|
|
int ll_MacroDefinedValue(XValue *llret, LLSTATE *llin, LLSTATE *llout, XType llarg_type);
|
|
int ll_ParameterizedValueSetType(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedReference(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedType(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedValue(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedAssignment(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedObjectClass(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedObject(LLSTATE *llin, LLSTATE *llout);
|
|
int ll_ParameterizedObjectSet(LLSTATE *llin, LLSTATE *llout);
|
|
typedef union LLSTYPE{
|
|
XNumber _XNumber;
|
|
XString _XString;
|
|
XString32 _XString32;
|
|
XModuleIdentifier _XModuleIdentifier;
|
|
XValue _XValue;
|
|
XNamedObjIdValue _XNamedObjIdValue;
|
|
XTagType _XTagType;
|
|
XExtensionType _XExtensionType;
|
|
XStrings _XStrings;
|
|
XStringModules _XStringModules;
|
|
XType _XType;
|
|
XObjectClass _XObjectClass;
|
|
XObject _XObject;
|
|
XObjectSet _XObjectSet;
|
|
XMacro _XMacro;
|
|
XValueSet _XValueSet;
|
|
XConstraints _XConstraints;
|
|
XNamedType _XNamedType;
|
|
XNamedNumbers _XNamedNumbers;
|
|
XComponents _XComponents;
|
|
XTags _XTags;
|
|
XTagClass _XTagClass;
|
|
XNamedValues _XNamedValues;
|
|
XQuadruple _XQuadruple;
|
|
XTuple _XTuple;
|
|
XBoolean _XBoolean;
|
|
XElementSetSpec _XElementSetSpec;
|
|
XSubtypeElement _XSubtypeElement;
|
|
XEndPoint _XEndPoint;
|
|
XNamedConstraints _XNamedConstraints;
|
|
XPresence _XPresence;
|
|
XDirectives _XDirectives;
|
|
int _int;
|
|
XPrivateDirectives _XPrivateDirectives;
|
|
XFieldSpecs _XFieldSpecs;
|
|
XSyntaxSpecs _XSyntaxSpecs;
|
|
XOptionality _XOptionality;
|
|
XSettings _XSettings;
|
|
XObjectSetElement _XObjectSetElement;
|
|
} LLSTYPE;
|
|
typedef struct LLTERM {
|
|
int token;
|
|
LLSTYPE lval;
|
|
LLPOS pos;
|
|
} LLTERM;
|
|
void llscanner(LLTERM **tokens, unsigned *ntokens);
|
|
int llparser(LLTERM *tokens, unsigned ntokens, LLSTATE *llin, LLSTATE *llout);
|
|
void llprinterror(FILE *f);
|
|
void llverror(FILE *f, LLPOS *pos, char *fmt, va_list args);
|
|
void llerror(FILE *f, LLPOS *pos, char *fmt, ...);
|
|
int llgettoken(int *token, LLSTYPE *lval, LLPOS *pos);
|
|
#if LLDEBUG > 0
|
|
void lldebug_init();
|
|
#endif
|
|
#define T_DEF 257
|
|
#define T_DDOT 258
|
|
#define T_TDOT 259
|
|
#define T_TYPE_IDENTIFIER 260
|
|
#define T_ABSTRACT_SYNTAX 261
|
|
#define T_ZERO_TERMINATED 262
|
|
#define T_POINTER 263
|
|
#define T_NO_POINTER 264
|
|
#define T_FIXED_ARRAY 265
|
|
#define T_SINGLY_LINKED_LIST 266
|
|
#define T_DOUBLY_LINKED_LIST 267
|
|
#define T_LENGTH_POINTER 268
|
|
#define T_Number 269
|
|
#define T_number 270
|
|
#define T_bstring 271
|
|
#define T_hstring 272
|
|
#define T_cstring 273
|
|
#define T_only_uppercase_symbol 274
|
|
#define T_only_uppercase_digits_symbol 275
|
|
#define T_uppercase_symbol 276
|
|
#define T_lcsymbol 277
|
|
#define T_ampucsymbol 278
|
|
#define T_amplcsymbol 279
|
|
#define T_CON_XXX1 280
|
|
#define T_CON_XXX2 281
|
|
#define T_OBJ_XXX1 282
|
|
#define T_OBJ_XXX2 283
|
|
#define T_OBJ_XXX3 284
|
|
#define T_OBJ_XXX4 285
|
|
#define T_OBJ_XXX5 286
|
|
#define T_OBJ_XXX6 287
|
|
#define T_OBJ_XXX7 288
|
|
#define T_DUM_XXX1 289
|
|
#define T_DUM_XXX2 290
|
|
#define T_DUM_XXX3 291
|
|
#define T_DUM_XXX4 292
|
|
#define T_DUM_XXX5 293
|
|
#define T_DUM_XXX6 294
|
|
#define T_DUM_XXX7 295
|
|
#define T_DUM_XXX8 296
|
|
#define T_DUM_XXX9 297
|
|
#define T_DUM_XXX10 298
|
|
#define T_DUM_XXX11 299
|
|
#define T_DUM_XXX12 300
|
|
#define T_DUM_XXX13 301
|
|
#define T_DUM_XXX14 302
|
|
#define T_DUM_XXX15 303
|
|
#define T_DUM_XXX16 304
|
|
#define T_DUM_XXX17 305
|
|
#define T_DUM_XXX18 306
|
|
#define T_DUM_XXX19 307
|
|
#define T_DUM_XXX20 308
|
|
#define T_DEFINITIONS 309
|
|
#define T_BEGIN 310
|
|
#define T_END 311
|
|
#define T_EXPLICIT 312
|
|
#define T_TAGS 313
|
|
#define T_IMPLICIT 314
|
|
#define T_AUTOMATIC 315
|
|
#define T_EXTENSIBILITY 316
|
|
#define T_IMPLIED 317
|
|
#define T_EXPORTS 318
|
|
#define T_IMPORTS 319
|
|
#define T_FROM 320
|
|
#define T_ABSENT 321
|
|
#define T_ALL 322
|
|
#define T_ANY 323
|
|
#define T_APPLICATION 324
|
|
#define T_BMPString 325
|
|
#define T_BY 326
|
|
#define T_CLASS 327
|
|
#define T_COMPONENT 328
|
|
#define T_COMPONENTS 329
|
|
#define T_CONSTRAINED 330
|
|
#define T_DEFAULT 331
|
|
#define T_DEFINED 332
|
|
#define T_empty 333
|
|
#define T_EXCEPT 334
|
|
#define T_GeneralizedTime 335
|
|
#define T_GeneralString 336
|
|
#define T_GraphicString 337
|
|
#define T_IA5String 338
|
|
#define T_IDENTIFIER 339
|
|
#define T_identifier 340
|
|
#define T_INCLUDES 341
|
|
#define T_ISO646String 342
|
|
#define T_MACRO 343
|
|
#define T_MAX 344
|
|
#define T_MIN 345
|
|
#define T_NOTATION 346
|
|
#define T_NumericString 347
|
|
#define T_ObjectDescriptor 348
|
|
#define T_OF 349
|
|
#define T_OPTIONAL 350
|
|
#define T_PDV 351
|
|
#define T_PRESENT 352
|
|
#define T_PrintableString 353
|
|
#define T_PRIVATE 354
|
|
#define T_SIZE 355
|
|
#define T_STRING 356
|
|
#define T_string 357
|
|
#define T_SYNTAX 358
|
|
#define T_T61String 359
|
|
#define T_TeletexString 360
|
|
#define T_TYPE 361
|
|
#define T_type 362
|
|
#define T_UNIQUE 363
|
|
#define T_UNIVERSAL 364
|
|
#define T_UniversalString 365
|
|
#define T_UTCTime 366
|
|
#define T_UTF8String 367
|
|
#define T_VALUE 368
|
|
#define T_value 369
|
|
#define T_VideotexString 370
|
|
#define T_VisibleString 371
|
|
#define T_WITH 372
|
|
#define T_BOOLEAN 373
|
|
#define T_INTEGER 374
|
|
#define T_ENUMERATED 375
|
|
#define T_REAL 376
|
|
#define T_BIT 377
|
|
#define T_OCTET 378
|
|
#define T_NULL 379
|
|
#define T_SEQUENCE 380
|
|
#define T_SET 381
|
|
#define T_CHOICE 382
|
|
#define T_OBJECT 383
|
|
#define T_EMBEDDED 384
|
|
#define T_EXTERNAL 385
|
|
#define T_CHARACTER 386
|
|
#define T_TRUE 387
|
|
#define T_FALSE 388
|
|
#define T_PLUS_INFINITY 389
|
|
#define T_MINUS_INFINITY 390
|
|
#define T_UNION 391
|
|
#define T_INTERSECTION 392
|
|
#define T_PrivateDir_TypeName 393
|
|
#define T_PrivateDir_FieldName 394
|
|
#define T_PrivateDir_ValueName 395
|
|
#define T_PrivateDir_Public 396
|
|
#define T_PrivateDir_Intx 397
|
|
#define T_PrivateDir_LenPtr 398
|
|
#define T_PrivateDir_Pointer 399
|
|
#define T_PrivateDir_Array 400
|
|
#define T_PrivateDir_NoCode 401
|
|
#define T_PrivateDir_NoMemCopy 402
|
|
#define T_PrivateDir_OidPacked 403
|
|
#define T_PrivateDir_OidArray 404
|
|
#define T_PrivateDir_SLinked 405
|
|
#define T_PrivateDir_DLinked 406
|
|
#define T_INSTANCE 407
|
|
#endif // _ASN1_PARSER_
|