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/asmmac.h

106 lines
3.0 KiB
C

/* asmmac.h */
/*****************************************************************************/
/* AS-Portierung */
/* */
/* Unterroutinen des Makroprozessors */
/* */
/* Historie: 16. 5.1996 Grundsteinlegung */
/* */
/*****************************************************************************/
typedef struct _MacroRec
{
char *Name; /* Name des Makros */
Byte ParamCount; /* Anzahl Parameter */
StringList FirstLine; /* Zeiger auf erste Zeile */
Boolean Used; /* wird gerade benutzt-verhindert Rekusion */
Boolean LocMacExp; /* Makroexpansion wird aufgelistet */
} MacroRec,*PMacroRec;
#define BufferArraySize 1024
typedef struct _TInputTag
{
struct _TInputTag *Next;
Boolean IsMacro;
Integer IfLevel;
Boolean First;
Boolean OrigDoLst;
LongInt StartLine;
Boolean (*Processor)(
#ifdef __PROTOS__
struct _TInputTag *P, char *erg
#endif
);
LongInt ParCnt,ParZ;
StringList Params;
LongInt LineCnt,LineZ;
StringRecPtr Lines;
String SpecName,SaveAttr;
Boolean IsEmpty;
FILE *Datei;
void *Buffer;
void (*Cleanup)(
#ifdef __PROTOS__
struct _TInputTag *P
#endif
);
void (*Restorer)(
#ifdef __PROTOS__
struct _TInputTag *P
#endif
);
Boolean (*GetPos)(
#ifdef __PROTOS__
struct _TInputTag *P, char *Dest
#endif
);
} TInputTag,*PInputTag;
typedef struct _TOutputTag
{
struct _TOutputTag *Next;
void (*Processor)(
#ifdef __PROTOS__
void
#endif
);
Integer NestLevel;
PInputTag Tag;
PMacroRec Mac;
StringList Params;
LongInt PubSect,GlobSect;
Boolean DoExport,DoGlobCopy;
String GName;
} TOutputTag,*POutputTag;
extern PInputTag FirstInputTag;
extern POutputTag FirstOutputTag;
extern void Preprocess(void);
extern void AddMacro(PMacroRec Neu, LongInt DefSect, Boolean Protest);
extern Boolean FoundMacro(PMacroRec *Erg);
extern void ClearMacroList(void);
extern void ResetMacroDefines(void);
extern void ClearMacroRec(PMacroRec *Alt);
extern void PrintMacroList(void);
extern void PrintDefineList(void);
extern void ClearDefineList(void);
extern void ExpandDefines(char *Line);
extern void asmmac_init(void);