changeset 32631:f8a2fc7d823f v9.0.1647

patch 9.0.1647: insufficient testing for syntax plugins Commit: https://github.com/vim/vim/commit/1aa5f1c21fea60fe64cdcdf6990bf43ea5cc78a0 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 22 21:57:51 2023 +0100 patch 9.0.1647: insufficient testing for syntax plugins Problem: Insufficient testing for syntax plugins. Solution: Add shell file examples. (Charles Campbell) Create a messages file for easier debugging and reporting the test results.
author Bram Moolenaar <Bram@vim.org>
date Thu, 22 Jun 2023 23:00:05 +0200
parents 7477909c676f
children 8705d4405566
files runtime/syntax/Makefile runtime/syntax/testdir/dumps/sh_01_00.dump runtime/syntax/testdir/dumps/sh_01_99.dump runtime/syntax/testdir/dumps/sh_02_00.dump runtime/syntax/testdir/dumps/sh_02_01.dump runtime/syntax/testdir/dumps/sh_02_99.dump runtime/syntax/testdir/dumps/sh_03_00.dump runtime/syntax/testdir/dumps/sh_03_01.dump runtime/syntax/testdir/dumps/sh_03_99.dump runtime/syntax/testdir/dumps/sh_04_00.dump runtime/syntax/testdir/dumps/sh_04_01.dump runtime/syntax/testdir/dumps/sh_04_99.dump runtime/syntax/testdir/dumps/sh_05_00.dump runtime/syntax/testdir/dumps/sh_05_01.dump runtime/syntax/testdir/dumps/sh_05_02.dump runtime/syntax/testdir/dumps/sh_05_03.dump runtime/syntax/testdir/dumps/sh_05_04.dump runtime/syntax/testdir/dumps/sh_05_05.dump runtime/syntax/testdir/dumps/sh_05_06.dump runtime/syntax/testdir/dumps/sh_05_07.dump runtime/syntax/testdir/dumps/sh_05_08.dump runtime/syntax/testdir/dumps/sh_05_09.dump runtime/syntax/testdir/dumps/sh_05_10.dump runtime/syntax/testdir/dumps/sh_05_11.dump runtime/syntax/testdir/dumps/sh_05_12.dump runtime/syntax/testdir/dumps/sh_05_13.dump runtime/syntax/testdir/dumps/sh_05_14.dump runtime/syntax/testdir/dumps/sh_05_15.dump runtime/syntax/testdir/dumps/sh_05_16.dump runtime/syntax/testdir/dumps/sh_05_17.dump runtime/syntax/testdir/dumps/sh_05_18.dump runtime/syntax/testdir/dumps/sh_05_19.dump runtime/syntax/testdir/dumps/sh_05_20.dump runtime/syntax/testdir/dumps/sh_05_99.dump runtime/syntax/testdir/dumps/sh_06_00.dump runtime/syntax/testdir/dumps/sh_06_01.dump runtime/syntax/testdir/dumps/sh_06_02.dump runtime/syntax/testdir/dumps/sh_06_03.dump runtime/syntax/testdir/dumps/sh_06_99.dump runtime/syntax/testdir/dumps/sh_07_00.dump runtime/syntax/testdir/dumps/sh_07_01.dump runtime/syntax/testdir/dumps/sh_07_02.dump runtime/syntax/testdir/dumps/sh_07_03.dump runtime/syntax/testdir/dumps/sh_07_04.dump runtime/syntax/testdir/dumps/sh_07_99.dump runtime/syntax/testdir/dumps/sh_08_00.dump runtime/syntax/testdir/dumps/sh_08_01.dump runtime/syntax/testdir/dumps/sh_08_02.dump runtime/syntax/testdir/dumps/sh_08_03.dump runtime/syntax/testdir/dumps/sh_08_04.dump runtime/syntax/testdir/dumps/sh_08_99.dump runtime/syntax/testdir/dumps/sh_09_00.dump runtime/syntax/testdir/dumps/sh_09_99.dump runtime/syntax/testdir/input/sh_01.sh runtime/syntax/testdir/input/sh_02.sh runtime/syntax/testdir/input/sh_03.sh runtime/syntax/testdir/input/sh_04.sh runtime/syntax/testdir/input/sh_05.sh runtime/syntax/testdir/input/sh_06.sh runtime/syntax/testdir/input/sh_07.sh runtime/syntax/testdir/input/sh_08.sh runtime/syntax/testdir/input/sh_09.sh runtime/syntax/testdir/runtest.vim src/version.c
diffstat 64 files changed, 1883 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/syntax/Makefile
+++ b/runtime/syntax/Makefile
@@ -1,7 +1,8 @@
 # Portable Makefile for running syntax tests.
 
-# Override this if needed, e.g. with ../../src/vim
-VIMPROG = vim
+# Override this if needed, the default assumes Vim was build in the src dir.
+#VIMPROG = vim
+VIMPROG = ../../src/vim
 
 # "runtime" relative to "runtime/syntax/testdir"
 VIMRUNTIME = ../..
@@ -13,15 +14,20 @@ VIMRUNTIME = ../..
 
 RUN_VIMTEST = VIMRUNTIME=$(VIMRUNTIME) $(VALGRIND) $(ENVVARS) ../$(VIMPROG) -f $(GUI_FLAG)
 
+# Uncomment this line for debugging
+# DEBUGLOG = --log testlog
+
 # Run the tests that didn't run yet or failed previously.
 # If a test succeeds a testdir/done/{name} file will be written.
 # If a test fails a testdir/failed/{name}.dump file will be written.
+# Progress and error messages can be found in "testdir/messages".
 test:
 	@# the "vimcmd" file is used by the screendump utils
 	@echo "../$(VIMPROG)" > testdir/vimcmd
 	@echo "$(RUN_VIMTEST)" >> testdir/vimcmd
-	VIMRUNTIME=$(VIMRUNTIME) $(VIMPROG) --clean --not-a-term -u testdir/runtest.vim
+	VIMRUNTIME=$(VIMRUNTIME) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim
+	@tail -n 5 testdir/messages
 
 
 clean testclean:
