예제 #1
0
        protected override bool BeforeEachCycleAction(Environment env)
        {
            WhileTestWord.Execute(env);

            if (env.IsExitMode)
            {
                return(false);
            }

            return(BoolType.IsTrue(env.DataStack.Pop()));
        }
예제 #2
0
 private void executeBranch(Environment env)
 {
     if (BoolType.IsTrue(env.DataStack.Pop()))
     {
         TrueBranchWord.Execute(env);
     }
     else
     {
         FalseBranchWord.Execute(env);
     }
 }
예제 #3
0
        private void executeOf(Environment env)
        {
            int ofParam = env.DataStack.Pop(), caseParam = env.DataStack.Peek();

            if (ofParam == caseParam)
            {
                env.DataStack.Pop();
                OfBodyWord.Execute(env);

                if (env.IsExitMode)
                {
                    return;
                }

                env.ActiveExitWordName = "leave-case";
            }
        }