(CommandList
  children: [
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [47 51]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(nohup)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(nohup)} {(sh)} {(-c)} {(SQ <'echo stdout; echo stderr 1>&2'>)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(err)} spids:[76])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[81])]
          spids: [81]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-t)} {(1)}) terminator:<Op_Semi ';'>)]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(cat)} {(nohup.out)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [106 110]
                      )
                    )
                  } {(Lit_Other '=')} {(stdout)}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[119])]
                  spids: [119]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [(Sentence child:(C {(test)} {(-t)} {(0)}) terminator:<Op_Semi ';'>)]
                      action: [
                        (C {(echo)} 
                          {(SQ <'nohup: ignoring input and appending output to '>) (nohup.out) 
                            (SQ <'\\'>)
                          }
                        )
                      ]
                      spids: [16777215 132]
                    )
                  ]
                  else_action: [
                    (C {(echo)} {(SQ <'nohup: appending output to '>) (nohup.out) (SQ <'\\'>)})
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[162])]
                  spids: [146 160]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[167])]
                  spids: [167]
                )
              ]
            )
          ]
          spids: [16777215 100]
        )
      ]
      else_action: [
        (AndOr
          ops: [Op_DAmp]
          children: [
            (C {(test)} {(-f)} {(nohup.out)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[185])]
              spids: [185]
            )
          ]
        )
        (AndOr
          ops: [Op_DPipe]
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(test)} {(-t)} {(0)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(SQ <'nohup: ignoring input'>)}]
                      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[207])]
                    )
                  ]
                  spids: [16777215 198]
                )
              ]
              else_action: [(C {(rm)} {(-f)} {(exp)})]
              spids: [211 221]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[225])]
              spids: [225]
            )
          ]
        )
      ]
      spids: [170 228]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(echo)} {(SQ <stderr>)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(exp)} spids:[236])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[242])]
          spids: [242]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(err)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[254])]
          spids: [254]
        )
      ]
    )
    (C {(rm)} {(-f)} {(nohup.out)} {(err)} {(exp)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(nohup)} {(sh)} {(-c)} {(SQ <'echo stdout; echo stderr 1>&2'>)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[287])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[292])]
          spids: [292]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-t)} {(2)}) terminator:<Op_Semi ';'>)]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [(C {(cat)} {(out)}) (C {(tr)} {(SQ <'\\n'>)} {(-)})]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [310 322]
                      )
                    )
                  } {(Lit_Other '=')} {(stdout-stderr-)}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[331])]
                  spids: [331]
                )
              ]
            )
          ]
          spids: [16777215 304]
        )
      ]
      else_action: [
        (AndOr
          ops: [Op_DPipe]
          children: [
            (C {(test)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [(C {(cat)} {(out)}) (C {(tr)} {(SQ <'\\n'>)} {(-)})]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [340 352]
                  )
                )
              } {(Lit_Other '=')} {(stdout-)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[361])]
              spids: [361]
            )
          ]
        )
      ]
      spids: [334 364]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-f)} {(nohup.out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[377])]
          spids: [377]
        )
      ]
    )
    (C {(rm)} {(-f)} {(nohup.out)} {(err)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [(C {(test)} {(-w)} {(/dev/full)}) (C {(test)} {(-c)} {(/dev/full)})]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (SimpleCommand
                          words: [{(exec)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/tty)}
                              spids: [422]
                            )
                          ]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {(-t)} {(1)})
                            (ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(0)}
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(nohup)} {(echo)} {(hi)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/full)}
                              spids: [445]
                            )
                          ]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {($ VSub_QMark '$?')} {(Lit_Other '=')} {(125)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fail)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [460]
                                )
                              ]
                              spids: [460]
                            )
                          ]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {(-f)} {(nohup.out)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fail)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [472]
                                )
                              ]
                              spids: [472]
                            )
                          ]
                        )
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(test)} {(-s)} {(nohup.out)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:fail)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [484]
                                )
                              ]
                              spids: [484]
                            )
                          ]
                        )
                        (C {(rm)} {(-f)} {(nohup.out)})
                        (ControlFlow
                          token: <ControlFlow_Exit exit>
                          arg_word: {($ VSub_Name '$fail')}
                        )
                      ]
                    )
                  spids: [417 499]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[503])]
                  spids: [503]
                )
              ]
            )
          ]
          spids: [16777215 415]
        )
      ]
      spids: [16777215 506]
    )
    (SimpleCommand
      words: [{(nohup)} {(no-such-command)}]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(err)} spids:[513])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:errno) op:Equal rhs:{($ VSub_QMark '$?')} spids:[517])]
      spids: [517]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-t)} {(1)}) terminator:<Op_Semi ';'>)]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {($ VSub_Name '$errno')} {(Lit_Other '=')} {(127)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[542])]
                  spids: [542]
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-f)} {(nohup.out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[558])]
                  spids: [558]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-s)} {(nohup.out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[574])]
                  spids: [574]
                )
              ]
            )
          ]
          spids: [16777215 529]
        )
      ]
      spids: [16777215 577]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (HereDoc
              op_id: Redir_DLess
              fd: 16777215
              body: 
                {("nohup: appending output to 'nohup.out'\n") 
                  ("nohup: cannot run command 'no-such-command': No such file or directory\n")
                }
              do_expansion: False
              here_end: EOF
              was_filled: T
              spids: [582]
            )
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[586])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[592])]
          spids: [592]
        )
      ]
    )
    (C {(rm)} {(-f)} {(nohup.out)} {(err)} {(exp)})
    (Sentence child:(C {(touch)} {(k)}) terminator:<Op_Semi ';'>)
    (C {(chmod)} {(0)} {(k)})
    (SimpleCommand
      words: [{(nohup)} {(./k)}]
      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(err)} spids:[630])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:errno) op:Equal rhs:{($ VSub_QMark '$?')} spids:[634])]
      spids: [634]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {($ VSub_Name '$errno')} {(Lit_Other '=')} {(126)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[647])]
          spids: [647]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(test)} {(-t)} {(1)}) terminator:<Op_Semi ';'>)]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-f)} {(nohup.out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[674])]
                  spids: [674]
                )
              ]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-s)} {(nohup.out)})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[690])]
                  spids: [690]
                )
              ]
            )
          ]
          spids: [16777215 659]
        )
      ]
      spids: [16777215 693]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (HereDoc
              op_id: Redir_DLess
              fd: 16777215
              body: 
                {("nohup: appending output to 'nohup.out'\n") 
                  ("nohup: cannot run command './k': Permission denied\n")
                }
              do_expansion: False
              here_end: EOF
              was_filled: T
              spids: [698]
            )
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[702])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[708])]
          spids: [708]
        )
      ]
    )
    (SimpleCommand
      words: [{(nohup)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[726])
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[729])
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {($ VSub_QMark '$?')} {(Lit_Other '=')} {(125)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[742])]
          spids: [742]
        )
      ]
    )
    (SimpleCommand
      words: [{(nohup)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[750])
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[753])
      ]
      more_env: [(env_pair name:POSIXLY_CORRECT val:{(1)} spids:[745])]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {($ VSub_QMark '$?')} {(Lit_Other '=')} {(127)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[766])]
          spids: [766]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)