示例#1
0
        public static SteExpression ResetAsOperator(this SteExpression expr, SteOperatorSpecs opHeadSpecs, IEnumerable <SteExpression> args)
        {
            var headSpecs = opHeadSpecs;

            expr.Reset(headSpecs, args);

            return(expr);
        }
示例#2
0
        public static SteExpression ResetAsOperator(this SteExpression expr, SteOperatorSpecs opHeadSpecs, params SteExpression[] args)
        {
            var headSpecs = opHeadSpecs;

            expr.Reset(headSpecs, args);

            return(expr);
        }
示例#3
0
        /// <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>()));
        }
示例#4
0
        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);
        }
示例#5
0
 public static SteExpression InsertOperator(this SteExpression expr, int index, SteOperatorSpecs head, IEnumerable <SteExpression> args)
 {
     return(expr.InsertArgument(index, CreateOperator(head, args)));
 }
示例#6
0
 public static SteExpression AddOperator(this SteExpression expr, SteOperatorSpecs head, IEnumerable <SteExpression> args)
 {
     return(expr.AddArgument(CreateOperator(head, args)));
 }
示例#7
0
 public static SteExpression AddOperator(this SteExpression expr, SteOperatorSpecs head, params SteExpression[] args)
 {
     return(expr.AddArgument(CreateOperator(head, args)));
 }