varaq-wasm-c/main.c

36 lines
681 B
C

#include "common.h"
#include "compiler.h"
#include "tokenizer.h"
int
main(int argc, char** argv)
{
if (argc != 3) {
printf("usage: varaq input.vq output.wasm");
return EXIT_FAILURE;
}
char* buffer;
int length = 0;
int sp = open(argv[1], O_RDONLY);
if (sp) {
length = lseek(sp, (size_t)0, SEEK_END);
lseek(sp, (size_t)0, SEEK_SET);
buffer = malloc(length);
if (buffer) {
read(sp, buffer, length * sizeof(char));
}
close(sp);
}
initMap();
Code* prog = compile(buffer);
int tp = open(argv[2], O_CREAT | O_WRONLY, S_IRWXU | S_IRGRP | S_IROTH);
write(tp, prog->cells, prog->count);
close(tp);
return EXIT_SUCCESS;
}