(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_)} {(mv)})
    (C {(require_controlling_input_terminal_)})
    (C {(skip_if_root_)})
    (C {(trap)} {(SQ )} {(TTIN)})
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} 
          {
            (DQ 
              (CommandSubPart
                command_list: (CommandList children:[(C {(uname)} {(-s)})])
                left_token: <Left_CommandSub '$('>
                spids: [85 89]
              )
            )
          } {(Lit_Other '=')} {(FreeBSD)}
        )
        (C {(skip_)} {(DQ ('known spurious failure on FreeBSD'))})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [(C {(touch)} {(f)} {(g)} {(h)} {(i)}) (C {(framework_failure_)})]
    )
    (AndOr ops:[Op_DPipe] children:[(C {(chmod)} {(0)} {(g)} {(i)}) (C {(framework_failure_)})])
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(ls)} {(/dev/stdin)}]
          redirects: [
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[137])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[140])
          ]
        )
        (C {(skip_)} {(SQ <'there is no /dev/stdin file'>)})
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tty)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(readlink)} {(-f)} {(/dev/stdin)})])
                left_token: <Left_CommandSub '$('>
                spids: [161 167]
              )
            }
          spids: [160]
        )
      ]
      spids: [160]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(test)} {(-r)} {(DQ ($ VSub_Name '$tty'))}]
          redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[178])]
        )
        (C {(skip_)} {(SQ <'/dev/stdin is not readable'>)})
      ]
    )
    (Sentence
      child: 
        (SimpleCommand
          words: [{(mv)} {(f)} {(g)}]
          redirects: [
            (Redir
              op_id: Redir_Less
              fd: 16777215
              arg_word: {($ VSub_Name '$tty')}
              spids: [198]
            )
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[202])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[206])
          ]
        )
      terminator: <Op_Amp '&'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pid) op:Equal rhs:{($ VSub_Bang '$!')} spids:[211])]
      spids: [211]
    )
    (FuncDef
      name: check_overwrite_prompt
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:delay)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [227]
                )
              ]
              spids: [225]
            )
            (Case
              to_match: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(cat)} {(out)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [236 240]
                    )
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{(DQ ("mv: try to overwrite 'g', overriding mode 0000")) (Lit_Other '*')}]
                  spids: [247 250 252 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Sentence
                      child: (C {(sleep)} {($ VSub_Name '$delay')})
                      terminator: <Op_Semi ';'>
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [255 256 266 16777215]
                )
              ]
              spids: [233 243 269]
            )
          ]
          spids: [222]
        )
      spids: [218 221]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(retry_delay_)} {(check_overwrite_prompt)} {(.1)} {(7)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[287])]
          spids: [287]
        )
      ]
    )
    (C {(kill)} {($ VSub_Name '$pid')})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(mv)} {(-f)} {(h)} {(i)}]
          redirects: [
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[304])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[308])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[313])]
          spids: [313]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(-f)} {(i)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[324])]
          spids: [324]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} {(-f)} {(h)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[335])]
          spids: [335]
        )
      ]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: (CommandList children:[(C {(cat)} {(out)})])
              left_token: <Left_CommandSub '$('>
              spids: [345 349]
            )
          )
        }
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 357 359 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[365])]
              spids: [365]
            )
          ]
          spids: [362 363 368 16777215]
        )
      ]
      spids: [342 352 370]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)