Quick fix for binary expr codegen. Add uv hint

This commit is contained in:
2024-09-11 13:21:03 +02:00
parent 6eba51cc8c
commit d3aa4fffeb
2 changed files with 5 additions and 0 deletions

View File

@@ -386,6 +386,7 @@ emit_node :: (state : *Codegen_State, node : *AST_Node, indentation : int) {
} }
case .Binary; { case .Binary; {
indent(*state.builder, indentation); indent(*state.builder, indentation);
append(*state.builder, "(");
lhs := node.children[0]; lhs := node.children[0];
rhs := node.children[1]; rhs := node.children[1];
emit_node(state, lhs, 0); emit_node(state, lhs, 0);
@@ -394,6 +395,7 @@ emit_node :: (state : *Codegen_State, node : *AST_Node, indentation : int) {
emit_operator(state, node.token.kind); emit_operator(state, node.token.kind);
append(*state.builder, " "); append(*state.builder, " ");
emit_node(state, rhs, 0); emit_node(state, rhs, 0);
append(*state.builder, ")");
} }
case .Unary; { case .Unary; {
assert(false, "Not implemented yet: unary"); assert(false, "Not implemented yet: unary");

View File

@@ -56,6 +56,7 @@ Hint_Kind :: enum {
None; None;
Position; Position;
UV;
Target; Target;
Custom; Custom;
@@ -348,6 +349,8 @@ type_variable_to_field :: (checker : *Semantic_Checker, variable : *Type_Variabl
if hint.ident_value == "position" { if hint.ident_value == "position" {
// @Incomplete(nb): Should be a lookup table somewhere // @Incomplete(nb): Should be a lookup table somewhere
field_hint.kind = .Position; field_hint.kind = .Position;
} else if hint.ident_value == "uv" {
field_hint.kind = .UV;
} else if starts_with(hint.ident_value, "target") { } else if starts_with(hint.ident_value, "target") {
// @Incomplete(nb): Should be a lookup table somewhere // @Incomplete(nb): Should be a lookup table somewhere
index_str : string; index_str : string;