(CommandList children: [ (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (C {(set)} {(-o)} {(errexit)}) (FuncDef name: osh-to-oil body: (BraceGroup children:[(C {(bin/osh)} {(--fix)} {(DQ ($ VSub_At '$@'))})] spids:[36]) spids: [32 35] ) (FuncDef name: fail body: (BraceGroup children: [ (C {(echo)} {(SQ <'TEST FAILED'>)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [54] ) spids: [50 53] ) (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: [78] ) spids: [74 77] ) (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: [113] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo one @Argv two\n')} do_expansion: False here_end: OIL was_filled: T spids: [119] ) ] ) (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: [133] ) (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: [139] ) ] ) (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: [149] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $Status $Argc\n')} do_expansion: False here_end: OIL was_filled: T spids: [155] ) ] ) ] spids: [108] ) spids: [104 107] ) (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: [173] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $1 $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 "${foo}"\n')} do_expansion: False here_end: OSH was_filled: T spids: [189] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(foo)\n')} do_expansion: False here_end: OIL was_filled: T spids: [195] ) ] ) (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: [205] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $[echo hi]\n')} do_expansion: False here_end: OIL was_filled: T spids: [211] ) ] ) ] spids: [168] ) spids: [164 167] ) (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: [237] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(Status) $(len(Argv)) @Argv\n')} do_expansion: False here_end: OIL was_filled: T spids: [243] ) ] ) (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: [262] ) (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: [268] ) ] ) ] spids: [224] ) spids: [220 223] ) (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: [307] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $Status $len(Argv) @Argv\n')} do_expansion: False here_end: OIL was_filled: T spids: [313] ) ] ) ] spids: [281] ) spids: [277 280] ) (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: [331] ) (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: [337] ) ] ) ] spids: [326] ) spids: [322 325] ) (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: [358] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $len(s) $len(a)\n')} do_expansion: False here_end: OIL was_filled: T spids: [364] ) ] ) ] spids: [353] ) spids: [349 352] ) (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: [382] ) (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: [388] ) ] ) ] spids: [377] ) spids: [373 376] ) (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: [406] ) (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: [412] ) ] ) ] spids: [401] ) spids: [397 400] ) (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: [436] ) (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: [442] ) ] ) ] spids: [431] ) spids: [427 430] ) (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: [460] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo hi\n')} do_expansion: False here_end: OIL was_filled: T spids: [466] ) ] ) ] spids: [455] ) spids: [451 454] ) (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: [484] ) (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: [490] ) ] ) ] spids: [479] ) spids: [475 478] ) (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: [508] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('test ! -z $foo || die\n')} do_expansion: False here_end: OIL was_filled: T spids: [514] ) ] ) (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: [524] ) (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: [530] ) ] ) ] spids: [503] ) spids: [499 502] ) (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: [548] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('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: {('[ -f lib.sh ] && . lib.sh\n')} do_expansion: False here_end: OSH was_filled: T spids: [564] ) (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: [570] ) ] ) (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: [596] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('setoption +errexit\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: {("echo '\\n'\n") ("echo -e '\\n'\n") ("echo -e -n '\\n'\n")} do_expansion: False here_end: OSH was_filled: T spids: [612] ) (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: [618] ) ] ) (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: [628] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("oshEval('echo $?') # call into osh!\n")} do_expansion: False here_end: OIL was_filled: T spids: [634] ) ] ) (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: [644] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('redir !1 > !2\n')} do_expansion: False here_end: OIL was_filled: T spids: [650] ) ] ) ] spids: [543] ) spids: [539 542] ) (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: [682] ) (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: [688] ) ] ) (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: [698] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('freeze FOO\n') ("BAR = 'bar'\n")} do_expansion: False here_end: OIL was_filled: T spids: [704] ) ] ) ] spids: [673] ) spids: [669 672] ) (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: [722] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat >out.txt <in.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: {('cat >out.txt 2> err.txt\n')} do_expansion: False here_end: OSH was_filled: T spids: [738] ) (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: [744] ) ] ) (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: [754] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "error message" > !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: {('echo "error message" 1>&2 \n')} do_expansion: False here_end: OSH was_filled: T spids: [770] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "error message" !1 > !2 \n')} do_expansion: False here_end: OIL was_filled: T spids: [776] ) ] ) (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: [786] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat >$(out) <$(in)\n')} do_expansion: False here_end: OIL was_filled: T spids: [792] ) ] ) ] spids: [717] ) spids: [713 716] ) (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: [811] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('cat << """\n') ('echo $hi\n') ('"""\n')} do_expansion: False here_end: OIL was_filled: T spids: [817] ) ] ) (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: [827] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("cat << '''\n") ('single quoted\n') ("'''\n")} do_expansion: False here_end: OIL was_filled: T spids: [833] ) ] ) ] spids: [806] ) spids: [802 805] ) (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: [856] ) (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: [862] ) ] ) (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: [872] ) (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: [878] ) ] ) ] spids: [851] ) spids: [847 850] ) (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: [891] ) spids: [887 890] ) (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: [989] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('var foo = $[basename $1]\n')} do_expansion: False here_end: OIL was_filled: T spids: [995] ) ] ) (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: [1009] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("one = '1', two = '', three = '3'\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: {('myStr=one\n') ('readonly myConstStr=two\n')} do_expansion: False here_end: OSH was_filled: T spids: [1025] ) (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: [1031] ) ] ) (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: [1041] ) (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: [1047] ) ] ) (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: [1057] ) (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: [1063] ) ] ) ] spids: [984] ) spids: [980 983] ) (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: [1081] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('var a = [1 2 3]\n')} do_expansion: False here_end: OIL was_filled: T spids: [1087] ) ] ) ] spids: [1076] ) spids: [1072 1075] ) (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: [1105] ) (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: [1111] ) ] ) (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: [1181] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('not -- echo hi | wc\n')} do_expansion: False here_end: OIL was_filled: T spids: [1187] ) ] ) ] spids: [1100] ) spids: [1096 1099] ) (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: [1205] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('ls && echo @Argv || die "foo"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1211] ) ] ) ] spids: [1200] ) spids: [1196 1199] ) (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: [1229] ) (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: [1235] ) ] ) ] spids: [1224] ) spids: [1220 1223] ) (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: [1253] ) (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: [1259] ) ] ) ] spids: [1248] ) spids: [1244 1247] ) (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: [1277] ) (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: [1283] ) ] ) ] spids: [1272] ) spids: [1268 1271] ) (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: [1301] ) (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: [1307] ) ] ) (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: [1317] ) (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: [1323] ) ] ) ] spids: [1296] ) spids: [1292 1295] ) (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: [1341] ) (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: [1347] ) ] ) ] spids: [1336] ) spids: [1332 1335] ) (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: [1365] ) (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: [1371] ) ] ) (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: [1399] ) (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: [1405] ) ] ) ] spids: [1360] ) spids: [1356 1359] ) (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: [1423] ) (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: [1429] ) ] ) (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: [1439] ) (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: [1445] ) ] ) ] spids: [1418] ) spids: [1414 1417] ) (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: [1463] ) (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: [1469] ) ] ) (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: [1479] ) (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: [1485] ) ] ) (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: [1495] ) (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: [1501] ) ] ) ] spids: [1458] ) spids: [1454 1457] ) (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: [1519] ) (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: [1525] ) ] ) (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: [1535] ) (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: [1541] ) ] ) ] spids: [1514] ) spids: [1510 1513] ) (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: [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)\n')} do_expansion: False here_end: OSH was_filled: T spids: [1575] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('shell {echo hi}\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 {echo hi; echo bye}\n')} do_expansion: False here_end: OIL was_filled: T spids: [1597] ) ] ) (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: [1607] ) (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: [1613] ) ] ) ] spids: [1554] ) spids: [1550 1553] ) (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: [1631] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('do { echo hi; }\n')} do_expansion: False here_end: OIL was_filled: T spids: [1637] ) ] ) (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: [1647] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('do { echo hi; echo bye; }\n')} do_expansion: False here_end: OIL was_filled: T spids: [1653] ) ] ) ] spids: [1626] ) spids: [1622 1625] ) (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: [1671] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('fork sleep 1\n')} do_expansion: False here_end: OIL was_filled: T spids: [1677] ) ] ) ] spids: [1666] ) spids: [1662 1665] ) (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: [1695] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $foo\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 ${bar} "__${bar}__"\n')} do_expansion: False here_end: OSH was_filled: T spids: [1711] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $foo $(bar) "__$(bar)__"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1717] ) ] ) (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: [1727] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo $(foo or 'default')\n")} do_expansion: False here_end: OIL was_filled: T spids: [1733] ) ] ) ] spids: [1690] ) spids: [1686 1689] ) (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: [1751] ) (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: [1757] ) ] ) (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: [1767] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "__$[echo hi]__"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1773] ) ] ) ] spids: [1746] ) spids: [1742 1745] ) (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: [1792] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $<[echo hi] $>[echo hi]\n')} do_expansion: False here_end: OIL was_filled: T spids: [1798] ) ] ) ] spids: [1787] ) spids: [1783 1786] ) (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: [1816] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo __$( 1+ 2 )__\n')} do_expansion: False here_end: OIL was_filled: T spids: [1822] ) ] ) (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: [1839] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $( 1+ 2 )\n')} do_expansion: False here_end: OIL was_filled: T spids: [1845] ) ] ) ] spids: [1811] ) spids: [1807 1810] ) (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: [1895] ) (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: [1901] ) ] ) (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: [1911] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo $(( a << 1 .| b .& 1 ))\n')} do_expansion: False here_end: OIL was_filled: T spids: [1917] ) ] ) ] spids: [1859] ) spids: [1855 1858] ) (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: [1938] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('isDir(\'/\') && echo "is dir"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1944] ) ] ) ] spids: [1933] ) spids: [1929 1932] ) (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: [1962] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo \'$\' \' \' \'n\' "\\$" "\\n"\n')} do_expansion: False here_end: OIL was_filled: T spids: [1968] ) ] ) (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: [1985] ) (HereDoc op_id: Redir_DLess fd: 3 body: {("echo '$ $'\n")} do_expansion: False here_end: OIL was_filled: T spids: [1991] ) ] ) (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: [2005] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo \\\n') (' hi\n')} do_expansion: False here_end: OIL was_filled: T spids: [2011] ) ] ) ] spids: [1957] ) spids: [1953 1956] ) (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: [2037] ) (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: [2043] ) ] ) (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: [2061] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('echo "$HOME/name with spaces"\n')} do_expansion: False here_end: OIL was_filled: T spids: [2067] ) ] ) ] spids: [2024] ) spids: [2020 2023] ) (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: [2085] ) (HereDoc op_id: Redir_DLess fd: 3 body: {('time ls\n')} do_expansion: False here_end: OIL was_filled: T spids: [2091] ) ] ) (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: [2101] ) (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: [2107] ) ] ) (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: [2124] ) (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: [2130] ) ] ) ] spids: [2080] ) spids: [2076 2079] ) (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: [2143] ) ] spids: [2139] ) (FuncDef name: all-passing body: (BraceGroup children: [ (ForEach iter_name: t iter_words: [ { (DQ (BracedVarSub token: <VSub_Name PASSING> bracket_op: (WholeArray op_id:Lit_At) spids: [2256 2261] ) ) } ] do_arg_iter: F body: (DoGroup children: [(C {($ VSub_Name '$t')}) (C {(echo)} {(DQ ('OK ') ($ VSub_Name '$t'))})] spids: [2265 2283] ) spids: [2254 2263] ) (C {(echo)}) (C {(echo)} {(DQ ('All osh2oil tests passed.'))}) ] spids: [2246] ) spids: [2242 2245] ) (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: [2308] ) ] spids: [2306] ) (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: [2303] ) spids: [2299 2302] ) (C {(DQ ($ VSub_At '$@'))}) ] )