예제 #1
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++;
            }
        }
예제 #2
0
 public NumericVariable getNumVariable(int variableIndex)
 {
     if (variableIndex < 0)
     {
         return(getNumVariable(0));
     }
     if (variableIndex >= variablesLimit)
     {
         return(getNumVariable(variableIndex % variablesLimit));
     }
     if (numVariables[variableIndex] == null)
     {
         numVariables[variableIndex] = new NumericVariable();
     }
     return(numVariables[variableIndex]);
 }
예제 #3
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;
                }
            }
        }
예제 #4
0
        public void assign(int value, Interpret interpreter)
        {
            NumericVariable var = interpreter.getNumVariable(variableIndex);

            var.assign(value);
        }
예제 #5
0
        public override void execute(Interpret interpreter)
        {
            NumericVariable v = interpreter.getNumVariable(variableIndex.eval(interpreter));

            v.decrement();
        }