static void* _c0;
static void* _c1;
static void* _c2;
static void* _c3;
static void* _c4;
static void* _c5;
static void* _c6;
static void* _c7;
static void* _c8;
static void* _c9;
static void* _c10;
static void* _c11;
static void* _c12;
#include <OOC/SymbolTable.oh>
#include <Exception.oh>
#include <Strings.oh>
#include <URI/Parser.oh>
#include <URI/Scheme/File.oh>
static OOC_SymbolTable__Position OOC_SymbolTable__importPosition;
static OOC_SymbolTable__TypeClosure OOC_SymbolTable__emptyClosure;
static OOC_SymbolTable__Name OOC_SymbolTable__predefName;
typeof(OOC_SymbolTable__predefIdToType) OOC_SymbolTable__predefIdToType;
static URI__HierarchicalURI OOC_SymbolTable__emptyBaseURI;
static void OOC_SymbolTable__WriteType(ADT_Storable__Writer w, OOC_SymbolTable__Type type, OOC_SymbolTable__Type srcCodeType);
static void OOC_SymbolTable__ReadType(ADT_Storable__Reader r, OOC_SymbolTable__Type *type, OOC_SymbolTable__Type *srcCodeType);
static void OOC_SymbolTable__WriteItemList(ADT_Storable__Writer w, OOC_SymbolTable__Item item);
static void OOC_SymbolTable__ReadItemList(ADT_Storable__Reader r, OOC_SymbolTable__Item *list, OOC_SymbolTable__Item *last);
static OOC_CHAR8 OOC_SymbolTable__ExportTypePosition(OOC_SymbolTable__Type type);
static void OOC_SymbolTable__InitLinkDirective(OOC_SymbolTable__LinkDirective l);
static Object__String OOC_SymbolTable__ReadString8(ADT_Storable__Reader r);
static OOC_SymbolTable__LinkFile OOC_SymbolTable__NewLinkFile(URI__HierarchicalURI file, Object__String prefixOption, Object__String suffixOption);
static OOC_SymbolTable__LinkLib OOC_SymbolTable__NewLinkLib(Object__String libraryName, Object__StringArrayPtr dependencies, Object__String prefixOption, Object__String suffixOption, OOC_INT32 type);
static void OOC_SymbolTable__AddLinkDirective(OOC_SymbolTable__LinkDirective *list, OOC_SymbolTable__LinkDirective l);
static void OOC_SymbolTable__StoreTypeRef(ADT_Storable__Writer w, struct OOC_SymbolTable__TypeRef *typeRef, RT0__Struct typeRef__tag);
static void OOC_SymbolTable__LoadTypeRef(ADT_Storable__Reader r, struct OOC_SymbolTable__TypeRef *typeRef, RT0__Struct typeRef__tag);
static void OOC_SymbolTable__InitTypeClosure(OOC_SymbolTable__TypeClosure tc, OOC_SymbolTable__Position position, OOC_SymbolTable__Type baseType, OOC_SymbolTable__TypeVarArray params, OOC_SymbolTable__TypeRefArray arguments);
static void OOC_SymbolTable__Init(void);

