diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2020-08-17 20:37:44 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2020-08-17 20:37:44 -0400 |
commit | d31aed21b27fbda68abe088d657ba18455607cc4 (patch) | |
tree | 484f16e64f1fa4bcbdad7eb3242ec95e3ca9f5be /lexer.c | |
parent | 7e57608dff1e768d2ee5d6b6a28a319865530ed0 (diff) |
- Fixed some bugs in the emulator's assembler.
- Simplified the effective address functions.
- Made SuBEditor a bit faster.
- JSR, and RTS now support using the RS prefix, which
is used to specify the return address size, with an
RS prefix of 0 being a return address size of 64
bits, rather than 8 bits.
Diffstat (limited to 'lexer.c')
-rw-r--r-- | lexer.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -653,6 +653,22 @@ uint64_t lex(char *str, uint64_t address, uint16_t bline, uint8_t dbg) { } if (i) { l->tok = tokens; + token *tok = tokens; + if (tok->id == TOK_SYM && tok->next) { + symbol *s = tok->sym; + for (; tok; tok = tok->next) { + switch (tok->id) { + case TOK_HEX : + case TOK_BIN : + case TOK_DEC : + case TOK_CHAR: + case TOK_EXPR: + s->val = get_val(tok, address, 3, dbg); + tok = skip_expr(tok, dbg); + break; + } + } + } tokens = NULL; last_tok = NULL; bytecount dummy; |