Cargo.lock | 22 +- Cargo.toml | 12 +- crates/ast/Cargo.toml | 3 +- crates/ast/ast.rs | 174 +++++++++++++++ crates/ast/lib.rs | 7 + crates/ast/operators.rs | 171 ++++++++++++++ crates/ast/src/error.rs | 21 -- crates/ast/src/lib.rs | 27 --- crates/ast/src/parse_block.rs | 55 ----- crates/ast/src/parse_expression.rs | 105 --------- crates/ast/src/parse_function_call.rs | 56 ----- crates/ast/src/parse_statement.rs | 245 -------------------- crates/ast/src/parse_type.rs | 28 --- crates/ast/src/types.rs | 153 ------------- crates/ast/types.rs | 208 +++++++++++++++++ crates/checker/Cargo.toml | 3 +- crates/checker/src/ast_type_coersion.rs | 54 +++++ crates/checker/src/lib.rs | 299 ++++++++----------------- crates/cli/Cargo.toml | 1 + crates/cli/src/main.rs | 22 +- crates/js_ast/Cargo.toml | 1 - crates/js_ast/src/lib.rs | 384 ++++++++++++++++---------------- crates/js_ast/src/types.rs | 11 +- crates/js_printer/Cargo.toml | 1 - crates/js_printer/src/print_expression.rs | 21 +- crates/parser/Cargo.toml | 15 ++ crates/parser/parse_block.rs | 64 ++++++ crates/parser/parse_call_arguments.rs | 31 +++ crates/parser/parse_declaration.rs | 46 ++++ crates/parser/parse_expr.rs | 161 +++++++++++++ crates/parser/parse_expr_basic.rs | 110 +++++++++ crates/parser/parse_expr_if.rs | 61 +++++ crates/parser/parse_fn_declaration.rs | 111 +++++++++ crates/parser/parse_module.rs | 33 +++ crates/parser/parse_param.rs | 30 +++ crates/parser/parse_statement.rs | 28 +++ crates/parser/parse_top_level_statement.rs | 10 + crates/parser/parse_type.rs | 26 +++ crates/parser/parser.rs | 104 +++++++++ crates/tokenizer/Cargo.toml | 2 - crates/tokenizer/src/lib.rs | 214 ++++++++++++------ crates/util/Cargo.toml | 8 - crates/util/src/lib.rs | 30 --- examples/basics/control.blight | 18 +- 44 files changed, 1941 insertions(+), 1245 deletions(-)