Quintiq file version 2.0 #parent: #root Method PTF_ParseLoopActions ( String body ) as String id:Method_LibPTF_pnlTestRunner_PTF_ParseLoopActions { #keys: '[104342.0.866219053]' Body: [* // Specifically for Loops - Perform the prerequisites for treating statements in Loops resultbody := body; regnumber := 0; loopindex := 0; largestregnum := 0; keywordloop := LibPTF_StandardAction::Loop(); keywordendloop := LibPTF_StandardAction::EndLoop(); // Create identifier of each Loop while( resultbody.NrOccurrences( keywordloop + " ", 0, true ) > 0 ) { regnumber++; loopindex := resultbody.FindString( keywordloop + " ", loopindex ); resultbody := resultbody.Insert( loopindex + keywordloop.Length(), [String]regnumber ); } largestregnum := regnumber; // Create identifier of its corresponding EndLoop while( regnumber > 0 ) { loopindex := resultbody.FindString( keywordloop + [String]regnumber, 0 ); endloopindex := resultbody.FindString( keywordendloop + ";", loopindex ); resultbody := resultbody.Insert( endloopindex + keywordendloop.Length(), [String]regnumber ); regnumber--; } // Flatten the nested loop and return the script with the actual execution of actions while( largestregnum > 0 ) { resultbody := this.PTF_FlattenNestedLoop( largestregnum, resultbody ); largestregnum--; } return resultbody; *] }