.
This commit is contained in:
parent
08769c7a6d
commit
7e685785be
1 changed files with 20 additions and 24 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue