Add file listing

This commit is contained in:
Krzosa Karol
2022-06-27 09:17:53 +02:00
parent 06dcb718fd
commit 02ec291ad0
4 changed files with 22 additions and 31 deletions

View File

@@ -58,7 +58,7 @@ For modules it's a bit different cause they should be distributed as valid.
@todo
[ ] - Split Bc into builder and interpreter
[ ] - Implement functions
[ ] - Implement functions in the bytecode
[ ] - Probably need to give Ast_Expr a Value field, then I can express Type nicely
[ ] - I would love for String, slice, Any etc. to have their struct declarations in source files, I also would want for stuff like string.str to work without weird special cases
@@ -69,13 +69,11 @@ For modules it's a bit different cause they should be distributed as valid.
[ ] - Builtin dynamic arrays
[ ] - Kilobyte, Megabyte, Gigabyte
[ ] - Cast from array to pointer?
[ ] - Mixing loads and imports leads to code duplication, is that what we want???
[ ] - Fix field access, cant cast, cant index
[ ] - Add parent_scope to Ast_Type, Add name to Ast_Type?
[ ] - Some way to take slice of data
[ ] - Optional function renaming in codegen
[ ] - Using in structs to embed members, then casting offsets to that embedded member
[ ] - Type as a parameter to a function, alloc :: (size: U64, type: Type)
[ ] - Comma notation when declaring variables thing1, thing2: S32 :: probably want to unify it with var unpacking
[ ] - Add single line lambda expressions
@@ -100,7 +98,9 @@ For modules it's a bit different cause they should be distributed as valid.
[ ] - Polymorphism - create declaration of a polymorphic thing, when it's called just copy it, replace types and typecheck normally, when someone calls again you just search for the instantiation again
@donzo
[x] - Type as a parameter to a function, alloc :: (size: U64, type: Type)
[x] - Add token information to instructions
[-] - Mixing loads and imports leads to code duplication, is that what we want???
[x] - print those token lines nicely
[x] - Improve the python metaprogram
[x] - Implementing type Any
@@ -175,6 +175,7 @@ For modules it's a bit different cause they should be distributed as valid.
#include "base.cpp"
#include "base_unicode.cpp"
#include "os_windows.cpp"
#include "big_int_c3.cpp"
#include "compiler.h"
#include "lexing.cpp"
@@ -220,6 +221,12 @@ int main(int argument_count, char **arguments){
test_intern_table();
test_bucket_arrays();
Scratch scratch;
String a = os_get_working_dir(scratch);
String b = os_get_exe_dir(scratch);
Array<OS_File_Info> files = os_list_dir(scratch, ".."_s, LIST_RECURSE_INTO_DIRS);
emit_line_directives = true;
String program_name = "main.kl"_s;
if(argument_count > 1){
@@ -252,9 +259,6 @@ int main(int argument_count, char **arguments){
arena_clear(&pctx->stage_arena);
// build_bytecode();
// compile_to_bc();
// __debugbreak();
String result = get_compilation_result();
assert(os_write_file("program.c"_s, result));
{