-	rm -f testdir/failed/* testdir/done/* testdir/vimcmd
+	rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_01_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!| |/|b|i|n|/|s|h| +0#0000000&@64
+|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|'+0#af5f00255&|A+0#e000002&|=|B|'+0#af5f00255&|`+0#e000e06&| +0#0000000&@55
+|p+0#af5f00255&|r|i|n|t|e|n|v| +0#0000000&|A| @64
+|e+0#af5f00255&|c|h|o| +0#e000002&|a| |`+0#e000e06&|#+0#0000e05&|f|o@1|`+0#e000e06&| +0#0000000&|b| @59
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|"+0#0000000&|i|n|p|u|t|/|s|h|_|0|1|.|s|h|"| |4|L|,| |5|8|B| @32|1|,|1| @10|A|l@1| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_01_99.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0|!| |/|b|i|n|/|s|h| +0#0000000&@64
+|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|'+0#af5f00255&|A+0#e000002&|=|B|'+0#af5f00255&|`+0#e000e06&| +0#0000000&@55
+|p+0#af5f00255&|r|i|n|t|e|n|v| +0#0000000&|A| @64
+>e+0#af5f00255&|c|h|o| +0#e000002&|a| |`+0#e000e06&|#+0#0000e05&|f|o@1|`+0#e000e06&| +0#0000000&|b| @59
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|"+0#0000000&|i|n|p|u|t|/|s|h|_|0|1|.|s|h|"| |4|L|,| |5|8|B| @32|4|,|1| @10|A|l@1| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_02_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!| |/|b|i|n|/|k|s|h| +0#0000000&@63
+|#+0#0000e05&| |s|h|2| +0#0000000&@69
+|#+0#0000e05&| @1|J|u|l| |2|8|,| |2|0|1|8|:| |i|n|t|r|o|d|u|c|e|d| |s|h|C|o|m@1|a|n|d|S|u|b|B|Q|,| |w|h|i|c|h| |i|s| |*|n|o|t|*| |i|n|c|l|u|d|e|d| |i|n| |a| |s|h
+|S|u|b|C|o|m@1|a|n|d|L|i|s|t| |(|s|o| |i|t|s| |n|o|t| |r|e|c|u|r|s|i|v|e|)| +0#0000000&@37
+|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&|`+0#e000e06&| +0#0000000&@57
+@8|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&|`+0#e000e06&| +0#0000000&@49
+@75
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+|c+0#af5f00255&|a|s|e| +0#0000000&|$+0#e000e06&|V|A|R| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@62
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|x|||y|||z|)+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|x|y|z| |;+0#af5f00255&@1| +0#0000000&@48
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|a|||b|||c|)+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|a|b|c| |;+0#af5f00255&@1| +0#0000000&@48
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+|e+0#af5f00255&|s|a|c| +0#0000000&@70
+@75
+|#+0#0000e05&| |J|u|l| |2|6|,| |2|0|1|8|:| |w|h|y| |i|s|n|'|t| |`|.@1|`| |b|e|i|n|g| |t|e|r|m|i|n|a|t|e|d| |p|r|o|p|e|r|l|y|?| +0#0000000&@17
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|a@2|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@60
+|"|i|n|p|u|t|/|s|h|_|0|2|.|s|h|"| |3|0|L|,| |4|9|7|B| @30|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_02_01.dump
@@ -0,0 +1,20 @@
+|e+0#af5f00255#ffffff0|s|a|c| +0#0000000&@70
+@75
+|#+0#0000e05&| |J|u|l| |2|6|,| |2|0|1|8|:| |w|h|y| |i|s|n|'|t| |`|.@1|`| |b|e|i|n|g| |t|e|r|m|i|n|a|t|e|d| |p|r|o|p|e|r|l|y|?| +0#0000000&@17
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|a@2|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@60
+>#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|b@2|)+0#af5f00255&| +0#0000000&@1|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|d@2||+0#af5f00255&|c+0#e000e06&|u|t| |-|b|4|-|`| +0#0000000&@36
+@8|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&| +0#0000000&@55
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|;+0#af5f00255&@1| +0#0000000&@64
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|e+0#af5f00255&|s|a|c| +0#0000000&@62
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@75
+|e+0#af5f00255&|c|h|o| +0#e000002&@2|$+0#e000e06&|V|A|R| +0#e000002&|a|b|c| +0#0000000&@59
+|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|$+0#e000e06&|V|A|R| +0#0000000&|a|b|c| @59
+|s+0#af5f00255&|e|t| +0#00e0e07&@3|$+0#e000e06&|V|A|R| +0#00e0e07&|a|b|c| +0#0000000&@59
+|~+0#4040ff13&| @73
+|~| @73
+| +0#0000000&@56|1|9|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_02_99.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@7|a|||b|||c|)+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|a|b|c| |;+0#af5f00255&@1| +0#0000000&@48
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+|e+0#af5f00255&|s|a|c| +0#0000000&@70
+@75
+|#+0#0000e05&| |J|u|l| |2|6|,| |2|0|1|8|:| |w|h|y| |i|s|n|'|t| |`|.@1|`| |b|e|i|n|g| |t|e|r|m|i|n|a|t|e|d| |p|r|o|p|e|r|l|y|?| +0#0000000&@17
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|a@2|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@60
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|b@2|)+0#af5f00255&| +0#0000000&@1|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|d@2||+0#af5f00255&|c+0#e000e06&|u|t| |-|b|4|-|`| +0#0000000&@36
+@8|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&| +0#0000000&@55
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|;+0#af5f00255&@1| +0#0000000&@64
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@8|e+0#af5f00255&|s|a|c| +0#0000000&@62
+|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65
+@75
+|e+0#af5f00255&|c|h|o| +0#e000002&@2|$+0#e000e06&|V|A|R| +0#e000002&|a|b|c| +0#0000000&@59
+|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|$+0#e000e06&|V|A|R| +0#0000000&|a|b|c| @59
+>s+0#af5f00255&|e|t| +0#00e0e07&@3|$+0#e000e06&|V|A|R| +0#00e0e07&|a|b|c| +0#0000000&@59
+@57|3|0|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_03_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|k|s|h| +0#0000000&@64
+|#+0#0000e05&| @1|T|e|s|t| |v|a|r|i|a|b|l|e| |m|o|d|i|f|i|e|r|s| +0#0000000&@48
+|#+0#0000e05&| |V|a|r|i|a|b|l|e|=|v|a|l|u|e| +0#0000000&@58
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|v+0#e000002&|a|l|u|e|'+0#af5f00255&| +0#0000000&@58
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|v+0#e000002&|a|l|u|e|"+0#af5f00255&| +0#0000000&@58
+|V+0#00e0e07&|a|r|i|a|b|l|e|A|=+0#0000000&|"+0#af5f00255&|p+0#e000002&|a|t|1|x@1|p|a|t|2|"+0#af5f00255&| +0#0000000&@52
+|V+0#00e0e07&|a|r|i|a|b|l|e|B|=+0#0000000&|"+0#af5f00255&|p+0#e000002&|a|t|2|x@1|p|a|t|1|"+0#af5f00255&| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|#|}| +0#0000000&@65
+|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|#|V|a|r|i|a|b|l|e|A|}| +0#0000000&@56
+|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|#+0#af5f00255&|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|#+0#af5f00255&@1|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@51
+|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|%+0#af5f00255&|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@52
+|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|%+0#af5f00255&@1|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@51
+@75
+|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| 
+|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@6
+@75
+|"|i|n|p|u|t|/|s|h|_|0|3|.|s|h|"| |3@1|L|,| |9|7|1|B| @30|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_03_01.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| 
+|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@6
+@75
+>#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|+|$|{|V|a|r|i|a|b|l|e|C|:|=|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@5|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| 
+|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@1|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@10
+@75
+|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41
+|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39
+|:+0#0000e05&| +0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@39
+@75
+|#+0#0000e05&| |A|n|o|t|h|e|r| |t|e|s|t| +0#0000000&@60
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|D|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|E|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@3| +0#0000000&@6
+@57|1|9|,|1| @9|8|7|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_03_99.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@6
+@75
+|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|+|$|{|V|a|r|i|a|b|l|e|C|:|=|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@5|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| 
+|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@1|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@10
+@75
+|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41
+|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39
+|:+0#0000e05&| +0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@39
+@75
+|#+0#0000e05&| |A|n|o|t|h|e|r| |t|e|s|t| +0#0000000&@60
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|D|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|E|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@3| +0#0000000&@6
+@7|:+0#0000e05&| +0#0000000&@7|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|D|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|E|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@3
+> +0#0000000&@74
+|~+0#4040ff13&| @73
+| +0#0000000&@56|3@1|,|0|-|1| @7|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_04_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|s|h| +0#0000000&@65
+|#+0#0000e05&| |s|h|4| +0#0000000&@69
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|{+0#0000000&|V|a|r|i|a|b|l|e|C|}|}+0#e000e06&| +0#0000000&@40
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@26
+@75
+|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |w|h|i|l|e| |i|t|s| |o|k| +0#0000000&@31
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@8
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|$+0#e000e06&|V|a|r|6|}@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@6
+@75
+|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@24
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@15
+@75
+|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |t|o@1| +0#0000000&@40
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@33
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@24
+@75
+|"|i|n|p|u|t|/|s|h|_|0|4|.|s|h|"| |2|7|L|,| |9|4|0|B| @30|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_04_01.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@15
+@75
+|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |t|o@1| +0#0000000&@40
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@33
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@24
+> @74
+|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41
+|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39
+@75
+|#+0#0000e05&| |F|i|r|s|t| |l|i|n|e| |i|s| |O|K| |e|x|c|e|p|t| |i|t|s| |m|i|s@1|i|n|g| |a| |c|l|o|s|i|n|g| |"|}|"|,| +0#0000000&@22
+|#+0#0000e05&| |s|o| |s|e|c|o|n|d| |l|i|n|e| |s|h|o|u|l|d| |h|a|v|e| |s|o|m|e| |e|r@1|o|r| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@22
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&| +0#0000000&@18
+|V+0#ffffff16#ff404010|a|r|i|a|b|l|e|=|$+0#e000e06#ffffff0|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&| +0#0000000&@27
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|1|9|,|0|-|1| @7|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_04_99.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@8
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|$+0#e000e06&|V|a|r|6|}@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@6
+@75
+|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@24
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@15
+@75
+|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |t|o@1| +0#0000000&@40
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@33
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@24
+@75
+|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41
+|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39
+@75
+|#+0#0000e05&| |F|i|r|s|t| |l|i|n|e| |i|s| |O|K| |e|x|c|e|p|t| |i|t|s| |m|i|s@1|i|n|g| |a| |c|l|o|s|i|n|g| |"|}|"|,| +0#0000000&@22
+|#+0#0000e05&| |s|o| |s|e|c|o|n|d| |l|i|n|e| |s|h|o|u|l|d| |h|a|v|e| |s|o|m|e| |e|r@1|o|r| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@22
+|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&| +0#0000000&@18
+>V+0#ffffff16#ff404010|a|r|i|a|b|l|e|=|$+0#e000e06#ffffff0|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&| +0#0000000&@27
+@57|2|7|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|s|h| |-|x| +0#0000000&@62
+|#+0#0000e05&| |s|h|5| +0#0000000&@69
+|#+0#0000e05&| |N|o|t|e| |t|h|a|t| |t|h|i|s| |i|s| |s|p|e|c|i|a|l| |f|o|r| |s|h|.| |k|s|h| |w|i|l@1| |b|e| |a|n| |e|x|t|r|a| |f|i|l|e| |l|a|t|e|r|.| +0#0000000&@6
+|#+0#0000e05&| |N|o|t|e| |t|o@1|,| |t|h|a|t| |s|h| |a|n|d| |k|s|h| |a|l@1|o|w| |$|{|v|a|r|:|-|s|u|b|}| |a|s| |w|e|l@1| |a|s| |$|{|v|a|r|-|s|u|b|}|!| +0#0000000&@6
+|#+0#0000e05&| |T|h|e| |'|:|'| |i|s| |o|p|t|i|o|n|a|l|!| +0#0000000&@52
+@75
+|#+0#0000e05&| |T|h|i|s| |a|l@1| |s|h|o|u|l|d| |b|e| |O|K| +0#0000000&@51
+|#+0#0000e05&| |C|a|s|e| |0|a| +0#0000000&@65
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |d|a|t|e| @58
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|v|a|l|u|e|1| @58
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|'+0#af5f00255&|v+0#e000002&|a|l|u|e|2|'+0#af5f00255&| +0#0000000&@56
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|"+0#af5f00255&|v+0#e000002&|a|l|u|e|3|"+0#af5f00255&| +0#0000000&@56
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |0|b| +0#0000000&@65
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|H|O|M|E| +0#0000000&@59
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|H|O|M|E|'+0#af5f00255&| +0#0000000&@57
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|H|O|M|E|"+0#af5f00255&| +0#0000000&@57
+|"|i|n|p|u|t|/|s|h|_|0|5|.|s|h|"| |3|7|3|L|,| |1|2|9|5|4|B| @27|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_01.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&| |C|a|s|e| |0|b| +0#0000000&@65
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|H|O|M|E| +0#0000000&@59
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|H|O|M|E|'+0#af5f00255&| +0#0000000&@57
+>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|H|O|M|E|"+0#af5f00255&| +0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |0|c| +0#0000000&@65
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|H|O|M|E|$|S|H|E|L@1| +0#0000000&@53
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|H|O|M|E|.+0#0000000&|$+0#e000e06&|S|H|E|L@1| +0#0000000&@52
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|H|O|M|E|.+0#0000000&|$+0#e000e06&|S|H|E|L@1|++0#0000000&|$+0#e000e06&|H|O|M|E|-+0#0000000&|$+0#e000e06&|S|H|E|L@1|/+0#0000000&|$+0#e000e06&|H|O|M|E| +0#0000000&@33
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |0|d| +0#0000000&@65
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|`+0#e000e06&|d|a|t|e|`| +0#0000000&@58
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|`+0#e000e06&|i|d| |-|n|g|`| +0#0000000&@56
+@57|1|9|,|1| @10|3|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_02.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|`+0#e000e06&|i|d| |-|n|g| ||+0#af5f00255&| +0#e000e06&|w|c| |-|c|`| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+>#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&| +0#0000000&@46
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&| +0#0000000&@46
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@46
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@46
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+@57|3|7|,|1| @10|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_03.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33
+>[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|d|:| |c|o|n|s|t|a|n|t|s| |b|u|t| |m|i|s@1|i|n|g| |c|o|l|o|n|s| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|=+0#af5f00255&|e+0#0000000&|n|g|1|}+0#e000e06&| +0#0000000&@47
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|e+0#0000000&|n|g|2|}+0#e000e06&| +0#0000000&@47
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|?+0#af5f00255&|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@47
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|++0#af5f00255&|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@47
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|=+0#af5f00255&|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+@57|5@1|,|1| @9|1|3|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_04.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|?+0#af5f00255&|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|++0#af5f00255&|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|=+0#af5f00255&|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|?+0#af5f00255&|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|++0#af5f00255&|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45
+@75
+|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+@57|7|3|,|1| @9|1|8|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_05.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+> @74
+|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+@57|9|1|,|0|-|1| @7|2|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_06.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28
+>[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@57|1|0|9|,|1| @8|2|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_07.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |T|h|e| |s|a|m|e| |w|i|t|h| |o|n|e| |n|e|s|t|e|t| |$|{|}| |l|e|v|e|l| +0#0000000&@38
+>#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&@1| +0#0000000&@37
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&@1| +0#0000000&@37
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&@1| +0#0000000&@37
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&@1| +0#0000000&@37
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+@57|1|2|7|,|1| @8|3|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_08.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+@57|1|4|5|,|1| @8|3|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_09.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+@57|1|6|3|,|1| @8|4@1|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_10.dump
@@ -0,0 +1,20 @@
+|[+0#af5f00255#ffffff0| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35
+>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25
+@57|1|8|1|,|1| @8|4|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_11.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+>#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |T|h|e| |s|a|m|e| |w|i|t|h| |t|w|o| |n|e|s|t|e|t| |$|{|}| |l|e|v|e|l| +0#0000000&@38
+|#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&@2| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&@2| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&@2| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&@2| +0#0000000&@28
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+@57|1|9@1|,|1| @8|5|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_12.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+> @74
+|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27
+@57|2|1|7|,|0|-|1| @6|5|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_13.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32
+>[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+@57|2|3|5|,|1| @8|6|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_14.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+@57|2|5|3|,|1| @8|6|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_15.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16
+>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |T|h|e| |s|a|m|e| |w|i|t|h| |t|h|r|e@1| |n|e|s|t|e|t| |$|{|}| |l|e|v|e|l| +0#0000000&@36
+|#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&@3| +0#0000000&@19
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&@3| +0#0000000&@19
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&@3| +0#0000000&@19
+@57|2|7|1|,|1| @8|7|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_16.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&@3| +0#0000000&@19
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+@57|2|8|9|,|1| @8|7|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_17.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18
+>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+@57|3|0|7|,|1| @8|8|5|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_18.dump
@@ -0,0 +1,20 @@
+|[+0#af5f00255#ffffff0| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16
+>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15
+@57|3|2|5|,|1| @8|9|0|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_19.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+>#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31
+@75
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |T|h|i|s| |i|s| |a|l|s|o| |a|l@1|o|w|e|d|:| +0#0000000&@51
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|$+0#e000e06&|{|V|a|r|B|-+0#af5f00255&|$+0#e000e06&|{|V|a|r|C|-+0#af5f00255&|$+0#e000e06&|{|V|a|r|D|=+0#af5f00255&|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@11
+@57|3|4|3|,|1| @8|9|4|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_20.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |f|o|r| |t|h|e| |s|h|:| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|}+0#e000e06&| +0#0000000&@50
+>V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|O+0#0000000&|K|}+0#e000e06&| +0#0000000&@48
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|'|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|"|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|$|S|H|E|L@1|}| +0#0000000&@39
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|:+0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@38
+@75
+|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |a|l|s|o| |f|o|r| |k|s|h|:| +0#0000000&@23
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|}+0#e000e06&| +0#0000000&@40
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|,| |t|o@1|:| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@27
+@75
+|#+0#0000e05&| |W|h|a|t| |h|a|p@1|e|n|s| |w|i|t|h| |$|{|#|i|d|e|n|t|i|f|i|e|r|[|*|]|}|:| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|5|=+0#0000000&|$+0#e000e06&|{|#|i|d|e|n|t|i|f|i|e|r|[|*+0#0000000&|]+0#e000e06&|}| +0#0000000&@47
+|~+0#4040ff13&| @73
+| +0#0000000&@56|3|6|1|,|1| @8|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_05_99.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |f|o|r| |t|h|e| |s|h|:| +0#0000000&@25
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|}+0#e000e06&| +0#0000000&@50
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|O+0#0000000&|K|}+0#e000e06&| +0#0000000&@48
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|'|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|"|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|$|S|H|E|L@1|}| +0#0000000&@39
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|:+0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@38
+@75
+|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |a|l|s|o| |f|o|r| |k|s|h|:| +0#0000000&@23
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|}+0#e000e06&| +0#0000000&@40
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|,| |t|o@1|:| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@27
+@75
+|#+0#0000e05&| |W|h|a|t| |h|a|p@1|e|n|s| |w|i|t|h| |$|{|#|i|d|e|n|t|i|f|i|e|r|[|*|]|}|:| +0#0000000&@36
+>V+0#00e0e07&|a|r|i|a|b|l|e|5|=+0#0000000&|$+0#e000e06&|{|#|i|d|e|n|t|i|f|i|e|r|[|*+0#0000000&|]+0#e000e06&|}| +0#0000000&@47
+@57|3|7|3|,|1| @8|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_06_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|k|s|h| +0#0000000&@64
+|#+0#0000e05&| |S|h|a|l@1| |w|e| |d|e|b|u|g| |t|h|i|s| |s|c|r|i|p|t|?| |I|f| |s|o|,| |r|e|m|o|v|e| |t|h|e| |'|#|'| |b|e|f|o|r|e| |'|#|D|e|b|u|g|S|c|r|i|p|t|=|s|e
+|t|'| +0#0000000&@72
+|D+0#00e0e07&|e|b|u|g|S|c|r|i|p|t|=+0#0000000&|s|e|t| @59
+@75
+|#+0#0000e05&| |S|h|o|w| |t|h|a|t| |w|e| |a|r|e| |b|u|s|y|.| +0#0000000&@50
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|P+0#e000002&|l|e|a|s|e| |w|a|i|t| |.@2| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&|>+0#af5f00255&|`+0#e000e06&|t@1|y|`| +0#0000000&@30
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |D|i|s|p|l|a|y| |s|o|m|e| |H|e|l|p| +0#0000000&@55
+|#+0#0000e05&| +0#0000000&@73
+|U+0#00e0e07&|s|a|g|e| |(|)| |{| +0#0000000&@64
+@75
+|#+0#0000e05&| |d|o|e|s| |t|h|i|s| |c|o|m@1|e|n|t| |w|o|r|k|?| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|N|a|m|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|B|a|s|i|c|C|o|n|f|i|g|N|a|m|e|}|_+0#e000002&|*|"+0#af5f00255&| +0#0000000&@39
+@75
+|#+0#0000e05&| |E|c|h|o| |s|o|m|e| |k|s|h| |s|p|e|c|i|a|l| |v|a|r|i|a|b|l|e|s| +0#0000000&@41
+|"|i|n|p|u|t|/|s|h|_|0|6|.|s|h|"| |7|1|L|,| |1|6|7@1|B| @29|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_06_01.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |d|o|e|s| |t|h|i|s| |c|o|m@1|e|n|t| |w|o|r|k|?| +0#0000000&@49
+|V+0#00e0e07&|a|r|i|a|b|l|e|N|a|m|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|B|a|s|i|c|C|o|n|f|i|g|N|a|m|e|}|_+0#e000002&|*|"+0#af5f00255&| +0#0000000&@39
+@75
+|#+0#0000e05&| |E|c|h|o| |s|o|m|e| |k|s|h| |s|p|e|c|i|a|l| |v|a|r|i|a|b|l|e|s| +0#0000000&@41
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|C+0#e000002&|D|P|A|T|H|=|"+0#af5f00255&|$+0#e000e06&|{|C|D|P|A|T|H|}| +0#0000000&@51
+> @74
+|#+0#0000e05&| |G|e|t| |a|l|s|o| |a| |s|h|o|r|t| |d|e|s|c|r|i|p|t|i|o|n| |o|f| |t|h|e| |b|a|c|k|u|p|t|y|p|e|/|m|e|t|h|o|d| +0#0000000&@19
+|e+0#af5f00255&|v|a|l| +0#0000000&|B+0#00e0e07&|a|c|k|u|p|M|e|t|h|o|d|=+0#0000000&|\+0#e000e06&|$|m+0#0000000&|e|s@1|0|9|$+0#e000e06&|{|B|a|c|k|u|p|T|y|p|e|}|B+0#0000000&| @34
+@75
+|c+0#af5f00255&|a|s|e| +0#0000000&|$+0#e000e06&|B|a|c|k|u|p|T|y|p|e| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@55
+@2|3|)+0#af5f00255&| +0#0000000&@2|D+0#00e0e07&|e|f|a|u|l|t|D|e|v|i|c|e|=+0#0000000&|$+0#e000e06&|M|o|u|n|t|D|e|v|i|c|e| +0#0000000&@3|;+0#af5f00255&@1| +0#0000000&@35
+@2|1|||2|)+0#af5f00255&| +0#0000000&|D+0#00e0e07&|e|f|a|u|l|t|D|e|v|i|c|e|=+0#0000000&|$+0#e000e06&|T|a|p|e|D|r|i|v|e| +0#0000000&@5|;+0#af5f00255&@1| +0#0000000&@35
+|e+0#af5f00255&|s|a|c| +0#0000000&@70
+@75
+|#+0#0000e05&| |I|f| |w|e| |h|a|v|e| |m|o|r|e| |t|h|e| |5|3| |c|h|a|r|a|c|t|e|r|s| |i|n| |t|h|e| |v|a|r|i|a|b|l|e|s| |b|e|l|o|w| |s|p|l|i|t| |t|h|e|m| |u|p| +0#0000000&@2
+|#+0#0000e05&| |i|n|t|o| |s|e|v|e|r|a|l| |l|i|n|e|s| |a|n|d| |a|d@1| |3| |t|a|b|s| |b|e|f|o|r|e| |t|h|e|m| +0#0000000&@27
+|f+0#af5f00255&|o|r| +0#0000000&|V|a|r|i|a|b|l|e| |i+0#af5f00255&|n| +0#0000000&|D|e|f|a|u|l|t|E|x|c|l|u|d|e| |D|e|f|a|u|l|t|F|i|n|d|O|p|t|i|o|n| |D|o|N|o|t|B|a|c|k|u|p|L|i|s|t| @10
+|d+0#af5f00255&|o| +0#0000000&@72
+@4|e+0#af5f00255&|v|a|l| +0#0000000&|V+0#00e0e07&|a|r|V|a|l|u|e|=+0#0000000&|\+0#e000e06&|$@1|V|a|r|i|a|b|l|e| +0#0000000&@45
+@57|1|9|,|0|-|1| @7|2|5|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_06_02.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|e+0#af5f00255&|v|a|l| +0#0000000&|V+0#00e0e07&|a|r|V|a|l|u|e|=+0#0000000&|\+0#e000e06&|$@1|V|a|r|i|a|b|l|e| +0#0000000&@45
+@4|V+0#00e0e07&|a|r|V|a|l|u|e|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|V|a|r|V|a|l|u|e| +0#e000002&||+0#af5f00255&| +0#e000e06&|F|o|l|d|S| |5+0#e000002&|3| +0#e000e06&||+0#af5f00255&| +0#e000e06&|s+0#af5f00255&|e|d| +0#e000e06&|"+0#af5f00255&|2+0#e000002&|,|\+0#e000e06&@1|$|s|/+0#e000002&|^|/|$+0#e000e06&|T|a|b|$|T|a|b|$|T|a|b|/+0#e000002&|"+0#af5f00255&|`+0#e000e06&| +0#0000000&@3
+@4|e+0#af5f00255&|v|a|l| +0#0000000&|$+0#e000e06&|V|a|r|i|a|b|l|e|=+0#af5f00255&|\+0#e000e06&|$|V+0#0000000&|a|r|V|a|l|u|e| @45
+|d+0#af5f00255&|o|n|e| +0#0000000&@70
+@75
+>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&| +0#0000000&@68
+|U+0#e000002&|s|a|g|e|:| @1|$+0#e000e06&|S|c|r|i|p|t|N|a|m|e| +0#e000002&|[|-|O|p|t|i|o|n|s|]| +0#0000000&@44
+@75
+|O+0#e000002&|p|t|i|o|n|s| |L|i|s|t|:| +0#0000000&@61
+| +0#e000002&@7|-|v| @13|T|h|e| |c|u|r@1|e|n|t| |v|e|r|s|i|o|n| |o|f| |'|$+0#e000e06&|S|c|r|i|p|t|N|a|m|e|'+0#e000002&| +0#0000000&@14
+| +0#e000002&@7|-|h| @1||| |-|H| ||| |?| @3|D|i|s|p|l|a|y| |t|h|i|s| |l|i|s|t| +0#0000000&@33
+@75
+|"+0#af5f00255&| +0#0000000&@73
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |U|s|a|g|e| +0#0000000&@58
+@75
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+@57|3|7|,|1| @9|5|8|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_06_03.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| +0#0000000&@73
+|#+0#0000e05&| |C|r|e|a|t|e| |a| |b|a|c|k|u|p| |u|s|i|n|g| |f|b|a|c|k|u|p|/|f|r|e|c|o|v|e|r| +0#0000000&@34
+|#+0#0000e05&| +0#0000000&@73
+|E+0#00e0e07&|x|e|c|u|t|e|F|b|a|c|k|u|p| |(|)| |{| +0#0000000&|#+0#0000e05&| |T|E|S|T|I|N|G| +0#0000000&@45
+@75
+>[+0#af5f00255&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|D|e|b|u|g|S|c|r|i|p|t|"+0#af5f00255&| +0#0000000&|]+0#af5f00255&| +0#0000000&@3|&+0#af5f00255&@1| +0#0000000&|s+0#af5f00255&|e|t| +0#00e0e07&|-+0#e000e06&|x| +0#00e0e07&||+0#af5f00255&@1| +0#0000000&|s+0#af5f00255&|e|t| +0#00e0e07&|++0#e000e06&|x| +0#0000000&@33
+@75
+|c+0#af5f00255&|d| +0#0000000&|$+0#e000e06&|c|w|d| +0#0000000&@67
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |E|x|e|c|u|t|e|F|b|a|c|k|u|p| +0#0000000&@49
+@75
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m
+|a|i|n| |#| +0#0000000&@69
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+@57|5@1|,|1| @9|8|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_06_99.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|c+0#af5f00255&|d| +0#0000000&|$+0#e000e06&|c|w|d| +0#0000000&@67
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |E|x|e|c|u|t|e|F|b|a|c|k|u|p| +0#0000000&@49
+@75
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m
+|a|i|n| |#| +0#0000000&@69
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |H|e|r|e| |i|s| |t|h|e| |h|e|a|r|t| |o|f| |t|h|i|s| |s|c|r|i|p|t|:| +0#0000000&@39
+|#+0#0000e05&| +0#0000000&@73
+|U|s|a|g|e| @69
+@75
+|#+0#0000e05&| |A|n|d| |e|x|i|t| +0#0000000&@64
+>E|x|i|t| |$+0#e000e06&|R|e|s|u|l|t| +0#0000000&@62
+@57|7|1|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_07_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|s|h| +0#0000000&@65
+|#+0#0000e05&| |T|e|s|t| |f|i|l|e| |t|o| |t|e|s|t| |'|f|o|r| |d|o| |d|o|n|e|'| |l|o@1|p|s|.| +0#0000000&@34
+|#+0#0000e05&| |Y|o|u| |c|a|n| |s|t|a|r|t| |t|h|i|s| |s|c|r|i|p|t| |l|i|k|e|:| |$|0| |{|-|n|e| |-|g|t| |-|l|e| |.@2|}| |(|a|l@1| |n|u|m|e|r|i|c| |o|p|e|r|a|t|o
+|r|s| | +0#0000000&@71
+|#+0#0000e05&| |a|r|e| |a|l@1|o|w|e|d|!| +0#0000000&@60
+@75
+|#+0#0000e05&| |A|l@1| |t|h|i|s| |w|o|r|k|s| |a|n|d| |s|h|o|u|l|d| |b|e| |O|K| +0#0000000&@41
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h|o|u|t| |'|i|n| |l|i|s|t|'|.| |U|s|e|s| |$|1| |$|2| |.@2| |T|h|i|s| |i|s| |a| |s|p|e|c|i|a|l| |c|a|s|e|!| +0#0000000&@6
+|#+0#0000e05&| |T|h|i|s| |'|f|o|r| |V|a|r|,| |d|o|,| |d|o|n|e|'| |i|s| |a| |v|e|r|y| |h|a|n|d|y| |s|o|l|u|t|i|o|n| |A|N|D| |n|o| |r|e|a|l| |r|e|p|l|a|c|e|m|e|n|t
+| | +0#0000000&@73
+|#+0#0000e05&| |a|v|a|i|l|a|b|l|e|!| +0#0000000&@62
+|#+0#0000e05&| +0#0000000&@73
+|F+0#00e0e07&|u|n|c|t|i|o|n|1| |(|)| |{| +0#0000000&@60
+@75
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|1|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25
+|"|i|n|p|u|t|/|s|h|_|0|7|.|s|h|"| |9|3|L|,| |2|3|0|3|B| @29|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_07_01.dump
@@ -0,0 +1,20 @@
+|F+0#00e0e07#ffffff0|u|n|c|t|i|o|n|1| |(|)| |{| +0#0000000&@60
+@75
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|1|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25
+|[+0#af5f00255&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|*|"+0#af5f00255&| +0#0000000&|]+0#af5f00255&| +0#0000000&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o|n|e|\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@49
+@75
+>f+0#af5f00255&|o|r| +0#0000000&|V|a|r| @67
+|d+0#af5f00255&|o| +0#0000000&@72
+@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26
+|d+0#af5f00255&|o|n|e| +0#0000000&@70
+|e+0#af5f00255&|c|h|o| +0#0000000&@70
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|1| +0#0000000&@54
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h| |'|i|n| |l|i|s|t|'| |$|*| +0#0000000&@46
+|#+0#0000e05&| +0#0000000&@73
+|F+0#00e0e07&|u|n|c|t|i|o|n|2| |(|)| |{| +0#0000000&@60
+@57|1|9|,|1| @9|1|7|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_07_02.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|2|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25
+|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| |i+0#af5f00255&|n| +0#0000000&|$+0#e000e06&|*| +0#0000000&@61
+|d+0#af5f00255&|o| +0#0000000&@72
+@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26
+>d+0#af5f00255&|o|n|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&@63
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|2| +0#0000000&@54
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h| |'|i|n| |l|i|s|t|'| |$|@|.| |W|o|r|k|s| |t|h|e| |s|a|m|e| |w|a|y| |a|s| |$|*| +0#0000000&@20
+|#+0#0000e05&| +0#0000000&@73
+|F+0#00e0e07&|u|n|c|t|i|o|n|3| |(|)| |{| +0#0000000&@60
+@75
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|3|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25
+|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| |i+0#af5f00255&|n| +0#0000000&|$+0#e000e06&|@| +0#0000000&@61
+|d+0#af5f00255&|o| +0#0000000&@72
+@57|3|7|,|1| @9|4|1|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_07_03.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@3|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26
+|d+0#af5f00255&|o|n|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&@63
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|3| +0#0000000&@54
+@75
+>#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h| |'|i|n| |l|i|s|t|'| |"|$|@|"|.| |S|p|e|c|i|a|l| |c|a|s|e|.| |W|o|r|k|s| |l|i|k|e| |"|$|1|"| |"|$|2|"| |.@2| +0#0000000&@4
+|#+0#0000e05&| +0#0000000&@73
+|F+0#00e0e07&|u|n|c|t|i|o|n|4| |(|)| |{| +0#0000000&@60
+@75
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|4|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25
+|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| |i+0#af5f00255&|n| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|@|"+0#af5f00255&| +0#0000000&@59
+|d+0#af5f00255&|o| +0#0000000&@72
+@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26
+|d+0#af5f00255&|o|n|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&@63
+@75
+|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|4| +0#0000000&@54
+@57|5@1|,|1| @9|6|5|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_07_04.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0@74
+@5| +0#0000000&@69
+|#+0#0000e05&| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m
+|a|i|n| |#| +0#0000000&@69
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+>#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |H|e|r|e| |i|s| |t|h|e| |h|e|a|r|t| |o|f| |t|h|i|s| |s|c|r|i|p|t|:| +0#0000000&@39
+|#+0#0000e05&| +0#0000000&@73
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|P+0#e000002&|r|o|c|e|s@1|i|n|g| |t|h|e| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |l|i|n|e| |a|r|g|u|e|m|e|n|t|s|:| |$+0#e000e06&|{|*|:+0#af5f00255&|-|n+0#0000000&|o|n|e|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@7
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|S+0#e000002&|c|r|i|p|t|:| @3|f|o|r| |l|o@1|p| |o|u|t|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@24
+|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| @67
+|d+0#af5f00255&|o| +0#0000000&@72
+@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26
+|d+0#af5f00255&|o|n|e| +0#0000000&|;| |e+0#af5f00255&|c|h|o| +0#0000000&@63
+@75
+|#+0#0000e05&| |S|a|m|e| |a|s| |f|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@50
+|F|u|n|c|t|i|o|n|1| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41
+|F|u|n|c|t|i|o|n|2| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41
+@57|7|3|,|1| @9|8|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_07_99.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| +0#0000000&@73
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|P+0#e000002&|r|o|c|e|s@1|i|n|g| |t|h|e| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |l|i|n|e| |a|r|g|u|e|m|e|n|t|s|:| |$+0#e000e06&|{|*|:+0#af5f00255&|-|n+0#0000000&|o|n|e|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@7
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|S+0#e000002&|c|r|i|p|t|:| @3|f|o|r| |l|o@1|p| |o|u|t|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@24
+|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| @67
+|d+0#af5f00255&|o| +0#0000000&@72
+@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26
+|d+0#af5f00255&|o|n|e| +0#0000000&|;| |e+0#af5f00255&|c|h|o| +0#0000000&@63
+@75
+|#+0#0000e05&| |S|a|m|e| |a|s| |f|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@50
+|F|u|n|c|t|i|o|n|1| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41
+|F|u|n|c|t|i|o|n|2| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41
+|F|u|n|c|t|i|o|n|3| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41
+|F|u|n|c|t|i|o|n|4| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&|'+0#af5f00255&|-+0#e000002&|g|e| |1| |-|a| |2| |-|g|e|'+0#af5f00255&| +0#0000000&@24
+@75
+|#+0#0000e05&| |N|o|w| |t|h|e| |s|a|m|e| |c|a|l@1| |l|i|k|e| |F|u|n|c|t|i|o|n|4| |b|u|t| |w|i|t|h| |F|u|n|c|t|i|o|n|1| +0#0000000&@21
+|F|u|n|c|t|i|o|n|1| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&|'+0#af5f00255&|-+0#e000002&|g|e| |1| |-|a| |2| |-|g|e|'+0#af5f00255&| +0#0000000&@24
+|F|u|n|c|t|i|o|n|1| @65
+@75
+>e+0#af5f00255&|x|i|t| +0#0000000&|$+0#e000e06&|?| +0#0000000&@67
+@57|9|3|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_08_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|k|s|h| |-|p| +0#0000000&@61
+@75
+|#+0#0000e05&| |N|o|t|e| |t|h|a|t| |t|h|i|s| |i|s| |s|p|e|c|i|a|l| |t|e|s|t| |f|i|l|e| |f|o|r| |k|s|h|.| |s|h| |i|s| |a|n| |e|x|t|r|a| |f|i|l|e|.| +0#0000000&@7
+|#+0#0000e05&| |N|o|t|e| |t|o@1|,| |t|h|a|t| |t|h|i|s| |f|i|l|e| |c|o|n|t|a|i|n|s| |O|N|L|Y| |t|h|i|n|g|s| |w|h|i|c|h| |w|o|r|k|s| |f|o|r| |k|s|h| |B|U|T| |N|O|T
+|#| |f|o|r| |s|h| +0#0000000&@66
+@75
+|#+0#0000e05&| |T|h|i|s| |a|l@1| |s|h|o|u|l|d| |b|e| |O|K| +0#0000000&@51
+@75
+|#+0#0000e05&| |S|e|v|e|r|a|l| |k|e|y|w|o|r|d|s| |w|i|t|h|o|u|t| |a|n|y| |q|u|o|t|e|s|!| +0#0000000&@36
+|#+0#0000e05&| |C|a|s|e| |1|a|.| |S|e|v|e|r|a|l| |C|o|n|s|t|a|n|t|s| | +0#0000000&@45
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |d|a|t|e| @58
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17
+@75
+|#+0#0000e05&| |C|a|s|e| |1|b|.| |V|a|r|i|a|b|l|e| |a|n|d| |C|o|n|s|t|a|n|t| +0#0000000&@42
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30
+|"|i|n|p|u|t|/|s|h|_|0|8|.|s|h|"| |8|2|L|,| |2|9@1|3|B| @29|1|,|1| @10|T|o|p| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_08_01.dump
@@ -0,0 +1,20 @@
+|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17
+@75
+|#+0#0000e05&| |C|a|s|e| |1|b|.| |V|a|r|i|a|b|l|e| |a|n|d| |C|o|n|s|t|a|n|t| +0#0000000&@42
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17
+@75
+|#+0#0000e05&| |C|a|s|e| |1|c|.| |C|o|n|s|t|a|n|t| |a|n|d| |V|a|r|i|a|b|l|e| +0#0000000&@42
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@27
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@27
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@6|#+0#0000e05&|!| |:|+| |i|s| |b|a|s|h|-|o|n|l|y|,| |e
+|r@1|o|r| |h|e|r|e| |e|x|p|e|c|t|e|d| +0#0000000&@56
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|t|o@1|}+0#e000e06&| +0#0000000&@23
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|t|o@1|}+0#e000e06&| +0#0000000&@23
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|t|o@1|}+0#e000e06&| +0#0000000&@23
+@57|1|9|,|1| @9|2|0|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_08_02.dump
@@ -0,0 +1,20 @@
+|e+0#af5f00255#ffffff0|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17
+@75
+|#+0#0000e05&| |C|a|s|e| |1|d|.| |M|o|r|e| |V|a|r|i|a|b|l|e|s| |a|n|d| |C|o|n|s|t|a|n|t|s|.| |S|t|a|r|t|i|n|g| |w|i|t|h| |a| |V|a|r|i|a|b|l|e|.| +0#0000000&@8
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@44
+>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@20
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@20
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@20
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17
+@75
+|#+0#0000e05&| |C|a|s|e| |1|e|.| |M|o|r|e| |C|o|n|s|t|a|n|t|s| |a|n|d| |V|a|r|i|a|b|l|e|s|.| |S|t|a|r|t|i|n|g| |w|i|t|h| |a| |C|o|n|s|t|a|n|t|.| +0#0000000&@8
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|"|T+0#e000002&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#e000002&|$+0#e000e06&|S|H|E|L@1|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@18
+|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@20
+|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@20
+|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@20
+|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17
+@75
+|#+0#0000e05&| |C|a|s|e| |1|x|.| |T|h|e| |s|a|m|e| |w|i|t|h| |'|:|'| +0#0000000&@46
+@57|3|7|,|1| @9|4|9|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_08_03.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |C|a|s|e| |1|x|.| |T|h|e| |s|a|m|e| |w|i|t|h| |'|:|'| +0#0000000&@46
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@44
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@38
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@35
+>:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@28
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@28
+@75
+|#+0#0000e05&| |C|a|s|e| |1|y|.| |T|h|e| |s|a|m|e| |w|i|t|h| |'|:|'| |a|n|d| |w|i|t|h|o|u|t| |t|h|e| |'|:|'| |i|n| |t|h|e| |p|a|r|a|m|e|t|e|r| |s|u|b|s|t|i|t|u|t
+|i|o|n| +0#0000000&@71
+|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@45
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@39
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@36
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@29
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@29
+@75
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+@57|5@1|,|1| @9|7|5|%| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_08_04.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |T|h|i|s| |a|r|e| |v|a|l|i|d| |u|s|a|g|e|s| |f|o|r| |$|{|V|a|r|:|?|}| |i|n| |k|s|h|!| +0#0000000&@30
+|#+0#0000e05&| +0#0000000&@73
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@14
+@75
+>:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@34
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@22
+@75
+|e+0#af5f00255&|x|i|t| +0#0000000&|$+0#e000e06&|?| +0#0000000&@67
+@75
+|#+0#0000e05&| |M|i|c|h|a|e|l| |S|o|u|l|i|e|r| +0#0000000&@57
+|i+0#af5f00255&|f| |[| +0#0000000&|$+0#e000e06&|#| +0#0000000&|-+0#af5f00255&|n|e| +0#0000000&|1+0#e000002&| +0#0000000&|]+0#af5f00255&|;| +0#0000000&|t+0#af5f00255&|h|e|n| +0#0000000&@53
+@8|e+0#af5f00255&|c|h|o| +0#e000002&|w|h|a|t|e|v|e|r| +0#0000000&@53
+@8|e+0#af5f00255&|x|i|t| +0#0000000&|1+0#e000002&| +0#0000000&@60
+|f+0#af5f00255&|i| +0#0000000&@72
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|7|3|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_08_99.dump
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&@74
+@5| +0#0000000&@69
+|#+0#0000e05&| +0#0000000&@73
+|#+0#0000e05&| |T|h|i|s| |a|r|e| |v|a|l|i|d| |u|s|a|g|e|s| |f|o|r| |$|{|V|a|r|:|?|}| |i|n| |k|s|h|!| +0#0000000&@30
+|#+0#0000e05&| +0#0000000&@73
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@26
+|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@14
+@75
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@34
+|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@22
+@75
+|e+0#af5f00255&|x|i|t| +0#0000000&|$+0#e000e06&|?| +0#0000000&@67
+@75
+|#+0#0000e05&| |M|i|c|h|a|e|l| |S|o|u|l|i|e|r| +0#0000000&@57
+|i+0#af5f00255&|f| |[| +0#0000000&|$+0#e000e06&|#| +0#0000000&|-+0#af5f00255&|n|e| +0#0000000&|1+0#e000002&| +0#0000000&|]+0#af5f00255&|;| +0#0000000&|t+0#af5f00255&|h|e|n| +0#0000000&@53
+@8|e+0#af5f00255&|c|h|o| +0#e000002&|w|h|a|t|e|v|e|r| +0#0000000&@53
+@8|e+0#af5f00255&|x|i|t| +0#0000000&|1+0#e000002&| +0#0000000&@60
+>f+0#af5f00255&|i| +0#0000000&@72
+@57|8|2|,|1| @9|B|o|t| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_09_00.dump
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0|!|/|b|i|n|/|s|h| +0#0000000&@65
+|#+0#0000e05&| |T|e|s|t| |f|i|l|e| |f|o|r| |v|i|m| |t|h|e| |c|h|e|c|k| |(|)| |s|u|b|s|h|e|l@1|s| +0#0000000&@32
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|1| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@50
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@48
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|-|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |s+0#af5f00255&|e|d| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|$|!|/|!|'+0#af5f00255&| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|/@1|*|$|!|/|!|'+0#af5f00255&| +0#0000000&@20
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|+|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|=|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|?|}+0#e000e06&| @1|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|H|O|M|E| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@47
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@52
+|(|(+0#e000e06&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|+|2|)+0#e000e06&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@65
+|l+0#af5f00255&|e|t| +0#0000000&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|++0#0000000&|2+0#e000002&| +0#0000000&@65
+|"|i|n|p|u|t|/|s|h|_|0|9|.|s|h|"| |1|9|L|,| |4|8|3|B| @30|1|,|1| @10|A|l@1| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/sh_09_99.dump
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0|!|/|b|i|n|/|s|h| +0#0000000&@65
+|#+0#0000e05&| |T|e|s|t| |f|i|l|e| |f|o|r| |v|i|m| |t|h|e| |c|h|e|c|k| |(|)| |s|u|b|s|h|e|l@1|s| +0#0000000&@32
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|1| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@50
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@48
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|-|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |s+0#af5f00255&|e|d| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|$|!|/|!|'+0#af5f00255&| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|/@1|*|$|!|/|!|'+0#af5f00255&| +0#0000000&@20
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|+|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|=|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|?|}+0#e000e06&| @1|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|H|O|M|E| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@47
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45
+|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@52
+|(|(+0#e000e06&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|+|2|)+0#e000e06&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@65
+>l+0#af5f00255&|e|t| +0#0000000&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|++0#0000000&|2+0#e000002&| +0#0000000&@65
+|"|i|n|p|u|t|/|s|h|_|0|9|.|s|h|"| |1|9|L|,| |4|8|3|B| @30|1|9|,|1| @9|A|l@1| 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_01.sh
@@ -0,0 +1,4 @@
+#! /bin/sh
+export `echo 'A=B'`
+printenv A
+echo a `#foo` b
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_02.sh
@@ -0,0 +1,30 @@
+#! /bin/ksh
+# sh2
+#  Jul 28, 2018: introduced shCommandSubBQ, which is *not* included in a shSubCommandList (so its not recursive)
+ccc=`echo "test"`
+	ccc=`echo "test"`
+
+# comment
+case $VAR in
+# comment
+	x|y|z) echo xyz ;;
+# comment
+	a|b|c) echo abc ;;
+# comment
+esac
+
+# Jul 26, 2018: why isn't `..` being terminated properly?
+# comment
+case "$aaa" in
+# comment
+  	bbb)  ccc=`echo $ddd|cut -b4-`
+	echo "test"
+# comment
+	;;
+# comment
+	esac
+# comment
+
+echo   $VAR abc
+export $VAR abc
+set    $VAR abc
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_03.sh
@@ -0,0 +1,33 @@
+#!/bin/ksh
+#  Test variable modifiers
+# Variable=value
+Variable='value'
+Variable="value"
+VariableA="pat1xxpat2"
+VariableB="pat2xxpat1"
+echo ${#}
+echo ${#VariableA}
+echo ${VariableA#pat1}
+echo ${VariableA##pat1}
+echo ${VariableB%pat1}
+echo ${VariableB%%pat1}
+
+# This gets marked as an error
+Variable=${VariableB:+${VariableC:=eng}}	# :+ seems to work for ksh as well as bash
+Variable=${VariableB:-${VariableC:-eng}}	# :- is ksh and bash
+
+# This is OK
+Variable='${VariableB:+${VariableC:=eng}}'
+Variable='${VariableB:-${VariableC:-eng}}'
+Variable="${VariableB:+${VariableC:=eng}}"	# :+ seems to work for ksh as well as bash
+Variable="${VariableB:-${VariableC:-eng}}"  # :- is ksh and bash
+
+# These are OK
+: ${VariableB:-${VariableC:-eng}}
+: "${VariableB:-${VariableC:-eng}}"
+: '${VariableB:-${VariableC:-eng}}'
+
+# Another test
+Variable=${VariableB:-${VariableC:-${VariableD:-${VariableE:=eng}}}}
+       :        ${VariableB:=${VariableC:-${VariableD:-${VariableE:=eng}}}}
+
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_04.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# sh4
+Variable=${VariableB:-{VariableC}}
+Variable=${VariableB:-${VariableC:-{Var3:=eng}}}
+
+# This gets marked as an error while its ok
+Variable=${VariableB:-${VariableC:-{Var3:=eng}}}
+Variable=${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}}
+Variable=${VariableB:=${VariableC:={Var3:=${Var4:-${Var5:-eng}}}}}
+Variable=${VariableB:=${VariableC:={Var3:=${Var4:-${Var5:-$Var6}}}}}
+
+# These are OK
+Variable="${VariableB:-${VariableC:-{Var3:=eng}}}"
+Variable="${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}}"
+
+# This gets marked as an error too
+: ${VariableB:-${VariableC:-{Var3:=eng}}}
+: ${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}}
+
+# This is OK
+: ${VariableB:-${VariableC:-eng}}
+: "${VariableB:-${VariableC:-eng}}"
+
+# First line is OK except its missing a closing "}",
+# so second line should have some error highlighting
+Variable=${VariableB:=${VariableC:={Var3:=${Var4:-eng}}}
+Variable=${VariableB:-${VariableC:-{Var3:=eng}}
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_05.sh
@@ -0,0 +1,373 @@
+#!/bin/sh -x
+# sh5
+# Note that this is special for sh. ksh will be an extra file later.
+# Note too, that sh and ksh allow ${var:-sub} as well as ${var-sub}!
+# The ':' is optional!
+
+# This all should be OK
+# Case 0a
+[ -t 0 ] && date
+Variable1=value1
+Variable2='value2'
+Variable3="value3"
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 0b
+[ -t 0 ] && echo "\ndate"
+Variable1=$HOME
+Variable2='$HOME'
+Variable3="$HOME"
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 0c
+[ -t 0 ] && echo "\ndate"
+Variable1=$HOME$SHELL
+Variable2=$HOME.$SHELL
+Variable3=$HOME.$SHELL+$HOME-$SHELL/$HOME
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 0d
+[ -t 0 ] && echo "\ndate"
+Variable1=`date`
+Variable2=`id -ng`
+Variable3=`id -ng | wc -c`
+echo "$Variable1" "$Variable2" "$Variable3"
+
+################################################################################
+#
+# Case 1a with constants
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:=eng1}
+Variable2=${VariableA:-eng2}
+Variable3=${VariableA:?eng3}
+Variable3=${VariableA:+eng3}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1b with constants in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:='eng1'}
+Variable2=${VariableA:-'eng2'}
+Variable3=${VariableA:?'eng3'}
+Variable3=${VariableA:+'eng3'}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1c with constants in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:="eng1"}
+Variable2=${VariableA:-"eng2"}
+Variable3=${VariableA:?"eng3"}
+Variable3=${VariableA:+"eng3"}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1d: constants but missing colons
+Variable1=${VariableA=eng1}
+Variable2=${VariableA-eng2}
+Variable3=${VariableA?eng3}
+Variable3=${VariableA+eng3}
+Variable1=${VariableA='eng1'}
+Variable2=${VariableA-'eng2'}
+Variable3=${VariableA?'eng3'}
+Variable3=${VariableA+'eng3'}
+Variable1=${VariableA="eng1"}
+Variable2=${VariableA-"eng2"}
+Variable3=${VariableA?"eng3"}
+Variable3=${VariableA+"eng3"}
+
+# Case 2a with a variable
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:=$HOME}
+Variable2=${VariableA:-$HOME}
+Variable3=${VariableA:?$HOME}
+Variable3=${VariableA:+$HOME}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2b with a variable in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:='$HOME'}
+Variable2=${VariableA:-'$HOME'}
+Variable3=${VariableA:?'$HOME'}
+Variable3=${VariableA:+'$HOME'}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2c with a variable in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:="$HOME"}
+Variable2=${VariableA:-"$HOME"}
+Variable3=${VariableA:?"$HOME"}
+Variable3=${VariableA:+"$HOME"}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3a with a command substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:=`date`}
+Variable2=${VariableA:-`date`}
+Variable3=${VariableA:?`date`}
+Variable3=${VariableA:+`date`}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3b with a command + option substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:=`id -ng`}
+Variable2=${VariableA:-`id -ng`}
+Variable3=${VariableA:?`id -ng`}
+Variable3=${VariableA:+`id -ng`}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3c with a command + pipe substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:=`id -ng | wc -c`}
+Variable2=${VariableA:-`id -ng | wc -c`}
+Variable3=${VariableA:?`id -ng | wc -c`}
+Variable3=${VariableA:+`id -ng | wc -c`}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+################################################################################
+#
+# The same with one nestet ${} level
+# Case 1a with constants
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:=eng1}}
+Variable2=${VariableA:-${VarB:-eng2}}
+Variable3=${VariableA:-${VarB:?eng3}}
+Variable3=${VariableA:-${VarB:+eng3}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1b with constants in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:='eng1'}}
+Variable2=${VariableA:-${VarB:-'eng2'}}
+Variable3=${VariableA:-${VarB:?'eng3'}}
+Variable3=${VariableA:-${VarB:+'eng3'}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1c with constants in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:="eng1"}}
+Variable2=${VariableA:-${VarB:-"eng2"}}
+Variable3=${VariableA:-${VarB:?"eng3"}}
+Variable3=${VariableA:-${VarB:+"eng3"}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2a with a variable
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:=$HOME}}
+Variable2=${VariableA:-${VarB:-$HOME}}
+Variable3=${VariableA:-${VarB:?$HOME}}
+Variable3=${VariableA:-${VarB:+$HOME}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2b with a variable in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:='$HOME'}}
+Variable2=${VariableA:-${VarB:-'$HOME'}}
+Variable3=${VariableA:-${VarB:?'$HOME'}}
+Variable3=${VariableA:-${VarB:+'$HOME'}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2c with a variable in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:="$HOME"}}
+Variable2=${VariableA:-${VarB:-"$HOME"}}
+Variable3=${VariableA:-${VarB:?"$HOME"}}
+Variable3=${VariableA:-${VarB:+"$HOME"}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3a with a command substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:=`date`}}
+Variable2=${VariableA:-${VarB:-`date`}}
+Variable3=${VariableA:-${VarB:?`date`}}
+Variable3=${VariableA:-${VarB:+`date`}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3b with a command + option substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:=`id -ng`}}
+Variable2=${VariableA:-${VarB:-`id -ng`}}
+Variable3=${VariableA:-${VarB:?`id -ng`}}
+Variable3=${VariableA:-${VarB:+`id -ng`}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3c with a command + pipe substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:=`id -ng | wc -c`}}
+Variable2=${VariableA:-${VarB:-`id -ng | wc -c`}}
+Variable3=${VariableA:-${VarB:?`id -ng | wc -c`}}
+Variable3=${VariableA:-${VarB:+`id -ng | wc -c`}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+################################################################################
+#
+# The same with two nestet ${} level
+# Case 1a with constants
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:=eng1}}}
+Variable2=${VariableA:-${VarB:-${VarC:-eng2}}}
+Variable3=${VariableA:-${VarB:-${VarC:?eng3}}}
+Variable3=${VariableA:-${VarB:-${VarC:+eng3}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1b with constants in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:='eng1'}}}
+Variable2=${VariableA:-${VarB:-${VarC:-'eng2'}}}
+Variable3=${VariableA:-${VarB:-${VarC:?'eng3'}}}
+Variable3=${VariableA:-${VarB:-${VarC:+'eng3'}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1c with constants in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:="eng1"}}}
+Variable2=${VariableA:-${VarB:-${VarC:-"eng2"}}}
+Variable3=${VariableA:-${VarB:-${VarC:?"eng3"}}}
+Variable3=${VariableA:-${VarB:-${VarC:+"eng3"}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2a with a variable
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:=$HOME}}}
+Variable2=${VariableA:-${VarB:-${VarC:-$HOME}}}
+Variable3=${VariableA:-${VarB:-${VarC:?$HOME}}}
+Variable3=${VariableA:-${VarB:-${VarC:+$HOME}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2b with a variable in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:='$HOME'}}}
+Variable2=${VariableA:-${VarB:-${VarC:-'$HOME'}}}
+Variable3=${VariableA:-${VarB:-${VarC:?'$HOME'}}}
+Variable3=${VariableA:-${VarB:-${VarC:+'$HOME'}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2c with a variable in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:="$HOME"}}}
+Variable2=${VariableA:-${VarB:-${VarC:-"$HOME"}}}
+Variable3=${VariableA:-${VarB:-${VarC:?"$HOME"}}}
+Variable3=${VariableA:-${VarB:-${VarC:?"$HOME"}}}
+Variable3=${VariableA:-${VarB:-${VarC:+"$HOME"}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3a with a command substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:=`date`}}}
+Variable2=${VariableA:-${VarB:-${VarC:-`date`}}}
+Variable3=${VariableA:-${VarB:-${VarC:?`date`}}}
+Variable3=${VariableA:-${VarB:-${VarC:+`date`}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3b with a command + option substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:=`id -ng`}}}
+Variable2=${VariableA:-${VarB:-${VarC:-`id -ng`}}}
+Variable3=${VariableA:-${VarB:-${VarC:?`id -ng`}}}
+Variable3=${VariableA:-${VarB:-${VarC:+`id -ng`}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3c with a command + pipe substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:=`id -ng | wc -c`}}}
+Variable2=${VariableA:-${VarB:-${VarC:-`id -ng | wc -c`}}}
+Variable3=${VariableA:-${VarB:-${VarC:?`id -ng | wc -c`}}}
+Variable3=${VariableA:-${VarB:-${VarC:+`id -ng | wc -c`}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+
+################################################################################
+#
+# The same with three nestet ${} level
+# Case 1a with constants
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:=eng1}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-eng2}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?eng3}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+eng3}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1b with constants in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:='eng1'}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-'eng2'}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?'eng3'}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+'eng3'}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 1c with constants in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:="eng1"}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-"eng2"}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?"eng3"}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+"eng3"}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2a with a variable
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:=$HOME}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-$HOME}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?$HOME}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+$HOME}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2b with a variable in single quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:='$HOME'}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-'$HOME'}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?'$HOME'}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+'$HOME'}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 2c with a variable in double quotes
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:="$HOME"}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-"$HOME"}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?"$HOME"}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+"$HOME"}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3a with a command substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:=`date`}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-`date`}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?`date`}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+`date`}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3b with a command + option substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:=`id -ng`}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-`id -ng`}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?`id -ng`}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+`id -ng`}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+# Case 3c with a command + pipe substitution
+[ -t 0 ] && echo "\ndate"
+Variable1=${VariableA:-${VarB:-${VarC:-${VarD:=`id -ng | wc -c`}}}}
+Variable2=${VariableA:-${VarB:-${VarC:-${VarD:-`id -ng | wc -c`}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:?`id -ng | wc -c`}}}}
+Variable3=${VariableA:-${VarB:-${VarC:-${VarD:+`id -ng | wc -c`}}}}
+echo "$Variable1" "$Variable2" "$Variable3"
+
+
+################################################################################
+#
+# This is also allowed:
+Variable1=${VariableA-${VarB-${VarC-${VarD=`id -ng | wc -c`}}}}
+
+################################################################################
+#
+# All cases with ${Var:?} which works for the sh:
+Variable4=${Variable4:?}
+Variable4=${Variable4:?OK}
+Variable4=${Variable4:?`date`}
+Variable4=${Variable4:?'an OK string'}
+Variable4=${Variable4:?"an OK string"}
+Variable4=${Variable4:?$HOME$SHELL}
+Variable4=${Variable4:?$HOME:$SHELL}
+
+# All cases with ${Var:?} which works also for ksh:
+Variable4=${Variable4:?This is OK}
+Variable4=${Variable4:?This is OK, too: `date`}
+
+# What happens with ${#identifier[*]}:
+Variable5=${#identifier[*]}
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_06.sh
@@ -0,0 +1,71 @@
+#!/bin/ksh
+# Shall we debug this script? If so, remove the '#' before '#DebugScript=set'
+DebugScript=set
+
+# Show that we are busy.
+[ -t 0 ] && echo "Please wait ... \c" >`tty`
+
+################################################################################
+#
+# Display some Help
+#
+Usage () {
+
+# does this comment work?
+VariableName="${BasicConfigName}_*"
+
+# Echo some ksh special variables
+echo "CDPATH="${CDPATH}
+
+# Get also a short description of the backuptype/method
+eval BackupMethod=\$mess09${BackupType}B
+
+case $BackupType in
+  3)   DefaultDevice=$MountDevice    ;;
+  1|2) DefaultDevice=$TapeDrive      ;;
+esac
+
+# If we have more the 53 characters in the variables below split them up
+# into several lines and add 3 tabs before them
+for Variable in DefaultExclude DefaultFindOption DoNotBackupList
+do
+    eval VarValue=\$$Variable
+    VarValue=`echo $VarValue | FoldS 53 | sed "2,\\$s/^/$Tab$Tab$Tab/"`
+    eval $Variable=\$VarValue
+done
+
+echo "
+Usage:  $ScriptName [-Options]
+
+Options List:
+        -v              The current version of '$ScriptName'
+        -h  | -H | ?    Display this list
+
+"
+
+} # End of Usage
+
+
+################################################################################
+#
+# Create a backup using fbackup/frecover
+#
+ExecuteFbackup () { # TESTING
+
+[ "$DebugScript" ]    && set -x || set +x
+
+cd $cwd
+
+} # End of ExecuteFbackup
+
+
+################################################################################
+# main ### main ### main ### main ### main ### main ### main ### main ### main #
+################################################################################
+#
+# Here is the heart of this script:
+#
+Usage
+
+# And exit
+Exit $Result
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_07.sh
@@ -0,0 +1,93 @@
+#!/bin/sh
+# Test file to test 'for do done' loops.
+# You can start this script like: $0 {-ne -gt -le ...} (all numeric operators 
+# are allowed!
+
+# All this works and should be OK
+
+################################################################################
+#
+# For loop without 'in list'. Uses $1 $2 ... This is a special case!
+# This 'for Var, do, done' is a very handy solution AND no real replacement 
+# available!
+#
+Function1 () {
+
+echo "Function1: for loop inside a function:\t\c"
+[ "$*" ] || echo "none\c"
+
+for Var
+do
+    [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
+done
+echo
+
+} # End of Function1
+
+################################################################################
+#
+# For loop with 'in list' $*
+#
+Function2 () {
+
+echo "Function2: for loop inside a function:\t\c"
+for Var in $*
+do
+    [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
+done ; echo
+
+} # End of Function2
+
+################################################################################
+#
+# For loop with 'in list' $@. Works the same way as $*
+#
+Function3 () {
+
+echo "Function3: for loop inside a function:\t\c"
+for Var in $@
+do
+    [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
+done ; echo
+
+} # End of Function3
+
+################################################################################
+#
+# For loop with 'in list' "$@". Special case. Works like "$1" "$2" ...
+#
+Function4 () {
+
+echo "Function4: for loop inside a function:\t\c"
+for Var in "$@"
+do
+    [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
+done ; echo
+
+} # End of Function4
+
+
+################################################################################
+# main ### main ### main ### main ### main ### main ### main ### main ### main #
+################################################################################
+#
+# Here is the heart of this script:
+#
+echo "Processing the following command line arguements: ${*:-none}"
+echo "Script:    for loop outside a function:\t\c"
+for Var
+do
+    [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
+done ; echo
+
+# Same as function calls
+Function1 -eq -ne -gt -ge -le -lt
+Function2 -eq -ne -gt -ge -le -lt
+Function3 -eq -ne -gt -ge -le -lt
+Function4 -eq -ne -gt -ge -le -lt '-ge 1 -a 2 -ge'
+
+# Now the same call like Function4 but with Function1
+Function1 -eq -ne -gt -ge -le -lt '-ge 1 -a 2 -ge'
+Function1
+
+exit $?
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_08.sh
@@ -0,0 +1,82 @@
+#!/bin/ksh -p
+
+# Note that this is special test file for ksh. sh is an extra file.
+# Note too, that this file contains ONLY things which works for ksh BUT NOT
+# for sh
+
+# This all should be OK
+
+# Several keywords without any quotes!
+# Case 1a. Several Constants 
+[ -t 0 ] && date
+Variable1=${VariableA:-This is a Text}
+Variable2=${VariableA:=This is a Text}
+Variable3=${VariableA:?This is a Text}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1b. Variable and Constant
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-$HOME This is a Text}
+Variable2=${VariableA:=$HOME This is a Text}
+Variable3=${VariableA:?$HOME This is a Text}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1c. Constant and Variable
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-This is a Text in $HOME}
+Variable2=${VariableA:=This is a Text in $HOME}
+Variable3=${VariableA:+This is a Text in $HOME}       #! :+ is bash-only, error here expected
+Variable1=${VariableA:-This is a Text in $HOME too}
+Variable2=${VariableA:=This is a Text in $HOME too}
+Variable3=${VariableA:+This is a Text in $HOME too}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1d. More Variables and Constants. Starting with a Variable.
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-$SHELL}
+Variable1=${VariableA:-$SHELL This is a Text in $HOME}
+Variable2=${VariableA:=$SHELL This is a Text in $HOME}
+Variable3=${VariableA:+$SHELL This is a Text in $HOME}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1e. More Constants and Variables. Starting with a Constant.
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+Variable1=${VariableA:-"This is a Text in $HOME $SHELL"}
+Variable1=${VariableA:-This is a Text in $HOME $SHELL}
+Variable2=${VariableA:=This is a Text in $HOME $SHELL}
+Variable3=${VariableA:+This is a Text in $HOME $SHELL}
+echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
+
+# Case 1x. The same with ':'
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+: ${VariableA:-This is a Text}
+: ${VariableA:-$HOME This is a Text}
+: ${VariableA:-This is a Text in $HOME}
+: ${VariableA:-$SHELL This is a Text in $HOME}
+: ${VariableA:-This is a Text in $HOME $SHELL}
+
+# Case 1y. The same with ':' and without the ':' in the parameter substitution
+[ -t 0 ] && echo "\n`date`" && unset VariableA
+: ${VariableA-This is a Text}
+: ${VariableA-$HOME This is a Text}
+: ${VariableA-This is a Text in $HOME}
+: ${VariableA-$SHELL This is a Text in $HOME}
+: ${VariableA-This is a Text in $HOME $SHELL}
+
+################################################################################
+#
+# This are valid usages for ${Var:?} in ksh!
+#
+Variable4=${Variable4:?This is an Error Message}
+Variable4=${Variable4:?This is an Error Message from `date`}
+
+: ${Variable4:?This is an Error Message}
+: ${Variable4:?This is an Error Message from `date`}
+
+exit $?
+
+# Michael Soulier
+if [ $# -ne 1 ]; then
+	echo whatever
+	exit 1
+fi
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_09.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Test file for vim the check () subshells
+( cd ; $pwd ) | wc -c
+( cd $1 ; $pwd ) | wc -c
+( cd ${1} ; $pwd ) | wc -c
+( cd ; $pwd ) | wc -c
+( cd ${1:-.} ; $pwd ) | sed -e 's!$!/!' -e 's!//*$!/!'
+( cd ; $pwd ) | wc -c
+( cd ${1:+.} ; $pwd ) | wc -c
+( cd ; $pwd ) | wc -c
+( cd ${1:=.} ; $pwd ) | wc -c
+( cd ; $pwd ) | wc -c
+( cd ${1:?}  ; $pwd ) | wc -c
+( cd ; $pwd ) | wc -c
+( cd $HOME ; $pwd ) | wc -c
+( cd ${HOME} ; $pwd ) | wc -c
+( cd ${HOME} ) | wc -c
+((n=1+2))
+let n=1+2
--- a/runtime/syntax/testdir/runtest.vim
+++ b/runtime/syntax/testdir/runtest.vim
@@ -5,28 +5,62 @@
 " Only do this with the +eval feature
 if 1
 
-let cwd = getcwd()
-if cwd !~ '[/\\]runtime[/\\]syntax\>'
-  echoerr 'Current directory must be "runtime/syntax"'
-  qall
+" Remember the directory where we started.  Will change to "testdir" below.
+let syntaxDir = getcwd()
+
+let s:messagesFname = fnameescape(syntaxDir .. '/testdir/messages')
+
+let s:messages = []
+
+" Add one message to the list of messages
+func Message(msg)
+  echomsg a:msg
+  call add(s:messages, a:msg)
+endfunc
+
+" Report a fatal message and exit
+func Fatal(msg)
+  echoerr a:msg
+  call AppendMessages(a:msg)
+  qall!
+endfunc
+
+" Append s:messages to the messages file and make it empty.
+func AppendMessages(header)
+  exe 'split ' .. s:messagesFname
+  call append(line('$'), '')
+  call append(line('$'), a:header)
+  call append(line('$'), s:messages)
+  let s:messages = []
+  wq
+endfunc
+
+" Relevant messages are written to the "messages" file.
+" If the file already exists it is appended to.
+exe 'split ' .. s:messagesFname
+call append(line('$'), repeat('=-', 70))
+call append(line('$'), '')
+call append(line('$'), 'Test run on ' .. strftime("%Y %b %d %H:%M:%S"))
+wq
+
+if syntaxDir !~ '[/\\]runtime[/\\]syntax\>'
+  call Fatal('Current directory must be "runtime/syntax"')
 endif
 if !isdirectory('testdir')
-  echoerr '"testdir" directory not found'
-  qall
+  call Fatal('"testdir" directory not found')
 endif
 
 " Use the script for source code screendump testing.  It sources other scripts,
 " therefore we must "cd" there.
 cd ../../src/testdir
 source screendump.vim
-exe 'cd ' .. fnameescape(cwd)
+exe 'cd ' .. fnameescape(syntaxDir)
 
 " For these tests we need to be able to run terminal Vim with 256 colors.  On
 " MS-Windows the console only has 16 colors and the GUI can't run in a
 " terminal.
 if !CanRunVimInTerminal()
-  echomsg 'Cannot make screendumps, aborting'
-  qall
+  call Fatal('Cannot make screendumps, aborting')
 endif
 
 cd testdir
@@ -51,7 +85,10 @@ func HandleSwapExists()
 endfunc
 
 
+let ok_count = 0
 let failed_count = 0
+let skipped_count = 0
+let MAX_FAILED_COUNT = 5
 for fname in glob('input/*.*', 1, 1)
   if fname =~ '\~$'
     " backup file, skip
@@ -59,14 +96,18 @@ for fname in glob('input/*.*', 1, 1)
   endif
 
   let linecount = readfile(fname)->len()
-  let root = substitute(fname, 'input[/\\]\(.*\)\..*', '\1', '')
+  let root = fnamemodify(fname, ':t:r')
+  let filetype = substitute(root, '\([^_.]*\)[_.].*', '\1', '')
+  let failed_root = 'failed/' .. root
 
-  " Execute the test if the "done" file does not exist of when the input file
+  " Execute the test if the "done" file does not exist or when the input file
   " is newer.
   let in_time = getftime(fname)
   let out_time = getftime('done/' .. root)
   if out_time < 0 || in_time > out_time
-    for dumpname in glob('failed/' .. root .. '_\d*\.dump', 1, 1)
+    call ch_log('running tests for: ' .. fname)
+
+    for dumpname in glob(failed_root .. '_\d*\.dump', 1, 1)
       call delete(dumpname)
     endfor
     call delete('done/' .. root)
@@ -77,38 +118,76 @@ for fname in glob('input/*.*', 1, 1)
     call writefile(lines, 'Xtestscript')
     let buf = RunVimInTerminal('-S Xtestscript ' .. fname, {})
 
-    " Screendump at the start of the file: root_00.dump
-    let fail = VerifyScreenDump(buf, root .. '_00', {})
+    " Screendump at the start of the file: failed/filetype_00.dump
+    let root_00 = root .. '_00'
+    call ch_log('First screendump for ' .. fname .. ': failed/' .. root_00 .. '.dump')
+    let fail = VerifyScreenDump(buf, root_00, {})
 
-    " Make a Screendump every 18 lines of the file: root_NN.dump
+    " Make a Screendump every 18 lines of the file: failed/root_NN.dump
     let topline = 1
     let nr = 1
     while linecount - topline > 20
       let topline += 18
       call term_sendkeys(buf, printf("%dGzt", topline))
-      let fail += VerifyScreenDump(buf, root .. printf('_%02d', nr), {})
+      let root_next = root .. printf('_%02d', nr)
+      call ch_log('Next screendump for ' .. fname .. ': failed/' .. root_next .. '.dump')
+      let fail += VerifyScreenDump(buf, root_next, {})
       let nr += 1
     endwhile
 
-    " Screendump at the end of the file: root_99.dump
+    " Screendump at the end of the file: failed/root_99.dump
     call term_sendkeys(buf, 'Gzb')
-    let fail += VerifyScreenDump(buf, root .. '_99', {})
+    let root_last = root .. '_99'
+    call ch_log('Last screendump for ' .. fname .. ': failed/' .. root_last .. '.dump')
+    let fail += VerifyScreenDump(buf, root_last, {})
 
     call StopVimInTerminal(buf)
     call delete('Xtestscript')
 
+    " Add any assert errors to s:messages
+    if len(v:errors) > 0
+      call extend(s:messages, v:errors)
+      let v:errors = []
+      let fail += 1
+    endif
+
     if fail == 0
-      call writefile(['OK'], 'done/' . root)
-      echo "Test " . root . " OK\n"
+      call Message("Test " .. root .. " OK")
+
+      call writefile(['OK'], 'done/' .. root)
+
+      let ok_count += 1
     else
+      call Message("Test " .. root .. " FAILED")
+
+      call delete('done/' .. root)
+
       let failed_count += 1
+      if failed_count > MAX_FAILED_COUNT
+	call Message('')
+	call Message('Too many errors, aborting')
+      endif
     endif
+  else
+    let skipped_count += 1
+  endif
+
+  " Append messages to the file "testdir/messages"
+  call AppendMessages('Input file ' .. fname .. ':')
+
+  if failed_count > MAX_FAILED_COUNT
+    break
   endif
 endfor
 
 " Matching "if 1" at the start.
 endif
 
+call Message('OK: ' .. ok_count)
+call Message('FAILED: ' .. failed_count)
+call Message('skipped: ' .. skipped_count)
+call AppendMessages('== SUMMARY ==')
+
 if failed_count > 0
   " have make report an error
   cquit
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1647,
+/**/
     1646,
 /**/
     1645,