Results for ysh-proc-meta.test.sh

statusyshysh_ALT
pass 66
FAIL 11
total77
caseyshysh_ALTdescription
0pass pass with eval builtin command, in global scope
1pass pass with eval builtin command, in local scope
2pass pass with eval builtin command, making them global with names() and setVar()
3FAIL FAIL with parseCommand() then io->eval(), in local scope
detailsdetails
4pass pass with parseCommand() then io->eval(cmd, vars={out_dict: {}})
5pass pass with evalToDict()
6pass pass with runtime REFLECTION via __invoke__ - no parsing
12 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

ysh3 with parseCommand() then io->eval(), in local scope

[ysh stdout] Expected 'prefix a\nprefix b\n', got '(value.Command\n frag: \n (cmd_frag.Expr\n c: \n (Proc\n keyword: \n (Token\n id: Id.KW_Proc\n length: 4\n col: 0\n line: \n (SourceLine\n line_num: 1\n content: "proc echo_a(prefix) {\\n"\n src: \n (source.Dynamic\n what: "parseCommand()"\n location: \n (Token\n id: Id.Op_LParen\n length: 1\n col: 26\n line: \n (SourceLine\n line_num: 9\n content: " var cmd = parseCommand(s)\\n"\n src: (source.Stdin comment:"")\n )\n )\n )\n )\n )\n name: (Token id:Id.Lit_Chars length:6 col:5 line:...0x7f4cf2e65d60)\n sig: \n (proc_sig.Closed\n word: \n (ParamGroup\n params: [\n (Param\n blame_tok: (Token id:Id.Expr_Name length:6 col:12 line:...0x7f4cf2e65d60)\n name: prefix\n )\n ]\n )\n )\n body: \n (BraceGroup\n left: (Token id:Id.Lit_LBrace length:1 col:20 line:...0x7f4cf2e65d60)\n children: [\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 4\n col: 2\n line: \n (SourceLine\n line_num: 2\n content: " echo $prefix a\\n"\n src: ...0x7f4cf2b048c0\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f4cf2b03b48])\n (CompoundWord\n parts: [\n (SimpleVarSub\n tok: (Token id:Id.VSub_DollarName length:7 col:7 line:...0x7f4cf2e65ec0)\n )\n ]\n )\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:1 col:15 line:...0x7f4cf2e65ec0)]\n )\n ]\n is_last_cmd: F\n )\n ]\n right: \n (Token\n id: Id.Lit_RBrace\n length: 1\n col: 0\n line: (SourceLine line_num:3 content:"}\\n" src:...0x7f4cf2b048c0)\n )\n )\n )\n )\n captured_frame: [\n Dict\n ARGV\n (Cell exported:F readonly:F nameref:F val:(value.List items:[]))\n result\n (Cell exported:F readonly:F nameref:F val:(value.Dict d:[Dict]))\n param\n (Cell exported:F readonly:F nameref:F val:(value.Str s:a))\n s\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: (value.Str s:"proc echo_a(prefix) {\\n echo $prefix a\\n}\\n")\n )\n cmd\n (Cell exported:F readonly:F nameref:F val:...0x7f4cf2e65f18)\n ]\n module_frame: [\n Dict\n ARGV\n (Cell exported:F readonly:F nameref:F val:(value.List items:[]))\n ENV\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: \n (value.Dict\n d: [\n Dict\n TMP\n (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)\n REPO_ROOT\n (value.Str s:/home/uke/oil)\n PYTHONPATH\n (value.Str s:"/home/uke/oil:/home/uke/oil/vendor")\n PWD\n (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)\n SH\n (value.Str s:/home/uke/oil/bin/ysh)\n LC_ALL\n (value.Str s:C.UTF-8)\n PATH\n (value.Str\n s: \n"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"\n )\n LOCALE_ARCHIVE\n (value.Str s:"")\n OILS_GC_ON_EXIT\n (value.Str s:"")\n ]\n )\n )\n UID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))\n EUID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))\n PPID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:43276))\n OPTIND\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1))\n IFS\n (Cell exported:F readonly:F nameref:F val:(value.Str s:" \\t\\n"))\n HOSTNAME\n (Cell exported:F readonly:F nameref:F val:(value.Str s:206f4f211e87))\n OSTYPE\n (Cell exported:F readonly:F nameref:F val:(value.Str s:linux))\n PS4\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: (value.Str s:"${SHX_indent}${SHX_punct}${SHX_pid_str} ")\n )\n COMP_WORDBREAKS\n (Cell exported:F readonly:F nameref:F val:(value.Str s:" \\t\\n\\"\'><=;|&(:"))\n TMP\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)\n )\n REPO_ROOT\n (Cell exported:T readonly:F nameref:F val:(value.Str s:/home/uke/oil))\n PYTHONPATH\n (Cell exported:T readonly:F nameref:F val:(value.Str s:"/home/uke/oil:/home/uke/oil/vendor"))\n PWD\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)\n )\n SH\n (Cell exported:T readonly:F nameref:F val:(value.Str s:/home/uke/oil/bin/ysh))\n LC_ALL\n (Cell exported:T readonly:F nameref:F val:(value.Str s:C.UTF-8))\n PATH\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: \n (value.Str\n s: \n"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"\n )\n )\n LOCALE_ARCHIVE\n (Cell exported:T readonly:F nameref:F val:(value.Str s:""))\n OILS_GC_ON_EXIT\n (Cell exported:T readonly:F nameref:F val:(value.Str s:""))\n SHELLOPTS\n (Cell exported:F readonly:T nameref:F val:(value.Str s:""))\n p\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: \n (value.Proc\n name: p\n name_tok: \n (Token\n id: Id.Lit_Chars\n length: 1\n col: 5\n line: (SourceLine line_num:1 content:"proc p {\\n" src:...0x7f4cf2ae51b8)\n )\n sig: (proc_sig__Open)\n body: \n (BraceGroup\n left: (Token id:Id.Lit_LBrace length:1 col:7 line:...0x7f4cf2e65520)\n children: [\n (command.VarDecl\n keyword: \n (Token\n id: Id.KW_Var\n length: 3\n col: 2\n line: \n (SourceLine\n line_num: 2\n content: " var result = {}\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n lhs: [\n (NameType\n left: (Token id:Id.Expr_Name length:6 col:6 line:...0x7f4cf2e65578)\n name: result\n )\n ]\n rhs: \n (expr.Dict\n left: (Token id:Id.Op_LBrace length:1 col:15 line:...0x7f4cf2e65578)\n keys: []\n values: []\n )\n )\n (command.ForEach\n keyword: \n (Token\n id: Id.KW_For\n length: 3\n col: 2\n line: \n (SourceLine\n line_num: 3\n content: " for param in a b {\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n iter_names: [param]\n iterable: \n (for_iter.Words\n words: [\n (CompoundWord\n parts: [\n (Token\n id: Id.Lit_Chars\n length: 1\n col: 15\n line: ...0x7f4cf2e656d8\n tval: a\n )\n ]\n )\n (CompoundWord\n parts: [\n (Token\n id: Id.Lit_Chars\n length: 1\n col: 17\n line: ...0x7f4cf2e656d8\n tval: b\n )\n ]\n )\n ]\n )\n body: \n (BraceGroup\n left: (Token id:Id.Lit_LBrace length:1 col:19 line:...0x7f4cf2e656d8)\n children: [\n (command.VarDecl\n keyword: \n (Token\n id: Id.KW_Var\n length: 3\n col: 4\n line: \n (SourceLine\n line_num: 4\n content: " var s = \\"\\"\\"\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n lhs: [\n (NameType\n left: (Token id:Id.Expr_Name length:1 col:8 line:...0x7f4cf2e65730)\n name: s\n )\n ]\n rhs: \n (DoubleQuoted\n left: \n (Token\n id: Id.Left_TDoubleQuote\n length: 3\n col: 12\n line: ...0x7f4cf2e65730\n )\n parts: [\n (Token\n id: Id.Lit_CharsWithoutPrefix\n length: 10\n col: 4\n line: \n (SourceLine\n line_num: 5\n content: " proc echo_$param(prefix) {\\n"\n src: ...0x7f4cf2ae51b8\n )\n tval: "proc echo_"\n )\n (SimpleVarSub\n tok: \n (Token\n id: Id.VSub_DollarName\n length: 6\n col: 14\n line: ...0x7f4cf2e65788\n tval: param\n )\n )\n (Token\n id: Id.Lit_Chars\n length: 11\n col: 20\n line: ...0x7f4cf2e65788\n tval: "(prefix) {\\n"\n )\n (Token\n id: Id.Lit_CharsWithoutPrefix\n length: 7\n col: 4\n line: \n (SourceLine\n line_num: 6\n content: " echo \\\\$prefix $param\\n"\n src: ...0x7f4cf2ae51b8\n )\n tval: " echo "\n )\n (word_part.EscapedLiteral\n token: \n (Token\n id: Id.Lit_EscapedChar\n length: 2\n col: 11\n line: ...0x7f4cf2e657e0\n )\n ch: "$"\n )\n (Token\n id: Id.Lit_Chars\n length: 7\n col: 13\n line: ...0x7f4cf2e657e0\n tval: "prefix "\n )\n (SimpleVarSub\n tok: \n (Token\n id: Id.VSub_DollarName\n length: 6\n col: 20\n line: ...0x7f4cf2e657e0\n tval: param\n )\n )\n (Token\n id: Id.Lit_Chars\n length: 1\n col: 26\n line: ...0x7f4cf2e657e0\n tval: "\\n"\n )\n (Token\n id: Id.Lit_CharsWithoutPrefix\n length: 2\n col: 4\n line: \n (SourceLine\n line_num: 7\n content: " }\\n"\n src: ...0x7f4cf2ae51b8\n )\n tval: "}\\n"\n )\n ]\n right: \n (Token\n id: Id.Right_DoubleQuote\n length: 1\n col: 6\n line: \n (SourceLine\n line_num: 8\n content: " \\"\\"\\"\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n )\n )\n (command.VarDecl\n keyword: (Token id:Id.KW_Var length:3 col:4 line:...0x7f4cf2e659f0)\n lhs: [\n (NameType\n left: (Token id:Id.Expr_Name length:3 col:8 line:...0x7f4cf2e659f0)\n name: cmd\n )\n ]\n rhs: \n (expr.FuncCall\n func: \n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 12\n col: 14\n line: ...0x7f4cf2e659f0\n )\n name: parseCommand\n )\n args: \n (ArgList\n left: ...0x7f4cf2ae7738\n pos_args: [\n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 1\n col: 27\n line: ...0x7f4cf2e659f0\n )\n name: s\n )\n ]\n named_args: []\n right: \n (Token\n id: Id.Op_RParen\n length: 1\n col: 28\n line: ...0x7f4cf2e659f0\n )\n )\n )\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 2\n col: 4\n line: \n (SourceLine\n line_num: 10\n content: " pp asdl_ (cmd)\\n"\n src: ...0x7f4cf2ae51b8\n )\n tval: pp\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f4cf2ae77a0])\n (CompoundWord\n parts: [\n (Token\n id: Id.Lit_Chars\n length: 5\n col: 7\n line: ...0x7f4cf2e65af8\n tval: asdl_\n )\n ]\n )\n ]\n typed_args: \n (ArgList\n left: (Token id:Id.Op_LParen length:1 col:13 line:...0x7f4cf2e65af8)\n pos_args: [\n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 3\n col: 14\n line: ...0x7f4cf2e65af8\n )\n name: cmd\n )\n ]\n named_args: []\n right: (Token id:Id.Op_RParen length:1 col:17 line:...0x7f4cf2e65af8)\n )\n is_last_cmd: F\n )\n (command.Expr\n keyword: \n (Token\n id: Id.KW_Call\n length: 4\n col: 4\n line: \n (SourceLine\n line_num: 13\n content: " call io->eval(cmd)\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n e: \n (expr.FuncCall\n func: \n (Attribute\n obj: \n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 2\n col: 9\n line: ...0x7f4cf2e65c00\n )\n name: io\n )\n op: \n (Token\n id: Id.Expr_RArrow\n length: 2\n col: 11\n line: ...0x7f4cf2e65c00\n )\n attr: \n (Token\n id: Id.Expr_Name\n length: 4\n col: 13\n line: ...0x7f4cf2e65c00\n )\n attr_name: eval\n ctx: expr_context.Store\n )\n args: \n (ArgList\n left: \n (Token\n id: Id.Op_LParen\n length: 1\n col: 17\n line: ...0x7f4cf2e65c00\n )\n pos_args: [\n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 3\n col: 18\n line: ...0x7f4cf2e65c00\n )\n name: cmd\n )\n ]\n named_args: []\n right: \n (Token\n id: Id.Op_RParen\n length: 1\n col: 21\n line: ...0x7f4cf2e65c00\n )\n )\n )\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 6\n col: 4\n line: \n (SourceLine\n line_num: 15\n content: " echo_a zz\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f4cf2b030b8])\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:2 col:11 line:...0x7f4cf2e65cb0)]\n )\n ]\n is_last_cmd: F\n )\n ]\n right: \n (Token\n id: Id.Lit_RBrace\n length: 1\n col: 2\n line: (SourceLine line_num:16 content:" }\\n" src:...0x7f4cf2ae51b8)\n )\n )\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 6\n col: 2\n line: \n (SourceLine\n line_num: 18\n content: " echo_a prefix\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f4cf2ae74c8])\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f4cf2e65db8)]\n )\n ]\n is_last_cmd: F\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 6\n col: 2\n line: \n (SourceLine\n line_num: 19\n content: " echo_b prefix\\n"\n src: ...0x7f4cf2ae51b8\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f4cf2b03598])\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f4cf2e65e10)]\n )\n ]\n is_last_cmd: F\n )\n ]\n right: \n (Token\n id: Id.Lit_RBrace\n length: 1\n col: 0\n line: (SourceLine line_num:20 content:"}\\n" src:...0x7f4cf2ae51b8)\n )\n )\n sh_compat: F\n module_frame: [\n Dict\n ARGV\n ...0x7f4cf2e599b0\n ENV\n ...0x7f4cf2e59a70\n UID\n ...0x7f4cf2e59ad0\n EUID\n ...0x7f4cf2e59b30\n PPID\n ...0x7f4cf2e59b90\n OPTIND\n ...0x7f4cf2e59bf0\n IFS\n ...0x7f4cf2e59c50\n HOSTNAME\n ...0x7f4cf2e59cb0\n OSTYPE\n ...0x7f4cf2e59d10\n PS4\n ...0x7f4cf2e59d70\n COMP_WORDBREAKS\n ...0x7f4cf2e59dd0\n TMP\n ...0x7f4cf2e59e30\n REPO_ROOT\n ...0x7f4cf2e59e90\n PYTHONPATH\n ...0x7f4cf2e59ef0\n PWD\n ...0x7f4cf2e59f50\n SH\n ...0x7f4cf2e59fb0\n LC_ALL\n ...0x7f4cf2e05050\n PATH\n ...0x7f4cf2e050b0\n LOCALE_ARCHIVE\n ...0x7f4cf2e05110\n OILS_GC_ON_EXIT\n ...0x7f4cf2e05170\n SHELLOPTS\n ...0x7f4cf2e051d0\n p\n ...0x7f4cf2e05350\n ]\n )\n )\n ]\n)\n'

