diff options
Diffstat (limited to 'bas.h')
-rw-r--r-- | bas.h | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -42,6 +42,10 @@ #define CMD_REM 0x00 #define CMD_DATA 0x01 #define CMD_ERROR 0x37 +#define CMD_FOR 0x08 +#define CMD_NEXT 0x09 +#define CMD_LET 0x06 +#define CMD_ILET 0x36 #define OP_GOTO 0x17 #define OP_GOSUB 0x18 #define OP_THEN 0x1b @@ -56,6 +60,26 @@ #define TYPE_ARRAY 1 #define TYPE_STRING 2 +/* callbacks */ +#define CALLBACK(x) void x(unsigned int lineno, unsigned int pos, unsigned int tok, unsigned int end) +#define CALLBACK_PTR(x) void (*x)(unsigned int lineno, unsigned int pos, unsigned int tok, unsigned int end) +#define walk_all_code() walk_code(0, 32768) + +void walk_code(unsigned int startlineno, unsigned int endlineno); +unsigned char get_vartype(unsigned char tok); + +extern CALLBACK_PTR(on_start_line); +extern CALLBACK_PTR(on_bad_line_length); +extern CALLBACK_PTR(on_end_line); +extern CALLBACK_PTR(on_start_stmt); +extern CALLBACK_PTR(on_end_stmt); +extern CALLBACK_PTR(on_cmd_token); +extern CALLBACK_PTR(on_text); +extern CALLBACK_PTR(on_exp_token); +extern CALLBACK_PTR(on_var_token); +extern CALLBACK_PTR(on_string_const); +extern CALLBACK_PTR(on_num_const); + /* BASIC 14-byte header values */ extern unsigned short lomem; extern unsigned short vntp; |