diff options
| author | Baitinq <[email protected]> | 2025-07-11 20:34:05 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-07-11 20:34:05 +0200 |
| commit | 22a46dc9b27fdd90e2dc307292b85bae42516e4f (patch) | |
| tree | ebfaba570113926c694702719fb85c6fd86b83ab /src/bootstrap/codegen.pry | |
| parent | Boostrap: Parse ( expr ) (diff) | |
| download | pry-lang-22a46dc9b27fdd90e2dc307292b85bae42516e4f.tar.gz pry-lang-22a46dc9b27fdd90e2dc307292b85bae42516e4f.tar.bz2 pry-lang-22a46dc9b27fdd90e2dc307292b85bae42516e4f.zip | |
Boostrap: Support cast statement
Diffstat (limited to 'src/bootstrap/codegen.pry')
| -rw-r--r-- | src/bootstrap/codegen.pry | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/bootstrap/codegen.pry b/src/bootstrap/codegen.pry index 1a81c42..50836cc 100644 --- a/src/bootstrap/codegen.pry +++ b/src/bootstrap/codegen.pry @@ -648,6 +648,19 @@ let codegen_generate_expression_value = (c: *codegen, expression: *Node, name: * if ((*expression).type == NODE_FUNCTION_CALL_STATEMENT) { return codegen_generate_function_call_statement(c, expression); }; + + if ((*expression).type == NODE_CAST_STATEMENT) { + let exp = *cast(*NODE_CAST_STATEMENT_DATA, (*expression).data); + let val = codegen_generate_expression_value(c, exp.expression, ""); + assert(val != cast(*Variable, null)); + let v = Variable{}; + v.value = (*val).value; + v.type = cast(LLVMTypeRef, null); + v.stack_level = cast(*i64, null); + v.node = expression; + v.node_type = exp.typ; + return codegen_create_variable(c, v); + }; printf("ASSERT 1: %d\n", (*expression).type); assert(false); |