00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef __MK__MKNameTable_H___
00027 #define __MK__MKNameTable_H___
00028
00029 #define _MK_NOFREESTRINGBIT 0x8000
00030 #define _MK_AUTOIMPORTBIT 0x4000
00031 #define _MK_BACKHASHBIT 0x2000
00032
00033 @interface _MKNameTable: NSObject
00034 {
00035 NSMapTable *symbols;
00036 NSMapTable *types;
00037 }
00038
00039 - (id) initWithCapacity: (unsigned) capacity;
00040 - (void) dealloc;
00041
00042 @end
00043
00044
00045 extern void _MKNameGlobal(NSString * name,id dataObj,unsigned short type, BOOL autoImport,BOOL copyIt);
00046 extern id _MKGetNamedGlobal(NSString * name,unsigned short *type);
00047 extern NSString *_MKGetGlobalName(id object);
00048
00049
00050 extern NSString *_MKUniqueName(NSString *name,_MKNameTable *table,id anObject,id *hashObj);
00051 extern _MKNameTable *_MKNewScorefileParseTable(void);
00052 extern id _MKGetListElementWithName(id aList,char *aName);
00053 extern _MKNameTable *_MKNameTableAddName(_MKNameTable *table,NSString *theName,
00054 id owner, id object,
00055 unsigned short type,BOOL copyIt);
00056 extern id _MKNameTableGetFirstObjectForName(_MKNameTable *table,NSString *theName);
00057 extern id _MKNameTableGetObjectForName(_MKNameTable *table,NSString *theName,id theOwner,
00058 unsigned short *typeP);
00059 extern NSString *_MKNameTableGetObjectName(_MKNameTable *table,id theObject,id *theOwner);
00060 extern _MKNameTable *_MKNameTableRemoveName(_MKNameTable *table,NSString *theName,id theOwner);
00061 extern _MKNameTable *_MKNameTableRemoveObject(_MKNameTable *table,id theObject);
00062 extern void _MKFreeScorefileTable(_MKNameTable *aTable);
00063 extern NSString *_MKSymbolize(NSString *sym,BOOL *wasChanged);
00064
00065 #endif