(command.CommandList
  children: [
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (C {<.>} 
              {
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name srcdir>
                    suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>})
                  ) <'/tests/init.sh'>
                )
              }
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<path_prepend_>} {<'./src'>})
      ]
    )
    (C {<print_ver_>} {<cp>} {<mv>})
    (C {<skip_if_root_>})
    (command.AndOr ops:[Id.Op_DPipe] children:[(C {<mkdir>} {<dst>}) (C {<framework_failure_>})])
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Subshell
          child: 
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {<cd>} {<dst>}) (C {<touch>} {<a>} {<b>} {<c>})]
            )
        )
        (C {<framework_failure_>})
      ]
    )
    (command.AndOr ops:[Id.Op_DPipe] children:[(C {<touch>} {<a>}) (C {<framework_failure_>})])
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {<ln>} {<a>} {<b>}) (C {<framework_failure_>})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {<ln>} {<a>} {<c>}) (C {<framework_failure_>})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<cp>} {<--preserve> <Id.Lit_Equals '='> <link>} {<a>} {<b>} {<c>} {<dst>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [150]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<a>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [164]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<b>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [175]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<c>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [186]
            )
          ]
        )
      ]
    )
    (C {<cd>} {<dst>})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<a>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [205]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<b>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [216]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<c>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [227]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ia)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<ls>} {<-i>} {<a>}) (C {<sed>} {(SQ <'s/ a//'>)})]
                    negated: F
                  )
              )
            }
          spids: [234]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ib)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<ls>} {<-i>} {<b>}) (C {<sed>} {(SQ <'s/ b//'>)})]
                    negated: F
                  )
              )
            }
          spids: [249]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ic)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<ls>} {<-i>} {<c>}) (C {<sed>} {(SQ <'s/ c//'>)})]
                    negated: F
                  )
              )
            }
          spids: [264]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_DollarName '$ia')} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$ib')})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [289]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_DollarName '$ia')} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$ic')})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [302]
            )
          ]
        )
      ]
    )
    (C {<cd>} {<..>})
    (C {<rm>} {<-f>} {<'dst/'> <Id.Lit_LBracket '['> <abc> <Id.Lit_RBracket ']'>})
    (command.Subshell
      child: 
        (command.AndOr
          ops: [Id.Op_DAmp]
          children: [(C {<cd>} {<dst>}) (C {<touch>} {<a>} {<b>} {<c>})]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<mv>} {<a>} {<b>} {<c>} {<dst>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [351]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-f>} {<a>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [366]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-f>} {<b>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [377]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-f>} {<c>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [388]
            )
          ]
        )
      ]
    )
    (C {<cd>} {<dst>})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<a>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [407]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<b>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [418]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {<c>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [429]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ia)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<ls>} {<-i>} {<a>}) (C {<sed>} {(SQ <'s/ a//'>)})]
                    negated: F
                  )
              )
            }
          spids: [436]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ib)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<ls>} {<-i>} {<b>}) (C {<sed>} {(SQ <'s/ b//'>)})]
                    negated: F
                  )
              )
            }
          spids: [451]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ic)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<ls>} {<-i>} {<c>}) (C {<sed>} {(SQ <'s/ c//'>)})]
                    negated: F
                  )
              )
            }
          spids: [466]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_DollarName '$ia')} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$ib')})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [491]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_DollarName '$ia')} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$ic')})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:fail)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [504]
            )
          ]
        )
      ]
    )
    (C {<Exit>} {($ Id.VSub_DollarName '$fail')})
  ]
)