commit 5b536a9

Devine Lu Linvega  ·  2025-01-15 19:11:22 +0000 UTC
parent 107f9ea
Fixed nested comment bug in macros
2 files changed,  +4, -7
+2, -2
 1@@ -28,8 +28,8 @@ WITH REGARD TO THIS SOFTWARE.
 2 #define REM if(_r) uxn.rst.ptr -= 1 + _2; else uxn.wst.ptr -= 1 + _2;
 3 #define INC(s) uxn.s.dat[uxn.s.ptr++]
 4 #define DEC(s) uxn.s.dat[--uxn.s.ptr]
 5-#define JMP(i) pc = _2 ? i : pc + (Sint8)i;
 6-#define PO1(o) o = _r ? DEC(rst) : DEC(wst);
 7+#define JMP(x) { if(_2) pc = x; else pc += (Sint8)x; }
 8+#define PO1(o) { o = _r ? DEC(rst) : DEC(wst);}
 9 #define PO2(o) { if(_r) o = DEC(rst), o |= DEC(rst) << 8; else o = DEC(wst), o |= DEC(wst) << 8; }
10 #define POx(o) { if(_2) PO2(o) else PO1(o) }
11 #define PU1(i) { if(_r) INC(rst) = i; else INC(wst) = i; }
+2, -5
 1@@ -246,10 +246,7 @@ makemacro(char *name, FILE *f, Context *ctx)
 2 		if(c == '%') return error_asm("Macro nested");
 3 		if(c == '{') depth++;
 4 		if(c == '}' && --depth) break;
 5-		if(c == '(') {
 6-			if(!walkcomment(f, ctx)) return 0;
 7-		} else
 8-			*dictnext++ = c;
 9+		*dictnext++ = c;
10 	}
11 	*dictnext++ = 0;
12 	return 1;
13@@ -478,7 +475,7 @@ main(int argc, char *argv[])
14 {
15 	ptr = PAGE;
16 	copy("on-reset", scope, 0);
17-	if(argc == 2 && scmp(argv[1], "-v", 2)) return !printf("Uxnasm - Uxntal Assembler, 31 Dec 2024.\n");
18+	if(argc == 2 && scmp(argv[1], "-v", 2)) return !printf("Uxnasm - Uxntal Assembler, 15 Jan 2025.\n");
19 	if(argc != 3) return error_top("usage", "uxnasm [-v] input.tal output.rom");
20 	return !assemble(argv[1]) || !resolve(argv[2]) || !build(argv[2]);
21 }