aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-07-06 03:33:04 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-07-06 03:49:03 +0200
commitd3c95ef09fd493241273d6e63aca31d703c2503c (patch)
tree94dc719ed4eb4a3bc67c35b19bca69916b56fc32 /src/main.c
parentb0b7d209fa978ff4a6b9c8cc5a8e4a3207cdd63f (diff)
Implement booleans
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index 1555d17..e308c7c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -12,6 +12,7 @@
#include "alloc.h"
#include "analyzer.h"
+#include "bitset.h"
#include "codegen.h"
#include "common.h"
#include "errors.h"
@@ -73,19 +74,20 @@ usage:
char *src = readfile(argv[0], &srclen);
aux_t aux;
- mpq_t *folds;
+ fold_t *folds;
scope_t *scps;
+ bitset_t *cnst;
arena_t a = NULL;
lexemes_t toks = lexstring(src, srclen);
ast_t ast = parsetoks(toks, &aux);
- type_t **types = analyzeprog(ast, aux, toks, &a, &scps, &folds);
- codegen(argv[0], folds, scps, types, ast, aux, toks);
+ type_t **types = analyzeprog(ast, aux, toks, &a, &scps, &folds, &cnst);
+ codegen(argv[0], cnst, folds, scps, types, ast, aux, toks);
#if DEBUG
for (size_t i = 0; i < ast.len; i++) {
- if ((*folds[i])._mp_den._mp_d != NULL)
- mpq_clear(folds[i]);
+ if ((*folds[i].q)._mp_den._mp_d != NULL)
+ mpq_clear(folds[i].q);
}
free(folds);