authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-02-16 13:19:43+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-02-17 14:23:42+02:00
log35e989235b29c5d921c8cf053a1d2f92fa0ce57a
tree271ec83fbfccdbc930c30023499711b0ca755d7f
parent9c36cf92f009eda14cb773e89148547dadb137c6

parser: get rid of "invalid token" error


2 files changed, 6 insertions(+), 11 deletions(-)

lib/std/zig/Ast.zig-6
......@@ -291,11 +291,6 @@ pub fn renderError(tree: Ast, parse_error: Error, stream: anytype) !void {
291291 .invalid_bit_range => {
292292 return stream.writeAll("bit range not allowed on slices and arrays");
293293 },
294 .invalid_token => {
295 return stream.print("invalid token: '{s}'", .{
296 token_tags[parse_error.token].symbol(),
297 });
298 },
299294 .same_line_doc_comment => {
300295 return stream.writeAll("same line documentation comment");
301296 },
......@@ -2515,7 +2510,6 @@ pub const Error = struct {
25152510 extra_volatile_qualifier,
25162511 ptr_mod_on_array_child_type,
25172512 invalid_bit_range,
2518 invalid_token,
25192513 same_line_doc_comment,
25202514 unattached_doc_comment,
25212515 varargs_nonfinal,
lib/std/zig/parse.zig+6-5
......@@ -1437,7 +1437,8 @@ const Parser = struct {
14371437 }
14381438 const rhs = try p.parseExprPrecedence(info.prec + 1);
14391439 if (rhs == 0) {
1440 return p.fail(.invalid_token);
1440 try p.warn(.expected_expr);
1441 return node;
14411442 }
14421443
14431444 node = try p.addNode(.{
......@@ -1916,7 +1917,7 @@ const Parser = struct {
19161917
19171918 /// IfExpr <- IfPrefix Expr (KEYWORD_else Payload? Expr)?
19181919 fn parseIfExpr(p: *Parser) !Node.Index {
1919 return p.parseIf(parseExpr);
1920 return p.parseIf(expectExpr);
19201921 }
19211922
19221923 /// Block <- LBRACE Statement* RBRACE
......@@ -2384,7 +2385,7 @@ const Parser = struct {
23842385
23852386 .builtin => return p.parseBuiltinCall(),
23862387 .keyword_fn => return p.parseFnProto(),
2387 .keyword_if => return p.parseIf(parseTypeExpr),
2388 .keyword_if => return p.parseIf(expectTypeExpr),
23882389 .keyword_switch => return p.expectSwitchExpr(),
23892390
23902391 .keyword_extern,
......@@ -3577,7 +3578,7 @@ const Parser = struct {
35773578 _ = try p.parsePtrPayload();
35783579
35793580 const then_expr = try bodyParseFn(p);
3580 if (then_expr == 0) return p.fail(.invalid_token);
3581 assert(then_expr != 0);
35813582
35823583 _ = p.eatToken(.keyword_else) orelse return p.addNode(.{
35833584 .tag = .if_simple,
......@@ -3589,7 +3590,7 @@ const Parser = struct {
35893590 });
35903591 _ = try p.parsePayload();
35913592 const else_expr = try bodyParseFn(p);
3592 if (else_expr == 0) return p.fail(.invalid_token);
3593 assert(then_expr != 0);
35933594
35943595 return p.addNode(.{
35953596 .tag = .@"if",