type parser …
func (p *parser) init(fset *token.FileSet, filename string, src []byte, mode Mode) { … }
func (p *parser) printTrace(a ...any) { … }
func trace(p *parser, msg string) *parser { … }
func un(p *parser) { … }
const maxNestLev …
func incNestLev(p *parser) *parser { … }
func decNestLev(p *parser) { … }
func (p *parser) next0() { … }
func (p *parser) consumeComment() (comment *ast.Comment, endline int) { … }
func (p *parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline int) { … }
func (p *parser) next() { … }
type bailout …
func (p *parser) error(pos token.Pos, msg string) { … }
func (p *parser) errorExpected(pos token.Pos, msg string) { … }
func (p *parser) expect(tok token.Token) token.Pos { … }
func (p *parser) expect2(tok token.Token) (pos token.Pos) { … }
func (p *parser) expectClosing(tok token.Token, context string) token.Pos { … }
func (p *parser) expectSemi() (comment *ast.CommentGroup) { … }
func (p *parser) atComma(context string, follow token.Token) bool { … }
func assert(cond bool, msg string) { … }
func (p *parser) advance(to map[token.Token]bool) { … }
var stmtStart …
var declStart …
var exprEnd …
func (p *parser) safePos(pos token.Pos) (res token.Pos) { … }
func (p *parser) parseIdent() *ast.Ident { … }
func (p *parser) parseIdentList() (list []*ast.Ident) { … }
func (p *parser) parseExprList() (list []ast.Expr) { … }
func (p *parser) parseList(inRhs bool) []ast.Expr { … }
func (p *parser) parseType() ast.Expr { … }
func (p *parser) parseQualifiedIdent(ident *ast.Ident) ast.Expr { … }
func (p *parser) parseTypeName(ident *ast.Ident) ast.Expr { … }
func (p *parser) parseArrayType(lbrack token.Pos, len ast.Expr) *ast.ArrayType { … }
func (p *parser) parseArrayFieldOrTypeInstance(x *ast.Ident) (*ast.Ident, ast.Expr) { … }
func (p *parser) parseFieldDecl() *ast.Field { … }
func (p *parser) parseStructType() *ast.StructType { … }
func (p *parser) parsePointerType() *ast.StarExpr { … }
func (p *parser) parseDotsType() *ast.Ellipsis { … }
type field …
func (p *parser) parseParamDecl(name *ast.Ident, typeSetsOK bool) (f field) { … }
func (p *parser) parseParameterList(name0 *ast.Ident, typ0 ast.Expr, closing token.Token) (params []*ast.Field) { … }
func (p *parser) parseParameters(acceptTParams bool) (tparams, params *ast.FieldList) { … }
func (p *parser) parseResult() *ast.FieldList { … }
func (p *parser) parseFuncType() *ast.FuncType { … }
func (p *parser) parseMethodSpec() *ast.Field { … }
func (p *parser) embeddedElem(x ast.Expr) ast.Expr { … }
func (p *parser) embeddedTerm() ast.Expr { … }
func (p *parser) parseInterfaceType() *ast.InterfaceType { … }
func (p *parser) parseMapType() *ast.MapType { … }
func (p *parser) parseChanType() *ast.ChanType { … }
func (p *parser) parseTypeInstance(typ ast.Expr) ast.Expr { … }
func (p *parser) tryIdentOrType() ast.Expr { … }
func (p *parser) parseStmtList() (list []ast.Stmt) { … }
func (p *parser) parseBody() *ast.BlockStmt { … }
func (p *parser) parseBlockStmt() *ast.BlockStmt { … }
func (p *parser) parseFuncTypeOrLit() ast.Expr { … }
func (p *parser) parseOperand() ast.Expr { … }
func (p *parser) parseSelector(x ast.Expr) ast.Expr { … }
func (p *parser) parseTypeAssertion(x ast.Expr) ast.Expr { … }
func (p *parser) parseIndexOrSliceOrInstance(x ast.Expr) ast.Expr { … }
func (p *parser) parseCallOrConversion(fun ast.Expr) *ast.CallExpr { … }
func (p *parser) parseValue() ast.Expr { … }
func (p *parser) parseElement() ast.Expr { … }
func (p *parser) parseElementList() (list []ast.Expr) { … }
func (p *parser) parseLiteralValue(typ ast.Expr) ast.Expr { … }
func (p *parser) parsePrimaryExpr(x ast.Expr) ast.Expr { … }
func (p *parser) parseUnaryExpr() ast.Expr { … }
func (p *parser) tokPrec() (token.Token, int) { … }
func (p *parser) parseBinaryExpr(x ast.Expr, prec1 int) ast.Expr { … }
func (p *parser) parseExpr() ast.Expr { … }
func (p *parser) parseRhs() ast.Expr { … }
const basic …
const labelOk …
const rangeOk …
func (p *parser) parseSimpleStmt(mode int) (ast.Stmt, bool) { … }
func (p *parser) parseCallExpr(callType string) *ast.CallExpr { … }
func (p *parser) parseGoStmt() ast.Stmt { … }
func (p *parser) parseDeferStmt() ast.Stmt { … }
func (p *parser) parseReturnStmt() *ast.ReturnStmt { … }
func (p *parser) parseBranchStmt(tok token.Token) *ast.BranchStmt { … }
func (p *parser) makeExpr(s ast.Stmt, want string) ast.Expr { … }
func (p *parser) parseIfHeader() (init ast.Stmt, cond ast.Expr) { … }
func (p *parser) parseIfStmt() *ast.IfStmt { … }
func (p *parser) parseCaseClause() *ast.CaseClause { … }
func isTypeSwitchAssert(x ast.Expr) bool { … }
func (p *parser) isTypeSwitchGuard(s ast.Stmt) bool { … }
func (p *parser) parseSwitchStmt() ast.Stmt { … }
func (p *parser) parseCommClause() *ast.CommClause { … }
func (p *parser) parseSelectStmt() *ast.SelectStmt { … }
func (p *parser) parseForStmt() ast.Stmt { … }
func (p *parser) parseStmt() (s ast.Stmt) { … }
type parseSpecFunction …
func (p *parser) parseImportSpec(doc *ast.CommentGroup, _ token.Token, _ int) ast.Spec { … }
func (p *parser) parseValueSpec(doc *ast.CommentGroup, keyword token.Token, iota int) ast.Spec { … }
func (p *parser) parseGenericType(spec *ast.TypeSpec, openPos token.Pos, name0 *ast.Ident, typ0 ast.Expr) { … }
func (p *parser) parseTypeSpec(doc *ast.CommentGroup, _ token.Token, _ int) ast.Spec { … }
func extractName(x ast.Expr, force bool) (*ast.Ident, ast.Expr) { … }
func isTypeElem(x ast.Expr) bool { … }
func (p *parser) parseGenDecl(keyword token.Token, f parseSpecFunction) *ast.GenDecl { … }
func (p *parser) parseFuncDecl() *ast.FuncDecl { … }
func (p *parser) parseDecl(sync map[token.Token]bool) ast.Decl { … }
func (p *parser) parseFile() *ast.File { … }
func packIndexExpr(x ast.Expr, lbrack token.Pos, exprs []ast.Expr, rbrack token.Pos) ast.Expr { … }