public override void Evaluate(IScriptContext context) { bool condBool; object result = RuntimeHost.NullValue; init.Evaluate(context); cond.Evaluate(context); condBool = context.Result == null ? true : (bool)context.Result; while (condBool) { statement.Evaluate(context); result = context.Result; if (context.IsBreak() || context.IsReturn()) { context.SetBreak(false); break; } if (context.IsContinue()) { context.SetContinue(false); } next.Evaluate(context); cond.Evaluate(context); condBool = context.Result == null ? true : (bool)context.Result; } context.Result = result; }
public override void Evaluate(IScriptContext context) { condition.Evaluate(context); object lastResult = RuntimeHost.NullValue; while ((bool)context.Result) { statement.Evaluate(context); lastResult = context.Result; if (context.IsBreak() || context.IsReturn()) { context.SetBreak(false); break; } if (context.IsContinue()) { context.SetContinue(false); } condition.Evaluate(context); } context.Result = lastResult; }
public override void Evaluate(IScriptContext context) { condition.Evaluate(context); if ((bool)context.Result) { statement.Evaluate(context); } else if (elseStatement != null) { elseStatement.Evaluate(context); } }
public override void Evaluate(IScriptContext context) { object switchValue = context.Result; cond.Evaluate(context); if (switchValue.Equals(context.Result)) { statement.Evaluate(context); context.SetBreak(true); } else { context.Result = switchValue; } }
public override void Evaluate(IScriptContext context) { try { tryBlock.Evaluate(context); } catch (Exception e) { context.SetItem(expName, e); catchBlock.Evaluate(context); } finally { finallyBlock.Evaluate(context); } }
public override void Evaluate(IScriptContext context) { expr.Evaluate(context); IEnumerable enumeration = context.Result as IEnumerable; IEnumerator enumerator = null; if (enumeration != null) { enumerator = enumeration.GetEnumerator(); } else { IObjectBind bind = RuntimeHost.Binder.BindToMethod(context.Result, "GetEnumerator", new Type[0], new object[0]); if (bind != null) { enumerator = bind.Invoke(context, null) as IEnumerator; } } if (enumerator == null) { throw new ScriptException("GetEnumerator() method did not found in object: " + context.Result.ToString()); } enumerator.Reset(); while (enumerator.MoveNext()) { context.SetItem(name.Text, enumerator.Current); statement.Evaluate(context); if (context.IsBreak() || context.IsReturn()) { context.SetBreak(false); break; } if (context.IsContinue()) { context.SetContinue(false); } } }
public override void Evaluate(IScriptContext context) { statement.Evaluate(context); }