(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (C {(source)} {(test/common.sh)}) (FuncDef name: osh-to-oil body: (BraceGroup children: [(C {($ VSub_Name '$OSH')} {(--fix)} {(DQ ($ VSub_At '$@'))})] spids: [41] ) spids: [37 40] ) (FuncDef name: osh0-oil3 body: (BraceGroup children: [ (AndOr ops: [Op_DPipe] children: [ (Pipeline children: [ (C {(osh-to-oil)} {(DQ ($ VSub_At '$@'))}) (C {(diff)} {(-u)} {(/dev/fd/3)} {(-)}) ] negated: F ) (C {(fail)}) ] ) ] spids: [62] ) spids: [58 61] ) (FuncDef name: args-vars body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo one "$@" two\n')} do_expansion: False here_end: OSH was_filled: T spids: [97] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo one @Argv two\n')} do_expansion: False here_end: OIL was_filled: T spids: [103] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo one $* "__$*__" $@ two\n')} do_expansion: False here_end: OSH was_filled: T spids: [117] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo one $ifsjoin(Argv) "__$ifsjoin(Argv)__" $ifsjoin(Argv) two\n')} do_expansion: False here_end: OIL was_filled: T spids: [123] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $? $#\n')} do_expansion: False here_end: OSH was_filled: T spids: [133] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $Status $Argc\n')} do_expansion: False here_end: OIL was_filled: T spids: [139] ) ] ) ] spids: [92] ) spids: [88 91] ) (FuncDef name: unquote-subs body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo "$1" "$foo"\n')} do_expansion: False here_end: OSH was_filled: T spids: [157] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $1 $foo\n')} do_expansion: False here_end: OIL was_filled: T spids: [163] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo "${foo}"\n')} do_expansion: False here_end: OSH was_filled: T spids: [173] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(foo)\n')} do_expansion: False here_end: OIL was_filled: T spids: [179] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo "$(echo hi)"\n')} do_expansion: False here_end: OSH was_filled: T spids: [189] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $[echo hi]\n')} do_expansion: False here_end: OIL was_filled: T spids: [195] ) ] ) ] spids: [152] ) spids: [148 151] ) (FuncDef name: special-vars body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${?} ${#} ${@}\n')} do_expansion: False here_end: OSH was_filled: T spids: [221] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(Status) $(len(Argv)) @Argv\n')} do_expansion: False here_end: OIL was_filled: T spids: [227] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $9 $10 ${10} ${11}\n')} do_expansion: False here_end: OSH was_filled: T spids: [246] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $9 $10 $10 $11 # Rule is changed\n')} do_expansion: False here_end: OIL was_filled: T spids: [252] ) ] ) ] spids: [208] ) spids: [204 207] ) (FuncDef name: arg-array body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $@ $* "$@" "$*" "__$@__" "__$*__"\n')} do_expansion: False here_end: OSH was_filled: T spids: [291] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $Status $len(Argv) @Argv\n')} do_expansion: False here_end: OIL was_filled: T spids: [297] ) ] ) ] spids: [265] ) spids: [261 264] ) (FuncDef name: bracket-ops body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${a[1]} ${a[@]} ${PIPESTATUS[@]} ${BASH_REMATCH[@]}\n')} do_expansion: False here_end: OSH was_filled: T spids: [315] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $a[1] @a $PipeStatus @Match\n')} do_expansion: False here_end: OIL was_filled: T spids: [321] ) ] ) ] spids: [310] ) spids: [306 309] ) (FuncDef name: prefix-ops body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${#s} ${#a[@]}\n')} do_expansion: False here_end: OSH was_filled: T spids: [342] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $len(s) $len(a)\n')} do_expansion: False here_end: OIL was_filled: T spids: [348] ) ] ) ] spids: [337] ) spids: [333 336] ) (FuncDef name: suffix-ops body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${s:-3} ${s##suffix}\n')} do_expansion: False here_end: OSH was_filled: T spids: [366] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo $(s or 3) $s.trimRight('suffix')\n")} do_expansion: False here_end: OIL was_filled: T spids: [372] ) ] ) ] spids: [361] ) spids: [357 360] ) (FuncDef name: slice body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${a:1:2} ${a[@]:1:2}\n')} do_expansion: False here_end: OSH was_filled: T spids: [390] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $a[1:3] @a[1:3]\n')} do_expansion: False here_end: OIL was_filled: T spids: [396] ) ] ) ] spids: [385] ) spids: [381 384] ) (FuncDef name: patsub body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${s/foo/bar} ${s//foo/bar}\n')} do_expansion: False here_end: OSH was_filled: T spids: [420] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo $s.replace('foo', 'bar') $s.replace('foo', 'bar', :ALL)\n")} do_expansion: False here_end: OIL was_filled: T spids: [426] ) ] ) ] spids: [415] ) spids: [411 414] ) (FuncDef name: simple-command body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo hi\n')} do_expansion: False here_end: OSH was_filled: T spids: [444] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo hi\n')} do_expansion: False here_end: OIL was_filled: T spids: [450] ) ] ) ] spids: [439] ) spids: [435 438] ) (FuncDef name: line-breaks body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo one \\\n') (' two three \\\n') (' four\n')} do_expansion: False here_end: OSH was_filled: T spids: [468] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo one \\\n') (' two three \\\n') (' four\n')} do_expansion: False here_end: OIL was_filled: T spids: [474] ) ] ) ] spids: [463] ) spids: [459 462] ) (FuncDef name: bracket-builtin body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('[ ! -z "$foo" ] || die\n')} do_expansion: False here_end: OSH was_filled: T spids: [492] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('test ! -z $foo || die\n')} do_expansion: False here_end: OIL was_filled: T spids: [498] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('if [ "$foo" -eq 3 ]; then\n') (' echo yes\n') ('fi\n')} do_expansion: False here_end: OSH was_filled: T spids: [508] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('if test $foo -eq 3 {\n') (' echo yes\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [514] ) ] ) ] spids: [487] ) spids: [483 486] ) (FuncDef name: builtins body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('. lib.sh\n')} do_expansion: False here_end: OSH was_filled: T spids: [532] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('source lib.sh\n')} do_expansion: False here_end: OIL was_filled: T spids: [538] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('[ -f lib.sh ] && . lib.sh\n')} do_expansion: False here_end: OSH was_filled: T spids: [548] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('test -f lib.sh && source lib.sh\n')} do_expansion: False here_end: OIL was_filled: T spids: [554] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('set -o errexit\n')} do_expansion: False here_end: OSH was_filled: T spids: [580] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('setoption +errexit\n')} do_expansion: False here_end: OIL was_filled: T spids: [586] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {("echo '\\n'\n") ("echo -e '\\n'\n") ("echo -e -n '\\n'\n")} do_expansion: False here_end: OSH was_filled: T spids: [596] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo '\\\\n'\n") ("echo '\\n'\n") ("write '\\n'\n")} do_expansion: False here_end: OIL was_filled: T spids: [602] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {("eval 'echo $?'\n")} do_expansion: False here_end: OSH was_filled: T spids: [612] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("oshEval('echo $?') # call into osh!\n")} do_expansion: False here_end: OIL was_filled: T spids: [618] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('exec 1>&2 # stdout to stderr from now on\n')} do_expansion: False here_end: OSH was_filled: T spids: [628] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('redir !1 > !2\n')} do_expansion: False here_end: OIL was_filled: T spids: [634] ) ] ) ] spids: [527] ) spids: [523 526] ) (FuncDef name: export-readonly body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('export FOO\n') ('export BAR=bar\n')} do_expansion: False here_end: OSH was_filled: T spids: [666] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('setenv FOO\n') ("BAR = 'bar'\n") ('setenv BAR\n')} do_expansion: False here_end: OIL was_filled: T spids: [672] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('readonly FOO\n') ('readonly BAR=bar\n')} do_expansion: False here_end: OSH was_filled: T spids: [682] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('freeze FOO\n') ("BAR = 'bar'\n")} do_expansion: False here_end: OIL was_filled: T spids: [688] ) ] ) ] spids: [657] ) spids: [653 656] ) (FuncDef name: redirect body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('cat >out.txt <in.txt\n')} do_expansion: False here_end: OSH was_filled: T spids: [706] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat >out.txt <in.txt\n')} do_expansion: False here_end: OIL was_filled: T spids: [712] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('cat >out.txt 2> err.txt\n')} do_expansion: False here_end: OSH was_filled: T spids: [722] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat >out.txt !2 > err.txt\n')} do_expansion: False here_end: OIL was_filled: T spids: [728] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo "error message" >& 2 \n')} do_expansion: False here_end: OSH was_filled: T spids: [738] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "error message" > !2 \n')} do_expansion: False here_end: OIL was_filled: T spids: [744] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo "error message" 1>&2 \n')} do_expansion: False here_end: OSH was_filled: T spids: [754] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "error message" !1 > !2 \n')} do_expansion: False here_end: OIL was_filled: T spids: [760] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('cat >${out} <${in}\n')} do_expansion: False here_end: OSH was_filled: T spids: [770] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat >$(out) <$(in)\n')} do_expansion: False here_end: OIL was_filled: T spids: [776] ) ] ) ] spids: [701] ) spids: [697 700] ) (FuncDef name: here-doc body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('cat <<ONE\n') ('echo $hi\n') ('ONE\n')} do_expansion: False here_end: OSH was_filled: T spids: [795] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat << """\n') ('echo $hi\n') ('"""\n')} do_expansion: False here_end: OIL was_filled: T spids: [801] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {("cat <<'ONE'\n") ('single quoted\n') ('ONE\n')} do_expansion: False here_end: OSH was_filled: T spids: [811] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("cat << '''\n") ('single quoted\n') ("'''\n")} do_expansion: False here_end: OIL was_filled: T spids: [817] ) ] ) ] spids: [790] ) spids: [786 789] ) (FuncDef name: more-env body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo 1\n') ('FOO=bar BAR=baz echo 2\n') ('echo 2\n')} do_expansion: False here_end: OSH was_filled: T spids: [840] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo 1\n') ('env FOO=bar BAR=baz echo 2\n') ('echo 2\n')} do_expansion: False here_end: OIL was_filled: T spids: [846] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('FOO="${bar}" BAR="$(echo hi)" echo 2\n')} do_expansion: False here_end: OSH was_filled: T spids: [856] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('env FOO=$(bar) BAR=$[echo hi] echo 2\n')} do_expansion: False here_end: OIL was_filled: T spids: [862] ) ] ) ] spids: [835] ) spids: [831 834] ) (FuncDef name: assign-common body: (BraceGroup children: [ (C {(osh-to-oil)} {(--fix)} {(-c)} {(SQ <'foo=bar spam="$var"'>)}) (C {(osh-to-oil)} {(--fix)} {(-c)} {(SQ <'readonly foo=bar spam="${var}"'>)}) (C {(osh-to-oil)} {(--fix)} {(-c)} {(SQ <'export foo=bar spam="${var}/const"'>)}) (C {(osh-to-oil)} {(--fix)} {(-c)} {(SQ <'f() { foo=bar spam=${var:-default}; }'>)}) (C {(osh-to-oil)} {(--fix)} {(-c)} {(SQ <'f() { local foo=bar spam=eggs; foo=mutated; g=new; }'>)} ) ] spids: [875] ) spids: [871 874] ) (FuncDef name: assign body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('local foo=$(basename $1)\n')} do_expansion: False here_end: OSH was_filled: T spids: [973] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('var foo = $[basename $1]\n')} do_expansion: False here_end: OIL was_filled: T spids: [979] ) ] ) (ControlFlow token:<ControlFlow_Return return>) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('local one=1 two three=3\n')} do_expansion: False here_end: OSH was_filled: T spids: [993] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("one = '1', two = '', three = '3'\n")} do_expansion: False here_end: OIL was_filled: T spids: [999] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('myStr=one\n') ('readonly myConstStr=two\n')} do_expansion: False here_end: OSH was_filled: T spids: [1009] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("var myStr = 'hi'\n") ("myConstStr = 'hi'\n")} do_expansion: False here_end: OIL was_filled: T spids: [1015] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('f() {\n') (' local myStr=one\n') (' readonly myConstStr=two\n') ('}\n')} do_expansion: False here_end: OSH was_filled: T spids: [1025] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('proc f {\n') (" var myStr = 'hi'\n") (" myConstStr = 'hi'\n") ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1031] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('f() {\n') (' local myStr=$1\n') (' readonly myConstStr=$((1 + 2))\n') ('}\n')} do_expansion: False here_end: OSH was_filled: T spids: [1041] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('proc f {\n') (' var myStr = $1\n') (' myConstStr = $(1 + 2)\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1047] ) ] ) ] spids: [968] ) spids: [964 967] ) (FuncDef name: array-literal body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('a=(1 2 3)\n')} do_expansion: False here_end: OSH was_filled: T spids: [1065] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('var a = [1 2 3]\n')} do_expansion: False here_end: OIL was_filled: T spids: [1071] ) ] ) ] spids: [1060] ) spids: [1056 1059] ) (FuncDef name: pipeline body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('ls | sort | uniq -c | sort -n -r\n')} do_expansion: False here_end: OSH was_filled: T spids: [1089] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('ls | sort | uniq -c | sort -n -r\n')} do_expansion: False here_end: OIL was_filled: T spids: [1095] ) ] ) (ControlFlow token:<ControlFlow_Return return>) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('! echo hi | wc\n')} do_expansion: False here_end: OSH was_filled: T spids: [1165] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('not -- echo hi | wc\n')} do_expansion: False here_end: OIL was_filled: T spids: [1171] ) ] ) ] spids: [1084] ) spids: [1080 1083] ) (FuncDef name: and-or body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('ls && echo "$@" || die "foo"\n')} do_expansion: False here_end: OSH was_filled: T spids: [1189] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('ls && echo @Argv || die "foo"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1195] ) ] ) ] spids: [1184] ) spids: [1180 1183] ) (FuncDef name: posix-func body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('func1() {\n') (' echo func1\n') (' func2()\n') (' {\n') (' echo func2\n') (' }\n') ('}\n') } do_expansion: False here_end: OSH was_filled: T spids: [1213] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('proc func1 {\n') (' echo func1\n') (' proc func2\n') (' {\n') (' echo func2\n') (' }\n') ('}\n') } do_expansion: False here_end: OIL was_filled: T spids: [1219] ) ] ) ] spids: [1208] ) spids: [1204 1207] ) (FuncDef name: subshell-func body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('subshell-func() (\n') (' echo subshell\n') (')\n')} do_expansion: False here_end: OSH was_filled: T spids: [1237] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('proc subshell-func {\n') (' shell { \n') (' echo subshell\n') (' }\n') ('}\n') } do_expansion: False here_end: OIL was_filled: T spids: [1243] ) ] ) ] spids: [1232] ) spids: [1228 1231] ) (FuncDef name: ksh-func body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('function func1 { # no parens\n') (' echo func1\n') (' function func2()\n') (' {\n') (' echo func2\n') (' }\n') ('}\n') } do_expansion: False here_end: OSH was_filled: T spids: [1261] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('proc func1 { # no parens\n') (' echo func1\n') (' proc func2\n') (' {\n') (' echo func2\n') (' }\n') ('}\n') } do_expansion: False here_end: OIL was_filled: T spids: [1267] ) ] ) ] spids: [1256] ) spids: [1252 1255] ) (FuncDef name: for-loop body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('for x in a b c \\\n') (' d e f; do\n') (' echo $x\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1285] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('for x in [a b c \\\n') (' d e f] {\n') (' echo $x\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1291] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('for x in a b c \\\n') (' d e f\n') ('do\n') (' echo $x\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1301] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('for x in [a b c \\\n') (' d e f]\n') ('{\n') (' echo $x\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1307] ) ] ) ] spids: [1280] ) spids: [1276 1279] ) (FuncDef name: empty-for-loop body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('for x in \n') ('do\n') (' echo $x\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1325] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('for x in []\n') ('{\n') (' echo $x\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1331] ) ] ) ] spids: [1320] ) spids: [1316 1319] ) (FuncDef name: args-for-loop body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('for x; do\n') (' echo $x\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1349] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('for x in @Argv {\n') (' echo $x\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1355] ) ] ) (ControlFlow token:<ControlFlow_Return return>) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('for x\n') ('do\n') (' echo $x\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1383] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('for x in @Argv\n') ('{\n') (' echo $x\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1389] ) ] ) ] spids: [1344] ) spids: [1340 1343] ) (FuncDef name: while-loop body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('while read line; do\n') (' echo $line\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1407] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('while read line {\n') (' echo $line\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1413] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('while read \\\n') (' line; do\n') (' echo $line\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [1423] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('while read \\\n') (' line {\n') (' echo $line\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1429] ) ] ) ] spids: [1402] ) spids: [1398 1401] ) (FuncDef name: if_ body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('if true; then\n') (' echo yes\n') ('fi\n')} do_expansion: False here_end: OSH was_filled: T spids: [1447] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('if true {\n') (' echo yes\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1453] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('if true\n') ('then\n') (' echo yes\n') ('fi\n')} do_expansion: False here_end: OSH was_filled: T spids: [1463] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('if true\n') ('{\n') (' echo yes\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1469] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('if true; then\n') (' echo yes\n') ('elif false; then\n') (' echo elif\n') ('elif spam; then\n') (' echo elif\n') ('else\n') (' echo no\n') ('fi\n') } do_expansion: False here_end: OSH was_filled: T spids: [1479] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('if true {\n') (' echo yes\n') ('} elif false {\n') (' echo elif\n') ('} elif spam {\n') (' echo elif\n') ('} else {\n') (' echo no\n') ('}\n') } do_expansion: False here_end: OIL was_filled: T spids: [1485] ) ] ) ] spids: [1442] ) spids: [1438 1441] ) (FuncDef name: case_ body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('case $var in\n') (' foo|bar)\n') (' [ -f foo ] && echo file\n') (' ;;\n') (' *)\n') (' echo default\n') (' ;;\n') ('esac\n') } do_expansion: False here_end: OSH was_filled: T spids: [1503] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('matchstr $var {\n') (' foo|bar {\n') (' test -f foo && echo file\n') (' }\n') (' * {\n') (' echo default\n') (' }\n') ('}\n') } do_expansion: False here_end: OIL was_filled: T spids: [1509] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('case "$var" in\n') (' *)\n') (' echo foo\n') (' echo bar # no dsemi\n') ('esac\n') } do_expansion: False here_end: OSH was_filled: T spids: [1519] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('matchstr $var {\n') (' * {\n') (' echo foo\n') (' echo bar # no dsemi\n') (' }\n') ('}\n') } do_expansion: False here_end: OIL was_filled: T spids: [1525] ) ] ) ] spids: [1498] ) spids: [1494 1497] ) (FuncDef name: subshell body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('(echo hi;)\n')} do_expansion: False here_end: OSH was_filled: T spids: [1543] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('shell {echo hi;}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1549] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('(echo hi)\n')} do_expansion: False here_end: OSH was_filled: T spids: [1559] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('shell {echo hi}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1565] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('(echo hi; echo bye)\n')} do_expansion: False here_end: OSH was_filled: T spids: [1575] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('shell {echo hi; echo bye}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1581] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('( (echo hi; echo bye ) )\n')} do_expansion: False here_end: OSH was_filled: T spids: [1591] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('shell { shell {echo hi; echo bye } }\n')} do_expansion: False here_end: OIL was_filled: T spids: [1597] ) ] ) ] spids: [1538] ) spids: [1534 1537] ) (FuncDef name: brace-group body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('{ echo hi; }\n')} do_expansion: False here_end: OSH was_filled: T spids: [1615] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('do { echo hi; }\n')} do_expansion: False here_end: OIL was_filled: T spids: [1621] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('{ echo hi; echo bye; }\n')} do_expansion: False here_end: OSH was_filled: T spids: [1631] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('do { echo hi; echo bye; }\n')} do_expansion: False here_end: OIL was_filled: T spids: [1637] ) ] ) ] spids: [1610] ) spids: [1606 1609] ) (FuncDef name: fork body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('sleep 1&\n')} do_expansion: False here_end: OSH was_filled: T spids: [1655] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('fork sleep 1\n')} do_expansion: False here_end: OIL was_filled: T spids: [1661] ) ] ) ] spids: [1650] ) spids: [1646 1649] ) (FuncDef name: var-sub body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $foo\n')} do_expansion: False here_end: OSH was_filled: T spids: [1679] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $foo\n')} do_expansion: False here_end: OIL was_filled: T spids: [1685] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $foo ${bar} "__${bar}__"\n')} do_expansion: False here_end: OSH was_filled: T spids: [1695] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $foo $(bar) "__$(bar)__"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1701] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo ${foo:-default}\n')} do_expansion: False here_end: OSH was_filled: T spids: [1711] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo $(foo or 'default')\n")} do_expansion: False here_end: OIL was_filled: T spids: [1717] ) ] ) ] spids: [1674] ) spids: [1670 1673] ) (FuncDef name: command-sub body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $(echo hi)\n') ('echo `echo hi`\n')} do_expansion: False here_end: OSH was_filled: T spids: [1735] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $[echo hi]\n') ('echo $[echo hi]\n')} do_expansion: False here_end: OIL was_filled: T spids: [1741] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo "__$(echo hi)__"\n')} do_expansion: False here_end: OSH was_filled: T spids: [1751] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "__$[echo hi]__"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1757] ) ] ) ] spids: [1730] ) spids: [1726 1729] ) (FuncDef name: proc-sub body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo <(echo hi) >(echo hi)\n')} do_expansion: False here_end: OSH was_filled: T spids: [1776] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $<[echo hi] $>[echo hi]\n')} do_expansion: False here_end: OIL was_filled: T spids: [1782] ) ] ) ] spids: [1771] ) spids: [1767 1770] ) (FuncDef name: arith-sub body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo __$(( 1+ 2 ))__\n')} do_expansion: False here_end: OSH was_filled: T spids: [1800] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo __$( 1+ 2 )__\n')} do_expansion: False here_end: OIL was_filled: T spids: [1806] ) ] ) (ControlFlow token:<ControlFlow_Return return>) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $[ 1+ 2 ]\n')} do_expansion: False here_end: OSH was_filled: T spids: [1823] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $( 1+ 2 )\n')} do_expansion: False here_end: OIL was_filled: T spids: [1829] ) ] ) ] spids: [1795] ) spids: [1791 1794] ) (FuncDef name: arith-ops body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $(( a > 0 ? 2**3 : 3/2 ))\n')} do_expansion: False here_end: OSH was_filled: T spids: [1879] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(( 2^3 if a > 0 else 3 div 2 ))\n')} do_expansion: False here_end: OIL was_filled: T spids: [1885] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo $(( a << 1 | b & 1 ))\n')} do_expansion: False here_end: OSH was_filled: T spids: [1895] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(( a << 1 .| b .& 1 ))\n')} do_expansion: False here_end: OIL was_filled: T spids: [1901] ) ] ) ] spids: [1843] ) spids: [1839 1842] ) (FuncDef name: dbracket body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('[[ -d / ]] && echo "is dir"\n')} do_expansion: False here_end: OSH was_filled: T spids: [1922] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('isDir(\'/\') && echo "is dir"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1928] ) ] ) ] spids: [1917] ) spids: [1913 1916] ) (FuncDef name: escaped-literal body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo \\$ \\ \\n "\\$" "\\n"\n')} do_expansion: False here_end: OSH was_filled: T spids: [1946] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo \'$\' \' \' \'n\' "\\$" "\\n"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1952] ) ] ) (ControlFlow token:<ControlFlow_Return return>) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo \\$\\ \\$\n')} do_expansion: False here_end: OSH was_filled: T spids: [1969] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo '$ $'\n")} do_expansion: False here_end: OIL was_filled: T spids: [1975] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('echo \\\n') (' hi\n')} do_expansion: False here_end: OSH was_filled: T spids: [1989] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo \\\n') (' hi\n')} do_expansion: False here_end: OIL was_filled: T spids: [1995] ) ] ) ] spids: [1941] ) spids: [1937 1940] ) (FuncDef name: words body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {("echo foo'bar'\n") ("echo foo'bar'$baz\n")} do_expansion: False here_end: OSH was_filled: T spids: [2021] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo 'foobar'\n") ('echo "foobar$baz"\n')} do_expansion: False here_end: OIL was_filled: T spids: [2027] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {("echo ~/'name with spaces'\n")} do_expansion: False here_end: OSH was_filled: T spids: [2045] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "$HOME/name with spaces"\n')} do_expansion: False here_end: OIL was_filled: T spids: [2051] ) ] ) ] spids: [2008] ) spids: [2004 2007] ) (FuncDef name: time-block body: (BraceGroup children: [ (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('time ls\n')} do_expansion: False here_end: OSH was_filled: T spids: [2069] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('time ls\n')} do_expansion: False here_end: OIL was_filled: T spids: [2075] ) ] ) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('time while false; do\n') (' echo $i\n') ('done\n')} do_expansion: False here_end: OSH was_filled: T spids: [2085] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('time while false {\n') (' echo $i\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [2091] ) ] ) (ControlFlow token:<ControlFlow_Return return>) (SimpleCommand words: [{(osh0-oil3)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {('time {\n') (' echo one\n') (' echo two\n') ('}\n')} do_expansion: False here_end: OSH was_filled: T spids: [2108] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('time {\n') (' echo one\n') (' echo two\n') ('}\n')} do_expansion: False here_end: OIL was_filled: T spids: [2114] ) ] ) ] spids: [2064] ) spids: [2060 2063] ) (Assignment keyword: Assign_Readonly flags: [-a] pairs: [ (assign_pair lhs: (LhsName name:PASSING) op: Equal rhs: { (ArrayLiteralPart words: [ {(simple-command)} {(more-env)} {(line-breaks)} {(redirect)} {(pipeline)} {(and-or)} {(escaped-literal)} {(args-vars)} {(unquote-subs)} {(command-sub)} {(arith-sub)} {(unquote-subs)} {(posix-func)} {(ksh-func)} {(brace-group)} {(subshell)} {(while-loop)} {(if_)} {(case_)} {(for-loop)} {(empty-for-loop)} {(args-for-loop)} {(time-block)} {(bracket-builtin)} ] ) } spids: [2127] ) ] spids: [2123] ) (FuncDef name: all-passing body: (BraceGroup children: [ (C {(run-all)} { (DQ (BracedVarSub token: <VSub_Name PASSING> bracket_op: (WholeArray op_id:Lit_At) spids: [2236 2241] ) ) } ) ] spids: [2230] ) spids: [2226 2229] ) (FuncDef name: run-for-release body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:out_dir) op: Equal rhs: {(_tmp/osh2oil)} spids: [2256] ) ] spids: [2254] ) (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')}) (Pipeline children: [(C {(all-passing)}) (C {(tee)} {($ VSub_Name '$out_dir') (/log.txt)})] negated: F ) (C {(echo)} {(DQ ('Wrote ') ($ VSub_Name '$out_dir') (/log.txt))}) ] spids: [2251] ) spids: [2247 2250] ) (C {(DQ ($ VSub_At '$@'))}) ] )