예제 #1
0
 protected override void OnExecute(Engine engine)
 {
     var value = Value != null ? Value.Get(engine) : null;
     if (engine.ScriptDepth == 1)
         engine.DefineVariableInParentScope(VariableName, value);
     else
         engine.DefineVariable(VariableName, value);
 }
예제 #2
0
 protected override void OnExecuteFrame(Engine engine)
 {
     engine.SetBreakFrame();
     foreach (var item in Collection.Get(engine) as IEnumerable)
     {
         engine.DefineVariable(VariableName, item);
         Body.Execute(engine);
         engine.ClearShouldContinue();
         if (engine.ShouldInterrupt) break;
     }
 }
예제 #3
0
 protected override void OnExecute(Engine engine)
 {
     var type = engine.GetType(TypeProperty, TypePath, TypeCodeTree);
     var value = engine.Get(ValueProperty, Path, CodeTree) as IEnumerable;
     var name = engine.GetVariable(Var, VarCodeTree);
     foreach (object item in value)
     {
         engine.DefineVariable(name, TypeHelper.Convert(item, type));
         Body.Execute(engine);
         engine.ClearShouldContinue();
         if (engine.ShouldInterrupt) break;
     }
 }
예제 #4
0
 private void SetLoopValue(string name, object value, Type type, Engine engine)
 {
     engine.DefineVariable(name, TypeHelper.Convert(value, type));
 }
예제 #5
0
 protected override void OnExecuteFrame(Engine engine)
 {
     engine.DefineVariable(Engine.ContextKey, Context.Get(engine));
     Body.Execute(engine);
 }