X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=token.h;h=3867f7e8a59560863980345d90b92e64e2908205;hp=52ff8cb2d39154791fbc7b6351dfb65e87427613;hb=f3c7d186a15b89c39e360b9cc89545a0d24bd6a4;hpb=c9541a9d4f01e190ffefc20ce07896c7f04d9557 diff --git a/token.h b/token.h index 52ff8cb..3867f7e 100644 --- a/token.h +++ b/token.h @@ -34,6 +34,7 @@ // (Normally) non-printable tokens #define COLON ':' // : (grumble: GNUmacs hates ':') #define CONST 'a' // CONST +#define FCONST 'r' // Floating CONST #define ACONST 'A' // ACONST #define STRING 'b' // STRING
#define STRINGA8 'S' // Atari 800 internal STRING
@@ -84,6 +85,9 @@ #define MULTX 64 // Multiple-character tokens #define DOT 128 // [bwlsBWSL] for what follows a '.' +// Macro to check for specific optimizations or override +#define CHECK_OPTS(x) (optim_flags[x] && !optimizeOff) + // Conditional assembly structures IFENT { IFENT * if_prev; // Ptr prev .if state block (or NULL) @@ -128,13 +132,12 @@ TOKENSTREAM { // Information about a macro invocation IMACRO { IMACRO * im_link; // Pointer to ancient IMACROs - LLIST * im_nextln; // Next line to include + LLIST * 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 }; @@ -142,7 +145,7 @@ IMACRO { IREPT { LLIST * ir_firstln; // Pointer to first line LLIST * ir_nextln; // Pointer to next line - VALUE ir_count; // Repeat count (decrements) + uint32_t ir_count; // Repeat count (decrements) }; // Exported variables @@ -150,13 +153,14 @@ extern int lnsave; extern uint16_t curlineno; extern char * curfname; extern WORD cfileno; -extern TOKEN * tok; +extern TOKENPTR tok; extern char lnbuf[]; extern char lntag; extern char tolowertab[]; extern INOBJ * cur_inobj; extern int mjump_align; extern char * string[]; +int optimizeOff; // Exported functions int include(int, char *); @@ -166,6 +170,7 @@ int TokenizeLine(void); int fpop(void); int d_goto(WORD); INOBJ * a_inobj(int); +void DumpToken(TOKEN); void DumpTokenBuffer(void); #endif // __TOKEN_H__