macross/lookups.h

28 lines
1.5 KiB
C

#ifndef LOOKUPS_H_
#define LOOKUPS_H_
conditionType lookupConditionCode (char *s, int hashValue);
int lookupKeyword (char *s, int hashValue);
macroTableEntryType *lookupMacroName (char *s, int hashValue);
opcodeTableEntryType *lookupOpcode (char *s, int hashValue);
symbolTableEntryType *lookupOrEnterSymbol (stringType *s, symbolUsageKindType kind);
void pushSymbol (symbolTableEntryType *symbol);
void popSymbol (symbolTableEntryType *symbol);
macroTableEntryType *createMacro (stringType *macroName);
genericTableEntryType *prehashedStringLookup (char *s, genericTableEntryType **table, int hashValue);
genericTableEntryType *hashStringLookup (char *s, genericTableEntryType **table);
genericTableEntryType *hashStringEnter (genericTableEntryType *entry, genericTableEntryType **table);
int hashString (char *s);
bool strcmplc (char *s1, char *s2);
bool strcmplct (char *s1, char *s2);
void purgeSymbol (symbolTableEntryType *symbol);
void reincarnateSymbol (symbolInContextType *context, symbolUsageKindType newUsage);
void pushBinding (symbolTableEntryType *symbol, valueType *newBinding, symbolUsageKindType newUsage);
void popBinding (symbolTableEntryType *symbol);
int bindMacroArguments (argumentDefinitionListType *argumentList, operandListType *parameterList, stringType *macroName);
int bindFunctionArguments (argumentDefinitionListType *argumentList, operandListType *parameterList, stringType *functionName);
void unbindArguments (argumentDefinitionListType *argumentList, int numberToUnbind);
void unbindLocalVariables (identifierListType *identifierList);
#endif