public void Translate(ActionSet actionSet) { if (DefinedVariable != null) { // Add the defined variable to the index assigner. actionSet.IndexAssigner.Add(actionSet.VarCollection, DefinedVariable, actionSet.IsGlobal, null); // Set the initial variable. if (actionSet.IndexAssigner[DefinedVariable] is IndexReference && DefinedVariable.InitialValue != null) { actionSet.AddAction(((IndexReference)actionSet.IndexAssigner[DefinedVariable]).SetVariable( (Element)DefinedVariable.InitialValue.Parse(actionSet) )); } } else if (InitialVarSet != null) { InitialVarSet.Translate(actionSet); } WhileBuilder whileBuilder = new WhileBuilder(actionSet, Condition?.Parse(actionSet)); whileBuilder.Setup(); Block.Translate(actionSet); if (SetVariableAction != null) { SetVariableAction.Translate(actionSet); } whileBuilder.Finish(); }
public void Translate(ActionSet actionSet) { WhileBuilder whileBuilder = new WhileBuilder(actionSet, () => { return(Condition.Parse(actionSet)); }); whileBuilder.Setup(); Block.Translate(actionSet); whileBuilder.Finish(); }