func (p *TopDown) Advance() Token {
	t := p.token
	p.token = p.lex.Next()
	return t
}
Advance returns the incoming token, and move to the next one.
package parser
type Context interface {
	Expression(rbp int) interface{}
	Advance() Token
	Peek() Token
	Error(error)
}
type Token interface {
	Nud(ctx Context) interface{}
	Led(ctx Context, left interface{}) interface{}
	Lbp() int
}
type Lexer interface {
	Next() Token
}
type TopDown struct {
	lex Lexer
	token Token
	errors []error
}