code: func (t *tree) expect(expected itemType, context string) item {
  	token := t.next()
  	if token.typ != expected {
  		t.unexpected(token, fmt.Sprintf("%v (expected %v)", context, expected.String()))
  	}
  	return token
  }
docs: // expect consumes the next token and guarantees it has the required type.