diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 67a23afc1f..b6bed6dcde 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -156,6 +156,7 @@ digraph_setlist({digraphlist}) Boolean register multiple |digraph|s echoraw({expr}) none output {expr} as-is empty({expr}) Number |TRUE| if {expr} is empty environ() Dict return environment variables +err_teapot() Number produce error 418 escape({string}, {chars}) String escape {chars} in {string} with '\' eval({string}) any evaluate {string} into its value eventhandler() Number |TRUE| if inside an event handler @@ -2203,6 +2204,15 @@ environ() *environ()* use this: > :echo index(keys(environ()), 'HOME', 0, 1) != -1 + +err_teapot([{expr}]) *err_teapot()* + Produce an error with number 418, needed for implementation of + RFC 2325. + If {expr} is present and it is TRUE error 503 is given, + indicating that coffee is temporarily not available. + If {expr} is present it must be a String. + + escape({string}, {chars}) *escape()* Escape the characters in {chars} that occur in {string} with a backslash. Example: > diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 1fd10f71ff..c4275de837 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -9054,11 +9054,11 @@ A jump table for the options with a short description can be found at |Q_op|. displayed when 'verbosefile' is set. *'viewdir'* *'vdir'* -'viewdir' 'vdir' string (default for Amiga and Win32: - "$VIM/vimfiles/view", - for Unix: "~/.vim/view", - for macOS: "$VIM:vimfiles:view" - for VMS: "sys$login:vimfiles/view") +'viewdir' 'vdir' string (default for Amiga "home:vimfiles/view", + for Win32: "$HOME/vimfiles/view", + for Unix: "$HOME/.vim/view", + for macOS: "$VIM/vimfiles/view" + for VMS: "sys$login:vimfiles/view") global {not available when compiled without the |+mksession| feature} diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index 7a82fcf185..f03570497d 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1,4 +1,4 @@ -*terminal.txt* For Vim version 9.0. Last change: 2023 Jun 09 +*terminal.txt* For Vim version 9.0. Last change: 2023 Jun 28 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1541,6 +1541,20 @@ If there is no g:termdebug_config you can use: > let g:termdebug_popup = 0 +Change default signs ~ + *termdebug_signs* +Termdebug uses the last two characters of the breakpoint ID in the +signcolumn to represent breakpoints. For example, breakpoint ID 133 +will be displayed as `33`. + +If you want to customize the breakpoint signs: > + let g:termdebug_config['sign'] = '>>' +If there is no g:terminal_config yet you can use: > + let g:termdebug_config = {'sign': '>>'} + +After this, breakpoints will be displayed as `>>` in the signcolumn. + + Window toolbar ~ *termdebug_winbar* By default the Termdebug plugin creates a window toolbar if the mouse is diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index 12583e1b39..bc294e1c03 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -1232,6 +1232,7 @@ Inter-process communication: *channel-functions* json_decode() decode a JSON string to Vim types js_encode() encode an expression to a JSON string js_decode() decode a JSON string to Vim types + err_teapot() give error 418 or 503 Jobs: *job-functions* job_start() start a job diff --git a/runtime/filetype.vim b/runtime/filetype.vim index c93ce5eaeb..cdeb556410 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -21,7 +21,7 @@ au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-ol \ exe "doau filetypedetect BufRead " . fnameescape(expand(":r")) au BufNewFile,BufRead *~ \ let s:name = expand("") | - \ let s:short = substitute(s:name, '\~$', '', '') | + \ let s:short = substitute(s:name, '\~\+$', '', '') | \ if s:name != s:short && s:short != "" | \ exe "doau filetypedetect BufRead " . fnameescape(s:short) | \ endif | @@ -266,11 +266,11 @@ au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old setf xml " BSDL au BufNewFile,BufRead *.bsd,*.bsdl setf bsdl -" Bazel (http://bazel.io) +" Bazel (https://bazel.build) and Buck2 (https://buck2.build/) autocmd BufRead,BufNewFile *.bzl,*.bazel,WORKSPACE,WORKSPACE.bzlmod setf bzl if has("fname_case") - " There is another check for BUILD further below. - autocmd BufRead,BufNewFile *.BUILD,BUILD setf bzl + " There is another check for BUILD and BUCK further below. + autocmd BufRead,BufNewFile *.BUILD,BUILD,BUCK setf bzl endif " Busted (Lua unit testing framework - configuration files) @@ -1511,6 +1511,9 @@ au BufNewFile,BufRead *.pdf setf pdf " PCMK - HAE - crm configure edit au BufNewFile,BufRead *.pcmk setf pcmk +" PEM (Privacy-Enhanced Mail) +au BufNewFile,BufRead *.pem,*.cer,*.crt,*.csr setf pem + " Perl if has("fname_case") au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl() @@ -1961,6 +1964,9 @@ au BufNewFile,BufRead .login,.cshrc,csh.cshrc,csh.login,csh.logout,*.csh,.alias au BufNewFile,BufRead *.zig setf zig au BufNewFile,BufRead *.zir setf zir +" Zserio +au BufNewFile,BufRead *.zs setf zserio + " Z-Shell script (patterns ending in a star further below) au BufNewFile,BufRead .zprofile,*/etc/zprofile,.zfbfmarks setf zsh au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh @@ -2602,9 +2608,9 @@ au BufNewFile,BufRead *asterisk*/*voicemail.conf* call s:StarSetf('asteriskvm') " Bazaar version control au BufNewFile,BufRead bzr_log.* setf bzr -" Bazel build file +" Bazel and Buck2 build file if !has("fname_case") - au BufNewFile,BufRead *.BUILD,BUILD setf bzl + au BufNewFile,BufRead *.BUILD,BUILD,BUCK setf bzl endif " BIND zone diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index b43b8ab507..d053851024 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -2,7 +2,7 @@ " " Author: Bram Moolenaar " Copyright: Vim license applies, see ":help license" -" Last Change: 2022 Nov 10 +" Last Change: 2023 Jun 24 " " WORK IN PROGRESS - The basics works stable, more to come " Note: In general you need at least GDB 7.12 because this provides the @@ -81,6 +81,8 @@ func s:Breakpoint2SignNumber(id, subid) return s:break_id + a:id * 1000 + a:subid endfunction +" Define or adjust the default highlighting, using background "new". +" When the 'background' option is set then "old" has the old value. func s:Highlight(init, old, new) let default = a:init ? 'default ' : '' if a:new ==# 'light' && a:old !=# 'light' @@ -90,9 +92,21 @@ func s:Highlight(init, old, new) endif endfunc -call s:Highlight(1, '', &background) -hi default debugBreakpoint term=reverse ctermbg=red guibg=red -hi default debugBreakpointDisabled term=reverse ctermbg=gray guibg=gray +" Define the default highlighting, using the current 'background' value. +func s:InitHighlight() + call s:Highlight(1, '', &background) + hi default debugBreakpoint term=reverse ctermbg=red guibg=red + hi default debugBreakpointDisabled term=reverse ctermbg=gray guibg=gray +endfunc + +" Setup an autocommand to redefine the default highlight when the colorscheme +" is changed. +func s:InitAutocmd() + augroup TermDebug + autocmd! + autocmd ColorScheme * call s:InitHighlight() + augroup END +endfunc " Get the command to execute the debugger as a list, defaults to ["gdb"]. func s:GetCommand() @@ -588,14 +602,14 @@ func s:GdbOutCallback(channel, text) return endif if a:text =~ '^\^error,msg=' - let text = s:DecodeMessage(a:text[11:]) + let text = s:DecodeMessage(a:text[11:], v:false) if exists('s:evalexpr') && text =~ 'A syntax error in expression, near\|No symbol .* in current context' " Silently drop evaluation errors. unlet s:evalexpr return endif elseif a:text[0] == '~' - let text = s:DecodeMessage(a:text[1:]) + let text = s:DecodeMessage(a:text[1:], v:false) else call s:CommOutput(a:channel, a:text) return @@ -611,21 +625,20 @@ func s:GdbOutCallback(channel, text) call win_gotoid(curwinid) endfunc -" Decode a message from gdb. quotedText starts with a ", return the text up +" Decode a message from gdb. "quotedText" starts with a ", return the text up " to the next ", unescaping characters: -" - remove line breaks -" - change \\t to \t +" - remove line breaks (unless "literal" is v:true) +" - change \\t to \t (unless "literal" is v:true) " - change \0xhh to \xhh (disabled for now) " - change \ooo to octal " - change \\ to \ -func s:DecodeMessage(quotedText) +func s:DecodeMessage(quotedText, literal) if a:quotedText[0] != '"' echoerr 'DecodeMessage(): missing quote in ' . a:quotedText return endif - return a:quotedText - \ ->substitute('^"\|".*\|\\n', '', 'g') - \ ->substitute('\\t', "\t", 'g') + let msg = a:quotedText + \ ->substitute('^"\|".*', '', 'g') " multi-byte characters arrive in octal form " NULL-values must be kept encoded as those break the string otherwise \ ->substitute('\\000', s:NullRepl, 'g') @@ -637,6 +650,13 @@ func s:DecodeMessage(quotedText) " \ ->substitute('\\0x00', s:NullRepl, 'g') \ ->substitute('\\\\', '\', 'g') \ ->substitute(s:NullRepl, '\\000', 'g') + if !a:literal + return msg + \ ->substitute('\\t', "\t", 'g') + \ ->substitute('\\n', '', 'g') + else + return msg + endif endfunc const s:NullRepl = 'XXXNULLXXX' @@ -645,7 +665,7 @@ func s:GetFullname(msg) if a:msg !~ 'fullname' return '' endif - let name = s:DecodeMessage(substitute(a:msg, '.*fullname=', '', '')) + let name = s:DecodeMessage(substitute(a:msg, '.*fullname=', '', ''), v:true) if has('win32') && name =~ ':\\\\' " sometimes the name arrives double-escaped let name = substitute(name, '\\\\', '\\', 'g') @@ -658,7 +678,7 @@ func s:GetAsmAddr(msg) if a:msg !~ 'addr=' return '' endif - let addr = s:DecodeMessage(substitute(a:msg, '.*addr=', '', '')) + let addr = s:DecodeMessage(substitute(a:msg, '.*addr=', '', ''), v:false) return addr endfunc @@ -1381,9 +1401,19 @@ func s:CreateBreakpoint(id, subid, enabled) else let hiName = "debugBreakpoint" endif + let label = '' + if exists('g:termdebug_config') + let label = get(g:termdebug_config, 'sign', '') + endif + if label == '' + let label = substitute(nr, '\..*', '', '') + if strlen(label) > 2 + let label = strpart(label, strlen(label) - 2) + endif + endif call sign_define('debugBreakpoint' .. nr, - \ #{text: substitute(nr, '\..*', '', ''), - \ texthl: hiName}) + \ #{text: strpart(label, 0, 2), + \ texthl: hiName}) endif endfunc @@ -1522,5 +1552,8 @@ func s:BufUnloaded() endfor endfunc +call s:InitHighlight() +call s:InitAutocmd() + let &cpo = s:keepcpo unlet s:keepcpo diff --git a/runtime/syntax/Makefile b/runtime/syntax/Makefile index 4d0c88980b..c8a7f00232 100644 --- 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,22 @@ 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 + @# FIXME: Temporarily show the whole file to find out what goes wrong + @#tail -n 6 testdir/messages + @cat testdir/messages clean testclean: - rm -f testdir/failed/* testdir/done/* testdir/vimcmd + rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages diff --git a/runtime/syntax/testdir/dumps/sh_01_00.dump b/runtime/syntax/testdir/dumps/sh_01_00.dump new file mode 100644 index 0000000000..f38aff0dbf --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_01_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!| |/|b|i|n|/|d|a|s|h| +0#0000000&@62 +|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 +|i+0#0000000&|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/sh_01_99.dump b/runtime/syntax/testdir/dumps/sh_01_99.dump new file mode 100644 index 0000000000..687677ed05 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_01_99.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0|!| |/|b|i|n|/|d|a|s|h| +0#0000000&@62 +|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&|r|e|d|r|a|w| @49|4|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/sh_02_00.dump b/runtime/syntax/testdir/dumps/sh_02_00.dump new file mode 100644 index 0000000000..e752cc04cf --- /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|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_02_01.dump b/runtime/syntax/testdir/dumps/sh_02_01.dump new file mode 100644 index 0000000000..20930c8a13 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_02_99.dump b/runtime/syntax/testdir/dumps/sh_02_99.dump new file mode 100644 index 0000000000..a9902dddd9 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_03_00.dump b/runtime/syntax/testdir/dumps/sh_03_00.dump new file mode 100644 index 0000000000..59eca0921e --- /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|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_03_01.dump b/runtime/syntax/testdir/dumps/sh_03_01.dump new file mode 100644 index 0000000000..1dc4664c28 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_03_99.dump b/runtime/syntax/testdir/dumps/sh_03_99.dump new file mode 100644 index 0000000000..3d796c6ecd --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_04_00.dump b/runtime/syntax/testdir/dumps/sh_04_00.dump new file mode 100644 index 0000000000..48289913a9 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_04_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+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|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_04_01.dump b/runtime/syntax/testdir/dumps/sh_04_01.dump new file mode 100644 index 0000000000..5a0ebe8f89 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_04_99.dump b/runtime/syntax/testdir/dumps/sh_04_99.dump new file mode 100644 index 0000000000..54ea81a564 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_05_00.dump b/runtime/syntax/testdir/dumps/sh_05_00.dump new file mode 100644 index 0000000000..73164f0033 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| |-|x| +0#0000000&@60 +|#+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|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_05_01.dump b/runtime/syntax/testdir/dumps/sh_05_01.dump new file mode 100644 index 0000000000..83500539aa --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_02.dump b/runtime/syntax/testdir/dumps/sh_05_02.dump new file mode 100644 index 0000000000..d4e7f9a498 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_03.dump b/runtime/syntax/testdir/dumps/sh_05_03.dump new file mode 100644 index 0000000000..2e369d8d0d --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_04.dump b/runtime/syntax/testdir/dumps/sh_05_04.dump new file mode 100644 index 0000000000..27c821a599 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_05.dump b/runtime/syntax/testdir/dumps/sh_05_05.dump new file mode 100644 index 0000000000..1eb02297f3 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_06.dump b/runtime/syntax/testdir/dumps/sh_05_06.dump new file mode 100644 index 0000000000..46c4de0aa1 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_07.dump b/runtime/syntax/testdir/dumps/sh_05_07.dump new file mode 100644 index 0000000000..e1dc4ed40c --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_08.dump b/runtime/syntax/testdir/dumps/sh_05_08.dump new file mode 100644 index 0000000000..dc77a9f9e1 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_09.dump b/runtime/syntax/testdir/dumps/sh_05_09.dump new file mode 100644 index 0000000000..944d7e3d5d --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_10.dump b/runtime/syntax/testdir/dumps/sh_05_10.dump new file mode 100644 index 0000000000..43639c8116 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_11.dump b/runtime/syntax/testdir/dumps/sh_05_11.dump new file mode 100644 index 0000000000..2ba00e31e3 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_12.dump b/runtime/syntax/testdir/dumps/sh_05_12.dump new file mode 100644 index 0000000000..2300b7d22b --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_13.dump b/runtime/syntax/testdir/dumps/sh_05_13.dump new file mode 100644 index 0000000000..71e0e78b1f --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_14.dump b/runtime/syntax/testdir/dumps/sh_05_14.dump new file mode 100644 index 0000000000..d16e2e0eb5 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_15.dump b/runtime/syntax/testdir/dumps/sh_05_15.dump new file mode 100644 index 0000000000..c9abc7cc32 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_16.dump b/runtime/syntax/testdir/dumps/sh_05_16.dump new file mode 100644 index 0000000000..198e0b7b13 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_17.dump b/runtime/syntax/testdir/dumps/sh_05_17.dump new file mode 100644 index 0000000000..b282e4d39f --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_18.dump b/runtime/syntax/testdir/dumps/sh_05_18.dump new file mode 100644 index 0000000000..ef1e618e37 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_19.dump b/runtime/syntax/testdir/dumps/sh_05_19.dump new file mode 100644 index 0000000000..05b9e3dc11 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_20.dump b/runtime/syntax/testdir/dumps/sh_05_20.dump new file mode 100644 index 0000000000..5316887459 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_05_99.dump b/runtime/syntax/testdir/dumps/sh_05_99.dump new file mode 100644 index 0000000000..c3d20b5ec2 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_06_00.dump b/runtime/syntax/testdir/dumps/sh_06_00.dump new file mode 100644 index 0000000000..c037b751ee --- /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|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_06_01.dump b/runtime/syntax/testdir/dumps/sh_06_01.dump new file mode 100644 index 0000000000..e71380e847 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_06_02.dump b/runtime/syntax/testdir/dumps/sh_06_02.dump new file mode 100644 index 0000000000..029ba130f9 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_06_03.dump b/runtime/syntax/testdir/dumps/sh_06_03.dump new file mode 100644 index 0000000000..2f22cdefc7 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_06_99.dump b/runtime/syntax/testdir/dumps/sh_06_99.dump new file mode 100644 index 0000000000..b347aad60d --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_07_00.dump b/runtime/syntax/testdir/dumps/sh_07_00.dump new file mode 100644 index 0000000000..bf02a6073f --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+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|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_07_01.dump b/runtime/syntax/testdir/dumps/sh_07_01.dump new file mode 100644 index 0000000000..07b0693e9b --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_02.dump b/runtime/syntax/testdir/dumps/sh_07_02.dump new file mode 100644 index 0000000000..8e36dde750 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_03.dump b/runtime/syntax/testdir/dumps/sh_07_03.dump new file mode 100644 index 0000000000..4c8ba62930 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_04.dump b/runtime/syntax/testdir/dumps/sh_07_04.dump new file mode 100644 index 0000000000..21c8738f89 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_99.dump b/runtime/syntax/testdir/dumps/sh_07_99.dump new file mode 100644 index 0000000000..777c568a25 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_08_00.dump b/runtime/syntax/testdir/dumps/sh_08_00.dump new file mode 100644 index 0000000000..9be018a85d --- /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|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_08_01.dump b/runtime/syntax/testdir/dumps/sh_08_01.dump new file mode 100644 index 0000000000..45758ccc6e --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_08_02.dump b/runtime/syntax/testdir/dumps/sh_08_02.dump new file mode 100644 index 0000000000..b3289ec5af --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_08_03.dump b/runtime/syntax/testdir/dumps/sh_08_03.dump new file mode 100644 index 0000000000..08ebadf511 --- /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|%| diff --git a/runtime/syntax/testdir/dumps/sh_08_04.dump b/runtime/syntax/testdir/dumps/sh_08_04.dump new file mode 100644 index 0000000000..6f77aaf92e --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_08_99.dump b/runtime/syntax/testdir/dumps/sh_08_99.dump new file mode 100644 index 0000000000..26007b1925 --- /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| diff --git a/runtime/syntax/testdir/dumps/sh_09_00.dump b/runtime/syntax/testdir/dumps/sh_09_00.dump new file mode 100644 index 0000000000..8a51f39460 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_09_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+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|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/sh_09_99.dump b/runtime/syntax/testdir/dumps/sh_09_99.dump new file mode 100644 index 0000000000..b97cfa3955 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_09_99.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+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 +|:|r|e|d|r|a|w| @49|1|9|,|1| @9|A|l@1| diff --git a/runtime/syntax/testdir/input/sh_01.sh b/runtime/syntax/testdir/input/sh_01.sh new file mode 100644 index 0000000000..bd27c99bde --- /dev/null +++ b/runtime/syntax/testdir/input/sh_01.sh @@ -0,0 +1,4 @@ +#! /bin/dash +export `echo 'A=B'` +printenv A +echo a `#foo` b diff --git a/runtime/syntax/testdir/input/sh_02.sh b/runtime/syntax/testdir/input/sh_02.sh new file mode 100644 index 0000000000..81d5613e1d --- /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 diff --git a/runtime/syntax/testdir/input/sh_03.sh b/runtime/syntax/testdir/input/sh_03.sh new file mode 100644 index 0000000000..8dd6dab9c3 --- /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}}}} + diff --git a/runtime/syntax/testdir/input/sh_04.sh b/runtime/syntax/testdir/input/sh_04.sh new file mode 100644 index 0000000000..e9ec5fedb7 --- /dev/null +++ b/runtime/syntax/testdir/input/sh_04.sh @@ -0,0 +1,27 @@ +#!/bin/dash +# 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}} diff --git a/runtime/syntax/testdir/input/sh_05.sh b/runtime/syntax/testdir/input/sh_05.sh new file mode 100644 index 0000000000..87381e12ea --- /dev/null +++ b/runtime/syntax/testdir/input/sh_05.sh @@ -0,0 +1,373 @@ +#!/bin/dash -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[*]} diff --git a/runtime/syntax/testdir/input/sh_06.sh b/runtime/syntax/testdir/input/sh_06.sh new file mode 100644 index 0000000000..cec6cc30af --- /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 diff --git a/runtime/syntax/testdir/input/sh_07.sh b/runtime/syntax/testdir/input/sh_07.sh new file mode 100644 index 0000000000..0e74227bc1 --- /dev/null +++ b/runtime/syntax/testdir/input/sh_07.sh @@ -0,0 +1,93 @@ +#!/bin/dash +# 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 $? diff --git a/runtime/syntax/testdir/input/sh_08.sh b/runtime/syntax/testdir/input/sh_08.sh new file mode 100644 index 0000000000..2b80d43ba6 --- /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 diff --git a/runtime/syntax/testdir/input/sh_09.sh b/runtime/syntax/testdir/input/sh_09.sh new file mode 100644 index 0000000000..e736e06b64 --- /dev/null +++ b/runtime/syntax/testdir/input/sh_09.sh @@ -0,0 +1,19 @@ +#!/bin/dash +# 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 diff --git a/runtime/syntax/testdir/runtest.vim b/runtime/syntax/testdir/runtest.vim index d57341d226..2603a52da0 100644 --- a/runtime/syntax/testdir/runtest.vim +++ b/runtime/syntax/testdir/runtest.vim @@ -5,28 +5,63 @@ " 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('$'), '') +let s:test_run_message = 'Test run on ' .. strftime("%Y %b %d %H:%M:%S") +call append(line('$'), s:test_run_message) +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 @@ -50,8 +85,10 @@ func HandleSwapExists() endif endfunc - -let failed_count = 0 +let ok_count = 0 +let failed_tests = [] +let skipped_count = 0 +let MAX_FAILED_COUNT = 5 for fname in glob('input/*.*', 1, 1) if fname =~ '\~$' " backup file, skip @@ -59,57 +96,151 @@ 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) let lines =<< trim END syntax on + + " extra info for shell variables + func ShellInfo() + let msg = '' + for [key, val] in items(b:) + if key =~ '^is_' + let msg ..= key .. ': ' .. val .. ', ' + endif + endfor + if msg != '' + echomsg msg + endif + endfunc + + au! SwapExists * call HandleSwapExists() + func HandleSwapExists() + " Ignore finding a swap file for the test input, the user might be + " editing it and that's OK. + if expand('') =~ 'input[/\\].*\..*' + let v:swapchoice = 'e' + endif + endfunc END 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', {}) + " close all but the last window + while winnr('$') > 1 + close + endwhile + + " Redraw to make sure that messages are cleared and there is enough space + " for the terminal window. + redraw + + let buf = RunVimInTerminal('-S Xtestscript', {}) + " edit the file only after catching the SwapExists event + call term_sendkeys(buf, ":edit " .. fname .. "\") - " Make a Screendump every 18 lines of the file: root_NN.dump + if filetype == 'sh' + call term_sendkeys(buf, ":call ShellInfo()\") + endif + + " Screendump at the start of the file: failed/root_00.dump + let root_00 = root .. '_00' + call ch_log('First screendump for ' .. fname .. ': failed/' .. root_00 .. '.dump') + let fail = VerifyScreenDump(buf, root_00, {}) + + " clear the shell info if there are not enough lines to cause a scroll + if filetype == 'sh' && linecount <= 19 + call term_sendkeys(buf, ":redraw\") + endif + + " 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') + " redraw here to avoid the following messages to get mixed up with screen + " output. + redraw + + " Add any assert errors to s:messages. + if len(v:errors) > 0 + call extend(s:messages, v:errors) + " Echo the errors here, in case the script aborts or the "messages" file + " is not displayed later. + echomsg 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 - let failed_count += 1 + call Message("Test " .. root .. " FAILED") + + call delete('done/' .. root) + + eval failed_tests->add(root) + if len(failed_tests) > MAX_FAILED_COUNT + call Message('') + call Message('Too many errors, aborting') + endif endif + else + call Message("Test " .. root .. " skipped") + let skipped_count += 1 + endif + + " Append messages to the file "testdir/messages" + call AppendMessages('Input file ' .. fname .. ':') + + if len(failed_tests) > MAX_FAILED_COUNT + break endif endfor " Matching "if 1" at the start. endif -if failed_count > 0 +call Message(s:test_run_message) +call Message('OK: ' .. ok_count) +call Message('FAILED: ' .. len(failed_tests) .. ': ' .. string(failed_tests)) +call Message('skipped: ' .. skipped_count) +call AppendMessages('== SUMMARY ==') + +if len(failed_tests) > 0 " have make report an error cquit endif diff --git a/src/Makefile b/src/Makefile index 0ed097fb47..70d15f0d20 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2351,8 +2351,8 @@ installruntime: installrtbase installmacros installpack installtutor installspel # Also install most of the other runtime files. installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(VIMTARGET) $(DEST_RT) \ $(DEST_HELP) $(DEST_PRINT) $(DEST_COL) \ - $(DEST_SYN) $(DEST_SYN)/shared $(DEST_IND) \ - $(DEST_FTP) $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml \ + $(DEST_SYN) $(DEST_SYN)/shared $(DEST_IND) $(DEST_FTP) \ + $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_AUTO)/zig \ $(DEST_IMPORT) $(DEST_IMPORT)/dist \ $(DEST_PLUG) $(DEST_TUTOR) $(DEST_SPELL) $(DEST_COMP) -$(SHELL) ./installman.sh install $(DEST_MAN) "" $(INSTALLMANARGS) @@ -2436,6 +2436,8 @@ installrtbase: $(HELPSOURCE)/vim.1 $(DEST_VIM) $(VIMTARGET) $(DEST_RT) \ cd $(DEST_AUTO)/dist; chmod $(HELPMOD) *.vim cd $(AUTOSOURCE)/xml; $(INSTALL_DATA) *.vim $(DEST_AUTO)/xml cd $(DEST_AUTO)/xml; chmod $(HELPMOD) *.vim + cd $(AUTOSOURCE)/zig; $(INSTALL_DATA) *.vim $(DEST_AUTO)/zig + cd $(DEST_AUTO)/zig; chmod $(HELPMOD) *.vim # install the standard import files cd $(IMPORTSOURCE)/dist; $(INSTALL_DATA) *.vim $(DEST_IMPORT)/dist cd $(DEST_IMPORT)/dist; chmod $(HELPMOD) *.vim @@ -2675,7 +2677,7 @@ $(DESTDIR)$(exec_prefix) $(DEST_BIN) \ $(DEST_IND) $(DEST_FTP) \ $(DEST_LANG) $(DEST_KMAP) $(DEST_COMP) $(DEST_MACRO) \ $(DEST_PACK) $(DEST_TOOLS) $(DEST_TUTOR) $(DEST_SPELL) \ - $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml \ + $(DEST_AUTO) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_AUTO)/zig \ $(DEST_IMPORT) $(DEST_IMPORT)/dist $(DEST_PLUG): $(MKDIR_P) $@ -chmod $(DIRMOD) $@ @@ -2864,10 +2866,10 @@ uninstall_runtime: -rmdir $(DEST_SYN) $(DEST_IND) -rm -rf $(DEST_FTP)/*.vim $(DEST_FTP)/README.txt $(DEST_FTP)/logtalk.dict -rm -f $(DEST_AUTO)/*.vim $(DEST_AUTO)/README.txt - -rm -f $(DEST_AUTO)/dist/*.vim $(DEST_AUTO)/xml/*.vim + -rm -f $(DEST_AUTO)/dist/*.vim $(DEST_AUTO)/xml/*.vim $(DEST_AUTO)/zig/*.vim -rm -f $(DEST_IMPORT)/dist/*.vim -rm -f $(DEST_PLUG)/*.vim $(DEST_PLUG)/README.txt - -rmdir $(DEST_FTP) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_AUTO) + -rmdir $(DEST_FTP) $(DEST_AUTO)/dist $(DEST_AUTO)/xml $(DEST_AUTO)/zig $(DEST_AUTO) -rmdir $(DEST_IMPORT)/dist $(DEST_IMPORT) -rmdir $(DEST_PLUG) $(DEST_RT) # This will fail when other Vim versions are installed, no worries. diff --git a/src/autocmd.c b/src/autocmd.c index c3b2519d2a..c7348e4b13 100644 --- a/src/autocmd.c +++ b/src/autocmd.c @@ -2019,7 +2019,6 @@ apply_autocmds_group( int did_save_redobuff = FALSE; save_redo_T save_redo; int save_KeyTyped = KeyTyped; - int save_did_emsg; ESTACK_CHECK_DECLARATION; /* @@ -2311,12 +2310,14 @@ apply_autocmds_group( else check_lnums_nested(TRUE); - save_did_emsg = did_emsg; + int save_did_emsg = did_emsg; + int save_ex_pressedreturn = get_pressedreturn(); do_cmdline(NULL, getnextac, (void *)&patcmd, DOCMD_NOWAIT|DOCMD_VERBOSE|DOCMD_REPEAT); did_emsg += save_did_emsg; + set_pressedreturn(save_ex_pressedreturn); if (nesting == 1) // restore cursor and topline, unless they were changed diff --git a/src/buffer.c b/src/buffer.c index 047f37b8b8..b32fb82b04 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -502,7 +502,7 @@ can_unload_buffer(buf_T *buf) * It can be: * 0 buffer becomes hidden * DOBUF_UNLOAD buffer is unloaded - * DOBUF_DELETE buffer is unloaded and removed from buffer list + * DOBUF_DEL buffer is unloaded and removed from buffer list * DOBUF_WIPE buffer is unloaded and really deleted * DOBUF_WIPE_REUSE idem, and add to buf_reuse list * When doing all but the first one on the current buffer, the caller should @@ -5118,14 +5118,6 @@ build_stl_str_hl( STRMOVE(s + 1, p); *s = '<'; - // Fill up for half a double-wide character. - while (++width < maxwidth) - { - s = s + STRLEN(s); - MB_CHAR2BYTES(fillchar, s); - *s = NUL; - } - --n; // count the '<' for (; l < itemcnt; l++) { @@ -5134,6 +5126,14 @@ build_stl_str_hl( else stl_items[l].stl_start = s; } + + // Fill up for half a double-wide character. + while (++width < maxwidth) + { + s = s + STRLEN(s); + MB_CHAR2BYTES(fillchar, s); + *s = NUL; + } } width = maxwidth; } diff --git a/src/crypt.c b/src/crypt.c index daa608ae68..9f0f68a2d4 100644 --- a/src/crypt.c +++ b/src/crypt.c @@ -1267,6 +1267,13 @@ crypt_sodium_buffer_decode( } # if defined(FEAT_SODIUM) || defined(PROTO) + void +crypt_sodium_lock_key(char_u *key) +{ + if (sodium_init() >= 0) + sodium_mlock(key, STRLEN(key)); +} + int crypt_sodium_munlock(void *const addr, const size_t len) { diff --git a/src/errors.h b/src/errors.h index 1c0c5416f1..fcd5487d9c 100644 --- a/src/errors.h +++ b/src/errors.h @@ -1038,6 +1038,8 @@ EXTERN char e_missing_argument_str[] INIT(= N_("E417: Missing argument: %s")); EXTERN char e_illegal_value_str[] INIT(= N_("E418: Illegal value: %s")); +EXTERN char e_im_a_teapot[] + INIT(= N_("E418: I'm a teapot")); EXTERN char e_fg_color_unknown[] INIT(= N_("E419: FG color unknown")); EXTERN char e_bg_color_unknown[] @@ -1271,6 +1273,8 @@ EXTERN char e_is_not_file_or_writable_device[] INIT(= N_("is not a file or writable device")); EXTERN char e_str_is_not_file_or_writable_device[] INIT(= N_("E503: \"%s\" is not a file or writable device")); +EXTERN char e_coffee_currently_not_available[] + INIT(= N_("E503: Coffee is currently not available")); // E504 EXTERN char e_is_read_only_cannot_override_W_in_cpoptions[] INIT(= N_("is read-only (cannot override: \"W\" in 'cpoptions')")); diff --git a/src/evalfunc.c b/src/evalfunc.c index 6d4b72f4dc..cb0c557269 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -45,6 +45,7 @@ static void f_did_filetype(typval_T *argvars, typval_T *rettv); static void f_echoraw(typval_T *argvars, typval_T *rettv); static void f_empty(typval_T *argvars, typval_T *rettv); static void f_environ(typval_T *argvars, typval_T *rettv); +static void f_err_teapot(typval_T *argvars, typval_T *rettv); static void f_escape(typval_T *argvars, typval_T *rettv); static void f_eval(typval_T *argvars, typval_T *rettv); static void f_eventhandler(typval_T *argvars, typval_T *rettv); @@ -1880,6 +1881,8 @@ static funcentry_T global_functions[] = ret_number_bool, f_empty}, {"environ", 0, 0, 0, NULL, ret_dict_string, f_environ}, + {"err_teapot", 0, 1, 0, NULL, + ret_number_bool, f_err_teapot}, {"escape", 2, 2, FEARG_1, arg2_string, ret_string, f_escape}, {"eval", 1, 1, FEARG_1, arg1_string, @@ -2223,7 +2226,7 @@ static funcentry_T global_functions[] = {"matchend", 2, 4, FEARG_1, arg24_match_func, ret_number, f_matchend}, {"matchfuzzy", 2, 3, FEARG_1, arg3_list_string_dict, - ret_list_string, f_matchfuzzy}, + ret_list_any, f_matchfuzzy}, {"matchfuzzypos", 2, 3, FEARG_1, arg3_list_string_dict, ret_list_any, f_matchfuzzypos}, {"matchlist", 2, 4, FEARG_1, arg24_match_func, @@ -3925,6 +3928,33 @@ f_environ(typval_T *argvars UNUSED, typval_T *rettv) #endif } +/* + * "err_teapot()" function + */ + static void +f_err_teapot(typval_T *argvars, typval_T *rettv UNUSED) +{ + if (argvars[0].v_type != VAR_UNKNOWN) + { + if (argvars[0].v_type == VAR_STRING) + { + char_u *s = tv_get_string_strict(&argvars[0]); + if (s == NULL || *skipwhite(s) == NUL) + return; + } + + int err = FALSE; + int do_503 = eval_expr_to_bool(&argvars[0], &err); + if (!err && do_503) + { + emsg(_(e_coffee_currently_not_available)); + return; + } + } + + emsg(_(e_im_a_teapot)); +} + /* * "escape({string}, {chars})" function */ @@ -6494,6 +6524,14 @@ f_has(typval_T *argvars, typval_T *rettv) 1 #else 0 +#endif + }, + {":tearoff", +// same #ifdef as used for ex_tearoff(). +#if defined(FEAT_GUI_MSWIN) && defined(FEAT_MENU) && defined(FEAT_TEAROFF) + 1 +#else + 0 #endif }, {NULL, 0} diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 2cd1696c1a..3581ab6187 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -9856,7 +9856,6 @@ is_loclist_cmd(int cmdidx) } #endif -#if defined(FEAT_TIMERS) || defined(PROTO) int get_pressedreturn(void) { @@ -9868,4 +9867,3 @@ set_pressedreturn(int val) { ex_pressedreturn = val; } -#endif diff --git a/src/memline.c b/src/memline.c index 46e7d8a796..cf2dc8c312 100644 --- a/src/memline.c +++ b/src/memline.c @@ -424,6 +424,24 @@ ml_open(buf_T *buf) } #if defined(FEAT_CRYPT) || defined(PROTO) +/* + * Swapfile encryption is not supported by XChaCha20. If this crypt method is + * used then disable the swapfile, to avoid plain text being written to disk, + * and return TRUE. + * Otherwise return FALSE. + */ + static int +crypt_may_close_swapfile(buf_T *buf, char_u *key, int method) +{ + if (crypt_method_is_sodium(method) && *key != NUL) + { + mf_close_file(buf, TRUE); + buf->b_p_swf = FALSE; + return TRUE; + } + return FALSE; +} + /* * Prepare encryption for "buf" for the current key and method. */ @@ -440,11 +458,10 @@ ml_set_mfp_crypt(buf_T *buf) // Generate a seed and store it in the memfile. sha2_seed(buf->b_ml.ml_mfp->mf_seed, MF_SEED_LEN, NULL, 0); } -#ifdef FEAT_SODIUM +# ifdef FEAT_SODIUM else if (crypt_method_is_sodium(method_nr)) - crypt_sodium_randombytes_buf(buf->b_ml.ml_mfp->mf_seed, - MF_SEED_LEN); -#endif + crypt_sodium_randombytes_buf(buf->b_ml.ml_mfp->mf_seed, MF_SEED_LEN); +# endif } /* @@ -501,16 +518,10 @@ ml_set_crypt_key( return; // no memfile yet, nothing to do old_method = crypt_method_nr_from_name(old_cm); - // Swapfile encryption is not supported by XChaCha20, therefore disable the - // swapfile to avoid plain text being written to disk. - if (crypt_method_is_sodium(crypt_get_method_nr(buf)) - && *buf->b_p_key != NUL) - { - // close the swapfile - mf_close_file(buf, TRUE); - buf->b_p_swf = FALSE; +#ifdef FEAT_CRYPT + if (crypt_may_close_swapfile(buf, buf->b_p_key, crypt_get_method_nr(buf))) return; - } +#endif // First make sure the swapfile is in a consistent state, using the old // key and method. @@ -2494,6 +2505,12 @@ ml_sync_all(int check_file, int check_char) || buf->b_ml.ml_mfp->mf_fd < 0) continue; // no file +#ifdef FEAT_CRYPT + if (crypt_may_close_swapfile(buf, buf->b_p_key, + crypt_get_method_nr(buf))) + continue; +#endif + ml_flush_line(buf); // flush buffered line // flush locked block (void)ml_find_line(buf, (linenr_T)0, ML_FLUSH); @@ -2551,6 +2568,10 @@ ml_preserve(buf_T *buf, int message) emsg(_(e_cannot_preserve_there_is_no_swap_file)); return; } +#ifdef FEAT_CRYPT + if (crypt_may_close_swapfile(buf, buf->b_p_key, crypt_get_method_nr(buf))) + return; +#endif // We only want to stop when interrupted here, not when interrupted // before. @@ -3626,7 +3647,7 @@ adjust_text_props_for_delete( int idx; int line_start; long line_size; - int this_props_len; + int this_props_len = 0; char_u *text; size_t textlen; int found; @@ -5571,6 +5592,9 @@ ml_crypt_prepare(memfile_T *mfp, off_T offset, int reading) if (*key == NUL) return NULL; + if (crypt_may_close_swapfile(buf, key, method_nr)) + return NULL; + if (method_nr == CRYPT_M_ZIP) { // For PKzip: Append the offset to the key, so that we use a different diff --git a/src/move.c b/src/move.c index ea7d380056..22c37ce285 100644 --- a/src/move.c +++ b/src/move.c @@ -2591,17 +2591,20 @@ scroll_cursor_bot(int min_scroll, int set_topbot) (curwin, curwin->w_topline, FALSE); int skip_lines = 0; int width1 = curwin->w_width - curwin_col_off(); - int width2 = width1 + curwin_col_off2(); - // similar formula is used in curs_columns() - if (curwin->w_skipcol > width1) - skip_lines += (curwin->w_skipcol - width1) / width2 + 1; - else if (curwin->w_skipcol > 0) - skip_lines = 1; - - top_plines -= skip_lines; - if (top_plines > curwin->w_height) + if (width1 > 0) { - scrolled += (top_plines - curwin->w_height); + int width2 = width1 + curwin_col_off2(); + // similar formula is used in curs_columns() + if (curwin->w_skipcol > width1) + skip_lines += (curwin->w_skipcol - width1) / width2 + 1; + else if (curwin->w_skipcol > 0) + skip_lines = 1; + + top_plines -= skip_lines; + if (top_plines > curwin->w_height) + { + scrolled += (top_plines - curwin->w_height); + } } } } diff --git a/src/option.c b/src/option.c index ca00772b8d..25dc0a810a 100644 --- a/src/option.c +++ b/src/option.c @@ -2153,10 +2153,14 @@ do_set_option_numeric( ((flags & P_VI_DEF) || cp_val) ? VI_DEFAULT : VIM_DEFAULT]; else if (nextchar == '<') { - // For 'undolevels' NO_LOCAL_UNDOLEVEL means to - // use the global value. if ((long *)varp == &curbuf->b_p_ul && opt_flags == OPT_LOCAL) + // for 'undolevels' NO_LOCAL_UNDOLEVEL means using the global value value = NO_LOCAL_UNDOLEVEL; + else if (opt_flags == OPT_LOCAL + && ((long *)varp == &curwin->w_p_siso + || (long *)varp == &curwin->w_p_so)) + // for 'scrolloff'/'sidescrolloff' -1 means using the global value + value = -1; else value = *(long *)get_varp_scope(&(options[opt_idx]), OPT_GLOBAL); } diff --git a/src/optionstr.c b/src/optionstr.c index 64efbd883d..032c24009c 100644 --- a/src/optionstr.c +++ b/src/optionstr.c @@ -1180,6 +1180,10 @@ did_set_cryptkey(optset_T *args) *curbuf->b_p_cm == NUL ? p_cm : curbuf->b_p_cm); changed_internal(); } +# ifdef FEAT_SODIUM + if (crypt_method_is_sodium(crypt_get_method_nr(curbuf))) + crypt_sodium_lock_key(args->os_newval.string); +# endif return NULL; } diff --git a/src/os_amiga.h b/src/os_amiga.h index 57417137a0..080b01637e 100644 --- a/src/os_amiga.h +++ b/src/os_amiga.h @@ -199,7 +199,7 @@ typedef long off_t; #endif #ifndef DFLT_VDIR -# define DFLT_VDIR "$VIM/vimfiles/view" // default for 'viewdir' +# define DFLT_VDIR "home:vimfiles/view" // default for 'viewdir' #endif #ifndef DFLT_MAXMEM diff --git a/src/os_dos.h b/src/os_dos.h index f1fcbe6b79..f53434824e 100644 --- a/src/os_dos.h +++ b/src/os_dos.h @@ -97,7 +97,7 @@ #endif #ifndef DFLT_VDIR -# define DFLT_VDIR "$VIM/vimfiles/view" // default for 'viewdir' +# define DFLT_VDIR "$HOME/vimfiles/view" // default for 'viewdir' #endif #ifndef DFLT_DIR @@ -105,7 +105,7 @@ #endif #define DFLT_ERRORFILE "errors.err" -#define DFLT_RUNTIMEPATH "$HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/vimfiles/after" +#define DFLT_RUNTIMEPATH "$HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$HOME/vimfiles/after,$VIM/vimfiles/after" #define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after" #define CASE_INSENSITIVE_FILENAME // ignore case when comparing file names diff --git a/src/os_unix.c b/src/os_unix.c index 8f1115a90e..4c3ed15cdd 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -444,7 +444,12 @@ resize_func(int check_only) if (check_only) return do_resize; while (do_resize) + { +#ifdef FEAT_EVAL + ch_log(NULL, "calling handle_resize() in resize_func()"); +#endif handle_resize(); + } return FALSE; } @@ -4172,6 +4177,9 @@ mch_get_shellsize(void) { columns = ws.ws_col; rows = ws.ws_row; +# ifdef FEAT_EVAL + ch_log(NULL, "Got size with TIOCGWINSZ: %ld x %ld", columns, rows); +# endif } } # else // TIOCGWINSZ @@ -4187,6 +4195,9 @@ mch_get_shellsize(void) { columns = ts.ts_cols; rows = ts.ts_lines; +# ifdef FEAT_EVAL + ch_log(NULL, "Got size with TIOCGSIZE: %ld x %ld", columns, rows); +# endif } } # endif // TIOCGSIZE @@ -4200,9 +4211,19 @@ mch_get_shellsize(void) if (columns == 0 || rows == 0 || vim_strchr(p_cpo, CPO_TSIZE) != NULL) { if ((p = (char_u *)getenv("LINES"))) + { rows = atoi((char *)p); +# ifdef FEAT_EVAL + ch_log(NULL, "Got 'lines' from $LINES: %ld", rows); +# endif + } if ((p = (char_u *)getenv("COLUMNS"))) + { columns = atoi((char *)p); +# ifdef FEAT_EVAL + ch_log(NULL, "Got 'columns' from $COLUMNS: %ld", columns); +# endif + } } #ifdef HAVE_TGETENT @@ -4210,7 +4231,12 @@ mch_get_shellsize(void) * 3. try reading "co" and "li" entries from termcap */ if (columns == 0 || rows == 0) + { getlinecol(&columns, &rows); +# ifdef FEAT_EVAL + ch_log(NULL, "Got size from termcap: %ld x %ld", columns, rows); +# endif + } #endif /* @@ -4247,16 +4273,14 @@ mch_report_winsize(int fd, int rows, int cols) ws.ws_xpixel = cols * 5; ws.ws_ypixel = rows * 10; retval = ioctl(tty_fd, TIOCSWINSZ, &ws); - ch_log(NULL, "ioctl(TIOCSWINSZ) %s", - retval == 0 ? "success" : "failed"); + ch_log(NULL, "ioctl(TIOCSWINSZ) %s", retval == 0 ? "success" : "failed"); # elif defined(TIOCSSIZE) struct ttysize ts; ts.ts_cols = cols; ts.ts_lines = rows; retval = ioctl(tty_fd, TIOCSSIZE, &ts); - ch_log(NULL, "ioctl(TIOCSSIZE) %s", - retval == 0 ? "success" : "failed"); + ch_log(NULL, "ioctl(TIOCSSIZE) %s", retval == 0 ? "success" : "failed"); # endif if (tty_fd != fd) close(tty_fd); @@ -6528,7 +6552,12 @@ RealWaitForChar(int fd, long msec, int *check_for_gpm UNUSED, int *interrupted) // Check whether window has been resized, EINTR may be caused by // SIGWINCH. if (do_resize) + { +# ifdef FEAT_EVAL + ch_log(NULL, "calling handle_resize() in RealWaitForChar()"); +# endif handle_resize(); + } // Interrupted by a signal, need to try again. We ignore msec // here, because we do want to check even after a timeout if diff --git a/src/proto/crypt.pro b/src/proto/crypt.pro index d599238593..e3ef693c72 100644 --- a/src/proto/crypt.pro +++ b/src/proto/crypt.pro @@ -26,6 +26,7 @@ void crypt_check_swapfile_curbuf(void); void crypt_check_current_method(void); char_u *crypt_get_key(int store, int twice); void crypt_append_msg(buf_T *buf); +void crypt_sodium_lock_key(char_u *key); int crypt_sodium_munlock(void *const addr, const size_t len); void crypt_sodium_randombytes_buf(void *const buf, const size_t size); int crypt_sodium_init(void); diff --git a/src/testdir/dumps/Test_smoothscroll_zero_bot.dump b/src/testdir/dumps/Test_smoothscroll_zero_bot.dump new file mode 100644 index 0000000000..c0b716fb86 --- /dev/null +++ b/src/testdir/dumps/Test_smoothscroll_zero_bot.dump @@ -0,0 +1,19 @@ +| +0#af5f00255#ffffff0||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +|@+0#4040ff13&||+1#0000000&| +0&&@72 +>@+0#4040ff13&||+1#0000000&| +0&&@72 +|<+3&&| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @59 +| +0&&@74 diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim index fbc2ae0c9e..5581ad2484 100644 --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -92,6 +92,9 @@ set shellslash " Common with all tests on all systems. source setup.vim +" Needed for RunningWithValgrind(). +source shared.vim + " For consistency run all tests with 'nocompatible' set. " This also enables use of line continuation. set nocp viminfo+=nviminfo @@ -219,12 +222,18 @@ unlet name func TestTimeout(id) split test.log call append(line('$'), '') - call append(line('$'), 'Test timed out: ' .. g:testfunc) + + let text = 'Test timed out: ' .. g:testfunc + if g:timeout_start > 0 + let text ..= strftime(' after %s seconds', localtime() - g:timeout_start) + endif + call append(line('$'), text) write - call add(v:errors, 'Test timed out: ' . g:testfunc) + call add(v:errors, text) cquit! 42 endfunc +let g:timeout_start = 0 func RunTheTest(test) let prefix = '' @@ -237,7 +246,9 @@ func RunTheTest(test) if has('timers') " No test should take longer than 30 seconds. If it takes longer we " assume we are stuck and need to break out. - let test_timeout_timer = timer_start(30000, 'TestTimeout') + let test_timeout_timer = + \ timer_start(RunningWithValgrind() ? 50000 : 30000, 'TestTimeout') + let g:timeout_start = localtime() endif " Avoid stopping at the "hit enter" prompt @@ -307,6 +318,7 @@ func RunTheTest(test) if has('timers') call timer_stop(test_timeout_timer) + let g:timeout_start = 0 endif " Clear any autocommands and put back the catch-all for SwapExists. @@ -371,7 +383,7 @@ func RunTheTest(test) " close any split windows while winnr('$') > 1 - bwipe! + noswapfile bwipe! endwhile " May be editing some buffer, wipe it out. Then we may end up in another diff --git a/src/testdir/setup.vim b/src/testdir/setup.vim index ca94bae275..0e5088ad24 100644 --- a/src/testdir/setup.vim +++ b/src/testdir/setup.vim @@ -30,6 +30,10 @@ if 1 " Avoid storing shell history. let $HISTFILE = "" + " Have current $HOME available as $ORIGHOME. $HOME is used for option + " defaults before we get here, and test_mksession checks that. + let $ORIGHOME = $HOME + " Make sure $HOME does not get read or written. " It must exist, gnome tries to create $HOME/.gnome2 let $HOME = getcwd() . '/XfakeHOME' diff --git a/src/testdir/test_crypt.vim b/src/testdir/test_crypt.vim index cb94c183e4..8f1041449c 100644 --- a/src/testdir/test_crypt.vim +++ b/src/testdir/test_crypt.vim @@ -22,11 +22,11 @@ endif func Common_head_only(text) " This was crashing Vim - split Xtest.txt + split Xtest_head.txt call setline(1, a:text) wq - call feedkeys(":split Xtest.txt\foobar\", "tx") - call delete('Xtest.txt') + call feedkeys(":split Xtest_head.txt\foobar\", "tx") + call delete('Xtest_head.txt') call assert_match('VimCrypt', getline(1)) bwipe! endfunc @@ -49,7 +49,7 @@ func Crypt_uncrypt(method) " If the blowfish test fails 'cryptmethod' will be 'zip' now. call assert_equal(a:method, &cryptmethod) - split Xtest.txt + split Xtest_uncrypt.txt let text =<< trim END 01234567890123456789012345678901234567, line 2 foo bar blah, @@ -60,11 +60,11 @@ func Crypt_uncrypt(method) call assert_equal('*****', &key) w! bwipe! - call feedkeys(":split Xtest.txt\foobar\", 'xt') + call feedkeys(":split Xtest_uncrypt.txt\foobar\", 'xt') call assert_equal(text, getline(1, 3)) set key= cryptmethod& bwipe! - call delete('Xtest.txt') + call delete('Xtest_uncrypt.txt') endfunc func Test_crypt_zip() @@ -105,7 +105,7 @@ func Test_crypt_sodium_v2_startup() exe buf .. 'bwipe!' call assert_true(filereadable('Xfoo')) - let buf = RunVimInTerminal('--cmd "set ch=3 cm=xchacha20v2 key=foo" Xfoo', #{rows: 10}) + let buf = RunVimInTerminal('--cmd "set ch=3 cm=xchacha20v2 key=foo" Xfoo', #{wait_for_ruler: 0, rows: 10}) call g:TermWait(buf, g:RunningWithValgrind() ? 1000 : 50) call StopVimInTerminal(buf) @@ -113,17 +113,17 @@ func Test_crypt_sodium_v2_startup() endfunc func Uncrypt_stable(method, crypted_text, key, uncrypted_text) - split Xtest.txt + split Xtest_stable.txt set bin noeol key= fenc=latin1 exe "set cryptmethod=" . a:method call setline(1, a:crypted_text) w! bwipe! set nobin - call feedkeys(":split Xtest.txt\" . a:key . "\", 'xt') + call feedkeys(":split Xtest_stable.txt\" . a:key . "\", 'xt') call assert_equal(a:uncrypted_text, getline(1, len(a:uncrypted_text))) bwipe! - call delete('Xtest.txt') + call delete('Xtest_stable.txt') set key= endfunc @@ -132,13 +132,13 @@ func Uncrypt_stable_xxd(method, hex, key, uncrypted_text, verbose) throw 'Skipped: xxd program missing' endif " use xxd to write the binary content - call system(s:xxd_cmd .. ' -r >Xtest.txt', a:hex) + call system(s:xxd_cmd .. ' -r >Xtest_stable_xxd.txt', a:hex) let cmd = (a:verbose ? ':verbose' : '') .. - \ ":split Xtest.txt\" . a:key . "\" + \ ":split Xtest_stable_xxd.txt\" . a:key . "\" call feedkeys(cmd, 'xt') call assert_equal(a:uncrypted_text, getline(1, len(a:uncrypted_text))) bwipe! - call delete('Xtest.txt') + call delete('Xtest_stable_xxd.txt') set key= endfunc @@ -354,7 +354,7 @@ endfunc func Test_crypt_key_mismatch() set cryptmethod=blowfish - split Xtest.txt + split Xtest_mismatch.txt call setline(1, 'nothing') call feedkeys(":X\foobar\nothing\", 'xt') call assert_match("Keys don't match!", execute(':2messages')) @@ -392,4 +392,24 @@ func Test_crypt_set_key_changes_buffer() call delete('Xtest1.txt') endfunc +func Test_crypt_set_key_segfault() + CheckFeature sodium + + defer delete('Xtest2.txt') + new Xtest2.txt + call setline(1, 'nothing') + set cryptmethod=xchacha20 + set key=foobar + w + new Xtest3 + put ='other content' + setl modified + sil! preserve + bwipe! + + set cryptmethod& + set key= + bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_ex_mode.vim b/src/testdir/test_ex_mode.vim index d03ec8f2d8..59c28f3836 100644 --- a/src/testdir/test_ex_mode.vim +++ b/src/testdir/test_ex_mode.vim @@ -239,6 +239,12 @@ func Test_ex_mode_errors() au! CmdLineEnter delfunc ExEnterFunc + + au CmdlineEnter * : + call feedkeys("gQecho 1\r", 'xt') + + au! CmdlineEnter + quit endfunc diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 41b9106136..e2f2f045bb 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -1,5 +1,16 @@ " Test :setfiletype +func Test_backup_strip() + filetype on + let fname = 'Xdetect.js~~~~~~~~~~~' + call writefile(['one', 'two', 'three'], fname, 'D') + exe 'edit ' .. fname + call assert_equal('javascript', &filetype) + + bwipe! + filetype off +endfunc + func Test_detection() filetype on augroup filetypedetect @@ -495,6 +506,7 @@ def s:GetFilenameChecks(): dict> pccts: ['file.g'], pcmk: ['file.pcmk'], pdf: ['file.pdf'], + pem: ['file.pem', 'file.cer', 'file.crt', 'file.csr'], perl: ['file.plx', 'file.al', 'file.psgi', 'gitolite.rc', '.gitolite.rc', 'example.gitolite.rc', '.latexmkrc', 'latexmkrc'], pf: ['pf.conf'], pfmain: ['main.cf', 'main.cf.proto'], @@ -590,7 +602,7 @@ def s:GetFilenameChecks(): dict> services: ['/etc/services', 'any/etc/services'], setserial: ['/etc/serial.conf', 'any/etc/serial.conf'], sexplib: ['file.sexp'], - sh: ['.bashrc', 'file.bash', '/usr/share/doc/bash-completion/filter.sh', '/etc/udev/cdsymlinks.conf', 'any/etc/udev/cdsymlinks.conf'], + sh: ['.bashrc', '.bash_profile', '.bash-profile', '.bash_logout', '.bash-logout', '.bash_aliases', '.bash-aliases', '/tmp/bash-fc-3Ozjlw', '/tmp/bash-fc.3Ozjlw', 'PKGBUILD', 'APKBUILD', 'file.bash', '/usr/share/doc/bash-completion/filter.sh', '/etc/udev/cdsymlinks.conf', 'any/etc/udev/cdsymlinks.conf'], sieve: ['file.siv', 'file.sieve'], sil: ['file.sil'], simula: ['file.sim'], @@ -790,6 +802,7 @@ def s:GetFilenameChecks(): dict> zimbu: ['file.zu'], zimbutempl: ['file.zut'], zir: ['file.zir'], + zserio: ['file.zs'], zsh: ['.zprofile', '/etc/zprofile', '.zfbfmarks', 'file.zsh', '.zcompdump', '.zlogin', '.zlogout', '.zshenv', '.zshrc', '.zcompdump-file', '.zlog', '.zlog-file', '.zsh', '.zsh-file', @@ -802,7 +815,7 @@ enddef def s:GetFilenameCaseChecks(): dict> return { modula2: ['file.DEF'], - bzl: ['file.BUILD', 'BUILD'], + bzl: ['file.BUILD', 'BUILD', 'BUCK'], } enddef diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index a17c19e179..750c4a2bf1 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -30,10 +30,13 @@ func Test_has() call assert_equal(1, or(has('ttyin'), 1)) call assert_equal(0, and(has('ttyout'), 0)) call assert_equal(1, has('multi_byte_encoding')) + call assert_equal(0, has(':tearoff')) endif call assert_equal(1, has('vcon', 1)) call assert_equal(1, has('mouse_gpm_enabled', 1)) + call assert_equal(has('gui_win32') && has('menu'), has(':tearoff')) + call assert_equal(0, has('nonexistent')) call assert_equal(0, has('nonexistent', 1)) @@ -86,6 +89,17 @@ func Test_empty() call assert_fails("call empty(test_unknown())", ['E340:', 'E685:']) endfunc +func Test_err_teapot() + call assert_fails('call err_teapot()', "E418: I'm a teapot") + call assert_fails('call err_teapot(0)', "E418: I'm a teapot") + call assert_fails('call err_teapot(v:false)', "E418: I'm a teapot") + + call assert_fails('call err_teapot("1")', "E503: Coffee is currently not available") + call assert_fails('call err_teapot(v:true)', "E503: Coffee is currently not available") + let expr = 1 + call assert_fails('call err_teapot(expr)', "E503: Coffee is currently not available") +endfunc + func Test_test_void() call assert_fails('echo 1 == test_void()', 'E1031:') call assert_fails('echo 1.0 == test_void()', 'E1031:') diff --git a/src/testdir/test_mksession.vim b/src/testdir/test_mksession.vim index 1ce5a28f5e..aa291821ec 100644 --- a/src/testdir/test_mksession.vim +++ b/src/testdir/test_mksession.vim @@ -1262,4 +1262,18 @@ func Test_mkview_manual_fold() bw! endfunc +" Test default 'viewdir' value +func Test_mkview_default_home() + if has('win32') + " use escape() to handle backslash path separators + call assert_match('^' .. escape($ORIGHOME, '\') .. '/vimfiles', &viewdir) + elseif has('unix') + call assert_match('^' .. $ORIGHOME .. '/.vim', &viewdir) + elseif has('amiga') + call assert_match('^home:vimfiles', &viewdir) + elseif has('mac') + call assert_match('^' .. $VIM .. '/vimfiles', &viewdir) + endif +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index d49fa9bcef..63c2f9f78a 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -954,12 +954,16 @@ func Test_local_scrolloff() wincmd w call assert_equal(5, &so) wincmd w + call assert_equal(3, &so) setlocal so< call assert_equal(5, &so) + setglob so=8 + call assert_equal(8, &so) + call assert_equal(-1, &l:so) setlocal so=0 call assert_equal(0, &so) setlocal so=-1 - call assert_equal(5, &so) + call assert_equal(8, &so) call assert_equal(7, &siso) setlocal siso=3 @@ -967,12 +971,16 @@ func Test_local_scrolloff() wincmd w call assert_equal(7, &siso) wincmd w + call assert_equal(3, &siso) setlocal siso< call assert_equal(7, &siso) + setglob siso=4 + call assert_equal(4, &siso) + call assert_equal(-1, &l:siso) setlocal siso=0 call assert_equal(0, &siso) setlocal siso=-1 - call assert_equal(7, &siso) + call assert_equal(4, &siso) close set so& diff --git a/src/testdir/test_scroll_opt.vim b/src/testdir/test_scroll_opt.vim index 460416665d..81670cdd7a 100644 --- a/src/testdir/test_scroll_opt.vim +++ b/src/testdir/test_scroll_opt.vim @@ -833,4 +833,26 @@ func Test_smoothscroll_multi_skipcol() call StopVimInTerminal(buf) endfunc +" this was dividing by zero bug in scroll_cursor_bot +func Test_smoothscroll_zero_width_scroll_cursor_bot() + CheckScreendump + + let lines =<< trim END + silent normal yy + silent normal 19p + set cpoptions+=n + vsplit + vertical resize 0 + set foldcolumn=1 + set number + set smoothscroll + silent normal 20G + END + call writefile(lines, 'XSmoothScrollZeroBot', 'D') + let buf = RunVimInTerminal('-u NONE -S XSmoothScrollZeroBot', #{rows: 19}) + call VerifyScreenDump(buf, 'Test_smoothscroll_zero_bot', {}) + + call StopVimInTerminal(buf) +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_tabline.vim b/src/testdir/test_tabline.vim index 09adf2f68f..3cba2aab47 100644 --- a/src/testdir/test_tabline.vim +++ b/src/testdir/test_tabline.vim @@ -133,7 +133,7 @@ func Test_tabline_empty_group() tabnew redraw! - tabclose + bw! set tabline= endfunc @@ -202,4 +202,28 @@ func Test_tabline_showcmd() call StopVimInTerminal(buf) endfunc +func TruncTabLine() + return '%1T口口%2Ta' .. repeat('b', &columns - 4) .. '%999X%#TabLine#c' +endfunc + +" Test 'tabline' with truncated double-width label at the start. +func Test_tabline_truncated_double_width() + tabnew + redraw + call assert_match('X$', Screenline(1)) + let attr_TabLineFill = screenattr(1, &columns - 1) + let attr_TabLine = screenattr(1, &columns) + call assert_notequal(attr_TabLine, attr_TabLineFill) + + set tabline=%!TruncTabLine() + redraw + call assert_equal(' but got list', 'E1206: Dictionary required for argument 3']) matchfuzzy(['abc', 'xyz'], '')->assert_equal([]) + var lines =<< trim END + var items = [{name: 'xyz', id: 1}, {name: 'def', id: 2}, + {name: 'abc', id: 3}] + var l: list> = matchfuzzy(items, 'abc', {key: 'name'}) + assert_equal([{name: 'abc', id: 3}], l) + var k: list = matchfuzzy(['one', 'two', 'who'], 'o') + assert_equal(['one', 'two', 'who'], k) + END + v9.CheckDefAndScriptSuccess(lines) enddef def Test_matchfuzzypos() @@ -2828,6 +2837,15 @@ def Test_matchfuzzypos() v9.CheckDefAndScriptFailure(['matchfuzzypos([], 1)'], ['E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2']) v9.CheckDefAndScriptFailure(['matchfuzzypos([], "a", [])'], ['E1013: Argument 3: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 3']) matchfuzzypos(['abc', 'xyz'], '')->assert_equal([[], [], []]) + var lines =<< trim END + var items = [{name: 'xyz', id: 1}, {name: 'def', id: 2}, + {name: 'abc', id: 3}] + var l: list> = matchfuzzypos(items, 'abc', {key: 'name'})[0] + assert_equal([{name: 'abc', id: 3}], l) + var k: list = matchfuzzypos(['one', 'two', 'who'], 'o')[0] + assert_equal(['one', 'two', 'who'], k) + END + v9.CheckDefAndScriptSuccess(lines) enddef def Test_matchlist() diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 00b843206e..f1acdf38ef 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -838,6 +838,23 @@ def Test_class_member() END v9.CheckScriptSuccess(lines) + # using static class member twice + lines =<< trim END + vim9script + + class HTML + static author: string = 'John Doe' + + static def MacroSubstitute(s: string): string + return substitute(s, '{{author}}', author, 'gi') + enddef + endclass + + assert_equal('some text', HTML.MacroSubstitute('some text')) + assert_equal('some text', HTML.MacroSubstitute('some text')) + END + v9.CheckScriptSuccess(lines) + # access private member in lambda lines =<< trim END vim9script diff --git a/src/version.c b/src/version.c index 6cc406e71b..81ac53d048 100644 --- a/src/version.c +++ b/src/version.c @@ -710,6 +710,78 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1676, +/**/ + 1675, +/**/ + 1674, +/**/ + 1673, +/**/ + 1672, +/**/ + 1671, +/**/ + 1670, +/**/ + 1669, +/**/ + 1668, +/**/ + 1667, +/**/ + 1666, +/**/ + 1665, +/**/ + 1664, +/**/ + 1663, +/**/ + 1662, +/**/ + 1661, +/**/ + 1660, +/**/ + 1659, +/**/ + 1658, +/**/ + 1657, +/**/ + 1656, +/**/ + 1655, +/**/ + 1654, +/**/ + 1653, +/**/ + 1652, +/**/ + 1651, +/**/ + 1650, +/**/ + 1649, +/**/ + 1648, +/**/ + 1647, +/**/ + 1646, +/**/ + 1645, +/**/ + 1644, +/**/ + 1643, +/**/ + 1642, +/**/ + 1641, /**/ 1640, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index 921e2ca053..eb663a1096 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -3967,8 +3967,8 @@ exec_instructions(ectx_T *ectx) if (GA_GROW_FAILS(&ectx->ec_stack, 1)) goto theend; classmember_T *cm = &iptr->isn_arg.classmember; - *STACK_TV_BOT(0) = - cm->cm_class->class_members_tv[cm->cm_idx]; + copy_tv(cm->cm_class->class_members_tv + cm->cm_idx, + STACK_TV_BOT(0)); ++ectx->ec_stack.ga_len; } break;