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;
|
*]
|
}
|