From 94403dcc51da7c002b108505c43134ba448e7d1d Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sat, 2 Dec 2023 22:45:57 +0100 Subject: [PATCH] Added proper label resolver for globals with test --- src/ulas.c | 7 +++---- tests/t0.bin | Bin 80 -> 83 bytes tests/t0.s | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ulas.c b/src/ulas.c index 24376f2..33be3a2 100644 --- a/src/ulas.c +++ b/src/ulas.c @@ -246,6 +246,8 @@ int ulas_symbolset(const char *name, int scope, struct ulas_tok tok, // def new symbol struct ulas_sym new_sym = {strdup(name), tok, scope, ulas.pass, constant}; + // last char of name has to be : so we trim it away + new_sym.name[strlen(new_sym.name) - 1] = '\0'; ulas_symbufpush(&ulas.syms, new_sym); } else if (exisitng->lastdefin != ulas.pass) { // redefine if not defined this pass @@ -1027,11 +1029,8 @@ fail: int ulas_valint(struct ulas_tok *lit, int *rc) { if (lit->type == ULAS_SYMBOL) { struct ulas_sym *stok = ulas_symbolresolve(lit->val.strv, rc); - // bail if symbol is not resolvable - if (*rc > 0) { - return 0; - } if (!stok || *rc == -1) { + ULASERR("Unabel to resolve '%s'\n", lit->val.strv); *rc = -1; return 0; } diff --git a/tests/t0.bin b/tests/t0.bin index 1cc8c84c6ddfe8c65a6145558e67d10ebf7de588..b752c2e50338234207c621f181d226c45683c051 100644 GIT binary patch delta 8 PcmWFto)Eyy=*tKI3TFY< delta 4 LcmWFzm=FK}1F!*v diff --git a/tests/t0.s b/tests/t0.s index 102f333..cf5efec 100644 --- a/tests/t0.s +++ b/tests/t0.s @@ -73,4 +73,4 @@ l1: bit 0, d bit 0, [hl] - ; ld bc, l1 + 1 + ld bc, l1 + 1 -- 2.30.2