//
// 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 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?
#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)
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
#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
VALUE ir_count; // Repeat count (decrements)
};
-// Globals, externals etc
+// Exported variables
extern int lnsave;
extern int curlineno;
extern char * curfname;
extern int mjump_align;
extern char * string[];
-// Prototypes
+// Exported functions
int include(int, char *);
-void init_token(void);
+void InitTokenizer(void);
void SetFilenameForErrorReporting(void);
-int tokln(void);
+int TokenizeLine(void);
int fpop(void);
int d_goto(WORD);
//int d_goto(void);