commit c6674605fd3a5b9a042367febcdd90fe6c4190db
parent e871d8dc0c6ae736cdec1436ee4eabba5c38d27d
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Tue, 26 Mar 2024 10:58:55 -0700
(uxnasm) Merge tokenizers
Diffstat:
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/uxnasm.c b/src/uxnasm.c
@@ -300,11 +300,12 @@ static int
doinclude(char *filename)
{
FILE *f;
+ int res;
if(!(f = fopen(setlocation(filename), "r")))
- return error_top("Include missing", filename);
- tokenize(f);
+ return error_top("Invalid source", filename);
+ res = tokenize(f);
fclose(f);
- return 1;
+ return res;
}
static int
@@ -460,11 +461,11 @@ resolve(void)
}
static int
-assemble(FILE *f)
+assemble(char *filename)
{
p.ptr = 0x100;
scpy("on-reset", p.scope, 0x40);
- return tokenize(f) && resolve();
+ return doinclude(filename) && resolve();
}
static void
@@ -506,11 +507,10 @@ writesym(char *filename)
int
main(int argc, char *argv[])
{
- FILE *src, *dst;
+ FILE *dst;
if(argc == 1) return error_top("usage", "uxnasm [-v] input.tal output.rom");
if(scmp(argv[1], "-v", 2)) return !fprintf(stdout, "Uxnasm - Uxntal Assembler, 26 Mar 2024.\n");
- if(!(src = fopen(setlocation(argv[1]), "r"))) return !error_top("Invalid input", argv[1]);
- if(!assemble(src)) return !error_top("Assembly", "Failed to assemble rom.");
+ if(!assemble(argv[1])) return !error_top("Assembly", "Failed to assemble rom.");
if(!(dst = fopen(argv[2], "wb"))) return !error_top("Invalid Output", argv[2]);
if(p.length <= TRIM) return !error_top("Assembly", "Output rom is empty.");
review(argv[2]);