X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=token.h;h=c7dc4b194cceffc74eecbb50a4bdf02f5f727e84;hp=5ca5176db036ac1ff09d02c65b4d59fb05a70f7c;hb=75969398d9b8a9f82ea76fc4e4cbfb97b11160a4;hpb=49cce96fba11282e4244187f15be418d5ae5bb8d diff --git a/token.h b/token.h index 5ca5176..c7dc4b1 100644 --- a/token.h +++ b/token.h @@ -10,7 +10,6 @@ #define __TOKEN_H__ #include "rmac.h" -//#include "risca.h" // Include Files and Macros #define SRC_IFILE 0 // Input source is IFILE @@ -110,15 +109,24 @@ 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_nextln; // Next line to include +// LONG * im_nextln; // Next line to include + struct LineList * im_nextln; // Next line to include WORD im_nargs; // # of arguments supplied on invocation WORD im_siz; // Size suffix supplied on invocation 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 @@ -146,12 +154,12 @@ 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); +int d_goto(WORD); +//int d_goto(void); INOBJ * a_inobj(int); void DumpTokenBuffer(void);