From 126bd476d625c1be376eaf88f522557186dde393 Mon Sep 17 00:00:00 2001 From: Luna Date: Fri, 20 Sep 2019 13:32:35 -0300 Subject: [PATCH] fix function parameter parsing - fix struct's err ctx - rm err when parsing get exprs and others --- src/parsers.zig | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/parsers.zig b/src/parsers.zig index 4d2c0b4..5470b75 100644 --- a/src/parsers.zig +++ b/src/parsers.zig @@ -463,12 +463,15 @@ pub const Parser = struct { while (self.peek().typ != .RightParen) { const param_name = try self.consumeSingle(.Identifier); + _ = try self.consumeSingle(.Colon); const param_type = try self.consumeSingle(.Identifier); try param_list.append(ast.ParamDecl{ .name = param_name, .typ = param_type, }); + + if (self.check(.Comma)) _ = try self.consumeSingle(.Comma); } _ = try self.consumeSingle(.RightParen); @@ -547,7 +550,7 @@ pub const Parser = struct { fn parseStructDecl(self: *@This()) !*Node { var fields = ast.FieldList.init(self.allocator); errdefer fields.deinit(); - self.setErrContext("struct", name); + self.setErrContext("struct"); _ = try self.consumeSingle(.Struct); var name = try self.consumeSingle(.Identifier); @@ -1046,7 +1049,8 @@ pub const Parser = struct { expr = try self.mkGet(expr, name); } } else { - return self.tokenError(self.peek(), "Expect expression."); + //return self.tokenError(self.peek(), "Expect expression."); + break; } }