mirror of
https://github.com/Museum-of-Art-and-Digital-Entertainment/macross.git
synced 2024-11-23 02:33:48 +00:00
30 lines
1.5 KiB
C
30 lines
1.5 KiB
C
#ifndef LOOKUPS_H_
|
|
#define LOOKUPS_H_
|
|
|
|
#include "macrossTypes.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
|