aboutsummaryrefslogtreecommitdiffstats
path: root/asmmac.h
diff options
context:
space:
mode:
Diffstat (limited to 'asmmac.h')
-rw-r--r--asmmac.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/asmmac.h b/asmmac.h
new file mode 100644
index 0000000..7320058
--- /dev/null
+++ b/asmmac.h
@@ -0,0 +1,105 @@
+/* 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);