(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_)} {(rmdir)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cwd)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_CommandSub '$('>
                spids: [66 68]
              )
            }
          spids: [65]
        )
      ]
      spids: [65]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$cwd') (/a/b/c))} {(DQ ($ VSub_Name '$cwd') (/a/x))})
        (C {(framework_failure_)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(rmdir)} {(-p)} {(--ignore-fail-on-non-empty)} {(DQ ($ VSub_Name '$cwd') (/a/b/c))})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[102])]
          spids: [102]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-d)} {(DQ ($ VSub_Name '$cwd') (/a/x))})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[119])]
          spids: [119]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-d)} {(DQ ($ VSub_Name '$cwd') (/a/b))})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[136])]
          spids: [136]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-d)} {(DQ ($ VSub_Name '$cwd') (/a/b/c))})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[150])]
          spids: [150]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)