X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=token.h;h=1deec2c96d922e8901df746f9c76ece4a6c0fc98;hp=eaa7edbf25d5b1a5748f1f34bed8e8ea14d854d4;hb=60f204cb9e3905100da0d89f14bb40db764acd9e;hpb=daf2f61a3664329ae7f9609e1e14da2b8780fd10 diff --git a/token.h b/token.h index eaa7edb..1deec2c 100644 --- a/token.h +++ b/token.h @@ -1,16 +1,15 @@ // // RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System // TOKEN.H - Token Handling -// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2017 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 @@ -44,17 +43,17 @@ #define SET 149 // Set #define REG 'R' // Reg #define DCOLON 'h' // :: -#define GE 'i' // >= -#define LE 'j' // <= -#define NE 'k' // <> or != -#define SHR 'l' // >> -#define SHL 'm' // << -#define UNMINUS 'n' // Unary '-' -#define DOTB 'B' // .b or .B or .s or .S -#define DOTW 'W' // .w or .W -#define DOTL 'L' // .l or .L -#define DOTI 'I' // .l or .L -#define ENDEXPR 'E' // End of expression +#define GE 'i' // >= +#define LE 'j' // <= +#define NE 'k' // <> or != +#define SHR 'l' // >> +#define SHL 'm' // << +#define UNMINUS 'n' // Unary '-' +#define DOTB 'B' // .b or .B or .s or .S +#define DOTW 'W' // .w or .W +#define DOTL 'L' // .l or .L +#define DOTI 'I' // .l or .L +#define ENDEXPR 'E' // End of expression // ^^ operators #define CR_DEFINED 'p' // ^^defined - is symbol defined? @@ -63,6 +62,7 @@ #define CR_MACDEF 'w' // ^^macdef - is macro defined? #define CR_TIME 'x' // ^^time - DOS format time #define CR_DATE 'y' // ^^date - DOS format date +#define CR_ABSCOUNT 'z' // ^^abscount - count the number of bytes defined in curent .abs section // Character Attributes #define ILLEG 0 // Illegal character (unused) @@ -104,7 +104,7 @@ IFILE { char * ifoldfname; // Old file's name int ifoldlineno; // Old line number int ifind; // Position in file buffer - int ifcnt; // #chars left in file buffer + int ifcnt; // #chars left in file buffer int ifhandle; // File's descriptor WORD ifno; // File number char ifbuf[LNBUFSIZ]; // Line buffer @@ -112,8 +112,8 @@ IFILE { #define TOKENSTREAM struct _tokenstream TOKENSTREAM { - TOKEN token[10]; // 10 ought to be enough for anybody - char * string[10]; // same for attached strings + TOKEN token[32]; // 32 ought to be enough for anybody (including XiA!) + char * string[32]; // same for attached strings }; // Information about a macro invocation @@ -137,7 +137,7 @@ IREPT { VALUE ir_count; // Repeat count (decrements) }; -// Globals, externals etc +// Exported variables extern int lnsave; extern int curlineno; extern char * curfname; @@ -153,11 +153,11 @@ extern LONG sloc; extern int mjump_align; extern char * string[]; -// Prototypes +// Exported functions 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);