fn expectSemicolon(p: *Parse, error_tag: AstError.Tag, recoverable: bool) Error!void
fn expectSemicolon(p: *Parse, error_tag: AstError.Tag, recoverable: bool) Error!void { if (p.tokenTag(p.tok_i) == .semicolon) { _ = p.nextToken(); return; } try p.warn(error_tag); if (!recoverable or !p.recover) return error.ParseError; }