Fixing bugs, pointer arithmetic checking, better for, working on first program

This commit is contained in:
Krzosa Karol
2022-06-06 23:50:38 +02:00
parent 729e7aee86
commit f852a23fcb
8 changed files with 127 additions and 50 deletions

View File

@@ -77,7 +77,6 @@ Expr:
@todo
[ ] - Fix casting
[ ] - Make sure pointer arithmetic works
[ ] - Passing down program to compile through command line
[ ] - More for loop variations
@@ -108,10 +107,12 @@ Expr:
[ ] - Compound that zeros values - .{} , Compound that assumes defaults from struct definition - {}
@donzo
[x] - We are parsing wrong here: (t.str=(&string_to_lex.str)[i]);
[x] - Test new operators, add constant eval for them
[x] - lvalue, rvalue concept so we cant assign value to some arbitrary weird expression
[x] - More basic types
[x] - Implementing required operations int128
[x] - Fix casting
[x] - Add basic support for floats
[x] - Converting from U64 token to S64 Atom introduces unnanounced error (negates) - probably need big int
[x] - Add basic setup for new type system
@@ -167,7 +168,7 @@ int main(){
String result = {};
#if 1
#if 0
result = compile_file("globals.kl"_s);
printf("%s", result.str);
result = compile_file("enums.kl"_s);
@@ -178,12 +179,12 @@ int main(){
printf("%s", result.str);
result = compile_file("lambdas.kl"_s);
printf("%s", result.str);
#endif
result = compile_file("new_types.kl"_s);
printf("%s", result.str);
#endif
#if 0
#if 1
result = compile_file("program.kl"_s);
FILE *f = fopen("program.c", "w");
assert(f);