From be95849a158a8f56a37ead2f0f5f5ddade149656 Mon Sep 17 00:00:00 2001 From: Alexandros Naskos Date: Wed, 13 May 2020 22:35:14 +0300 Subject: [PATCH] Added pointer type resolution --- src/analysis.zig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/analysis.zig b/src/analysis.zig index 19a818f..fdff10f 100644 --- a/src/analysis.zig +++ b/src/analysis.zig @@ -223,6 +223,15 @@ pub fn resolveTypeOfNode(tree: *std.zig.ast.Tree, node: *std.zig.ast.Node) ?*std else => {} } }, + .PrefixOp => { + const prefix_op = node.cast(std.zig.ast.Node.PrefixOp).?; + switch (prefix_op.op) { + .PtrType => { + return resolveTypeOfNode(tree, prefix_op.rhs); + }, + else => {} + } + }, else => { std.debug.warn("Type resolution case not implemented; {}\n", .{node.id}); } @@ -247,7 +256,7 @@ pub fn getNodeFromTokens(tree: *std.zig.ast.Tree, node: *std.zig.ast.Node, token if (resolveTypeOfNode(tree, child)) |child_type| { current_node = child_type; } else return null; - } + } else return null; } else return null; }, .Period => {