ox

The Ox programming language, compiler and tools (WIP)
Log | Files | Refs | README | LICENSE

TODO (1303B)


      1 @next
      2 
      3 [x] variables, string first, so that we can print its content;
      4 [x] conditionals (basic)
      5 [x] loops (basic)
      6 [x] handle for loop with `i = i + 1` and `i += 1` (see ex-for-simple2 and TODO NODE_BINARY_EXPR)
      7 [x] printing `-5` crashes, I think parsing is wrong for `-`, sees as value 5
      8 [x] print allow more than 1 arg
      9 [x] handle return values
     10 [ ] print allow format
     11 [x] print anything else than a string
     12 [x] call another function from main, that prints something,
     13 [x] call another function that prints the passed argument
     14 [x] if without { } should be an error, e.g. `if(true) break;` doesn't work
     15 [ ] inner blocks are ignored completely { { } }
     16 [ ] while loops
     17 
     18 @later
     19 
     20 [-] implement all or most of C's into libgccjit
     21 [-] ARC memory management, new keyword.
     22 @cruft
     23 
     24 [x] redo arguments as list and not linked list, handle in parse and in gen (2 places in gen?)
     25 [x] get rid of count_args and search for 'argc'
     26 [ ] clean up symbols table from parsing to jit time
     27 
     28 @notes
     29 
     30 to get specific access to float sizes, gccjit@16 is required, which can't be easily built on macOS atm.
     31 
     32     CC_JIT_TYPE_FLOAT16
     33     GCC_JIT_TYPE_FLOAT32
     34     GCC_JIT_TYPE_FLOAT64
     35     GCC_JIT_TYPE_FLOAT128
     36 
     37     otherwise these are target platform dependent
     38 
     39     GCC_JIT_TYPE_FLOAT
     40     GCC_JIT_TYPE_DOUBLE
     41     GCC_JIT_TYPE_LONG_DOUBLE