(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_)} {(ginstall)})
    (C {(working_umask_or_skip_)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(cat)}]
          redirects: [
            (HereDoc
              op_id: Redir_DLess
              fd: 16777215
              body: 
                {
                  (DQ ('#!') ($ VSub_Name '$PREFERABLY_POSIX_SHELL') ('\n') ('sed s/b/B/ ') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('1 > ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('1.t && mv ') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('1.t ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('1\n')
                  )
                }
              do_expansion: True
              here_end: EOF
              was_filled: T
              spids: [70]
            )
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(b)} spids:[73])
          ]
        )
        (C {(framework_failure_)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [(C {(chmod)} {(a) (Lit_Other '+') (x)} {(b)}) (C {(framework_failure_)})]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(echo)} {(abc)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(src)} spids:[112])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[118])]
          spids: [118]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(echo)} {(aBc)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[125])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[131])]
          spids: [131]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(ginstall)} {(src)} {(dest)} {(-s)} {(--strip-program) (Lit_Other '=') (./b)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[148])]
          spids: [148]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(dest)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[159])]
          spids: [159]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(ginstall)} {(src)} {(dest2)} {(-s)} {(--strip-program) (Lit_Other '=') (./FOO)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[180])]
          spids: [180]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-e)} {(dest2)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[191])]
          spids: [191]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)