func (p *Parser) consumeFunc() *ast.Func { t := p.next() if !p.isExpected(t, token.Func) { return nil } f := ast.Func{ Name: t.String(), } f.File = p.name f.Line = t.Line f.Position = t.Start t = p.next() if !p.isExpected(t, token.LeftParen) { return nil } p.consumeParams(&f) return &f }