public override dynamic Execute(ScriptContext context)
 {
     if (Condition == null)
     {
         do
         {
             try { Code.Execute(context); }
             catch (ScriptExecutionContinueException) { }
             catch (ScriptExecutionBreakException) { break; }
         } while(true);
     }
     else
     {
         if (Code != null)
         {
             do
             {
                 try { Code.Execute(context); }
                 catch (ScriptExecutionContinueException) { }
                 catch (ScriptExecutionBreakException) { break; }
             } while(Condition.Execute(context));
         }
         else
         {
             while (Condition.Execute(context))
             {
                 ;
             }
         }
     }
     return(null);
 }
        public override dynamic Execute(ScriptContext context)
        {
            dynamic a = Value.Execute(context);
            dynamic r = Convert.ChangeType(a, CastToSystemType);

            return(r);
        }
        public override dynamic Execute(ScriptContext context)
        {
            dynamic v = Value.Execute(context);

            context.SetVariable(VarName.Value, v);
            return(v);
        }
Пример #4
0
        public override dynamic Execute(ScriptContext context)
        {
            dynamic a = LValue.Execute(context);
            dynamic b = RValue.Execute(context);
            dynamic r = ApplyOperator(a, b);

            return(r);
        }
Пример #5
0
        public override dynamic Execute(ScriptContext context)
        {
            dynamic v = Value.Execute(context);
            dynamic r = ApplyOperator(ref v);

            if (AffectsVariable && Value is ScriptIdentifierToken)
            {
                context.SetVariable(((ScriptIdentifierToken)Value).Value, v);
            }
            return(r);
        }
Пример #6
0
 public override dynamic Execute(ScriptContext context)
 {
     if (ExitValue == null)
     {
         throw new ScriptExecutionExitException(null);
     }
     else
     {
         dynamic r = ExitValue.Execute(context);
         throw new ScriptExecutionExitException(r);
     }
 }
 public override dynamic Execute(ScriptContext context)
 {
     if (IsInGlobalScope)
     {
         if (ReturnValue == null)
         {
             throw new ScriptExecutionExitException(null);
         }
         else
         {
             dynamic r = ReturnValue.Execute(context);
             throw new ScriptExecutionExitException(r);
         }
     }
     if (ReturnValue == null)
     {
         throw new ScriptExecutionReturnException(null);
     }
     else
     {
         dynamic r = ReturnValue.Execute(context);
         throw new ScriptExecutionReturnException(r);
     }
 }
        public override dynamic Execute(ScriptContext context)
        {
            dynamic c = Condition.Execute(context);

            if (c)
            {
                if (TrueNode != null)
                {
                    TrueNode.Execute(context);
                }
            }
            else
            {
                if (FalseNode != null)
                {
                    FalseNode.Execute(context);
                }
            }
            return(null);
        }
        public override dynamic Execute(ScriptContext context)
        {
            context.IncrementScopeLevel(false);
            try {
                if (Init != null)
                {
                    Init.Execute(context);
                }

                if (Final == null)
                {
                    if (Condition == null)
                    {
                        do
                        {
                            try { Code.Execute(context); }
                            catch (ScriptExecutionContinueException) { }
                            catch (ScriptExecutionBreakException) { break; }
                        } while(true);
                    }
                    else
                    {
                        if (Code != null)
                        {
                            while (Condition.Execute(context))
                            {
                                try { Code.Execute(context); }
                                catch (ScriptExecutionContinueException) { }
                                catch (ScriptExecutionBreakException) { break; }
                            }
                        }
                        else
                        {
                            while (Condition.Execute(context))
                            {
                                ;
                            }
                        }
                    }
                }
                else
                {
                    if (Condition == null)
                    {
                        do
                        {
                            try { Code.Execute(context); }
                            catch (ScriptExecutionContinueException) { }
                            catch (ScriptExecutionBreakException) { break; }
                            Final.Execute(context);
                        } while(true);
                    }
                    else
                    {
                        if (Code != null)
                        {
                            while (Condition.Execute(context))
                            {
                                try { Code.Execute(context); }
                                catch (ScriptExecutionContinueException) { }
                                catch (ScriptExecutionBreakException) { break; }
                                Final.Execute(context);
                            }
                        }
                        else
                        {
                            while (Condition.Execute(context))
                            {
                                Final.Execute(context);
                            }
                        }
                    }
                }
            }
            finally {
                context.DecrementScopeLevel(false);
            }
            return(null);
        }