dect
/
asl
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asl/asmpars.h

208 lines
5.4 KiB
C

/* 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);