public static SteExpression ResetAsOperator(this SteExpression expr, SteOperatorSpecs opHeadSpecs, IEnumerable <SteExpression> args) { var headSpecs = opHeadSpecs; expr.Reset(headSpecs, args); return(expr); }
public static SteExpression ResetAsOperator(this SteExpression expr, SteOperatorSpecs opHeadSpecs, params SteExpression[] args) { var headSpecs = opHeadSpecs; expr.Reset(headSpecs, args); return(expr); }
/// <summary> /// Create an operator expression without any arguments /// </summary> /// <param name="opHeadSpecs"></param> /// <returns></returns> public static SteExpression CreateOperator(SteOperatorSpecs opHeadSpecs) { if (ReferenceEquals(opHeadSpecs, null)) { throw new ArgumentNullException(nameof(opHeadSpecs), @"Expression head not initialized"); } return(new SteExpression(opHeadSpecs, Enumerable.Empty <SteExpression>())); }
public static SteExpression ResetAsOperator(this SteExpression expr, SteOperatorSpecs opHeadSpecs, bool clearArgs = true) { var headSpecs = opHeadSpecs; if (clearArgs) { expr.Reset(headSpecs); } else { expr.ResetHead(headSpecs); } return(expr); }
public static SteExpression InsertOperator(this SteExpression expr, int index, SteOperatorSpecs head, IEnumerable <SteExpression> args) { return(expr.InsertArgument(index, CreateOperator(head, args))); }
public static SteExpression AddOperator(this SteExpression expr, SteOperatorSpecs head, IEnumerable <SteExpression> args) { return(expr.AddArgument(CreateOperator(head, args))); }
public static SteExpression AddOperator(this SteExpression expr, SteOperatorSpecs head, params SteExpression[] args) { return(expr.AddArgument(CreateOperator(head, args))); }