mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-02 12:48:14 +00:00
Update odin/ast for multi pointers
This commit is contained in:
@@ -656,6 +656,14 @@ Pointer_Type :: struct {
|
||||
elem: ^Expr,
|
||||
}
|
||||
|
||||
Multi_Pointer_Type :: struct {
|
||||
using node: Expr,
|
||||
open: tokenizer.Pos,
|
||||
pointer: tokenizer.Pos,
|
||||
close: tokenizer.Pos,
|
||||
elem: ^Expr,
|
||||
}
|
||||
|
||||
Array_Type :: struct {
|
||||
using node: Expr,
|
||||
open: tokenizer.Pos,
|
||||
|
||||
@@ -251,6 +251,8 @@ clone_node :: proc(node: ^Node) -> ^Node {
|
||||
r.results = auto_cast clone(r.results);
|
||||
case Pointer_Type:
|
||||
r.elem = clone(r.elem);
|
||||
case Multi_Pointer_Type:
|
||||
r.elem = clone(r.elem);
|
||||
case Array_Type:
|
||||
r.len = clone(r.len);
|
||||
r.elem = clone(r.elem);
|
||||
|
||||
@@ -349,6 +349,8 @@ walk :: proc(v: ^Visitor, node: ^Node) {
|
||||
walk(v, n.results);
|
||||
case Pointer_Type:
|
||||
walk(v, n.elem);
|
||||
case Multi_Pointer_Type:
|
||||
walk(v, n.elem);
|
||||
case Array_Type:
|
||||
if n.tag != nil {
|
||||
walk(v, n.tag);
|
||||
|
||||
Reference in New Issue
Block a user