コード例 #1
0
 public override void execute(Interpret interpreter)
 {
     foreach (var item in sequence)
     {
         item.execute(interpreter);
     }
 }
コード例 #2
0
 public override void execute(Interpret interpreter)
 {
     if (expression.eval(interpreter))
     {
         directive.executeAll(interpreter);
     }
 }
コード例 #3
0
        public override void execute(Interpret interpreter)
        {
            List <NumericVariable> list = interpreter.getList(listIndex.eval(interpreter));

            if (list.Count > 0)
            {
                list.RemoveAt(list.Count - 1);
            }
        }
コード例 #4
0
        public override int eval(Interpret interpreter)
        {
            int secondVal = second.eval(interpreter);

            if (secondVal == 0)
            {
                return(0);
            }
            return(first.eval(interpreter) / secondVal);
        }
コード例 #5
0
        public override int eval(Interpret interpreter)
        {
            List <NumericVariable> list = interpreter.getList(listIndex.eval(interpreter));

            if (list.Count == 0)
            {
                return(0);
            }
            return(list[list.Count - 1].getValue());
        }
コード例 #6
0
        /// <summary>
        /// Executes this directive together with all other directives that are conected to it by "nextDirective".
        /// </summary>
        /// <param name="interpreter"></param>
        public virtual void executeAll(Interpret interpreter)
        {
            execute(interpreter);
            var nextDirective = getNextDirective();

            if (nextDirective != null)
            {
                nextDirective.executeAll(interpreter);
            }
        }
コード例 #7
0
        public override int eval(Interpret interpreter)
        {
            int argument = experssion.eval(interpreter);

            if (argument < 0)
            {
                return(0);
            }
            return((int)Math.Round(Math.Sqrt(argument)));
        }
コード例 #8
0
        public override void execute(Interpret interpreter)
        {
            int counter = 0;

            while (expression.eval(interpreter) && counter < LoopLimit)
            {
                dir.executeAll(interpreter);
                counter++;
            }
        }
コード例 #9
0
        public override int eval(Interpret interpreter)
        {
            int limit = experssion.eval(interpreter);

            if (limit <= 0)
            {
                return(0);
            }
            return(r.Next(limit));
        }
コード例 #10
0
        public override void execute(Interpret interpreter)
        {
            int limit         = limitVal.eval(interpreter),
                counter       = 0;
            NumericVariable v = interpreter.getNumVariable(varIndex.eval(interpreter));

            while (v.getValue() < limit && counter < LoopLimit)
            {
                directive.executeAll(interpreter);
                v.increment();
                counter++;
            }
        }
コード例 #11
0
        public override void execute(Interpret interpreter)
        {
            NumericVariable v       = interpreter.getNumVariable(varIndex.eval(interpreter));
            int             listInd = interpreter.getNumVariable(listIndex.eval(interpreter)).getValue();
            var             list    = interpreter.getList(listInd);
            int             counter = 0;
            int             index   = 0;

            while (index < list.Count)
            {
                v.assign(list[index].getValue());
                directive.executeAll(interpreter);
                index++;
                counter++;
                if (counter > LoopLimit)
                {
                    break;
                }
            }
        }
コード例 #12
0
 public override int eval(Interpret interpreter)
 {
     return(interpreter.getList(listIndex.eval(interpreter)).Count);
 }
コード例 #13
0
 public override int eval(Interpret interpreter)
 {
     return(interpreter.getValueFromList(this.listIndex.eval(interpreter), this.itemIndex.eval(interpreter)).eval(interpreter));
 }
コード例 #14
0
 public override int eval(Interpret interpreter)
 {
     return(interpreter.getNumVariable(variableIndex.eval(interpreter)).getValue());
 }
コード例 #15
0
 public BooleanVariable getVariable(Interpret interpreter)
 {
     return(interpreter.getBoolVariable(variableIndex));
 }
コード例 #16
0
 public NumericVariable getVariable(Interpret interpreter)
 {
     return(interpreter.getNumVariable(variableIndex));
 }
コード例 #17
0
        public override int eval(Interpret interpreter)
        {
            int value = experssion.eval(interpreter);

            return(value * value);
        }
コード例 #18
0
 public override int eval(Interpret interpreter)
 {
     return((int)Math.Round(Math.Tan(experssion.eval(interpreter))));
 }
コード例 #19
0
 public abstract int eval(Interpret interpreter);
コード例 #20
0
 public override int eval(Interpret interpreter)
 {
     return(interpreter.getInput(inputIndex));
 }
コード例 #21
0
        public void assign(bool value, Interpret interpreter)
        {
            BooleanVariable var = interpreter.getBoolVariable(variableIndex);

            var.assign(value);
        }
コード例 #22
0
 public override bool eval(Interpret interpreter)
 {
     return(value);
 }
コード例 #23
0
        public void assign(int value, Interpret interpreter)
        {
            NumericVariable var = interpreter.getNumVariable(variableIndex);

            var.assign(value);
        }
コード例 #24
0
 public override bool eval(Interpret interpreter)
 {
     return(interpreter.logicalInputs[inputIndex]);
 }
コード例 #25
0
 public override bool eval(Interpret interpreter)
 {
     return(!exp.eval(interpreter));
 }
コード例 #26
0
 public override int eval(Interpret interpreter)
 {
     return(first.eval(interpreter) * second.eval(interpreter));
 }
コード例 #27
0
 public override bool eval(Interpret interpreter)
 {
     return(first.eval(interpreter) ^ second.eval(interpreter));
 }
コード例 #28
0
 public override int eval(Interpret interpreter)
 {
     return(number);
 }
コード例 #29
0
 public abstract bool eval(Interpret interpreter);
コード例 #30
0
 public override int eval(Interpret interpreter)
 {
     return(expression.eval(interpreter) ? 1 : 0);
 }