pub fn parse(self: *Parser) !?*Expr {
self.allocator = self.arena.allocator();
- return self.expression() catch |err| switch (err) {
+ return self.expression() catch |err2| switch (err2) {
error.ParseError => return null,
- else => return err,
+ else => return err2,
};
}
return grouping;
}
- try self.@"error"(self.peek(), "Expect expression.");
+ try self.err(self.peek(), "Expect expression.");
}
fn match(self: *Parser, types: []const TokenType) bool {
fn consume(self: *Parser, @"type": TokenType, message: []const u8) !Token {
if (self.check(@"type")) return self.advance();
- try self.@"error"(self.peek(), message);
+ try self.err(self.peek(), message);
}
fn check(self: *Parser, @"type": TokenType) bool {
return self.tokens[self.current - 1];
}
-fn @"error"(self: *Parser, token: Token, message: []const u8) !noreturn {
- try lox.parse_error(self.allocator, token, message);
+fn err(self: *Parser, token: Token, message: []const u8) !noreturn {
+ try lox.parseError(self.allocator, token, message);
return error.ParseError;
}