aboutsummaryrefslogtreecommitdiff
path: root/src/compile.h
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-03-21 21:43:51 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-03-21 21:43:51 -0400
commitdcf266228512e100e779fe72f2d4e9ebb605ffe6 (patch)
tree6fb3cac1ee3647f08bca219949ed8dc61b5861f2 /src/compile.h
parent9acea1807f5945c55445a16259386e4979203a1e (diff)
Move files into src/ and build into build/
Diffstat (limited to 'src/compile.h')
-rw-r--r--src/compile.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/compile.h b/src/compile.h
new file mode 100644
index 00000000..4256ab5d
--- /dev/null
+++ b/src/compile.h
@@ -0,0 +1,24 @@
+#pragma once
+
+// Compilation functions
+
+#include <gc/cord.h>
+#include <gc.h>
+#include <stdio.h>
+
+#include "environment.h"
+
+CORD expr_as_text(CORD expr, type_t *t, CORD color);
+CORD compile_file(env_t *env, ast_t *ast);
+CORD compile_file_header(env_t *env, ast_t *ast);
+CORD compile_declaration(type_t *t, const char *name);
+CORD compile_type(type_t *t);
+CORD compile(env_t *env, ast_t *ast);
+CORD compile_namespace_header(env_t *env, const char *ns_name, ast_t *block);
+CORD compile_statement(env_t *env, ast_t *ast);
+CORD compile_statement_type_header(env_t *env, ast_t *ast);
+CORD compile_statement_namespace_header(env_t *env, ast_t *ast);
+CORD compile_type_info(type_t *t);
+CORD compile_cli_arg_call(env_t *env, CORD fn_name, type_t *fn_type);
+
+// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0