func (p *Parser) compoundExpr() ast.Expr {
	if _, ok := p.check(token.IF); ok {
		return p.ifExpr()
	}
	if _, ok := p.check(token.FOR); ok {
		return p.forExpr()
	}
	if _, ok := p.check(token.LCURLY); ok {
		return p.exprBody()
	}
	if _, ok := p.check(token.FUNC); ok {
		return p.funcExpr()
	}
	return p.expr()
}
// compoundExpr is the head of the expr tree.
compoundExpr is the head of the expr tree.
// compoundExpr is the head of the expr tree .
func (p *Parser) compoundExpr() ast.Expr {
	if _, ok := p.check(token.IF); ok {
		return p.ifExpr()
	}
	if _, ok := p.check(token.FOR); ok {
		return p.forExpr()
	}
	if _, ok := p.check(token.LCURLY); ok {
		return p.exprBody()
	}
	if _, ok := p.check(token.FUNC); ok {
		return p.funcExpr()
	}
	return p.expr()
}
func ( p * Parser ) compoundExpr ( ) ast . Expr { if _ , ok := p . check ( token . IF ) ; ok { return p . ifExpr ( ) } if _ , ok := p . check ( token . FOR ) ; ok { return p . forExpr ( ) } if _ , ok := p . check ( token . LCURLY ) ; ok { return p . exprBody ( ) } if _ , ok := p . check ( token . FUNC ) ; ok { return p . funcExpr ( ) } return p . expr ( ) }
compoundExpr is the head of the expr tree.
compoundExpr is the head of the expr tree .