python-plus-plus/TODO.md

1.1 KiB

TODO

  • Remove Dictionaries
  • Make imports expect just a string, rather than an entire expression
  • Remove Union types
  • Fix token locations
  • Make Return just a regular statement
  • StructType.{args=...} syntax
  • [:ElementType, elements...] syntax
  • Tuple element syntax a.0, a.1, instead of allowing arbitrary indices into the tuple. This will allow for easier typechecking for tuples
  • Proper error reporting with locations
  • Make Typechecking a step before anything is interpreted
  • Implicit [elements...]/.{args=...}/.Member(values...) syntax
  • Destructring of tuples and structs
    • (a, b) = some_tuple;
    • .{age=a, name=b} = some_struct;
  • let keyword to do runtime destructuring for tuples, structs, lists
    • assert let (0, value) = some_tuple;
    • assert let .{a=0, b=age} = some_struct;
    • if let .Some(value) = result { ... }
    • case [first, second | rest] { ... }
      • Here let is not used, but it does the same thing as if let, just in a match context
  • Compile the program to bytecode and interpret the bytecode instead
  • Compile the bytecode to assembly