(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:st) op:assign_op.Equal rhs:{(0)} spids:[4])]
    )
    (command.ForEach
      iter_name: i
      iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)} {(6)} {(7)}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(./test-spawn-pipe-main) (${ Id.VSub_Name EXEEXT)} 
                  {(./test-spawn-pipe-child) (${ Id.VSub_Name EXEEXT)} {($ Id.VSub_DollarName '$i')}
                )
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [
                            {(echo)}
                            {(test-spawn-pipe.sh) (Id.Lit_Other ':')}
                            {(iteration)}
                            {($ Id.VSub_DollarName '$i')}
                            {(failed)}
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:63)
                              fd: -1
                              arg_word: {(2)}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:65)
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:st)
                              op: assign_op.Equal
                              rhs: {(1)}
                              spids: [67]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:69)
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ControlFlow
      token: (Token id:Id.ControlFlow_Exit val:exit span_id:75)
      arg_word: {($ Id.VSub_DollarName '$st')}
    )
  ]
)