stdout:
(value.Command
  frag: 
    (cmd_frag.Expr
      c: 
        (Proc
          keyword: 
            (Token
              id: Id.KW_Proc
              length: 4
              col: 0
              line: 
                (SourceLine
                  line_num: 1
                  content: "proc echo_a(prefix) {\n"
                  src: 
                    (source.Dynamic
                      what: "parseCommand()"
                      location: 
                        (Token
                          id: Id.Op_LParen
                          length: 1
                          col: 26
                          line: 
                            (SourceLine
                              line_num: 9
                              content: "    var cmd = parseCommand(s)\n"
                              src: (source.Stdin comment:"")
                            )
                        )
                    )
                )
            )
          name: (Token id:Id.Lit_Chars length:6 col:5 line:...0x7f4cf2e65d60)
          sig: 
            (proc_sig.Closed
              word: 
                (ParamGroup
                  params: [
                    (Param
                      blame_tok: (Token id:Id.Expr_Name length:6 col:12 line:...0x7f4cf2e65d60)
                      name: prefix
                    )
                  ]
                )
            )
          body: 
            (BraceGroup
              left: (Token id:Id.Lit_LBrace length:1 col:20 line:...0x7f4cf2e65d60)
              children: [
                (command.Simple
                  blame_tok: 
                    (Token
                      id: Id.Lit_Chars
                      length: 4
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 2
                          content: "  echo $prefix a\n"
                          src: ...0x7f4cf2b048c0
                        )
                    )
                  more_env: []
                  words: [
                    (CompoundWord parts:[...0x7f4cf2b03b48])
                    (CompoundWord
                      parts: [
                        (SimpleVarSub
                          tok: (Token id:Id.VSub_DollarName length:7 col:7 line:...0x7f4cf2e65ec0)
                        )
                      ]
                    )
                    (CompoundWord
                      parts: [(Token id:Id.Lit_Chars length:1 col:15 line:...0x7f4cf2e65ec0)]
                    )
                  ]
                  is_last_cmd: F
                )
              ]
              right: 
                (Token
                  id: Id.Lit_RBrace
                  length: 1
                  col: 0
                  line: (SourceLine line_num:3 content:"}\n" src:...0x7f4cf2b048c0)
                )
            )
        )
    )
  captured_frame: [
    Dict
    ARGV
    (Cell exported:F readonly:F nameref:F val:(value.List items:[]))
    result
    (Cell exported:F readonly:F nameref:F val:(value.Dict d:[Dict]))
    param
    (Cell exported:F readonly:F nameref:F val:(value.Str s:a))
    s
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: (value.Str s:"proc echo_a(prefix) {\n  echo $prefix a\n}\n")
    )
    cmd
    (Cell exported:F readonly:F nameref:F val:...0x7f4cf2e65f18)
  ]
  module_frame: [
    Dict
    ARGV
    (Cell exported:F readonly:F nameref:F val:(value.List items:[]))
    ENV
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: 
        (value.Dict
          d: [
            Dict
            TMP
            (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)
            REPO_ROOT
            (value.Str s:/home/uke/oil)
            PYTHONPATH
            (value.Str s:"/home/uke/oil:/home/uke/oil/vendor")
            PWD
            (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)
            SH
            (value.Str s:/home/uke/oil/bin/ysh)
            LC_ALL
            (value.Str s:C.UTF-8)
            PATH
            (value.Str
              s: 
"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            )
            LOCALE_ARCHIVE
            (value.Str s:"")
            OILS_GC_ON_EXIT
            (value.Str s:"")
          ]
        )
    )
    UID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))
    EUID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))
    PPID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:43276))
    OPTIND
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1))
    IFS
    (Cell exported:F readonly:F nameref:F val:(value.Str s:" \t\n"))
    HOSTNAME
    (Cell exported:F readonly:F nameref:F val:(value.Str s:206f4f211e87))
    OSTYPE
    (Cell exported:F readonly:F nameref:F val:(value.Str s:linux))
    PS4
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: (value.Str s:"${SHX_indent}${SHX_punct}${SHX_pid_str} ")
    )
    COMP_WORDBREAKS
    (Cell exported:F readonly:F nameref:F val:(value.Str s:" \t\n\"'><=;|&(:"))
    TMP
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)
    )
    REPO_ROOT
    (Cell exported:T readonly:F nameref:F val:(value.Str s:/home/uke/oil))
    PYTHONPATH
    (Cell exported:T readonly:F nameref:F val:(value.Str s:"/home/uke/oil:/home/uke/oil/vendor"))
    PWD
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh)
    )
    SH
    (Cell exported:T readonly:F nameref:F val:(value.Str s:/home/uke/oil/bin/ysh))
    LC_ALL
    (Cell exported:T readonly:F nameref:F val:(value.Str s:C.UTF-8))
    PATH
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: 
        (value.Str
          s: 
"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        )
    )
    LOCALE_ARCHIVE
    (Cell exported:T readonly:F nameref:F val:(value.Str s:""))
    OILS_GC_ON_EXIT
    (Cell exported:T readonly:F nameref:F val:(value.Str s:""))
    SHELLOPTS
    (Cell exported:F readonly:T nameref:F val:(value.Str s:""))
    p
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: 
        (value.Proc
          name: p
          name_tok: 
            (Token
              id: Id.Lit_Chars
              length: 1
              col: 5
              line: (SourceLine line_num:1 content:"proc p {\n" src:...0x7f4cf2ae51b8)
            )
          sig: (proc_sig__Open)
          body: 
            (BraceGroup
              left: (Token id:Id.Lit_LBrace length:1 col:7 line:...0x7f4cf2e65520)
              children: [
                (command.VarDecl
                  keyword: 
                    (Token
                      id: Id.KW_Var
                      length: 3
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 2
                          content: "  var result = {}\n"
                          src: ...0x7f4cf2ae51b8
                        )
                    )
                  lhs: [
                    (NameType
                      left: (Token id:Id.Expr_Name length:6 col:6 line:...0x7f4cf2e65578)
                      name: result
                    )
                  ]
                  rhs: 
                    (expr.Dict
                      left: (Token id:Id.Op_LBrace length:1 col:15 line:...0x7f4cf2e65578)
                      keys: []
                      values: []
                    )
                )
                (command.ForEach
                  keyword: 
                    (Token
                      id: Id.KW_For
                      length: 3
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 3
                          content: "  for param in a b {\n"
                          src: ...0x7f4cf2ae51b8
                        )
                    )
                  iter_names: [param]
                  iterable: 
                    (for_iter.Words
                      words: [
                        (CompoundWord
                          parts: [
                            (Token
                              id: Id.Lit_Chars
                              length: 1
                              col: 15
                              line: ...0x7f4cf2e656d8
                              tval: a
                            )
                          ]
                        )
                        (CompoundWord
                          parts: [
                            (Token
                              id: Id.Lit_Chars
                              length: 1
                              col: 17
                              line: ...0x7f4cf2e656d8
                              tval: b
                            )
                          ]
                        )
                      ]
                    )
                  body: 
                    (BraceGroup
                      left: (Token id:Id.Lit_LBrace length:1 col:19 line:...0x7f4cf2e656d8)
                      children: [
                        (command.VarDecl
                          keyword: 
                            (Token
                              id: Id.KW_Var
                              length: 3
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 4
                                  content: "    var s = \"\"\"\n"
                                  src: ...0x7f4cf2ae51b8
                                )
                            )
                          lhs: [
                            (NameType
                              left: (Token id:Id.Expr_Name length:1 col:8 line:...0x7f4cf2e65730)
                              name: s
                            )
                          ]
                          rhs: 
                            (DoubleQuoted
                              left: 
                                (Token
                                  id: Id.Left_TDoubleQuote
                                  length: 3
                                  col: 12
                                  line: ...0x7f4cf2e65730
                                )
                              parts: [
                                (Token
                                  id: Id.Lit_CharsWithoutPrefix
                                  length: 10
                                  col: 4
                                  line: 
                                    (SourceLine
                                      line_num: 5
                                      content: "    proc echo_$param(prefix) {\n"
                                      src: ...0x7f4cf2ae51b8
                                    )
                                  tval: "proc echo_"
                                )
                                (SimpleVarSub
                                  tok: 
                                    (Token
                                      id: Id.VSub_DollarName
                                      length: 6
                                      col: 14
                                      line: ...0x7f4cf2e65788
                                      tval: param
                                    )
                                )
                                (Token
                                  id: Id.Lit_Chars
                                  length: 11
                                  col: 20
                                  line: ...0x7f4cf2e65788
                                  tval: "(prefix) {\n"
                                )
                                (Token
                                  id: Id.Lit_CharsWithoutPrefix
                                  length: 7
                                  col: 4
                                  line: 
                                    (SourceLine
                                      line_num: 6
                                      content: "      echo \\$prefix $param\n"
                                      src: ...0x7f4cf2ae51b8
                                    )
                                  tval: "  echo "
                                )
                                (word_part.EscapedLiteral
                                  token: 
                                    (Token
                                      id: Id.Lit_EscapedChar
                                      length: 2
                                      col: 11
                                      line: ...0x7f4cf2e657e0
                                    )
                                  ch: "$"
                                )
                                (Token
                                  id: Id.Lit_Chars
                                  length: 7
                                  col: 13
                                  line: ...0x7f4cf2e657e0
                                  tval: "prefix "
                                )
                                (SimpleVarSub
                                  tok: 
                                    (Token
                                      id: Id.VSub_DollarName
                                      length: 6
                                      col: 20
                                      line: ...0x7f4cf2e657e0
                                      tval: param
                                    )
                                )
                                (Token
                                  id: Id.Lit_Chars
                                  length: 1
                                  col: 26
                                  line: ...0x7f4cf2e657e0
                                  tval: "\n"
                                )
                                (Token
                                  id: Id.Lit_CharsWithoutPrefix
                                  length: 2
                                  col: 4
                                  line: 
                                    (SourceLine
                                      line_num: 7
                                      content: "    }\n"
                                      src: ...0x7f4cf2ae51b8
                                    )
                                  tval: "}\n"
                                )
                              ]
                              right: 
                                (Token
                                  id: Id.Right_DoubleQuote
                                  length: 1
                                  col: 6
                                  line: 
                                    (SourceLine
                                      line_num: 8
                                      content: "    \"\"\"\n"
                                      src: ...0x7f4cf2ae51b8
                                    )
                                )
                            )
                        )
                        (command.VarDecl
                          keyword: (Token id:Id.KW_Var length:3 col:4 line:...0x7f4cf2e659f0)
                          lhs: [
                            (NameType
                              left: (Token id:Id.Expr_Name length:3 col:8 line:...0x7f4cf2e659f0)
                              name: cmd
                            )
                          ]
                          rhs: 
                            (expr.FuncCall
                              func: 
                                (expr.Var
                                  left: 
                                    (Token
                                      id: Id.Expr_Name
                                      length: 12
                                      col: 14
                                      line: ...0x7f4cf2e659f0
                                    )
                                  name: parseCommand
                                )
                              args: 
                                (ArgList
                                  left: ...0x7f4cf2ae7738
                                  pos_args: [
                                    (expr.Var
                                      left: 
                                        (Token
                                          id: Id.Expr_Name
                                          length: 1
                                          col: 27
                                          line: ...0x7f4cf2e659f0
                                        )
                                      name: s
                                    )
                                  ]
                                  named_args: []
                                  right: 
                                    (Token
                                      id: Id.Op_RParen
                                      length: 1
                                      col: 28
                                      line: ...0x7f4cf2e659f0
                                    )
                                )
                            )
                        )
                        (command.Simple
                          blame_tok: 
                            (Token
                              id: Id.Lit_Chars
                              length: 2
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 10
                                  content: "    pp asdl_ (cmd)\n"
                                  src: ...0x7f4cf2ae51b8
                                )
                              tval: pp
                            )
                          more_env: []
                          words: [
                            (CompoundWord parts:[...0x7f4cf2ae77a0])
                            (CompoundWord
                              parts: [
                                (Token
                                  id: Id.Lit_Chars
                                  length: 5
                                  col: 7
                                  line: ...0x7f4cf2e65af8
                                  tval: asdl_
                                )
                              ]
                            )
                          ]
                          typed_args: 
                            (ArgList
                              left: (Token id:Id.Op_LParen length:1 col:13 line:...0x7f4cf2e65af8)
                              pos_args: [
                                (expr.Var
                                  left: 
                                    (Token
                                      id: Id.Expr_Name
                                      length: 3
                                      col: 14
                                      line: ...0x7f4cf2e65af8
                                    )
                                  name: cmd
                                )
                              ]
                              named_args: []
                              right: (Token id:Id.Op_RParen length:1 col:17 line:...0x7f4cf2e65af8)
                            )
                          is_last_cmd: F
                        )
                        (command.Expr
                          keyword: 
                            (Token
                              id: Id.KW_Call
                              length: 4
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 13
                                  content: "    call io->eval(cmd)\n"
                                  src: ...0x7f4cf2ae51b8
                                )
                            )
                          e: 
                            (expr.FuncCall
                              func: 
                                (Attribute
                                  obj: 
                                    (expr.Var
                                      left: 
                                        (Token
                                          id: Id.Expr_Name
                                          length: 2
                                          col: 9
                                          line: ...0x7f4cf2e65c00
                                        )
                                      name: io
                                    )
                                  op: 
                                    (Token
                                      id: Id.Expr_RArrow
                                      length: 2
                                      col: 11
                                      line: ...0x7f4cf2e65c00
                                    )
                                  attr: 
                                    (Token
                                      id: Id.Expr_Name
                                      length: 4
                                      col: 13
                                      line: ...0x7f4cf2e65c00
                                    )
                                  attr_name: eval
                                  ctx: expr_context.Store
                                )
                              args: 
                                (ArgList
                                  left: 
                                    (Token
                                      id: Id.Op_LParen
                                      length: 1
                                      col: 17
                                      line: ...0x7f4cf2e65c00
                                    )
                                  pos_args: [
                                    (expr.Var
                                      left: 
                                        (Token
                                          id: Id.Expr_Name
                                          length: 3
                                          col: 18
                                          line: ...0x7f4cf2e65c00
                                        )
                                      name: cmd
                                    )
                                  ]
                                  named_args: []
                                  right: 
                                    (Token
                                      id: Id.Op_RParen
                                      length: 1
                                      col: 21
                                      line: ...0x7f4cf2e65c00
                                    )
                                )
                            )
                        )
                        (command.Simple
                          blame_tok: 
                            (Token
                              id: Id.Lit_Chars
                              length: 6
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 15
                                  content: "    echo_a zz\n"
                                  src: ...0x7f4cf2ae51b8
                                )
                            )
                          more_env: []
                          words: [
                            (CompoundWord parts:[...0x7f4cf2b030b8])
                            (CompoundWord
                              parts: [(Token id:Id.Lit_Chars length:2 col:11 line:...0x7f4cf2e65cb0)]
                            )
                          ]
                          is_last_cmd: F
                        )
                      ]
                      right: 
                        (Token
                          id: Id.Lit_RBrace
                          length: 1
                          col: 2
                          line: (SourceLine line_num:16 content:"  }\n" src:...0x7f4cf2ae51b8)
                        )
                    )
                )
                (command.Simple
                  blame_tok: 
                    (Token
                      id: Id.Lit_Chars
                      length: 6
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 18
                          content: "  echo_a prefix\n"
                          src: ...0x7f4cf2ae51b8
                        )
                    )
                  more_env: []
                  words: [
                    (CompoundWord parts:[...0x7f4cf2ae74c8])
                    (CompoundWord
                      parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f4cf2e65db8)]
                    )
                  ]
                  is_last_cmd: F
                )
                (command.Simple
                  blame_tok: 
                    (Token
                      id: Id.Lit_Chars
                      length: 6
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 19
                          content: "  echo_b prefix\n"
                          src: ...0x7f4cf2ae51b8
                        )
                    )
                  more_env: []
                  words: [
                    (CompoundWord parts:[...0x7f4cf2b03598])
                    (CompoundWord
                      parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f4cf2e65e10)]
                    )
                  ]
                  is_last_cmd: F
                )
              ]
              right: 
                (Token
                  id: Id.Lit_RBrace
                  length: 1
                  col: 0
                  line: (SourceLine line_num:20 content:"}\n" src:...0x7f4cf2ae51b8)
                )
            )
          sh_compat: F
          module_frame: [
            Dict
            ARGV
            ...0x7f4cf2e599b0
            ENV
            ...0x7f4cf2e59a70
            UID
            ...0x7f4cf2e59ad0
            EUID
            ...0x7f4cf2e59b30
            PPID
            ...0x7f4cf2e59b90
            OPTIND
            ...0x7f4cf2e59bf0
            IFS
            ...0x7f4cf2e59c50
            HOSTNAME
            ...0x7f4cf2e59cb0
            OSTYPE
            ...0x7f4cf2e59d10
            PS4
            ...0x7f4cf2e59d70
            COMP_WORDBREAKS
            ...0x7f4cf2e59dd0
            TMP
            ...0x7f4cf2e59e30
            REPO_ROOT
            ...0x7f4cf2e59e90
            PYTHONPATH
            ...0x7f4cf2e59ef0
            PWD
            ...0x7f4cf2e59f50
            SH
            ...0x7f4cf2e59fb0
            LC_ALL
            ...0x7f4cf2e05050
            PATH
            ...0x7f4cf2e050b0
            LOCALE_ARCHIVE
            ...0x7f4cf2e05110
            OILS_GC_ON_EXIT
            ...0x7f4cf2e05170
            SHELLOPTS
            ...0x7f4cf2e051d0
            p
            ...0x7f4cf2e05350
          ]
        )
    )
  ]
)
stderr:
      echo_a zz
      ^~~~~~
