(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.
This commit is contained in:
phoebos 2022-06-05 22:33:57 +01:00 committed by Devine Lu Linvega
parent 1ac7c45d10
commit a014cd8da9
1 changed files with 2 additions and 2 deletions

View File

@ -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)) {