commit bfbe26734d4167977fff0d675ff55c68d75dd3be (tree)
parent 83a78094788038fcf487e5947945a1f5900d564a
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Sun, 20 May 2018 14:50:27 -0400
zig fmt: add pointer deref syntax
Diffstat:
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/std/zig/parse.zig b/std/zig/parse.zig
@@ -2195,6 +2195,17 @@ pub fn parse(allocator: &mem.Allocator, source: []const u8) !ast.Tree {
continue;
},
Token.Id.Period => {
+ if (eatToken(&tok_it, &tree, Token.Id.Asterisk)) |asterisk_token| {
+ const node = try arena.construct(ast.Node.SuffixOp{
+ .base = ast.Node{ .id = ast.Node.Id.SuffixOp },
+ .lhs = lhs,
+ .op = ast.Node.SuffixOp.Op.Deref,
+ .rtoken = asterisk_token,
+ });
+ opt_ctx.store(&node.base);
+ stack.append(State{ .SuffixOpExpressionEnd = opt_ctx.toRequired() }) catch unreachable;
+ continue;
+ }
const node = try arena.construct(ast.Node.InfixOp{
.base = ast.Node{ .id = ast.Node.Id.InfixOp },
.lhs = lhs,
diff --git a/std/zig/parser_test.zig b/std/zig/parser_test.zig
@@ -1,3 +1,10 @@
+test "zig fmt: ptr deref operator" {
+ try testCanonical(
+ \\const a = b.*;
+ \\
+ );
+}
+
test "zig fmt: comment after if before another if" {
try testCanonical(
\\test "aoeu" {