[ stdin ]:15: 'echo_a' not found (OILS-ERR-100)
[ stdin ]:15: errexit PID 43289: command.Simple failed with status 127
ysh_ALT3 with parseCommand() then io->eval(), in local scope

[ysh_ALT stdout] Expected 'prefix a\nprefix b\n', got '(value.Command\n frag: \n (cmd_frag.Expr\n c: \n (Proc\n keyword: \n (Token\n id: Id.KW_Proc\n length: 4\n col: 0\n line: \n (SourceLine\n line_num: 1\n content: "proc echo_a(prefix) {\\n"\n src: \n (source.Dynamic\n what: "parseCommand()"\n location: \n (Token\n id: Id.Op_LParen\n length: 1\n col: 26\n line: \n (SourceLine\n line_num: 9\n content: " var cmd = parseCommand(s)\\n"\n src: (source.Stdin comment:"")\n )\n )\n )\n )\n )\n name: (Token id:Id.Lit_Chars length:6 col:5 line:...0x7f7c186234a8)\n sig: \n (proc_sig.Closed\n word: \n (ParamGroup\n params: [\n (Param\n blame_tok: (Token id:Id.Expr_Name length:6 col:12 line:...0x7f7c186234a8)\n name: prefix\n )\n ]\n )\n )\n body: \n (BraceGroup\n left: (Token id:Id.Lit_LBrace length:1 col:20 line:...0x7f7c186234a8)\n children: [\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 4\n col: 2\n line: \n (SourceLine\n line_num: 2\n content: " echo $prefix a\\n"\n src: ...0x7f7c18626828\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f7c1862a348])\n (CompoundWord\n parts: [\n (SimpleVarSub\n tok: (Token id:Id.VSub_DollarName length:7 col:7 line:...0x7f7c186235e8)\n )\n ]\n )\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:1 col:15 line:...0x7f7c186235e8)]\n )\n ]\n is_last_cmd: F\n )\n ]\n right: \n (Token\n id: Id.Lit_RBrace\n length: 1\n col: 0\n line: (SourceLine line_num:3 content:"}\\n" src:...0x7f7c18626828)\n )\n )\n )\n )\n captured_frame: [\n Dict\n ARGV\n (Cell exported:F readonly:F nameref:F val:(value.List items:[]))\n result\n (Cell exported:F readonly:F nameref:F val:(value.Dict d:[Dict]))\n param\n (Cell exported:F readonly:F nameref:F val:(value.Str s:a))\n s\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: (value.Str s:"proc echo_a(prefix) {\\n echo $prefix a\\n}\\n")\n )\n cmd\n (Cell exported:F readonly:F nameref:F val:...0x7f7c18623638)\n ]\n module_frame: [\n Dict\n ARGV\n (Cell exported:F readonly:F nameref:F val:(value.List items:[]))\n ENV\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: \n (value.Dict\n d: [\n Dict\n TMP\n (value.Str\n s: /home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh_ALT\n )\n REPO_ROOT\n (value.Str s:/home/uke/oil/test/..)\n SH\n (value.Str s:/home/uke/oil/_tmp/oil-tar-test/oil-0.23.0/_bin/ysh)\n PATH\n (value.Str\n s: \n"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"\n )\n LC_ALL\n (value.Str s:C.UTF-8)\n LOCALE_ARCHIVE\n (value.Str s:"")\n OILS_GC_ON_EXIT\n (value.Str s:"")\n ]\n )\n )\n UID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))\n EUID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))\n PPID\n (Cell exported:F readonly:F nameref:F val:(value.Str s:43276))\n OPTIND\n (Cell exported:F readonly:F nameref:F val:(value.Str s:1))\n IFS\n (Cell exported:F readonly:F nameref:F val:(value.Str s:" \\t\\n"))\n HOSTNAME\n (Cell exported:F readonly:F nameref:F val:(value.Str s:206f4f211e87))\n OSTYPE\n (Cell exported:F readonly:F nameref:F val:(value.Str s:linux))\n PS4\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: (value.Str s:"${SHX_indent}${SHX_punct}${SHX_pid_str} ")\n )\n COMP_WORDBREAKS\n (Cell exported:F readonly:F nameref:F val:(value.Str s:" \\t\\n\\"\'><=;|&(:"))\n TMP\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh_ALT)\n )\n REPO_ROOT\n (Cell exported:T readonly:F nameref:F val:(value.Str s:/home/uke/oil/test/..))\n SH\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: (value.Str s:/home/uke/oil/_tmp/oil-tar-test/oil-0.23.0/_bin/ysh)\n )\n PATH\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: \n (value.Str\n s: \n"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"\n )\n )\n LC_ALL\n (Cell exported:T readonly:F nameref:F val:(value.Str s:C.UTF-8))\n LOCALE_ARCHIVE\n (Cell exported:T readonly:F nameref:F val:(value.Str s:""))\n OILS_GC_ON_EXIT\n (Cell exported:T readonly:F nameref:F val:(value.Str s:""))\n SHELLOPTS\n (Cell exported:F readonly:T nameref:F val:(value.Str s:""))\n PWD\n (Cell\n exported: T\n readonly: F\n nameref: F\n val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh_ALT)\n )\n p\n (Cell\n exported: F\n readonly: F\n nameref: F\n val: \n (value.Proc\n name: p\n name_tok: \n (Token\n id: Id.Lit_Chars\n length: 1\n col: 5\n line: (SourceLine line_num:1 content:"proc p {\\n" src:...0x7f7c1868efc8)\n )\n sig: (proc_sig__Open)\n body: \n (BraceGroup\n left: (Token id:Id.Lit_LBrace length:1 col:7 line:...0x7f7c189b6c28)\n children: [\n (command.VarDecl\n keyword: \n (Token\n id: Id.KW_Var\n length: 3\n col: 2\n line: \n (SourceLine\n line_num: 2\n content: " var result = {}\\n"\n src: ...0x7f7c1868efc8\n )\n )\n lhs: [\n (NameType\n left: (Token id:Id.Expr_Name length:6 col:6 line:...0x7f7c189b6b88)\n name: result\n )\n ]\n rhs: \n (expr.Dict\n left: (Token id:Id.Op_LBrace length:1 col:15 line:...0x7f7c189b6b88)\n keys: []\n values: []\n )\n )\n (command.ForEach\n keyword: \n (Token\n id: Id.KW_For\n length: 3\n col: 2\n line: \n (SourceLine\n line_num: 3\n content: " for param in a b {\\n"\n src: ...0x7f7c1868efc8\n )\n )\n iter_names: [param]\n iterable: \n (for_iter.Words\n words: [\n (CompoundWord\n parts: [\n (Token\n id: Id.Lit_Chars\n length: 1\n col: 15\n line: ...0x7f7c189b6e58\n tval: a\n )\n ]\n )\n (CompoundWord\n parts: [\n (Token\n id: Id.Lit_Chars\n length: 1\n col: 17\n line: ...0x7f7c189b6e58\n tval: b\n )\n ]\n )\n ]\n )\n body: \n (BraceGroup\n left: (Token id:Id.Lit_LBrace length:1 col:19 line:...0x7f7c189b6e58)\n children: [\n (command.VarDecl\n keyword: \n (Token\n id: Id.KW_Var\n length: 3\n col: 4\n line: \n (SourceLine\n line_num: 4\n content: " var s = \\"\\"\\"\\n"\n src: ...0x7f7c1868efc8\n )\n )\n lhs: [\n (NameType\n left: (Token id:Id.Expr_Name length:1 col:8 line:...0x7f7c189b6ea8)\n name: s\n )\n ]\n rhs: \n (DoubleQuoted\n left: \n (Token\n id: Id.Left_TDoubleQuote\n length: 3\n col: 12\n line: ...0x7f7c189b6ea8\n )\n parts: [\n (Token\n id: Id.Lit_CharsWithoutPrefix\n length: 10\n col: 4\n line: \n (SourceLine\n line_num: 5\n content: " proc echo_$param(prefix) {\\n"\n src: ...0x7f7c1868efc8\n )\n tval: "proc echo_"\n )\n (SimpleVarSub\n tok: \n (Token\n id: Id.VSub_DollarName\n length: 6\n col: 14\n line: ...0x7f7c189b6ef8\n tval: param\n )\n )\n (Token\n id: Id.Lit_Chars\n length: 11\n col: 20\n line: ...0x7f7c189b6ef8\n tval: "(prefix) {\\n"\n )\n (Token\n id: Id.Lit_CharsWithoutPrefix\n length: 7\n col: 4\n line: \n (SourceLine\n line_num: 6\n content: " echo \\\\$prefix $param\\n"\n src: ...0x7f7c1868efc8\n )\n tval: " echo "\n )\n (word_part.EscapedLiteral\n token: \n (Token\n id: Id.Lit_EscapedChar\n length: 2\n col: 11\n line: ...0x7f7c189b6f48\n )\n ch: "$"\n )\n (Token\n id: Id.Lit_Chars\n length: 7\n col: 13\n line: ...0x7f7c189b6f48\n tval: "prefix "\n )\n (SimpleVarSub\n tok: \n (Token\n id: Id.VSub_DollarName\n length: 6\n col: 20\n line: ...0x7f7c189b6f48\n tval: param\n )\n )\n (Token\n id: Id.Lit_Chars\n length: 1\n col: 26\n line: ...0x7f7c189b6f48\n tval: "\\n"\n )\n (Token\n id: Id.Lit_CharsWithoutPrefix\n length: 2\n col: 4\n line: \n (SourceLine\n line_num: 7\n content: " }\\n"\n src: ...0x7f7c1868efc8\n )\n tval: "}\\n"\n )\n ]\n right: \n (Token\n id: Id.Right_DoubleQuote\n length: 1\n col: 6\n line: \n (SourceLine\n line_num: 8\n content: " \\"\\"\\"\\n"\n src: ...0x7f7c1868efc8\n )\n )\n )\n )\n (command.VarDecl\n keyword: (Token id:Id.KW_Var length:3 col:4 line:...0x7f7c18623188)\n lhs: [\n (NameType\n left: (Token id:Id.Expr_Name length:3 col:8 line:...0x7f7c18623188)\n name: cmd\n )\n ]\n rhs: \n (expr.FuncCall\n func: \n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 12\n col: 14\n line: ...0x7f7c18623188\n )\n name: parseCommand\n )\n args: \n (ArgList\n left: ...0x7f7c18621108\n pos_args: [\n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 1\n col: 27\n line: ...0x7f7c18623188\n )\n name: s\n )\n ]\n named_args: []\n right: \n (Token\n id: Id.Op_RParen\n length: 1\n col: 28\n line: ...0x7f7c18623188\n )\n )\n )\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 2\n col: 4\n line: \n (SourceLine\n line_num: 10\n content: " pp asdl_ (cmd)\\n"\n src: ...0x7f7c1868efc8\n )\n tval: pp\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f7c18621168])\n (CompoundWord\n parts: [\n (Token\n id: Id.Lit_Chars\n length: 5\n col: 7\n line: ...0x7f7c18623278\n tval: asdl_\n )\n ]\n )\n ]\n typed_args: \n (ArgList\n left: (Token id:Id.Op_LParen length:1 col:13 line:...0x7f7c18623278)\n pos_args: [\n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 3\n col: 14\n line: ...0x7f7c18623278\n )\n name: cmd\n )\n ]\n named_args: []\n right: (Token id:Id.Op_RParen length:1 col:17 line:...0x7f7c18623278)\n )\n is_last_cmd: F\n )\n (command.Expr\n keyword: \n (Token\n id: Id.KW_Call\n length: 4\n col: 4\n line: \n (SourceLine\n line_num: 13\n content: " call io->eval(cmd)\\n"\n src: ...0x7f7c1868efc8\n )\n )\n e: \n (expr.FuncCall\n func: \n (Attribute\n obj: \n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 2\n col: 9\n line: ...0x7f7c18623368\n )\n name: io\n )\n op: \n (Token\n id: Id.Expr_RArrow\n length: 2\n col: 11\n line: ...0x7f7c18623368\n )\n attr: \n (Token\n id: Id.Expr_Name\n length: 4\n col: 13\n line: ...0x7f7c18623368\n )\n attr_name: eval\n ctx: expr_context.Store\n )\n args: \n (ArgList\n left: \n (Token\n id: Id.Op_LParen\n length: 1\n col: 17\n line: ...0x7f7c18623368\n )\n pos_args: [\n (expr.Var\n left: \n (Token\n id: Id.Expr_Name\n length: 3\n col: 18\n line: ...0x7f7c18623368\n )\n name: cmd\n )\n ]\n named_args: []\n right: \n (Token\n id: Id.Op_RParen\n length: 1\n col: 21\n line: ...0x7f7c18623368\n )\n )\n )\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 6\n col: 4\n line: \n (SourceLine\n line_num: 15\n content: " echo_a zz\\n"\n src: ...0x7f7c1868efc8\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f7c18621948])\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:2 col:11 line:...0x7f7c18623408)]\n )\n ]\n is_last_cmd: F\n )\n ]\n right: \n (Token\n id: Id.Lit_RBrace\n length: 1\n col: 2\n line: (SourceLine line_num:16 content:" }\\n" src:...0x7f7c1868efc8)\n )\n )\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 6\n col: 2\n line: \n (SourceLine\n line_num: 18\n content: " echo_a prefix\\n"\n src: ...0x7f7c1868efc8\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f7c18a24e88])\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f7c186234f8)]\n )\n ]\n is_last_cmd: F\n )\n (command.Simple\n blame_tok: \n (Token\n id: Id.Lit_Chars\n length: 6\n col: 2\n line: \n (SourceLine\n line_num: 19\n content: " echo_b prefix\\n"\n src: ...0x7f7c1868efc8\n )\n )\n more_env: []\n words: [\n (CompoundWord parts:[...0x7f7c18621dc8])\n (CompoundWord\n parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f7c18623548)]\n )\n ]\n is_last_cmd: F\n )\n ]\n right: \n (Token\n id: Id.Lit_RBrace\n length: 1\n col: 0\n line: (SourceLine line_num:20 content:"}\\n" src:...0x7f7c1868efc8)\n )\n )\n sh_compat: F\n module_frame: [\n Dict\n ARGV\n ...0x7f7c190270f8\n ENV\n ...0x7f7c19027a40\n UID\n ...0x7f7c18a2f570\n EUID\n ...0x7f7c18a2f5c8\n PPID\n ...0x7f7c18a2f620\n OPTIND\n ...0x7f7c18a2f678\n IFS\n ...0x7f7c18a2f6d0\n HOSTNAME\n ...0x7f7c18a2f728\n OSTYPE\n ...0x7f7c18a2f780\n PS4\n ...0x7f7c18a2f7d8\n COMP_WORDBREAKS\n ...0x7f7c18a2f830\n TMP\n ...0x7f7c18a2f888\n REPO_ROOT\n ...0x7f7c18a2f8e0\n SH\n ...0x7f7c18a2f938\n PATH\n ...0x7f7c18a2f990\n LC_ALL\n ...0x7f7c18a2f9e8\n LOCALE_ARCHIVE\n ...0x7f7c18a2fa40\n OILS_GC_ON_EXIT\n ...0x7f7c18a2fa98\n SHELLOPTS\n ...0x7f7c18a2faf0\n PWD\n ...0x7f7c18a2fb48\n p\n ...0x7f7c18a2fca8\n ]\n )\n )\n ]\n)\n'

