This commit is contained in:
Judah Caruso 2025-06-04 15:35:08 -06:00
parent 08769c7a6d
commit 7e685785be

View file

@ -85,22 +85,6 @@ Node :: struct {
} }
} }
Node_Print :: struct {
#as using n: Node;
n.kind = .print;
expr: *Node;
}
Node_Procedure_Call :: struct {
#as using n: Node;
n.kind = .procedure_call;
call_expr: *Node;
named_arguments: kv.Kv(*Node, *Node);
all_arguments: [..]*Node;
}
Node_Var :: struct { Node_Var :: struct {
#as using n: Node; #as using n: Node;
n.kind = .variable; n.kind = .variable;
@ -189,27 +173,23 @@ Node_Type :: struct {
} }
} }
/*
fn add(x int, y int) int do return x + y end
*/
Node_Procedure :: struct { Node_Procedure :: struct {
#as using n: Node; #as using n: Node;
n.kind = .procedure; n.kind = .procedure;
header: *Node_Procedure_Header; header: *Node_Procedure_Header;
args: [..]Node_Argument; args: [..]Node_Parameter;
rets: [..]Node_Argument; rets: [..]Node_Parameter;
body: *Node_Block; body: *Node_Block;
flags: Flag; flags: Flag;
Flag :: enum_flags { Flag :: enum_flags {
inline_; must_inline;
} }
} }
Node_Argument :: struct { Node_Parameter :: struct {
symbol: *Node_Symbol; symbol: *Node_Symbol;
type: *Node_Type; type: *Node_Type;
value: *Node; // always an expression, can be null value: *Node; // always an expression, can be null
@ -220,6 +200,22 @@ Node_Procedure_Header :: struct {
rets: [..]*Node_Type; rets: [..]*Node_Type;
} }
Node_Print :: struct {
#as using n: Node;
n.kind = .print;
expr: *Node;
}
Node_Procedure_Call :: struct {
#as using n: Node;
n.kind = .procedure_call;
call_expr: *Node;
named_arguments: kv.Kv(*Node, *Node);
all_arguments: [..]*Node;
}
Node_Block :: struct { Node_Block :: struct {
#as using n: Node; #as using n: Node;
n.kind = .block; n.kind = .block;