(command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<nounset>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<pipefail>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<errexit>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'DASH='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<dash>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<'/bin/sh'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'BASH='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<bash>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'MKSH='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<mksh>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'ZSH='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<zsh>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [{<readonly>} {<Id.Lit_VarLike 'BUSYBOX_ASH='> <'_tmp/shells/ash'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'OSH_PYTHON='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OSH_PYTHON> var_name: OSH_PYTHON suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<bin> <Id.Lit_Slash '/'> <osh>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'OSH_OVM='> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name OSH_OVM> var_name: OSH_OVM suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<_bin> <Id.Lit_Slash '/'> <osh>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-e>} {($ Id.VSub_DollarName OSH_OVM)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'OSH='> (DQ ($ Id.VSub_DollarName OSH_PYTHON) <' '> ($ Id.VSub_DollarName OSH_OVM)) } ] redirects: [] do_fork: T ) ] spids: [106 115] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <readonly> more_env: [] words: [{<readonly>} {<Id.Lit_VarLike 'OSH='> (DQ ($ Id.VSub_DollarName OSH_PYTHON))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <readonly> more_env: [] words: [ {<readonly>} {<Id.Lit_VarLike 'REF_SHELLS='> (ShArrayLiteral left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName DASH)} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.ShFunction name_tok: <link-busybox-ash> name: link-busybox-ash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [ {<mkdir>} {<-p>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {($ Id.VSub_DollarName BUSYBOX_ASH)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <ln> more_env: [] words: [ {<ln>} {<-s>} {<-f>} {<--verbose>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<busybox>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName BUSYBOX_ASH)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <install-shells> name: install-shells body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sudo> more_env: [] words: [{<sudo>} {<apt-get>} {<install>} {<busybox-static>} {<mksh>} {<zsh>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <link-busybox-ash> more_env: [] words: [{<link-busybox-ash>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <check-shells> name: check-shells body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [sh] iterable: (for_iter.Words words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-e>} {($ Id.VSub_DollarName sh)}] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'ERROR: '> ($ Id.VSub_DollarName sh) <' does not exist'>)} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Break break>) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-x>} {($ Id.VSub_DollarName sh)}] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'ERROR: '> ($ Id.VSub_DollarName sh) <' isn\'t executable'>) } ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Break break>) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_wget> name: _wget body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <wget> more_env: [] words: [{<wget>} {<--no-clobber>} {<--directory>} {<'_tmp/src'>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <download-shell-source> name: download-shell-source body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {<'_tmp/src'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_wget> more_env: [] words: [{<_wget>} {<https> <Id.Lit_Colon ':'> <'//ftp.gnu.org/gnu/bash/bash-4.4.tar.gz'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <_wget> more_env: [] words: [ {<_wget>} {<https> <Id.Lit_Colon ':'> <'//www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R54.tgz'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <_wget> more_env: [] words: [ {<_wget>} {<https> <Id.Lit_Colon ':'> <'//downloads.sourceforge.net/project/zsh/zsh/5.3.1/zsh-5.3.1.tar.xz'> } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <maybe-show> name: maybe-show body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'path='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-e>} {($ Id.VSub_DollarName path)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'--- '> ($ Id.VSub_DollarName path) <' ---'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName path)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) ] spids: [448 457] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <version-text> name: version-text body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <date> more_env: [] words: [{<date>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-d>} {<.git>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'branch='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {<--abbrev-ref>} {<HEAD>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'hash='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <git> more_env: [] words: [{<git>} {<rev-parse>} {($ Id.VSub_DollarName branch)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'oil repo: '> ($ Id.VSub_DollarName hash) <' on branch '> ($ Id.VSub_DollarName branch) ) } ] redirects: [] do_fork: T ) ] spids: [496 505] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'(not running from git repository)'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [bin] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName OSH)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <' '> ($ Id.VSub_DollarName bin) <' --version'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$bin'> more_env: [] words: [{($ Id.VSub_DollarName bin)} {<--version>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <python> more_env: [] words: [{<python>} {<--version>}] redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$BASH'> more_env: [] words: [{($ Id.VSub_DollarName BASH)} {<--version>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-n>} {<1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$ZSH'> more_env: [] words: [{($ Id.VSub_DollarName ZSH)} {<--version>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-n>} {<1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <dpkg> more_env: [] words: [{<dpkg>} {<-s>} {<dash>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <egrep> more_env: [] words: [{<egrep>} {(SQ <'^Package|Version'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <dpkg> more_env: [] words: [{<dpkg>} {<-s>} {<mksh>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <egrep> more_env: [] words: [{<egrep>} {(SQ <'^Package|Version'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.AndOr children: [ (command.Simple blame_tok: <busybox> more_env: [] words: [{<busybox>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-n>} {<1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <maybe-show> more_env: [] words: [{<maybe-show>} {<'/etc/debian_version'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <maybe-show> more_env: [] words: [{<maybe-show>} {<'/etc/lsb-release'>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <sh-spec> name: sh-spec body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'this_dir='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <cd> more_env: [] words: [ {<cd>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {($ Id.VSub_Number 0)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pwd> more_env: [] words: [{<pwd>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'tmp_env='> ($ Id.VSub_DollarName this_dir) <'/../_tmp/spec-tmp'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName tmp_env)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <'test/sh_spec.py'> more_env: [] words: [ {<'test/sh_spec.py'>} {<--tmp-env>} {($ Id.VSub_DollarName tmp_env)} {<--path-env>} {(DQ ($ Id.VSub_DollarName this_dir) <'/../spec/bin:'> ($ Id.VSub_DollarName PATH))} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <trace-var-sub> name: trace-var-sub body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'out='> <'_tmp/coverage'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <python> more_env: [] words: [ {<python>} {<-m>} {<trace>} {<--trackcalls>} {<-C>} {($ Id.VSub_DollarName out)} {<'test/sh_spec.py'>} {<'spec/var-sub.test.sh'>} {($ Id.VSub_DollarName DASH)} {($ Id.VSub_DollarName BASH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <ls> more_env: [] words: [{<ls>} {<-l>} {($ Id.VSub_DollarName out)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {($ Id.VSub_DollarName out) <'/'> <Id.Lit_Star '*'> <.cover>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <all> name: all body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <'test/spec-runner.sh'> more_env: [] words: [{<'test/spec-runner.sh'>} {<all-parallel>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <smoke> name: smoke body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/smoke.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <osh-only> name: osh-only body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/osh-only.test.sh'>} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <bugs> name: bugs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/bugs.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <blog1> name: blog1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/blog1.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <blog2> name: blog2 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/blog2.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <blog-other1> name: blog-other1 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/blog-other1.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <alias> name: alias body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/alias.test.sh'>} {<--osh-failures-allowed>} {<10>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <comments> name: comments body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/comments.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <word-split> name: word-split body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/word-split.test.sh'>} {<--osh-failures-allowed>} {<2>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <word-eval> name: word-eval body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/word-eval.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <assign> name: assign body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/assign.test.sh'>} {<--osh-failures-allowed>} {<3>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <background> name: background body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/background.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <subshell> name: subshell body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/subshell.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <quote> name: quote body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/quote.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName BUSYBOX_ASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <loop> name: loop body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/loop.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <case_> name: case_ body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/case_.test.sh'>} {<--osh-failures-allowed>} {<2>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <if_> name: if_ body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/if_.test.sh'>} {<--osh-failures-allowed>} {<1>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtins> name: builtins body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtins.test.sh'>} {<--osh-failures-allowed>} {<1>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-io> name: builtin-io body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-io.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName BUSYBOX_ASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtins2> name: builtins2 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtins2.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-dirs> name: builtin-dirs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-dirs.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-vars> name: builtin-vars body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-vars.test.sh'>} {<--osh-failures-allowed>} {<2>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-getopts> name: builtin-getopts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-getopts.test.sh'>} {<--osh-failures-allowed>} {<1>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName BUSYBOX_ASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-test> name: builtin-test body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-test.test.sh'>} {<--osh-failures-allowed>} {<1>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-trap> name: builtin-trap body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-trap.test.sh'>} {<--osh-failures-allowed>} {<3>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtin-bash> name: builtin-bash body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtin-bash.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <builtins-special> name: builtins-special body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/builtins-special.test.sh'>} {<--osh-failures-allowed>} {<3>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <command-parsing> name: command-parsing body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/command-parsing.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <func-parsing> name: func-parsing body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/func-parsing.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <Id.KW_Func func> name: func body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/func.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <glob> name: glob body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/glob.test.sh'>} {<--osh-failures-allowed>} {<2>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName BUSYBOX_ASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arith> name: arith body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/arith.test.sh'>} {<--osh-failures-allowed>} {<3>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <command-sub> name: command-sub body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/command-sub.test.sh'>} {<--osh-failures-allowed>} {<2>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <command_> name: command_ body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/command_.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <pipeline> name: pipeline body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/pipeline.test.sh'>} {<--osh-failures-allowed>} {<3>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <explore-parsing> name: explore-parsing body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/explore-parsing.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <parse-errors> name: parse-errors body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/parse-errors.test.sh'>} {<--osh-failures-allowed>} {<5>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <here-doc> name: here-doc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/here-doc.test.sh'>} {<--osh-failures-allowed>} {<1>} {<--range>} {<0-30>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <redirect> name: redirect body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/redirect.test.sh'>} {<--osh-failures-allowed>} {<5>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <posix> name: posix body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/posix.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <special-vars> name: special-vars body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/special-vars.test.sh'>} {<--osh-failures-allowed>} {<4>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <introspect> name: introspect body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/introspect.test.sh'>} {<--osh-failures-allowed>} {<3>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <tilde> name: tilde body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/tilde.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-op-test> name: var-op-test body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-op-test.test.sh'>} {<--osh-failures-allowed>} {<5>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-op-other> name: var-op-other body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-op-other.test.sh'>} {<--osh-failures-allowed>} {<2>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-op-strip> name: var-op-strip body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-op-strip.test.sh'>} {<--osh-failures-allowed>} {<1>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-sub> name: var-sub body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-sub.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-num> name: var-num body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-num.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-sub-quote> name: var-sub-quote body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-sub-quote.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <sh-options> name: sh-options body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/sh-options.test.sh'>} {<--osh-failures-allowed>} {<3>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <xtrace> name: xtrace body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/xtrace.test.sh'>} {<--osh-failures-allowed>} {<5>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <strict-options> name: strict-options body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/strict-options.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <errexit> name: errexit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/errexit.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName BUSYBOX_ASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <errexit-strict> name: errexit-strict body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/errexit-strict.test.sh'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name REF_SHELLS> var_name: REF_SHELLS bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName BUSYBOX_ASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <arith-context> name: arith-context body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/arith-context.test.sh'>} {<--osh-failures-allowed>} {<3>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <array> name: array body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/array.test.sh'>} {<--osh-failures-allowed>} {<8>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <array-compat> name: array-compat body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/array-compat.test.sh'>} {<--osh-failures-allowed>} {<7>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <type-compat> name: type-compat body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/type-compat.test.sh'>} {($ Id.VSub_DollarName BASH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <append> name: append body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/append.test.sh'>} {<--osh-failures-allowed>} {<4>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <assoc> name: assoc body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/assoc.test.sh'>} {($ Id.VSub_DollarName BASH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <assoc-zsh> name: assoc-zsh body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/assoc-zsh.test.sh'>} {($ Id.VSub_DollarName ZSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <dbracket> name: dbracket body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/dbracket.test.sh'>} {<--osh-failures-allowed>} {<2>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <dparen> name: dparen body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/dparen.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <brace-expansion> name: brace-expansion body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/brace-expansion.test.sh'>} {<--osh-failures-allowed>} {<12>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <regex> name: regex body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/regex.test.sh'>} {<--osh-failures-allowed>} {<3>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <process-sub> name: process-sub body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/process-sub.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName ZSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <extended-glob> name: extended-glob body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/extended-glob.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <var-ref> name: var-ref body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/var-ref.test.sh'>} {<--osh-failures-allowed>} {<5>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <let> name: let body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/let.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName ZSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <for-expr> name: for-expr body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/for-expr.test.sh'>} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName OSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <shell-grammar> name: shell-grammar body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <sh-spec> more_env: [] words: [ {<sh-spec>} {<'spec/shell-grammar.test.sh'>} {($ Id.VSub_DollarName BASH)} {($ Id.VSub_DollarName MKSH)} {($ Id.VSub_DollarName ZSH)} {(DQ ($ Id.VSub_At '@'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <Id.Left_DoubleQuote '"'> more_env: [] words: [{(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] )