From 333b605b2afd472b823aeda0adf0e8b1ea9843c0 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Mon, 27 May 2019 02:41:51 +0100 Subject: initial commit from asl-1.41r8.tar.gz --- asmpars.h | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 asmpars.h (limited to 'asmpars.h') diff --git a/asmpars.h b/asmpars.h new file mode 100644 index 0000000..2f944b0 --- /dev/null +++ b/asmpars.h @@ -0,0 +1,207 @@ +/* asmpars.h */ +/*****************************************************************************/ +/* AS-Portierung */ +/* */ +/* Verwaltung von Symbolen und das ganze Drumherum... */ +/* */ +/* Historie: 5. 5.1996 Grundsteinlegung */ +/* 26. 6.1998 Codepages */ +/* 16. 8.1998 NoICE-Symbolausgabe */ +/* 6.12.1998 UInt14 */ +/* 12. 7.1999 angefangen mit externen Symbolen */ +/* */ +/*****************************************************************************/ + +typedef enum {UInt1 , + UInt2 , + UInt3 , + SInt4 ,UInt4 , Int4 , + SInt5 ,UInt5 , Int5 , + UInt6 , + SInt7 ,UInt7 , + SInt8 ,UInt8 , Int8 , + UInt9 , + UInt10 , Int10 , + UInt11 , + UInt12 , Int12 , + UInt13 , + UInt14 , + UInt15 , + SInt16 ,UInt16 , Int16 , + UInt18 , + SInt20 ,UInt20 , Int20 , + UInt22 , + SInt24 ,UInt24 , Int24 , + SInt32 ,UInt32 , Int32 , +#ifdef HAS64 + Int64 , +#endif + IntTypeCnt} IntType; + +typedef enum {Float32,Float64,Float80,FloatDec,FloatCo,FloatTypeCnt} FloatType; + +extern LargeWord IntMasks[IntTypeCnt]; +extern LargeInt IntMins[IntTypeCnt]; +extern LargeInt IntMaxs[IntTypeCnt]; + +extern Boolean FirstPassUnknown; +extern Boolean SymbolQuestionable; +extern Boolean UsesForwards; +extern LongInt MomLocHandle; +extern LongInt LocHandleCnt; +extern Boolean BalanceTree; +extern LongInt MomLocHandle; + + +extern void AsmParsInit(void); + + +extern Boolean SingleBit(LargeInt Inp, LargeInt *Erg); + + +extern LargeInt ConstIntVal(char *Asc_O, IntType Typ, Boolean *Ok); + +extern Double ConstFloatVal(char *Asc_O, FloatType Typ, Boolean *Ok); + +extern void ConstStringVal(char *Asc, char *Erg, Boolean *OK); + + +extern Boolean RangeCheck(LargeInt Wert, IntType Typ); + +extern Boolean FloatRangeCheck(Double Wert, FloatType Typ); + + +extern Boolean IdentifySection(char *Name, LongInt *Erg); + + +extern Boolean ExpandSymbol(char *Name); + +extern void EnterIntSymbol(char *Name_O, LargeInt Wert, Byte Typ, Boolean MayChange); + +extern void EnterExtSymbol(char *Name_O, LargeInt Wert, Byte Typ, Boolean MayChange); + +extern void EnterFloatSymbol(char *Name_O, Double Wert, Boolean MayChange); + +extern void EnterStringSymbol(char *Name_O, char *Wert, Boolean MayChange); + +extern Boolean GetIntSymbol(char *Name, LargeInt *Wert); + +extern Boolean GetFloatSymbol(char *Name, Double *Wert); + +extern Boolean GetStringSymbol(char *Name, char *Wert); + +extern void PrintSymbolList(void); + +extern void PrintDebSymbols(FILE *f); + +extern void PrintNoISymbols(FILE *f); + +extern void PrintSymbolTree(void); + +extern void ClearSymbolList(void); + +extern void ResetSymbolDefines(void); + +extern void PrintSymbolDepth(void); + + +extern void SetSymbolSize(char *Name, ShortInt Size); + +extern ShortInt GetSymbolSize(char *Name); + +extern Boolean IsSymbolFloat(char *Name); + +extern Boolean IsSymbolString(char *Name); + +extern Boolean IsSymbolDefined(char *Name); + +extern Boolean IsSymbolUsed(char *Name); + +extern Boolean IsSymbolChangeable(char *Name); + +extern Integer GetSymbolType(char *Name); + +extern void EvalExpression(char *Asc_O, TempResult *Erg); + +extern LargeInt EvalIntExpression(char *Asc, IntType Typ, Boolean *OK); + +extern Double EvalFloatExpression(char *Asc, FloatType Typ, Boolean *OK); + +extern void EvalStringExpression(char *Asc, Boolean *OK, char *Result); + + +extern Boolean PushSymbol(char *SymName_O, char *StackName_O); + +extern Boolean PopSymbol(char *SymName_O, char *StackName_O); + +extern void ClearStacks(void); + + +extern void EnterFunction(char *FName, char *FDefinition, Byte NewCnt); + +extern PFunction FindFunction(char *Name); + +extern void PrintFunctionList(void); + +extern void ClearFunctionList(void); + + +extern void AddDefSymbol(char *Name, TempResult *Value); + +extern void RemoveDefSymbol(char *Name); + +extern void CopyDefSymbols(void); + + +extern void PrintCrossList(void); + +extern void ClearCrossList(void); + + +extern LongInt GetSectionHandle(char *SName_O, Boolean AddEmpt, LongInt Parent); + +extern char *GetSectionName(LongInt Handle); + +extern void SetMomSection(LongInt Handle); + +extern void AddSectionUsage(LongInt Start, LongInt Length); + +extern void PrintSectionList(void); + +extern void PrintDebSections(FILE *f); + +extern void ClearSectionList(void); + + +extern void SetFlag(Boolean *Flag, char *Name, Boolean Wert); + + +extern LongInt GetLocHandle(void); + +extern void PushLocHandle(LongInt NewLoc); + +extern void PopLocHandle(void); + +extern void ClearLocStack(void); + + +extern void AddRegDef(char *Orig, char *Repl); + +extern Boolean FindRegDef(char *Name, char **Erg); + +extern void TossRegDefs(LongInt Sect); + +extern void CleanupRegDefs(void); + +extern void ClearRegDefs(void); + +extern void PrintRegDefs(void); + + +extern void ClearCodepages(void); + +extern void PrintCodepages(void); + + +extern void asmpars_init(void); + -- cgit v1.2.3