// TOKEN.H - Token Handling
// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends
// RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
-// Source Utilised with the Kind Permission of Landon Dyer
+// Source utilised with the kind permission of Landon Dyer
//
#ifndef __TOKEN_H__
#define __TOKEN_H__
#include "rmac.h"
-//#include "risca.h"
// Include Files and Macros
#define SRC_IFILE 0 // Input source is IFILE
char ifbuf[LNBUFSIZ]; // Line buffer
};
+#define TOKENSTREAM struct _tokenstream
+TOKENSTREAM {
+ TOKEN token[10]; // 10 ought to be enough for anybody
+ char * string[10]; // same for attached strings
+};
+
// Information about a macro invocation
IMACRO {
IMACRO * im_link; // Pointer to ancient IMACROs
LONG im_olduniq; // Old value of 'macuniq'
SYM * im_macro; // Pointer to macro we're in
char im_lnbuf[LNSIZ]; // Line buffer
+ uint32_t argBase; // Base in argPtrs[] for current macro
+ TOKENSTREAM argument[20]; // Assume no more than 20 arguments in an invocation
};
// Information about a .rept invocation
// Prototypes
int include(int, char *);
-void init_token(void);
-void setfnum(WORD);
-int tokln(void);
+void InitTokenizer(void);
+void SetFilenameForErrorReporting(void);
+int TokenizeLine(void);
int fpop(void);
int d_goto(WORD);
//int d_goto(void);