uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit a014cd8da9c046635bc11c3fc87723ec5c6b73ea
parent 1ac7c45d107d21424b041962f6f2a5f794f4f24d
Author: phoebos <ben@bvnf.space>
Date:   Sun,  5 Jun 2022 22:33:57 +0100

(uxnasm) only ignore [ or ] if it is a whole token

Currently, tokens beginning with a [ or ] character are completely
ignored, which forbids a macro from beginning with these characters.
Specifically, a macro can be declared eg. as `%[x { ... }` but cannot be
dereferenced as `[x`.
This patch only ignores these tokens if they have a length of 1;
otherwise the switch falls through to the default case.

Diffstat:
Msrc/uxnasm.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/uxnasm.c b/src/uxnasm.c @@ -343,8 +343,8 @@ parse(char *w, FILE *f) while((c = w[++i])) if(!writebyte(c)) return 0; break; - case '[': break; /* ignored */ - case ']': break; /* ignored */ + case '[': if (slen(w) == 1) break; /* else FALLTHROUGH */ + case ']': if (slen(w) == 1) break; /* else FALLTHROUGH */ default: /* opcode */ if(findopcode(w) || scmp(w, "BRK", 4)) {