diff --git a/runtime/syntax/testdir/input/ksh2020.ksh b/runtime/syntax/testdir/input/ksh2020.ksh
new file mode 100644
index 0000000..edb1ab2
--- /dev/null
+++ b/runtime/syntax/testdir/input/ksh2020.ksh
@@ -0,0 +1,146 @@
+#!/bin/ksh2020
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${bar} ;;
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/ksh88.ksh b/runtime/syntax/testdir/input/ksh88.ksh
new file mode 100644
index 0000000..20ce318
--- /dev/null
+++ b/runtime/syntax/testdir/input/ksh88.ksh
@@ -0,0 +1,146 @@
+#!/bin/ksh88
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${bar} ;;
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/ksh93_generic.ksh b/runtime/syntax/testdir/input/ksh93_generic.ksh
new file mode 100644
index 0000000..58d7e1f
--- /dev/null
+++ b/runtime/syntax/testdir/input/ksh93_generic.ksh
@@ -0,0 +1,146 @@
+#!/bin/ksh93
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${bar} ;;
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/ksh93u.ksh b/runtime/syntax/testdir/input/ksh93u.ksh
new file mode 100644
index 0000000..4f7a3f6
--- /dev/null
+++ b/runtime/syntax/testdir/input/ksh93u.ksh
@@ -0,0 +1,146 @@
+#!/bin/ksh93u+
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${bar} ;;
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/ksh93v.ksh b/runtime/syntax/testdir/input/ksh93v.ksh
new file mode 100644
index 0000000..33649ed
--- /dev/null
+++ b/runtime/syntax/testdir/input/ksh93v.ksh
@@ -0,0 +1,146 @@
+#!/bin/ksh93v-
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${bar} ;;
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/ksh_generic.ksh b/runtime/syntax/testdir/input/ksh_generic.ksh
new file mode 100644
index 0000000..32572f0
--- /dev/null
+++ b/runtime/syntax/testdir/input/ksh_generic.ksh
@@ -0,0 +1,146 @@
+#!/bin/ksh
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${bar} ;;
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/mksh.ksh b/runtime/syntax/testdir/input/mksh.ksh
new file mode 100644
index 0000000..c346cee
--- /dev/null
+++ b/runtime/syntax/testdir/input/mksh.ksh
@@ -0,0 +1,146 @@
+#!/bin/mksh
+
+# Rendering namespace variables
+echo ${.foo.bar[adsf]} ${foo.bar[1][2]} ${foo.bar[1][az]} ${.foo.bar[1][2]}
+echo ${.foo[var]} ${.foo.bar[1]} ${.foo.bar[*]} ${foo.bar##baz} ${.foo.bar##baz}
+echo ${.foo.bar[3]##baz} ${.foo.bar[z]##baz} ${sh.version/V/b} ${.sh.version/V/b}
+echo ${foo/%bar/foo} ${foo/#bar/foo} ${foo.bar/%bar/foo} ${foo.bar[d]/#bar/foo}
+echo ${.foo/%barfoo} ${.foo.bar/#bar/foo} ${.bar.foo/%bar/foo} ${.bar/#bar/foo}
+echo ${foo/%barfoo} ${foo/bar/foo} ${barfoo//bar/foo} ${bar/#bar/foo}
+echo ${.sh.version^^} ${.sh.version,,} ${KSH_VERSION^} ${KSH_VERSION,}
+
+# 'alarm' builtin (present in ksh93u+, ksh93v- and the 93u+m dev branch).
+alarm --man
+# The fds and pids builtins. These ksh93 builtins have existed since 2005-05-22
+# and 2008-06-02, respectively. However, these were not readily enabled; in
+# 93u+m these can be enabled with the builtin command if libcmd.so is present,
+# either via 'builtin -f' or (in more recent commits) with a regular invocation
+# of the 'builtin' built-in.
+# cf. https://github.com/ksh93/ksh/commit/f15e2c41
+builtin fds pids
+fds; pids
+
+# Unix commands which are provided by ksh as builtins via libcmd.so
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv		# 93v-
+id
+join
+ln
+logname
+ls		# 93v-
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od		# 93v-
+paste
+pathchk
+readlink	# 93v-
+realpath	# 93v-
+rev
+rm
+rmdir
+sha1sum		# 93v-
+sha256sum	# 93v-
+sha2sum		# 93v-
+sha384sum	# 93v-
+sha512sum	# 93v-
+stty
+sum
+sync
+tail
+tee
+tr		# 93v-
+tty
+uname
+uniq
+vmstate		# Obsolescent; only available in 93v- and older
+wc
+xargs		# 93v-
+xgrep		# 93v-
+
+# SHA command not provided as a builtin but included here for completeness
+sha224sum
+
+# poll builtin (93v-)
+poll --man
+
+# mkservice and eloop (rarely provided; requires SHOPT_MKSERVICE)
+mkservice --man; eloop --help
+
+# some mksh builtins
+bind; rename
+
+# ;& and ;;& in case statements
+case x in
+	bar) false ${baz:1} ;&
+	foo) true ${foo:0:0} ;;&
+	*) print ${$bar} ;;	# 93v-
+esac
+
+# Below is subshare syntax supported by both ksh93 and mksh.
+print ${ echo one }
+print ${	echo two
+}
+print ${
+echo three	}
+print ${ echo 'four'; }
+print ${ echo 'five' ;}
+print ${ echo 'six'
+}
+print ${	echo 'seven'	}
+echo ${ print 'eight'	}
+typeset nine=${ pwd; }
+
+# Value substitutions of the form ${|command} are only
+# supported by mksh, not ksh93.
+if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
+	valsubfunc() {
+		REPLY=$1
+	}
+	echo ${|valsubfunc ten}
+	print "${|valsubfunc eleven;}"
+	printf '%s' "${|valsubfunc twelve	}"
+	unlucky=${|valsubfunc thirteen
+}
+	typeset notafloat=${|valsubfunc notanumber	}
+	print $unlucky $notanumber
+	${|echo foo}
+	${|echo bar
+}
+fi
+
+# ======
+# Shared-state command substitutions using the syntax ${<file;}
+# are only supported by ksh93, not mksh.
+echo ${
+	printf %s str
+} > /tmp/strfile
+echo ${</tmp/strfile;}
+
+exit 0
+# ksh88 and ksh93 non-dot special variables
+print ${ RANDOM= SRANDOM= SHLVL= JOBMAX= KSH_VERSION= FIGNORE= LC_TIME= LC_NUMERIC= LC_MESSAGES= LC_CTYPE= LC_COLLATE= LC_ALL= LANG= FPATH= PS4= OPTIND= OPTARG= true ;}
+print $(LINENO= SECONDS= TMOUT= PPID= LINES= COLUMNS= VISUAL= OLDPWD= PS3= MAILPATH= CDPATH= FCEDIT= HISTCMD= HISTEDIT= HISTSIZE= HISTFILE= ENV= MAILCHECK= EDITOR= SHELL= false)
+print $(REPLY= MAIL= HOME= PWD= IFS= PS2= PS1= PATH= SH_OPTIONS= ERRNO= COMP_CWORD= COMP_LINE= COMP_POINT= COMP_WORDS= COMP_KEY= COMPREPLY= COMP_WORDBREAKS= COMP_TYPE= compgen)
+print $(BASHPID= EPOCHREALTIME= EXECSHELL= KSHEGID= KSHGID= KSHUID= KSH_MATCH= PATHSEP= PGRP= PIPESTATUS= TMPDIR= USER_ID= VPATH= CSWIDTH= complete)
diff --git a/runtime/syntax/testdir/input/sh_10.sh b/runtime/syntax/testdir/input/sh_10.sh
deleted file mode 100644
index be463c3..0000000
--- a/runtime/syntax/testdir/input/sh_10.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/ksh
-
-# This script is a test file for ksh93 shared-state
-# command substitutions (subshares) and mksh value
-# substitutions (valsubs).
-
-# ======
-# Below is subshare syntax supported by both ksh93 and mksh.
-print ${ echo one }
-print ${	echo two
-}
-print ${
-echo three	}
-print ${ echo 'four'; }
-print ${ echo 'five' ;}
-print ${ echo 'six'
-}
-print ${	echo 'seven'	}
-echo ${ print 'eight'	}
-typeset nine=${ pwd; }
-
-# ======
-# Value substitutions of the form ${|command} are only
-# supported by mksh, not ksh93.
-if ! command eval '((.sh.version >= 20070703))' 2>/dev/null; then
-	valsubfunc() {
-		REPLY=$1
-	}
-	echo ${|valsubfunc ten}
-	print "${|valsubfunc eleven;}"
-	printf '%s' "${|valsubfunc twelve	}"
-	unlucky=${|valsubfunc thirteen
-}
-	typeset notafloat=${|valsubfunc notanumber	}
-	print $unlucky $notanumber
-	${|echo foo}
-	${|echo bar
-}
-fi
-
-# ======
-# Shared-state command substitutions using the syntax ${<file;}
-# are only supported by ksh93, not mksh.
-echo ${
-	printf %s str
-} > /tmp/strfile
-echo ${</tmp/strfile;}
-
-exit 0
diff --git a/runtime/syntax/testdir/input/sh_bash_sundrous.bash b/runtime/syntax/testdir/input/sh_bash_sundrous.bash
new file mode 100644
index 0000000..8456af2
--- /dev/null
+++ b/runtime/syntax/testdir/input/sh_bash_sundrous.bash
@@ -0,0 +1,57 @@
+#!/bin/bash
+basename
+cat
+chgrp
+chmod
+chown
+cksum
+cmp
+comm
+cp
+cut
+date
+dirname
+egrep		# Obsolescent
+expr
+fgrep		# Obsolescent
+fmt
+fold
+getconf
+grep
+head
+iconv
+id
+join
+ln
+logname
+ls
+md5sum
+mkdir
+mkfifo
+mktemp
+mv
+od
+paste
+pathchk
+readlink
+realpath
+rev
+rm
+rmdir
+sha1sum
+sha256sum
+sha224sum
+sha384sum
+sha512sum
+stty
+sum
+sync
+tail
+tee
+tr
+tty
+uname
+uniq
+wc
+xargs
+xgrep
