| Quintiq file version 2.0 | 
| #parent: #root | 
| Method PTF_ValidateScript ( | 
|   String script | 
| ) as String id:Method_LibPTF_dlgCreateEditTestScript_PTF_ValidateScript | 
| { | 
|   #keys: '[103546.0.109833688]' | 
|   Body: | 
|   [* | 
|     // Checks the script with various validation | 
|     scriptwithoutcomment := this.PTF_RemoveComment( script ); | 
|     rows                 := scriptwithoutcomment.Tokenize( String::NewLine() ); | 
|     rownr                := 0; | 
|     errormsg             := ""; | 
|      | 
|     traverse( rows, Elements, row, errormsg.Length() = 0 ) | 
|     { | 
|       parameters := null( Strings ); | 
|       rownr++; | 
|      | 
|       row := row.TrimBoth(); | 
|      | 
|       if( row.Length() > 0 ) | 
|       { | 
|         // Line by line basic validation | 
|         row      := row.ReplaceAll( ";", "" ); | 
|         action   := this.PTF_GetActionAndParameters( row, parameters ); | 
|         errormsg := this.PTF_ValidateStatement( action, parameters ); | 
|       } | 
|     } | 
|      | 
|     if( errormsg.Length() > 0 ) | 
|     { | 
|       errormsg := "Line #" + [String]rownr + ": " + errormsg; | 
|     } | 
|     else | 
|     { | 
|       // Validation considering more than just the line itself | 
|       errormsg := this.PTF_ValidateComment( scriptwithoutcomment ); | 
|      | 
|       if( errormsg.Length() = 0 ) | 
|       { | 
|         errormsg := this.PTF_ValidateLoop( scriptwithoutcomment ); | 
|       } | 
|     } | 
|      | 
|     return errormsg; | 
|   *] | 
| } |