Example #1
0
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
}