void IIfScriptEngine.EndGroup() { if (CurrentDecision.Parent != null) { CurrentDecision = CurrentDecision.Parent; } }
public ScriptEngine() { _inDo = false; _mode = Modes.Simple; ExecutionMode = ExecutionModes.Normal; CurrentScript = new Script(); CurrentDecision = new DecisionOrList(); }
void IIfScriptEngine.OrGroup() { var oldDecision = CurrentDecision; CurrentDecision = new DecisionOrList { Parent = oldDecision }; oldDecision.AddDecision(CurrentDecision); }
void IDoScriptEngine.Begin() { while (CurrentDecision.Parent != null) { CurrentDecision = CurrentDecision.Parent; } CurrentScript.Decision = CurrentDecision; CurrentDecision = new DecisionOrList(); }
public void EndActiveIf() { if (_mode == Modes.Simple && _inDo) { ((IDoScriptEngine)this).End(); _inDo = false; } else { // We didn't have any Dos set to this decision, but the decision // could have had If's. If so, we want to clear them out so that they // don't stick around and "or" with the next decisions unexpectedly CurrentDecision = new DecisionOrList(); } }
void IDoScriptEngine.Begin() { while (CurrentDecision.Parent != null) CurrentDecision = CurrentDecision.Parent; CurrentScript.Decision = CurrentDecision; CurrentDecision = new DecisionOrList(); }
void IIfScriptEngine.EndGroup() { if (CurrentDecision.Parent != null) CurrentDecision = CurrentDecision.Parent; }