stdout:
(value.Command
  frag: 
    (cmd_frag.Expr
      c: 
        (Proc
          keyword: 
            (Token
              id: Id.KW_Proc
              length: 4
              col: 0
              line: 
                (SourceLine
                  line_num: 1
                  content: "proc echo_a(prefix) {\n"
                  src: 
                    (source.Dynamic
                      what: "parseCommand()"
                      location: 
                        (Token
                          id: Id.Op_LParen
                          length: 1
                          col: 26
                          line: 
                            (SourceLine
                              line_num: 9
                              content: "    var cmd = parseCommand(s)\n"
                              src: (source.Stdin comment:"")
                            )
                        )
                    )
                )
            )
          name: (Token id:Id.Lit_Chars length:6 col:5 line:...0x7f7c186234a8)
          sig: 
            (proc_sig.Closed
              word: 
                (ParamGroup
                  params: [
                    (Param
                      blame_tok: (Token id:Id.Expr_Name length:6 col:12 line:...0x7f7c186234a8)
                      name: prefix
                    )
                  ]
                )
            )
          body: 
            (BraceGroup
              left: (Token id:Id.Lit_LBrace length:1 col:20 line:...0x7f7c186234a8)
              children: [
                (command.Simple
                  blame_tok: 
                    (Token
                      id: Id.Lit_Chars
                      length: 4
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 2
                          content: "  echo $prefix a\n"
                          src: ...0x7f7c18626828
                        )
                    )
                  more_env: []
                  words: [
                    (CompoundWord parts:[...0x7f7c1862a348])
                    (CompoundWord
                      parts: [
                        (SimpleVarSub
                          tok: (Token id:Id.VSub_DollarName length:7 col:7 line:...0x7f7c186235e8)
                        )
                      ]
                    )
                    (CompoundWord
                      parts: [(Token id:Id.Lit_Chars length:1 col:15 line:...0x7f7c186235e8)]
                    )
                  ]
                  is_last_cmd: F
                )
              ]
              right: 
                (Token
                  id: Id.Lit_RBrace
                  length: 1
                  col: 0
                  line: (SourceLine line_num:3 content:"}\n" src:...0x7f7c18626828)
                )
            )
        )
    )
  captured_frame: [
    Dict
    ARGV
    (Cell exported:F readonly:F nameref:F val:(value.List items:[]))
    result
    (Cell exported:F readonly:F nameref:F val:(value.Dict d:[Dict]))
    param
    (Cell exported:F readonly:F nameref:F val:(value.Str s:a))
    s
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: (value.Str s:"proc echo_a(prefix) {\n  echo $prefix a\n}\n")
    )
    cmd
    (Cell exported:F readonly:F nameref:F val:...0x7f7c18623638)
  ]
  module_frame: [
    Dict
    ARGV
    (Cell exported:F readonly:F nameref:F val:(value.List items:[]))
    ENV
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: 
        (value.Dict
          d: [
            Dict
            TMP
            (value.Str
              s: /home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh_ALT
            )
            REPO_ROOT
            (value.Str s:/home/uke/oil/test/..)
            SH
            (value.Str s:/home/uke/oil/_tmp/oil-tar-test/oil-0.23.0/_bin/ysh)
            PATH
            (value.Str
              s: 
"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            )
            LC_ALL
            (value.Str s:C.UTF-8)
            LOCALE_ARCHIVE
            (value.Str s:"")
            OILS_GC_ON_EXIT
            (value.Str s:"")
          ]
        )
    )
    UID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))
    EUID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1000))
    PPID
    (Cell exported:F readonly:F nameref:F val:(value.Str s:43276))
    OPTIND
    (Cell exported:F readonly:F nameref:F val:(value.Str s:1))
    IFS
    (Cell exported:F readonly:F nameref:F val:(value.Str s:" \t\n"))
    HOSTNAME
    (Cell exported:F readonly:F nameref:F val:(value.Str s:206f4f211e87))
    OSTYPE
    (Cell exported:F readonly:F nameref:F val:(value.Str s:linux))
    PS4
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: (value.Str s:"${SHX_indent}${SHX_punct}${SHX_pid_str} ")
    )
    COMP_WORDBREAKS
    (Cell exported:F readonly:F nameref:F val:(value.Str s:" \t\n\"'><=;|&(:"))
    TMP
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh_ALT)
    )
    REPO_ROOT
    (Cell exported:T readonly:F nameref:F val:(value.Str s:/home/uke/oil/test/..))
    SH
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: (value.Str s:/home/uke/oil/_tmp/oil-tar-test/oil-0.23.0/_bin/ysh)
    )
    PATH
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: 
        (value.Str
          s: 
"/home/uke/oil/test/../spec/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/home/uke/wedge/oils-for-unix.org/pkg/yash/2.49/bin:/home/uke/wedge/oils-for-unix.org/pkg/busybox/1.35.0:/home/uke/wedge/oils-for-unix.org/pkg/zsh/5.1.1/bin:/home/uke/wedge/oils-for-unix.org/pkg/mksh/R52c:/home/uke/wedge/oils-for-unix.org/pkg/dash/0.5.10.2/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/5.2.21/bin:/home/uke/wedge/oils-for-unix.org/pkg/bash/4.4/bin:/wedge/oils-for-unix.org/pkg/re2c/3.0/bin:/wedge/oils-for-unix.org/pkg/python3/3.10.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        )
    )
    LC_ALL
    (Cell exported:T readonly:F nameref:F val:(value.Str s:C.UTF-8))
    LOCALE_ARCHIVE
    (Cell exported:T readonly:F nameref:F val:(value.Str s:""))
    OILS_GC_ON_EXIT
    (Cell exported:T readonly:F nameref:F val:(value.Str s:""))
    SHELLOPTS
    (Cell exported:F readonly:T nameref:F val:(value.Str s:""))
    PWD
    (Cell
      exported: T
      readonly: F
      nameref: F
      val: (value.Str s:/home/uke/oil/_tmp/spec-tmp/ysh-proc-meta.test.sh.43270/03-ysh_ALT)
    )
    p
    (Cell
      exported: F
      readonly: F
      nameref: F
      val: 
        (value.Proc
          name: p
          name_tok: 
            (Token
              id: Id.Lit_Chars
              length: 1
              col: 5
              line: (SourceLine line_num:1 content:"proc p {\n" src:...0x7f7c1868efc8)
            )
          sig: (proc_sig__Open)
          body: 
            (BraceGroup
              left: (Token id:Id.Lit_LBrace length:1 col:7 line:...0x7f7c189b6c28)
              children: [
                (command.VarDecl
                  keyword: 
                    (Token
                      id: Id.KW_Var
                      length: 3
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 2
                          content: "  var result = {}\n"
                          src: ...0x7f7c1868efc8
                        )
                    )
                  lhs: [
                    (NameType
                      left: (Token id:Id.Expr_Name length:6 col:6 line:...0x7f7c189b6b88)
                      name: result
                    )
                  ]
                  rhs: 
                    (expr.Dict
                      left: (Token id:Id.Op_LBrace length:1 col:15 line:...0x7f7c189b6b88)
                      keys: []
                      values: []
                    )
                )
                (command.ForEach
                  keyword: 
                    (Token
                      id: Id.KW_For
                      length: 3
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 3
                          content: "  for param in a b {\n"
                          src: ...0x7f7c1868efc8
                        )
                    )
                  iter_names: [param]
                  iterable: 
                    (for_iter.Words
                      words: [
                        (CompoundWord
                          parts: [
                            (Token
                              id: Id.Lit_Chars
                              length: 1
                              col: 15
                              line: ...0x7f7c189b6e58
                              tval: a
                            )
                          ]
                        )
                        (CompoundWord
                          parts: [
                            (Token
                              id: Id.Lit_Chars
                              length: 1
                              col: 17
                              line: ...0x7f7c189b6e58
                              tval: b
                            )
                          ]
                        )
                      ]
                    )
                  body: 
                    (BraceGroup
                      left: (Token id:Id.Lit_LBrace length:1 col:19 line:...0x7f7c189b6e58)
                      children: [
                        (command.VarDecl
                          keyword: 
                            (Token
                              id: Id.KW_Var
                              length: 3
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 4
                                  content: "    var s = \"\"\"\n"
                                  src: ...0x7f7c1868efc8
                                )
                            )
                          lhs: [
                            (NameType
                              left: (Token id:Id.Expr_Name length:1 col:8 line:...0x7f7c189b6ea8)
                              name: s
                            )
                          ]
                          rhs: 
                            (DoubleQuoted
                              left: 
                                (Token
                                  id: Id.Left_TDoubleQuote
                                  length: 3
                                  col: 12
                                  line: ...0x7f7c189b6ea8
                                )
                              parts: [
                                (Token
                                  id: Id.Lit_CharsWithoutPrefix
                                  length: 10
                                  col: 4
                                  line: 
                                    (SourceLine
                                      line_num: 5
                                      content: "    proc echo_$param(prefix) {\n"
                                      src: ...0x7f7c1868efc8
                                    )
                                  tval: "proc echo_"
                                )
                                (SimpleVarSub
                                  tok: 
                                    (Token
                                      id: Id.VSub_DollarName
                                      length: 6
                                      col: 14
                                      line: ...0x7f7c189b6ef8
                                      tval: param
                                    )
                                )
                                (Token
                                  id: Id.Lit_Chars
                                  length: 11
                                  col: 20
                                  line: ...0x7f7c189b6ef8
                                  tval: "(prefix) {\n"
                                )
                                (Token
                                  id: Id.Lit_CharsWithoutPrefix
                                  length: 7
                                  col: 4
                                  line: 
                                    (SourceLine
                                      line_num: 6
                                      content: "      echo \\$prefix $param\n"
                                      src: ...0x7f7c1868efc8
                                    )
                                  tval: "  echo "
                                )
                                (word_part.EscapedLiteral
                                  token: 
                                    (Token
                                      id: Id.Lit_EscapedChar
                                      length: 2
                                      col: 11
                                      line: ...0x7f7c189b6f48
                                    )
                                  ch: "$"
                                )
                                (Token
                                  id: Id.Lit_Chars
                                  length: 7
                                  col: 13
                                  line: ...0x7f7c189b6f48
                                  tval: "prefix "
                                )
                                (SimpleVarSub
                                  tok: 
                                    (Token
                                      id: Id.VSub_DollarName
                                      length: 6
                                      col: 20
                                      line: ...0x7f7c189b6f48
                                      tval: param
                                    )
                                )
                                (Token
                                  id: Id.Lit_Chars
                                  length: 1
                                  col: 26
                                  line: ...0x7f7c189b6f48
                                  tval: "\n"
                                )
                                (Token
                                  id: Id.Lit_CharsWithoutPrefix
                                  length: 2
                                  col: 4
                                  line: 
                                    (SourceLine
                                      line_num: 7
                                      content: "    }\n"
                                      src: ...0x7f7c1868efc8
                                    )
                                  tval: "}\n"
                                )
                              ]
                              right: 
                                (Token
                                  id: Id.Right_DoubleQuote
                                  length: 1
                                  col: 6
                                  line: 
                                    (SourceLine
                                      line_num: 8
                                      content: "    \"\"\"\n"
                                      src: ...0x7f7c1868efc8
                                    )
                                )
                            )
                        )
                        (command.VarDecl
                          keyword: (Token id:Id.KW_Var length:3 col:4 line:...0x7f7c18623188)
                          lhs: [
                            (NameType
                              left: (Token id:Id.Expr_Name length:3 col:8 line:...0x7f7c18623188)
                              name: cmd
                            )
                          ]
                          rhs: 
                            (expr.FuncCall
                              func: 
                                (expr.Var
                                  left: 
                                    (Token
                                      id: Id.Expr_Name
                                      length: 12
                                      col: 14
                                      line: ...0x7f7c18623188
                                    )
                                  name: parseCommand
                                )
                              args: 
                                (ArgList
                                  left: ...0x7f7c18621108
                                  pos_args: [
                                    (expr.Var
                                      left: 
                                        (Token
                                          id: Id.Expr_Name
                                          length: 1
                                          col: 27
                                          line: ...0x7f7c18623188
                                        )
                                      name: s
                                    )
                                  ]
                                  named_args: []
                                  right: 
                                    (Token
                                      id: Id.Op_RParen
                                      length: 1
                                      col: 28
                                      line: ...0x7f7c18623188
                                    )
                                )
                            )
                        )
                        (command.Simple
                          blame_tok: 
                            (Token
                              id: Id.Lit_Chars
                              length: 2
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 10
                                  content: "    pp asdl_ (cmd)\n"
                                  src: ...0x7f7c1868efc8
                                )
                              tval: pp
                            )
                          more_env: []
                          words: [
                            (CompoundWord parts:[...0x7f7c18621168])
                            (CompoundWord
                              parts: [
                                (Token
                                  id: Id.Lit_Chars
                                  length: 5
                                  col: 7
                                  line: ...0x7f7c18623278
                                  tval: asdl_
                                )
                              ]
                            )
                          ]
                          typed_args: 
                            (ArgList
                              left: (Token id:Id.Op_LParen length:1 col:13 line:...0x7f7c18623278)
                              pos_args: [
                                (expr.Var
                                  left: 
                                    (Token
                                      id: Id.Expr_Name
                                      length: 3
                                      col: 14
                                      line: ...0x7f7c18623278
                                    )
                                  name: cmd
                                )
                              ]
                              named_args: []
                              right: (Token id:Id.Op_RParen length:1 col:17 line:...0x7f7c18623278)
                            )
                          is_last_cmd: F
                        )
                        (command.Expr
                          keyword: 
                            (Token
                              id: Id.KW_Call
                              length: 4
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 13
                                  content: "    call io->eval(cmd)\n"
                                  src: ...0x7f7c1868efc8
                                )
                            )
                          e: 
                            (expr.FuncCall
                              func: 
                                (Attribute
                                  obj: 
                                    (expr.Var
                                      left: 
                                        (Token
                                          id: Id.Expr_Name
                                          length: 2
                                          col: 9
                                          line: ...0x7f7c18623368
                                        )
                                      name: io
                                    )
                                  op: 
                                    (Token
                                      id: Id.Expr_RArrow
                                      length: 2
                                      col: 11
                                      line: ...0x7f7c18623368
                                    )
                                  attr: 
                                    (Token
                                      id: Id.Expr_Name
                                      length: 4
                                      col: 13
                                      line: ...0x7f7c18623368
                                    )
                                  attr_name: eval
                                  ctx: expr_context.Store
                                )
                              args: 
                                (ArgList
                                  left: 
                                    (Token
                                      id: Id.Op_LParen
                                      length: 1
                                      col: 17
                                      line: ...0x7f7c18623368
                                    )
                                  pos_args: [
                                    (expr.Var
                                      left: 
                                        (Token
                                          id: Id.Expr_Name
                                          length: 3
                                          col: 18
                                          line: ...0x7f7c18623368
                                        )
                                      name: cmd
                                    )
                                  ]
                                  named_args: []
                                  right: 
                                    (Token
                                      id: Id.Op_RParen
                                      length: 1
                                      col: 21
                                      line: ...0x7f7c18623368
                                    )
                                )
                            )
                        )
                        (command.Simple
                          blame_tok: 
                            (Token
                              id: Id.Lit_Chars
                              length: 6
                              col: 4
                              line: 
                                (SourceLine
                                  line_num: 15
                                  content: "    echo_a zz\n"
                                  src: ...0x7f7c1868efc8
                                )
                            )
                          more_env: []
                          words: [
                            (CompoundWord parts:[...0x7f7c18621948])
                            (CompoundWord
                              parts: [(Token id:Id.Lit_Chars length:2 col:11 line:...0x7f7c18623408)]
                            )
                          ]
                          is_last_cmd: F
                        )
                      ]
                      right: 
                        (Token
                          id: Id.Lit_RBrace
                          length: 1
                          col: 2
                          line: (SourceLine line_num:16 content:"  }\n" src:...0x7f7c1868efc8)
                        )
                    )
                )
                (command.Simple
                  blame_tok: 
                    (Token
                      id: Id.Lit_Chars
                      length: 6
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 18
                          content: "  echo_a prefix\n"
                          src: ...0x7f7c1868efc8
                        )
                    )
                  more_env: []
                  words: [
                    (CompoundWord parts:[...0x7f7c18a24e88])
                    (CompoundWord
                      parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f7c186234f8)]
                    )
                  ]
                  is_last_cmd: F
                )
                (command.Simple
                  blame_tok: 
                    (Token
                      id: Id.Lit_Chars
                      length: 6
                      col: 2
                      line: 
                        (SourceLine
                          line_num: 19
                          content: "  echo_b prefix\n"
                          src: ...0x7f7c1868efc8
                        )
                    )
                  more_env: []
                  words: [
                    (CompoundWord parts:[...0x7f7c18621dc8])
                    (CompoundWord
                      parts: [(Token id:Id.Lit_Chars length:6 col:9 line:...0x7f7c18623548)]
                    )
                  ]
                  is_last_cmd: F
                )
              ]
              right: 
                (Token
                  id: Id.Lit_RBrace
                  length: 1
                  col: 0
                  line: (SourceLine line_num:20 content:"}\n" src:...0x7f7c1868efc8)
                )
            )
          sh_compat: F
          module_frame: [
            Dict
            ARGV
            ...0x7f7c190270f8
            ENV
            ...0x7f7c19027a40
            UID
            ...0x7f7c18a2f570
            EUID
            ...0x7f7c18a2f5c8
            PPID
            ...0x7f7c18a2f620
            OPTIND
            ...0x7f7c18a2f678
            IFS
            ...0x7f7c18a2f6d0
            HOSTNAME
            ...0x7f7c18a2f728
            OSTYPE
            ...0x7f7c18a2f780
            PS4
            ...0x7f7c18a2f7d8
            COMP_WORDBREAKS
            ...0x7f7c18a2f830
            TMP
            ...0x7f7c18a2f888
            REPO_ROOT
            ...0x7f7c18a2f8e0
            SH
            ...0x7f7c18a2f938
            PATH
            ...0x7f7c18a2f990
            LC_ALL
            ...0x7f7c18a2f9e8
            LOCALE_ARCHIVE
            ...0x7f7c18a2fa40
            OILS_GC_ON_EXIT
            ...0x7f7c18a2fa98
            SHELLOPTS
            ...0x7f7c18a2faf0
            PWD
            ...0x7f7c18a2fb48
            p
            ...0x7f7c18a2fca8
          ]
        )
    )
  ]
)
stderr:
      echo_a zz
      ^~~~~~
[ stdin ]:15: 'echo_a' not found (OILS-ERR-100)
[ stdin ]:15: errexit PID 43292: command.Simple failed with status 127