return s;
}
+get_value :: proc (x: i32, y: i32) -> i32 {
+ return x + 2 * y;
+}
+
Vec3 :: struct {
- x: i32;
- y: i32;
- z: i32;
+ x: i32 = get_value(10, 20);
+ y: i32 = 0;
+ z: i32 = 0;
}
mag_squared :: proc (use v: Vec3) -> i32 {
mag_squared(varr[2]) |> print();
- v1 := Vec3 .{ 1, 2, 4 };
- v2 := *vadd(v1, Vec3.{ 1, 2, 4 });
+ v1 := Vec3.{};
+ v2 := *vadd(v1, Vec3.{ 0, 0, 0 });
print(v2.x);
print(v2.y);
sl->type_node = (AstType *) sl->stnode;
sl->type = type_build_from_ast(semstate.allocator, sl->type_node);
- if (bh_arr_length(sl->named_values) > 0) {
+ if (bh_arr_length(sl->values) == 0) {
bh_arr_set_length(sl->values, sl->type->Struct.mem_count);
StructMember s;
st->members[idx]->token->length);
return;
}
-
+
sl->values[idx] = st->members[idx]->initial_value;
}
}
bh_managed_heap global_heap;
bh_allocator global_heap_allocator;
+static AstNode empty_node = { Ast_Kind_Error, 0, NULL, NULL };
+
static const char* ast_node_names[] = {
"ERROR",
"PROGRAM",
tkn->text);
token_toggle_end(tkn);
- return NULL;
+ return &empty_node;
}
if (res->kind == Ast_Kind_Symbol) {