All output of executing the D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll will be written in this file.
Refer to the scriptfile which statements are used. search for the parts "==subroutine()=="


==testScriptVarAccess()==
A scriptvariable is copied locally, changes are effective only locally.
But if jzcmd.scriptVariables().scriptString is set, it is effective in the script:

Text in a script variable: scriptString = scriptStringFirst
Changed: scriptString = new text
In other method: scriptString = scriptStringFirst
In other method: scriptString = changed on script level

==testBatch()==
This example creates an batchfile in this script and executes it then. It works for MS-Windows.
The batch 'myBatch.bat' contains a 'dir' cmd which's output is redirected in a newly created text file 'out.txt'.
After execution this JZcmd subroutine evaluates the 'out.txt'.
It searches the line containing 'myBatch' and shows it.

'''Variantes of currdir''':
jzcmd.scriptLevel.currdir = F:\Eclipse_work\vishiaJavaR
jzcmd.currdir() = F:/Eclipse_work/vishiaJavaR
jzcmdsub.currdir = D:\vishia\ZBNF\sf\ZBNF\examples_JZcmd
jzcmdsub.currdir() = D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd
jzcmdsub.sCurrdir = D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd

executes myBatch.bat, creates out.txt in the current directory ...
evaluates 'out.txt': 30.08.2015  21:28                43 myBatch.bat

==testErrorlevel()==
testErrorlevel(): 1 < 5 
testErrorlevel(): 2 < 5 
testErrorlevel(): 2 >= 2 
testErrorlevel(): 3 < 5 
testErrorlevel(): 3 >= 2 
testErrorlevel(): exeception handling 

==testOutputTextIndent()==
First line left aligned
Second line left aligned
  Third line left aligned
  forth line 2 spaces, continue of forth line, one space
fifth line left aligned.

==testDebugErrorMsg()==
Variable not exists: onerror block executed for this test: java.lang.NoSuchFieldException: faultyVariable; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:227,27; e <*)

==testErrorToOutput()==

 In this text expression an unknown variable will be accessed.
 Because 'errorToOutput' was set, the error hint will be produced in this output text:
 <?? java.lang.NoSuchFieldException: unknown; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:258,6; e <*) ??>


 In this text expression an unknown variable will be accessed too.
 But because 'errorToOutput off' was set, the execution is aborted and the 'onerror' block is entered:
 Error: java.lang.NoSuchFieldException: unknown; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:264,6; e <*)
  The error with stacktrace: JZcmd.execute - exception at; @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:264,6; e <*);java.lang.NoSuchFieldException: unknown; org.vishia.util.DataAccess.getData(DataAccess.java:1506); org.vishia.util.DataAccess.access(DataAccess.java:886); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.dataAccess(JZcmdExecuter.java:2535); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.executeDatatext(JZcmdExecuter.java:2096); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:1035); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.exec_TextAppendToVar(JZcmdExecuter.java:1556); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:988); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execSubroutine(JZcmdExecuter.java:1779); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execCall(JZcmdExecuter.java:1613); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:1036); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execSubroutine(JZcmdExecuter.java:1779); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execCall(JZcmdExecuter.java:1613); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:1036); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.access$0(JZcmdExecuter.java:952); org.vishia.cmd.JZcmdExecuter.execute(JZcmdExecuter.java:658); org.vishia.zcmd.JZcmd.execute(JZcmd.java:559); org.vishia.zcmd.JZcmd.execute(JZcmd.java:528); org.vishia.zcmd.JZcmd.smain(JZcmd.java:325); org.vishia.zcmd.JZcmd.main(JZcmd.java:247); 



==testThrow()==
A throw statement will be execute.
test throw...
onerror block: error: org.vishia.cmd.JZcmdExecuter$JZcmdThrow: this is the throw text; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:285,3; r throw 
Error with stacktrace: JZcmd.execute - exception at; @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:285,3; r throw ;org.vishia.cmd.JZcmdExecuter$JZcmdThrow: this is the throw text; org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execThrow(JZcmdExecuter.java:2442); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:1054); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execSubroutine(JZcmdExecuter.java:1779); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execCall(JZcmdExecuter.java:1613); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:1036); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execSubroutine(JZcmdExecuter.java:1779); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execCall(JZcmdExecuter.java:1613); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.execute(JZcmdExecuter.java:1036); org.vishia.cmd.JZcmdExecuter$ExecuteLevel.access$0(JZcmdExecuter.java:952); org.vishia.cmd.JZcmdExecuter.execute(JZcmdExecuter.java:658); org.vishia.zcmd.JZcmd.execute(JZcmd.java:559); org.vishia.zcmd.JZcmd.execute(JZcmd.java:528); org.vishia.zcmd.JZcmd.smain(JZcmd.java:325); org.vishia.zcmd.JZcmd.main(JZcmd.java:247); 


==TestErrorSub.test()==
TestErrorSub - onerror reached: java.lang.NoSuchFieldException: nonexistVariable; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:299,5; S Defvariable [xx:S] 

==TestExceptionInException==
TestExceptionInException with errorneous: An inner onerror catches the error in an error handling: java.lang.NoSuchFieldException: unknownVariable; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:326,52; e <*)
Second error is not catched: An onerror block in an outer routine should be correct: java.lang.NoSuchFieldException: unknownVariable; in statement:  @D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll/testAll.jz.cmd:334,39; e <*)

==testDataAccess()==
Text in a user Java instance: scriptObj.simpleTestString = the simple test string.
Changed scriptObj.simpeTestString = "new text"; result = new text

==testMethodInvoke()==
file=F:\Eclipse_work\vishiaJavaR\myFile
file=F:\Eclipse_work\vishiaJavaR\path\myFile.ext
text=string argument
text=a
text=content of org.vishia.zcmd.JZcmdUserExample@4edb89c2

  ==testCalctime()==
Start...
Time = J 62 ms. 

  ==testVariableDatapath()==
valB
valB
==testText()==
1. line without indentation. It starts before indentation point in the script.
2. line without indentation. It starts exactly on indentation point.
  3. line has 2 spaces indentation. It starts after the indentation point.
4. line without indentation with :::: in script.
5. line without indentation with more :::::: in script.
  6. line with 2 spaces indentation because it starts after indentation chars.
  7. line with 2 spaces indentation. It starts after the indentation chars though there are longer as indentation point in the script.
: 8. line starts with a colon as first char after ++++ indentation.
9. line without indentation
+10. line starts with a '+' because first char after another indentation char though before indentation point.
assigment text1 = text1 scriptdir = D:/vishia/ZBNF/sf/ZBNF/examples_JZcmd/TestAll
may have a second line, same indentation rules like <+>
  3. line with 2 spaces indentation.
4. line no indentation

text2 = constant text;
