From cd6982e5da1f5facdc1e0154b3a27c01e8b076c9 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Wed, 27 Jan 2021 13:42:57 -0500 Subject: - Fixed some bugs in the emulator. - Started work on implementing the Super VIA emulation. - Added support for disabling disassembly per instruction, when in debug mode. - Did some more work on rewriting the SuB Suite to work with the new calling convention. - Rewrote the symbol handling code in the emulator's assembler, to make it both simpler, and to add support for arbitrarily deep symbol scopes. - Added support for arbitrarily deep local symbol scopes. For example, to declare a symbol of depth 2, you add two '@' characters to the start of the symbol name. In other words, the number of '@' characters before the symbol name is what determines the scope of that symbol. And to use a symbol thats outside the current scope, you would use the same syntax as using a struct member, so you would do `global.local`. --- asmmon.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'asmmon.h') diff --git a/asmmon.h b/asmmon.h index 7ed879b..de1f732 100644 --- a/asmmon.h +++ b/asmmon.h @@ -4,11 +4,11 @@ #define MAX_TOK 0x1000 -typedef struct tok token ; -typedef struct ln line ; -typedef struct sym symbol ; -typedef struct fix fixup ; -typedef struct inst instruction ; +typedef struct tok token; +typedef struct ln line; +typedef struct sym symbol; +typedef struct fix fixup; +typedef struct inst instruction; struct tok { @@ -59,6 +59,7 @@ struct sym { symbol *prev; symbol *down; symbol *up; + int depth; uint16_t count; uint64_t val; uint8_t isstruct : 1; @@ -88,6 +89,7 @@ extern symbol *locals; extern symbol *last_loc; extern fixup *fixups; extern fixup *last_fix; +extern tmp_symtab *tmp_sym_table; extern uint8_t lex_type; -- cgit v1.2.3-13-gbd6f