public PreFunctionValue(string keyWord, Func <FunctionArgument, EvalContext, IExpr> calculate, int argsCount = -1, bool isselfCal = false, EvalContextStartupInfo contextInfo = default) { Keyword = keyWord; ContextInfo = contextInfo; EvaluateFunc = calculate; ArgumentCount = argsCount; IsSelfCalculate = isselfCal; }
public Operator(string keyWord, Func <IExpr[], EvalContext, IExpr> calculate, Func <IExpr[], string> toexprString = null, double priority = 0, Association association = Association.Left, int quantityNumber = -1, uint[] selfCalculate = null, EvalContextStartupInfo contextInfo = default) { Keyword = keyWord; EvaluateFunc = calculate; ContextInfo = contextInfo; if (toexprString != null) { ToStringFunc = toexprString; } else { ToStringFunc = (IExpr[] args) => string.Join(Keyword, args.Select((IExpr exp) => Operator.BlockToString(exp))); } Priority = priority; ArgumentCount = quantityNumber; Association = association; SelfCalculate = selfCalculate; }