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 {
#as using n: Node;
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 {
#as using n: Node;
n.kind = .procedure;
header: *Node_Procedure_Header;
args: [..]Node_Argument;
rets: [..]Node_Argument;
args: [..]Node_Parameter;
rets: [..]Node_Parameter;
body: *Node_Block;
flags: Flag;
Flag :: enum_flags {
inline_;
must_inline;
}
}
Node_Argument :: struct {
Node_Parameter :: struct {
symbol: *Node_Symbol;
type: *Node_Type;
value: *Node; // always an expression, can be null
@ -220,6 +200,22 @@ Node_Procedure_Header :: struct {
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 {
#as using n: Node;
n.kind = .block;