X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=token.h;h=3d3ea22c017b4f1a5c7fc144c1e83818a6d5ed52;hp=6bc1102e3671b70faf0d857c7dfd8ef9cc7808e9;hb=e17b90fcd806fee2da5754968f576b161706ec5b;hpb=d16b8ea0ee65b2ad901ca6b0624c07e6e4930cc4 diff --git a/token.h b/token.h index 6bc1102..3d3ea22 100644 --- a/token.h +++ b/token.h @@ -3,14 +3,13 @@ // 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 @@ -110,6 +109,12 @@ IFILE { char ifbuf[LNBUFSIZ]; // Line buffer }; +#define TOKENSTREAM struct _tokenstream +TOKENSTREAM { + TOKEN token[32]; // 32 ought to be enough for anybody (including XiA!) + char * string[32]; // same for attached strings +}; + // Information about a macro invocation IMACRO { IMACRO * im_link; // Pointer to ancient IMACROs @@ -120,6 +125,8 @@ IMACRO { 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 @@ -147,9 +154,9 @@ extern char * string[]; // 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);