From 6a9466da5377d0bc73c7e5aa48deca3740d3de6f Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 31 Mar 2019 13:44:27 +0200 Subject: Test errors, stop working on error --- include/compiler.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'include/compiler.h') diff --git a/include/compiler.h b/include/compiler.h index b80d7c1..3a31ad9 100644 --- a/include/compiler.h +++ b/include/compiler.h @@ -6,7 +6,7 @@ #include "std/buffer_view.h" #include "std/scoped_allocator.h" #include "std/thread.h" -#include "defs.h" +#include "compiler_options.h" #include "ast.h" #define AMAL_COMPILER_OK 0 @@ -31,6 +31,7 @@ typedef struct { struct amal_compiler { amal_default_types default_types; + amal_compiler_options options; ScopedAllocator allocator; Scope root_scope; Buffer/**/ parsers; @@ -39,17 +40,22 @@ struct amal_compiler { ParserThreadData *threads; int usable_thread_count; bool started; + bool used; amal_mutex mutex; int generic_work_object_index; }; -CHECK_RESULT int amal_compiler_init(amal_compiler *self); +void amal_compiler_options_init(amal_compiler_options *self); + +/* If @options is NULL, then default values are used */ +CHECK_RESULT int amal_compiler_init(amal_compiler *self, const amal_compiler_options *options); CHECK_RESULT int amal_compiler_deinit(amal_compiler *self); /* This function creates a copy of @filepath in the same thread it's called from so it doesn't have to survive longer than this function call. */ -CHECK_RESULT int amal_compiler_load_file(amal_compiler *self, const char *filepath, FileScopeReference **file_scope); +CHECK_RESULT int amal_compiler_load_file(amal_compiler *self, const char *filepath); +CHECK_RESULT int amal_compiler_internal_load_file(amal_compiler *self, const char *filepath, FileScopeReference **file_scope); /* TODO: amal_compiler_unload_file */ #endif -- cgit v1.2.3