示例#1
0
 private bool Compendifp(Moment[] par, Moment res, ISet <int> parnum)
 {
     if (par[0].Boolean)
     {
         if (parnum.Contains(1))
         {
             res.CopyValueFrom(par[1]);
             res.Nd = par[0].Nd | par[1].Nd;
         }
         else
         {
             return(false);
         }
     }
     if (par[2].Boolean)
     {
         if (parnum.Contains(3))
         {
             res.CopyValueFrom(par[3]);
             res.Nd = par[2].Nd | par[3].Nd;
         }
         else
         {
             return(false);
         }
     }
     if (!par[0].Boolean && !par[2].Boolean)
     {
         res.Nd |= 1;
     }
     return(true);
 }
示例#2
0
 private bool Compvalueatpoints(Moment[] par, Moment res, ISet <int> parnum)
 {
     if (parnum.Contains(1))
     {
         res.CopyValueFrom(par[0]);
     }
     return(parnum.Contains(1));
 }
示例#3
0
 public void makeerrorusb(Moment[] par, Moment res)
 {
     res.CopyValueFrom(par[0]);
     if (par[2].Boolean)
     {
         res.Error = null;
     }
     PutErr(par[1].String, res);
 }
示例#4
0
 private bool Compsettime(Moment[] par, Moment res, ISet <int> parnum)
 {
     if (parnum.Contains(0))
     {
         res.CopyValueFrom(par[0]);
         res.Time = par[1].Date;
     }
     return(parnum.Contains(0));
 }
示例#5
0
        private bool Compunion(Moment[] par, Moment res, ISet <int> parnum)
        {
            int n = parnum.Min();

            res.CopyValueFrom(par[n]);
            res.Nd    = par[n].Nd;
            res.Error = par[n].Error;
            return(true);
        }
示例#6
0
        private bool Compselectpoints(Moment[] par, Moment res, ISet <int> parnum)
        {
            bool e = parnum.Contains(0) && par[1].Boolean;

            if (e)
            {
                res.CopyValueFrom(par[0]);
            }
            return(e);
        }
示例#7
0
 //Оператор end со значениями, параметры - фильтр и значение по true, фильтр и значение по false
 public void endif(Moment[] par, Moment res)
 {
     if (par[0].Boolean)
     {
         res.CopyValueFrom(par[1]);
         res.Nd    = par[0].Nd | par[1].Nd;
         res.Error = par[0].Error | par[1].Error;
     }
     if (par[2].Boolean)
     {
         res.CopyValueFrom(par[3]);
         res.Nd    = par[2].Nd | par[3].Nd;
         res.Error = par[2].Error | par[3].Error;
     }
     if (!par[0].Boolean && !par[2].Boolean)
     {
         res.Nd |= 1;
     }
 }
示例#8
0
 public void makecertainuib(Moment[] par, Moment res)
 {
     res.CopyValueFrom(par[0]);
     if (par[2].Boolean)
     {
         res.Nd = par[1].Integer;
     }
     else
     {
         res.Nd |= par[1].Integer;
     }
 }
示例#9
0
        //Функции типа ComplicateDelegate

        private bool Compassignp(Moment[] par, Moment res, ISet <int> parnum)
        {
            bool e = parnum.Contains(0) | parnum.Contains(1);

            if (e)
            {
                res.CopyValueFrom(par[2].Boolean ? par[1] : par[0]);
                res.Nd    = par[1].Nd | par[2].Nd;
                res.Error = par[1].Error | par[2].Error;
            }
            return(e);
        }
示例#10
0
        public void maxu(Moment[] par, Moment res)
        {
            Moment mv = par[0];

            for (int i = 1; i < par.Length; ++i)
            {
                if (par[i] > mv)
                {
                    mv = par[i];
                }
            }
            res.CopyValueFrom(mv);
        }
示例#11
0
 //Присвоение: параметры - переменная, выражение и фильтр по if
 public void assign(Moment[] par, Moment res)
 {
     res.CopyValueFrom(par[2].Boolean ? par[1] : par[0]);
     res.Nd    = par[1].Nd | par[2].Nd;
     res.Error = par[1].Error | par[2].Error;
 }