// NewVariadic returns a variadic expression.
NewVariadic returns a variadic expression.
// NewVariadic returns a variadic expression .
func NewVariadic(typ int, op string, ods ExprList) (*Expr, error) {
	if typ != '[' && typ != '(' {
		return nil, fmt.Errorf("Only [ and ( are supported with variadic expression")
	}
	if op != fmt.Sprintf("%c", typ) {
		return nil, fmt.Errorf("Given typ %c, op must be \"%c\", got \"%s\"", typ, typ, op)
	}
	oprt, e := NewLiteral(typ, op)
	if e != nil {
		return nil, e
	}
	return &Expr{
		sexp: append(ExprList{oprt}, ods...),
	}, nil
}
func NewVariadic ( typ int , op string , ods ExprList ) ( * Expr , error ) { if typ != '[' && typ != '(' { return nil , fmt . Errorf ( " " ) } if op != fmt . Sprintf ( " " , typ ) { return nil , fmt . Errorf ( " \" \" \" \" " , typ , typ , op ) } oprt , e := NewLiteral ( typ , op ) if e != nil { return nil , e } return & Expr { sexp : append ( ExprList { oprt } , ods ... ) , } , nil }
NewVariadic returns a variadic expression.
NewVariadic returns a variadic expression .