(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_)} {(split)})
    (C {(truncate)} {(-s12)} {(file.in)})
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(split)} {(file.in)} {(-b1)} {(--numeric) (Lit_Other '=') (89)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[87])]
          spids: [87]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} 
          {
            (DQ 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [(C {(ls)} {(-1)} {(x) (Lit_Other '*')}) (C {(wc)} {(-l)})]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [93 106]
              )
            )
          } {(Lit_Other '=')} {(11)}
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[115])]
          spids: [115]
        )
      ]
    )
    (C {(rm)} {(-f)} {(x) (Lit_Other '*')})
    (C {(truncate)} {(-s91)} {(file.in)})
    (ForEach
      iter_name: prefix
      iter_words: [{(SQ <x>)} {(SQ <xx>)} {(SQ )}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (ForEach
              iter_name: add_suffix
              iter_words: [{(SQ <.txt>)} {(SQ )}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(split)} {(file.in)} {(DQ ($ VSub_Name '$prefix'))} {(-b1)} {(--numeric)} 
                          {(--additional-suffix) (Lit_Other '=') (DQ ($ VSub_Name '$add_suffix'))}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fail)
                              op: Equal
                              rhs: {(1)}
                              spids: [195]
                            )
                          ]
                          spids: [195]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(ls)} {(-1)} 
                                            {($ VSub_Name '$prefix') (Lit_Other '*') (Lit_Other '[') 
                                              (0-9) (Lit_Other ']') (Lit_Other '*') ($ VSub_Name '$add_suffix')
                                            }
                                          )
                                          (C {(wc)} {(-l)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [202 220]
                              )
                            )
                          } {(Lit_Other '=')} {(91)}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fail)
                              op: Equal
                              rhs: {(1)}
                              spids: [229]
                            )
                          ]
                          spids: [229]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-e)} {(DQ (${ VSub_Name prefix) (89) ($ VSub_Name '$add_suffix'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fail)
                              op: Equal
                              rhs: {(1)}
                              spids: [247]
                            )
                          ]
                          spids: [247]
                        )
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-e)} 
                          {(DQ (${ VSub_Name prefix) (9000) ($ VSub_Name '$add_suffix'))}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:fail)
                              op: Equal
                              rhs: {(1)}
                              spids: [265]
                            )
                          ]
                          spids: [265]
                        )
                      ]
                    )
                    (C {(rm)} {(-f)} 
                      {($ VSub_Name '$prefix') (Lit_Other '*') (Lit_Other '[') (0-9) (Lit_Other ']') 
                        (Lit_Other '*') ($ VSub_Name '$add_suffix')
                      }
                    )
                  ]
                  spids: [170 282]
                )
              spids: [161 168]
            )
          ]
          spids: [153 284]
        )
      spids: [140 151]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)