/// <summary> /// Links an executable instruction at a specific index /// </summary> /// <remarks>Throws an InvalidOperationException if index is to high</remarks> /// <param name="pin">Index of the pin on which link the instruction</param> /// <param name="instruction">Instruction to link</param> public void LinkTo(uint pin, ExecutionRefreshInstruction instruction) { if (pin > executionPins.Count()) { throw new InvalidOperationException("Given index is to hight"); } this.executionPins[pin] = instruction; }
/// <summary> /// Links an instruction to execute when condition is false /// </summary> /// <param name="next">Instruction to link</param> public void Else(ExecutionRefreshInstruction next) { this.LinkTo((int)ConditionIndexes.OnFalse, next); }
/// <summary> /// Links an instruction to execute when condition is true /// </summary> /// <param name="next">Instruction to link</param> public void Then(ExecutionRefreshInstruction next) { this.LinkTo((int)ConditionIndexes.OnTrue, next); }
/// <summary> /// Link the instruction to the "OUT LOOP" index /// </summary> /// <param name="next">Instruction to execute if while condition is false</param> public void Done(ExecutionRefreshInstruction next) { this.LinkTo((int)LoopIndexes.OUTLOOP, next); }