func (p *parser) expect(exp ItemType, context string) item {
	token := p.next()
	if token.typ != exp {
		p.errorf("unexpected %s in %s, expected %s", token.desc(), context, exp.desc())
	}
	return token
}
func (p *parser) expect(exp ItemType, context string) item {
	token := p.next()
	if token.typ != exp {
		p.errorf("unexpected %s in %s, expected %s", token.desc(), context, exp.desc())
	}
	return token
}
func ( p * parser ) expect ( exp ItemType , context string ) item { token := p . next ( ) if token . typ != exp { p . errorf ( " " , token . desc ( ) , context , exp . desc ( ) ) } return token }
// expect consumes the next token and guarantees it has the required type.
expect consumes the next token and guarantees it has the required type .