You can use compiler_interface hpp outside

This commit is contained in:
Krzosa Karol
2022-12-31 14:53:40 +01:00
parent 23db7cc5c4
commit e20edaa3a2
3 changed files with 32 additions and 3 deletions

View File

@@ -1,3 +1,4 @@
#define CORE_BASE
#if defined(__clang__) #if defined(__clang__)
# define COMPILER_CLANG 1 # define COMPILER_CLANG 1

View File

@@ -5,8 +5,9 @@ rem cl main.cpp -I.. user32.lib
clang core_main.cpp -O0 -Wall -Wno-unused-function -fno-exceptions -fdiagnostics-absolute-paths -g -o main.exe -Wl,user32.lib clang core_main.cpp -O0 -Wall -Wno-unused-function -fno-exceptions -fdiagnostics-absolute-paths -g -o main.exe -Wl,user32.lib
rem ubuntu run clang core_main.cpp -O0 -Wall -Wno-unused-function -fno-exceptions -fdiagnostics-absolute-paths -g -o core.out rem ubuntu run clang core_main.cpp -O0 -Wall -Wno-unused-function -fno-exceptions -fdiagnostics-absolute-paths -g -o core.out
rem main.exe -testing clang test.cpp
rem main.exe -testing
rem echo Building arms race rem echo Building arms race
rem call examples/arms_race/build_arms_race.bat rem call examples/arms_race/build_arms_race.bat
rem main examples/arms_race/arms_race.core rem main examples/arms_race/arms_race.core

View File

@@ -11,8 +11,8 @@ struct Ast_Lambda;
struct Ast_Type; struct Ast_Type;
struct Ast_Expr; struct Ast_Expr;
#ifndef CORE_STRINGS #ifndef CORE_BASE
#define CORE_STRINGS #define CORE_BASE
struct String{ struct String{
uint8_t *str; uint8_t *str;
int64_t len; int64_t len;
@@ -25,6 +25,33 @@ union Intern_String{ // Basically just String
int64_t len; int64_t len;
}; };
}; };
template<class T>
struct Array {
void *allocator;
T *data;
int64_t cap;
int64_t len;
};
template<class T>
struct List_Node{
List_Node<T> *next;
List_Node<T> *prev;
int cap;
int len;
T data[];
};
template<class T>
struct List{
int block_size = 0;
int allocation_multiplier = 0;
List_Node<T> *first = 0;
List_Node<T> *last = 0;
List_Node<T> *first_free = 0;
};
#endif #endif
enum Token_Kind{ enum Token_Kind{