(CommandList
  children: [
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [50 54]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(cp)} {(mv)})
    (C {(skip_if_root_)})
    (ForEach
      iter_name: i
      iter_words: [{(a)} {(b)} {(c)} {(d)} {(e)} {(f)} {(g)} {(h)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [{(echo)} {($ VSub_Name '$i')}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {($ VSub_Name '$i')}
                      spids: [103]
                    )
                  ]
                )
                (C {(framework_failure_)})
              ]
            )
          ]
          spids: [96 111]
        )
      spids: [78 94]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [(C {(chmod)} {(0)} {(b)} {(d)} {(f)} {(h)}) (C {(framework_failure_)})]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(echo)} {(y)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(y)} spids:[133])]
        )
        (C {(framework_failure_)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mv)} {(-if)} {(a)} {(b)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[152])]
          spids: [152]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mv)} {(-fi)} {(c)} {(d)}]
          redirects: [
            (Redir op_id:Redir_Less fd:16777215 arg_word:{(y)} spids:[163])
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[167])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[170])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[175])]
          spids: [175]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(cp)} {(-if)} {(e)} {(f)}]
          redirects: [
            (Redir op_id:Redir_Less fd:16777215 arg_word:{(y)} spids:[190])
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[194])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[198])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[203])]
          spids: [203]
        )
      ]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: (CommandList children:[(C {(cat)} {(out)})])
              left_token: <Left_CommandSub '$('>
              spids: [213 217]
            )
          )
        }
      arms: [
        (case_arm
          pat_list: [
            {(DQ ("cp: try to overwrite 'f', overriding mode 0000 (---------)?")) (Lit_Other '*')}
          ]
          spids: [224 227 229 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[235])]
              spids: [235]
            )
          ]
          spids: [232 233 238 16777215]
        )
      ]
      spids: [210 220 240]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-f)} {(e)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[251])]
          spids: [251]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-f)} {(f)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[262])]
          spids: [262]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(e)} {(f)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[273])]
          spids: [273]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(cp)} {(-fi)} {(g)} {(h)}]
          redirects: [
            (Redir op_id:Redir_Less fd:16777215 arg_word:{(y)} spids:[285])
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[289])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[293])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[298])]
          spids: [298]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-f)} {(g)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[309])]
          spids: [309]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-f)} {(h)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[320])]
          spids: [320]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(g)} {(h)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[331])]
          spids: [331]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)