Added unary ++ --, prefix and postfix, working on running a program

This commit is contained in:
Krzosa Karol
2022-06-07 09:05:02 +02:00
parent d3da979d64
commit c5b82c0532
6 changed files with 51 additions and 15 deletions

View File

@@ -77,11 +77,11 @@ Expr:
@todo
[ ] - Make sure pointer arithmetic works
[ ] - We need ++ -- operators
[ ] - Passing down program to compile through command line
[ ] - More for loop variations
[ ] - Write up on order independent declarations
[ ] - Switch
[ ] - Arrays with size passed
[ ] - Some way to call foreign functions
[ ] - Comma notation when declaring variables thing1, thing2: S32
[ ] - Array of inferred size
@@ -95,6 +95,7 @@ Expr:
[ ] - Order independent constants in structs
[ ] - Fix recursive lambdas in structs
[ ] - Fixing access to functions/structs, in C we cant have functons inside of structs / functions so we need to rewrite the tree
[ ] - Write up on order independent declarations
[ ] - Casting to basic types by call S64(x)
[ ] - Default values in structs??? Should compound stmts bring values from default values?? Maybe not? Whats the alternative
@@ -105,6 +106,7 @@ Expr:
[ ] - Constant arrays that evaluate fully at compile time
[ ] - Rust like enum where you associate values(other structs) with keys
[ ] - Compound that zeros values - .{} , Compound that assumes defaults from struct definition - {}
[ ] - Inject stack traces into the program
@donzo
[x] - We are parsing wrong here: (t.str=(&string_to_lex.str)[i]);
@@ -113,11 +115,13 @@ Expr:
[x] - More basic types
[x] - Implementing required operations int128
[x] - Fix casting
[x] - More for loop variations
[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
[x] - Access through struct names to constants Arena.CONSTANT
[x] - Enums
[x] - Make sure pointer arithmetic works
[x] - Initial for loop
[x] - Enum . access to values
[x] - Character literal
@@ -190,7 +194,7 @@ int main(){
assert(f);
fprintf(f, "%.*s", (int)result.len, result.str);
fclose(f);
system("clang.exe program.c -g -o program.exe && program.exe");
system("clang.exe program.c -g -o program.exe");
#endif
__debugbreak();