windows-nt/Source/XPSP1/NT/sdktools/asn1/asn1c/parser.h
2020-09-26 16:20:57 +08:00

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_