/* run-time meta data */
static RT0__ModuleDesc _mid;
RT0__StructDesc _td_OOC_SymbolTable__Position = { (RT0__Struct[]){&_td_OOC_SymbolTable__PositionDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Position", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__PositionDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__PositionDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__PositionDesc_Store,(void*)OOC_SymbolTable__PositionDesc_Load}, NULL, &_mid, (OOC_CHAR8*)"PositionDesc", 12, 3, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Name = { (RT0__Struct[]){&_td_OOC_SymbolTable__NameDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Name", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__NameDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__PositionDesc,&_td_OOC_SymbolTable__NameDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__NameDesc_Store,(void*)OOC_SymbolTable__NameDesc_Load}, NULL, &_mid, (OOC_CHAR8*)"NameDesc", 16, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Flag = { (RT0__Struct[]){&_td_OOC_SymbolTable__FlagDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Flag", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__FlagDesc = { (RT0__Struct[]){&_td_OOC_SymbolTable__FlagDesc}, (void*[]){}, NULL, &_mid, (OOC_CHAR8*)"FlagDesc", 12, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Item = { (RT0__Struct[]){&_td_OOC_SymbolTable__ItemDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Item", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ItemDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ItemDesc_Store,(void*)OOC_SymbolTable__ItemDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace}, NULL, &_mid, (OOC_CHAR8*)"ItemDesc", 20, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Declaration = { (RT0__Struct[]){&_td_OOC_SymbolTable__DeclarationDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Declaration", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__DeclarationDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__DeclarationDesc_Store,(void*)OOC_SymbolTable__DeclarationDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace}, NULL, &_mid, (OOC_CHAR8*)"DeclarationDesc", 48, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__9410 = { (RT0__Struct[]){&_td_OOC_SymbolTable__Declaration}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__DeclarationArray = { (RT0__Struct[]){&_td_OOC_SymbolTable__9410}, NULL, NULL, &_mid, (OOC_CHAR8*)"DeclarationArray", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__Namespace = { (RT0__Struct[]){&_td_OOC_SymbolTable__NamespaceDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Namespace", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__NamespaceDesc = { (RT0__Struct[]){&_td_OOC_SymbolTable__NamespaceDesc}, (void*[]){(void*)OOC_SymbolTable__NamespaceDesc_IdentifyLocal2,(void*)OOC_SymbolTable__NamespaceDesc_IdentifyLocal,(void*)OOC_SymbolTable__NamespaceDesc_Identify2,(void*)OOC_SymbolTable__NamespaceDesc_Identify,(void*)OOC_SymbolTable__NamespaceDesc_GetSuperProcByIndex}, NULL, &_mid, (OOC_CHAR8*)"NamespaceDesc", 0, 0, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__TypePars = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeParsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypePars", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeVar = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeVarDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeVar", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__10134 = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeVar}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__TypeVarArray = { (RT0__Struct[]){&_td_OOC_SymbolTable__10134}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeVarArray", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeParsDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeParsDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__TypeParsDesc_Store,(void*)OOC_SymbolTable__TypeParsDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__TypeParsDesc_Namespace,(void*)OOC_SymbolTable__TypeParsDesc_SetNamespace}, NULL, &_mid, (OOC_CHAR8*)"TypeParsDesc", 28, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Type = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Type", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeDecl = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeDeclDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeDecl", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__TypeDesc_Store,(void*)OOC_SymbolTable__TypeDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure}, NULL, &_mid, (OOC_CHAR8*)"TypeDesc", 40, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__LinkDirective = { (RT0__Struct[]){&_td_OOC_SymbolTable__LinkDirectiveDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"LinkDirective", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__LinkDirectiveDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__LinkDirectiveDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__LinkDirectiveDesc_Store,(void*)OOC_SymbolTable__LinkDirectiveDesc_Load}, NULL, &_mid, (OOC_CHAR8*)"LinkDirectiveDesc", 4, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__LinkFile = { (RT0__Struct[]){&_td_OOC_SymbolTable__LinkFileDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"LinkFile", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__LinkFileDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__LinkDirectiveDesc,&_td_OOC_SymbolTable__LinkFileDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__LinkFileDesc_Store,(void*)OOC_SymbolTable__LinkFileDesc_Load}, NULL, &_mid, (OOC_CHAR8*)"LinkFileDesc", 16, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__LinkLib = { (RT0__Struct[]){&_td_OOC_SymbolTable__LinkLibDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"LinkLib", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__LinkLibDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__LinkDirectiveDesc,&_td_OOC_SymbolTable__LinkLibDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__LinkLibDesc_Store,(void*)OOC_SymbolTable__LinkLibDesc_Load}, NULL, &_mid, (OOC_CHAR8*)"LinkLibDesc", 24, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Module = { (RT0__Struct[]){&_td_OOC_SymbolTable__ModuleDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Module", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ModuleRef = { (RT0__Struct[]){&_td_OOC_SymbolTable__ModuleRefDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ModuleRef", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ModuleRefDesc = { (RT0__Struct[]){&_td_OOC_SymbolTable__ModuleRefDesc}, (void*[]){}, NULL, &_mid, (OOC_CHAR8*)"ModuleRefDesc", 8, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__17871 = { (RT0__Struct[]){&_td_OOC_SymbolTable__ModuleRef}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__ModuleRefArray = { (RT0__Struct[]){&_td_OOC_SymbolTable__17871}, NULL, NULL, &_mid, (OOC_CHAR8*)"ModuleRefArray", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ProcDecl = { (RT0__Struct[]){&_td_OOC_SymbolTable__ProcDeclDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ProcDecl", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ModuleDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__ModuleDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ModuleDesc_Store,(void*)OOC_SymbolTable__ModuleDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ModuleDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__ModuleDesc_SetNamespace,(void*)OOC_SymbolTable__ModuleDesc_SetLibraryName,(void*)OOC_SymbolTable__ModuleDesc_ClassToString,(void*)OOC_SymbolTable__ModuleDesc_CallConvToString,(void*)OOC_SymbolTable__ModuleDesc_AddLinkFile,(void*)OOC_SymbolTable__ModuleDesc_AddLinkLib,(void*)OOC_SymbolTable__ModuleDesc_NoObjectFile,(void*)OOC_SymbolTable__ModuleDesc_GetExternalSource}, NULL, &_mid, (OOC_CHAR8*)"ModuleDesc", 84, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Import = { (RT0__Struct[]){&_td_OOC_SymbolTable__ImportDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Import", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ImportDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__ImportDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ImportDesc_Store,(void*)OOC_SymbolTable__ImportDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__ImportDesc_SetExternalSymTab,(void*)OOC_SymbolTable__ImportDesc_IsInternalImport}, NULL, &_mid, (OOC_CHAR8*)"ImportDesc", 60, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__PredefType = { (RT0__Struct[]){&_td_OOC_SymbolTable__PredefTypeDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"PredefType", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__PredefTypeDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__PredefTypeDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__PredefTypeDesc_Store,(void*)OOC_SymbolTable__PredefTypeDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure}, NULL, &_mid, (OOC_CHAR8*)"PredefTypeDesc", 44, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__TypeName = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeNameDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeName", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeNameDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__TypeNameDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__TypeNameDesc_Store,(void*)OOC_SymbolTable__TypeNameDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure,(void*)OOC_SymbolTable__TypeNameDesc_IsPredefReference,(void*)OOC_SymbolTable__TypeNameDesc_MarkAsPredefReference,(void*)OOC_SymbolTable__TypeNameDesc_GetImport}, NULL, &_mid, (OOC_CHAR8*)"TypeNameDesc", 48, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Pointer = { (RT0__Struct[]){&_td_OOC_SymbolTable__PointerDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Pointer", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__PointerDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__PointerDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__PointerDesc_Store,(void*)OOC_SymbolTable__PointerDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure}, NULL, &_mid, (OOC_CHAR8*)"PointerDesc", 52, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__ExceptionName = { (RT0__Struct[]){&_td_OOC_SymbolTable__ExceptionNameDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ExceptionName", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__23512 = { (RT0__Struct[]){&_td_OOC_SymbolTable__ExceptionName}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__ExceptionNameArray = { (RT0__Struct[]){&_td_OOC_SymbolTable__23512}, NULL, NULL, &_mid, (OOC_CHAR8*)"ExceptionNameArray", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ExceptionNameDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__ExceptionNameDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ExceptionNameDesc_Store,(void*)OOC_SymbolTable__ExceptionNameDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace}, NULL, &_mid, (OOC_CHAR8*)"ExceptionNameDesc", 28, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__VarDecl = { (RT0__Struct[]){&_td_OOC_SymbolTable__VarDeclDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"VarDecl", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__24130 = { (RT0__Struct[]){&_td_OOC_SymbolTable__VarDecl}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__VarDeclArray = { (RT0__Struct[]){&_td_OOC_SymbolTable__24130}, NULL, NULL, &_mid, (OOC_CHAR8*)"VarDeclArray", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__FormalPars = { (RT0__Struct[]){&_td_OOC_SymbolTable__FormalParsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"FormalPars", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__FormalParsDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__FormalParsDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__FormalParsDesc_Store,(void*)OOC_SymbolTable__FormalParsDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__FormalParsDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure,(void*)OOC_SymbolTable__FormalParsDesc_EnableRestParameters,(void*)OOC_SymbolTable__FormalParsDesc_SetResultType,(void*)OOC_SymbolTable__FormalParsDesc_SetNamespace}, NULL, &_mid, (OOC_CHAR8*)"FormalParsDesc", 68, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Array = { (RT0__Struct[]){&_td_OOC_SymbolTable__ArrayDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Array", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ArrayDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__ArrayDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ArrayDesc_Store,(void*)OOC_SymbolTable__ArrayDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure,(void*)OOC_SymbolTable__ArrayDesc_SetLength,(void*)OOC_SymbolTable__ArrayDesc_GetOpenDimensions,(void*)OOC_SymbolTable__ArrayDesc_GetNonOpenElementType,(void*)OOC_SymbolTable__ArrayDesc_GetInnermostElementType,(void*)OOC_SymbolTable__ArrayDesc_GetNthElementType}, NULL, &_mid, (OOC_CHAR8*)"ArrayDesc", 64, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Record = { (RT0__Struct[]){&_td_OOC_SymbolTable__RecordDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Record", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__RecordDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__RecordDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__RecordDesc_Store,(void*)OOC_SymbolTable__RecordDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__RecordDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure,(void*)OOC_SymbolTable__RecordDesc_SetNamespace,(void*)OOC_SymbolTable__RecordDesc_AssignTBProcIndex,(void*)OOC_SymbolTable__RecordDesc_ExtensionLevel}, NULL, &_mid, (OOC_CHAR8*)"RecordDesc", 68, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__TypeVarDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__TypeVarDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__TypeVarDesc_Store,(void*)OOC_SymbolTable__TypeVarDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeDesc_Deparam,(void*)OOC_SymbolTable__TypeVarDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure,(void*)OOC_SymbolTable__TypeVarDesc_SetParameterIndex}, NULL, &_mid, (OOC_CHAR8*)"TypeVarDesc", 52, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__QualType = { (RT0__Struct[]){&_td_OOC_SymbolTable__QualTypeDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"QualType", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeRef = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeRef}, (void*[]){}, NULL, &_mid, (OOC_CHAR8*)"TypeRef", 8, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__34170 = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeRef}, NULL, NULL, &_mid, NULL, 8, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__TypeRefArray = { (RT0__Struct[]){&_td_OOC_SymbolTable__34170}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeRefArray", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__QualTypeDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__QualTypeDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__QualTypeDesc_Store,(void*)OOC_SymbolTable__QualTypeDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__QualTypeDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__QualTypeDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeDesc_Closure}, NULL, &_mid, (OOC_CHAR8*)"QualTypeDesc", 52, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__TypeClosure = { (RT0__Struct[]){&_td_OOC_SymbolTable__TypeClosureDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeClosure", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__TypeClosureDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__TypeDesc,&_td_OOC_SymbolTable__TypeClosureDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__TypeDesc_Store,(void*)OOC_SymbolTable__TypeDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__TypeDesc_PreciousTypePars,(void*)OOC_SymbolTable__TypeDesc_IsCheckedException,(void*)OOC_SymbolTable__TypeDesc_SetNamingDecl,(void*)OOC_SymbolTable__TypeDesc_SetTypePars,(void*)OOC_SymbolTable__TypeDesc_SetSize,(void*)OOC_SymbolTable__TypeDesc_ArrayDimensions,(void*)OOC_SymbolTable__TypeClosureDesc_Deparam,(void*)OOC_SymbolTable__TypeDesc_Bound,(void*)OOC_SymbolTable__TypeClosureDesc_Closure,(void*)OOC_SymbolTable__TypeClosureDesc_Lookup,(void*)OOC_SymbolTable__TypeClosureDesc_ArgumentsInduced}, NULL, &_mid, (OOC_CHAR8*)"TypeClosureDesc", 52, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__ProcDeclDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__ProcDeclDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ProcDeclDesc_Store,(void*)OOC_SymbolTable__ProcDeclDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ProcDeclDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__ProcDeclDesc_SetNamespace,(void*)OOC_SymbolTable__ProcDeclDesc_SetLinkName,(void*)OOC_SymbolTable__ProcDeclDesc_CopyTBProcIndex,(void*)OOC_SymbolTable__ProcDeclDesc_IsTypeBound,(void*)OOC_SymbolTable__ProcDeclDesc_Class,(void*)OOC_SymbolTable__ProcDeclDesc_RegisterForwardDecl,(void*)OOC_SymbolTable__ProcDeclDesc_IsModuleBody}, NULL, &_mid, (OOC_CHAR8*)"ProcDeclDesc", 80, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__PredefProc = { (RT0__Struct[]){&_td_OOC_SymbolTable__PredefProcDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"PredefProc", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__PredefProcDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__PredefProcDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__PredefProcDesc_Store,(void*)OOC_SymbolTable__PredefProcDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace}, NULL, &_mid, (OOC_CHAR8*)"PredefProcDesc", 56, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__ConstDecl = { (RT0__Struct[]){&_td_OOC_SymbolTable__ConstDeclDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ConstDecl", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ConstDeclDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__ConstDeclDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__ConstDeclDesc_Store,(void*)OOC_SymbolTable__ConstDeclDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__ConstDeclDesc_SetValueType}, NULL, &_mid, (OOC_CHAR8*)"ConstDeclDesc", 60, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__VarDeclDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__VarDeclDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__VarDeclDesc_Store,(void*)OOC_SymbolTable__VarDeclDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__VarDeclDesc_SetType}, NULL, &_mid, (OOC_CHAR8*)"VarDeclDesc", 68, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__FieldDecl = { (RT0__Struct[]){&_td_OOC_SymbolTable__FieldDeclDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"FieldDecl", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__FieldDeclDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__FieldDeclDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__FieldDeclDesc_Store,(void*)OOC_SymbolTable__FieldDeclDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__FieldDeclDesc_SetOffset}, NULL, &_mid, (OOC_CHAR8*)"FieldDeclDesc", 64, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__TypeDeclDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__TypeDeclDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__TypeDeclDesc_Store,(void*)OOC_SymbolTable__TypeDeclDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace,(void*)OOC_SymbolTable__TypeDeclDesc_HasTypeParameters,(void*)OOC_SymbolTable__TypeDeclDesc_IsTypeParameter,(void*)OOC_SymbolTable__TypeDeclDesc_ParametricType}, NULL, &_mid, (OOC_CHAR8*)"TypeDeclDesc", 60, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Redirect = { (RT0__Struct[]){&_td_OOC_SymbolTable__RedirectDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Redirect", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__RedirectDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_ADT_Storable__ObjectDesc,&_td_OOC_SymbolTable__ItemDesc,&_td_OOC_SymbolTable__DeclarationDesc,&_td_OOC_SymbolTable__RedirectDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_SymbolTable__RedirectDesc_Store,(void*)OOC_SymbolTable__RedirectDesc_Load,(void*)OOC_SymbolTable__ItemDesc_Module,(void*)OOC_SymbolTable__ItemDesc_InStandardModule,(void*)OOC_SymbolTable__ItemDesc_Procedure,(void*)OOC_SymbolTable__ItemDesc_AddFlag,(void*)OOC_SymbolTable__ItemDesc_Namespace,(void*)OOC_SymbolTable__DeclarationDesc_Name,(void*)OOC_SymbolTable__DeclarationDesc_IncrUsageCounter,(void*)OOC_SymbolTable__DeclarationDesc_GetId,(void*)OOC_SymbolTable__DeclarationDesc_GetEmbeddedNamespace}, NULL, &_mid, (OOC_CHAR8*)"RedirectDesc", 56, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__44745 = { (RT0__Struct[]){&_td_OOC_SymbolTable__PredefType}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_SymbolTable__44734 = { (RT0__Struct[]){&_td_OOC_SymbolTable__44745}, NULL, NULL, &_mid, NULL, 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__Writer = { (RT0__Struct[]){&_td_OOC_SymbolTable__WriterDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Writer", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__WriterDesc = { (RT0__Struct[]){&_td_IO_BinaryRider__WriterDesc,&_td_ADT_Storable__WriterDesc,&_td_ADT_Object_Storage__WriterDesc,&_td_OOC_SymbolTable__WriterDesc}, (void*[]){(void*)IO_BinaryRider__WriterDesc_SetPos,(void*)IO_BinaryRider__WriterDesc_WriteBytes,(void*)IO_BinaryRider__WriterDesc_WriteOrdered,(void*)IO_BinaryRider__WriterDesc_WriteChar,(void*)IO_BinaryRider__WriterDesc_WriteBool,(void*)IO_BinaryRider__WriterDesc_WriteLChar,(void*)IO_BinaryRider__WriterDesc_WriteString,(void*)IO_BinaryRider__WriterDesc_WriteLString,(void*)IO_BinaryRider__WriterDesc_WriteSInt,(void*)IO_BinaryRider__WriterDesc_WriteInt,(void*)IO_BinaryRider__WriterDesc_WriteLInt,(void*)IO_BinaryRider__WriterDesc_WriteNum,(void*)IO_BinaryRider__WriterDesc_WriteReal,(void*)IO_BinaryRider__WriterDesc_WriteLReal,(void*)IO_BinaryRider__WriterDesc_WriteSet,(void*)IO_BinaryRider__WriterDesc_WriteStr,(void*)IO_BinaryRider__WriterDesc_SetByteOrder,(void*)OOC_SymbolTable__WriterDesc_INIT,(void*)ADT_Object_Storage__WriterDesc_WriteObject,(void*)ADT_Object_Storage__WriterDesc_Disconnect}, NULL, &_mid, (OOC_CHAR8*)"WriterDesc", 284, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__Reader = { (RT0__Struct[]){&_td_OOC_SymbolTable__ReaderDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Reader", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_SymbolTable__ReaderDesc = { (RT0__Struct[]){&_td_IO_BinaryRider__ReaderDesc,&_td_ADT_Storable__ReaderDesc,&_td_ADT_Object_Storage__ReaderDesc,&_td_OOC_SymbolTable__ReaderDesc}, (void*[]){(void*)IO_BinaryRider__ReaderDesc_SetPos,(void*)IO_BinaryRider__ReaderDesc_ReadBytes,(void*)IO_BinaryRider__ReaderDesc_ReadBytesOrdered,(void*)IO_BinaryRider__ReaderDesc_ReadBool,(void*)IO_BinaryRider__ReaderDesc_ReadChar,(void*)IO_BinaryRider__ReaderDesc_ReadLChar,(void*)IO_BinaryRider__ReaderDesc_ReadString,(void*)IO_BinaryRider__ReaderDesc_ReadLString,(void*)IO_BinaryRider__ReaderDesc_ReadSInt,(void*)IO_BinaryRider__ReaderDesc_ReadInt,(void*)IO_BinaryRider__ReaderDesc_ReadLInt,(void*)IO_BinaryRider__ReaderDesc_ReadNum,(void*)IO_BinaryRider__ReaderDesc_ReadReal,(void*)IO_BinaryRider__ReaderDesc_ReadLReal,(void*)IO_BinaryRider__ReaderDesc_ReadSet,(void*)IO_BinaryRider__ReaderDesc_ReadStr,(void*)IO_BinaryRider__ReaderDesc_SetByteOrder,(void*)OOC_SymbolTable__ReaderDesc_INIT,(void*)ADT_Object_Storage__ReaderDesc_ReadObject,(void*)ADT_Object_Storage__ReaderDesc_Disconnect}, NULL, &_mid, (OOC_CHAR8*)"ReaderDesc", 284, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_SymbolTable__64777 = { (RT0__Struct[]){&RT0__char}, NULL, NULL, &_mid, NULL, 1024, 1024, (1<<RT0__flagAtomic), RT0__strArray };
static RT0__ModuleDesc _mid = { (OOC_CHAR8*)"OOC:SymbolTable", (RT0__Struct[]) { &_td_OOC_SymbolTable__Position, &_td_OOC_SymbolTable__PositionDesc, &_td_OOC_SymbolTable__Name, &_td_OOC_SymbolTable__NameDesc, &_td_OOC_SymbolTable__Flag, &_td_OOC_SymbolTable__FlagDesc, &_td_OOC_SymbolTable__Item, &_td_OOC_SymbolTable__ItemDesc, &_td_OOC_SymbolTable__Declaration, &_td_OOC_SymbolTable__DeclarationDesc, &_td_OOC_SymbolTable__DeclarationArray, &_td_OOC_SymbolTable__Namespace, &_td_OOC_SymbolTable__NamespaceDesc, &_td_OOC_SymbolTable__TypePars, &_td_OOC_SymbolTable__TypeVar, &_td_OOC_SymbolTable__TypeVarArray, &_td_OOC_SymbolTable__TypeParsDesc, &_td_OOC_SymbolTable__Type, &_td_OOC_SymbolTable__TypeDecl, &_td_OOC_SymbolTable__TypeDesc, &_td_OOC_SymbolTable__LinkDirective, &_td_OOC_SymbolTable__LinkDirectiveDesc, &_td_OOC_SymbolTable__LinkFile, &_td_OOC_SymbolTable__LinkFileDesc, &_td_OOC_SymbolTable__LinkLib, &_td_OOC_SymbolTable__LinkLibDesc, &_td_OOC_SymbolTable__Module, &_td_OOC_SymbolTable__ModuleRef, &_td_OOC_SymbolTable__ModuleRefDesc, &_td_OOC_SymbolTable__ModuleRefArray, &_td_OOC_SymbolTable__ProcDecl, &_td_OOC_SymbolTable__ModuleDesc, &_td_OOC_SymbolTable__Import, &_td_OOC_SymbolTable__ImportDesc, &_td_OOC_SymbolTable__PredefType, &_td_OOC_SymbolTable__PredefTypeDesc, &_td_OOC_SymbolTable__TypeName, &_td_OOC_SymbolTable__TypeNameDesc, &_td_OOC_SymbolTable__Pointer, &_td_OOC_SymbolTable__PointerDesc, &_td_OOC_SymbolTable__ExceptionName, &_td_OOC_SymbolTable__ExceptionNameArray, &_td_OOC_SymbolTable__ExceptionNameDesc, &_td_OOC_SymbolTable__VarDecl, &_td_OOC_SymbolTable__VarDeclArray, &_td_OOC_SymbolTable__FormalPars, &_td_OOC_SymbolTable__FormalParsDesc, &_td_OOC_SymbolTable__Array, &_td_OOC_SymbolTable__ArrayDesc, &_td_OOC_SymbolTable__Record, &_td_OOC_SymbolTable__RecordDesc, &_td_OOC_SymbolTable__TypeVarDesc, &_td_OOC_SymbolTable__QualType, &_td_OOC_SymbolTable__TypeRef, &_td_OOC_SymbolTable__TypeRefArray, &_td_OOC_SymbolTable__QualTypeDesc, &_td_OOC_SymbolTable__TypeClosure, &_td_OOC_SymbolTable__TypeClosureDesc, &_td_OOC_SymbolTable__ProcDeclDesc, &_td_OOC_SymbolTable__PredefProc, &_td_OOC_SymbolTable__PredefProcDesc, &_td_OOC_SymbolTable__ConstDecl, &_td_OOC_SymbolTable__ConstDeclDesc, &_td_OOC_SymbolTable__VarDeclDesc, &_td_OOC_SymbolTable__FieldDecl, &_td_OOC_SymbolTable__FieldDeclDesc, &_td_OOC_SymbolTable__TypeDeclDesc, &_td_OOC_SymbolTable__Redirect, &_td_OOC_SymbolTable__RedirectDesc, &_td_OOC_SymbolTable__Writer, &_td_OOC_SymbolTable__WriterDesc, &_td_OOC_SymbolTable__Reader, &_td_OOC_SymbolTable__ReaderDesc, NULL }, 0 };

extern void OOC_OOC_SymbolTable_open(RT0__Module client) {
  if (_mid.openCount == 0) {
    OOC_Object_open(&_mid);
    OOC_Object_Boxed_open(&_mid);
    OOC_Exception_open(&_mid);
    OOC_Strings_open(&_mid);
    OOC_ADT_Dictionary_AddressKey_open(&_mid);
    OOC_ADT_Dictionary_open(&_mid);
    OOC_ADT_Storable_open(&_mid);
    OOC_ADT_ArrayList_open(&_mid);
    OOC_ADT_Object_Storage_open(&_mid);
    OOC_IO_open(&_mid);
    OOC_URI_open(&_mid);
    OOC_URI_Parser_open(&_mid);
    OOC_URI_Scheme_File_open(&_mid);
    OOC_OOC_Scanner_InputBuffer_open(&_mid);
    OOC_OOC_Scanner_SymList_open(&_mid);
    OOC_OOC_Doc_open(&_mid);
    OOC_OOC_AST_open(&_mid);
    OOC_RT0_open(&_mid);
    OOC_Object_open(&_mid);
    OOC_Exception_open(&_mid);

    RT0__RegisterModule(&_mid);
    OOC_OOC_SymbolTable_init();
  }
  _mid.openCount++;
}
extern void OOC_OOC_SymbolTable_close(RT0__Module client) {
  _mid.openCount--;
  if (_mid.openCount == 0) { 
    OOC_OOC_SymbolTable_destroy();
    RT0__UnregisterModule(&_mid);

    OOC_Object_close(&_mid);
    OOC_Object_Boxed_close(&_mid);
    OOC_Exception_close(&_mid);
    OOC_Strings_close(&_mid);
    OOC_ADT_Dictionary_AddressKey_close(&_mid);
    OOC_ADT_Dictionary_close(&_mid);
    OOC_ADT_Storable_close(&_mid);
    OOC_ADT_ArrayList_close(&_mid);
    OOC_ADT_Object_Storage_close(&_mid);
    OOC_IO_close(&_mid);
    OOC_URI_close(&_mid);
    OOC_URI_Parser_close(&_mid);
    OOC_URI_Scheme_File_close(&_mid);
    OOC_OOC_Scanner_InputBuffer_close(&_mid);
    OOC_OOC_Scanner_SymList_close(&_mid);
    OOC_OOC_Doc_close(&_mid);
    OOC_OOC_AST_close(&_mid);
    OOC_RT0_close(&_mid);
    OOC_Object_close(&_mid);
    OOC_Exception_close(&_mid);
  }
}

/* --- */
