(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:BZIP) op:Equal rhs:{(/usr/local/bin/bzip2)} spids:[3])]
      spids: [3]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:RM) op:Equal rhs:{(DQ ('rm -f'))} spids:[6])]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:MV) op:Equal rhs:{(DQ ('mv -f'))} spids:[11])]
      spids: [11]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(2)} {(Lit_Other ']')})]
          action: [
            (C {(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' <log> <keep>'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 29]
        )
      ]
      spids: [16777215 44]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
          ]
          action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})]
          spids: [16777215 61]
        )
      ]
      spids: [16777215 67]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-x)} {(DQ ($ VSub_Name '$BZIP'))} {(Lit_Other ']')})
          ]
          action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})]
          spids: [16777215 84]
        )
      ]
      spids: [16777215 90]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_Number '$2'))} {(-le)} {(0)} {(Lit_Other ']')})]
          action: [
            (C {(echo)} {(DQ ('Keep at least 1 copy please.'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 107]
        )
      ]
      spids: [16777215 120]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:k) op:Equal rhs:{(DQ ($ VSub_Number '$2'))} spids:[123])]
      spids: [123]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$RM')} {(DQ ($ VSub_Number '$1') (.) ($ VSub_Name '$k'))}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[136])]
        )
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (While
      cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_Name '$k'))} {(-ge)} {(2)} {(Lit_Other ']')})]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:prev)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(expr)} {($ VSub_Name '$k')} {(-)} {(1)})]
                            )
                          left_token: <Left_Backtick '`'>
                          spids: [163 171]
                        )
                      )
                    }
                  spids: [161]
                )
              ]
              spids: [161]
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$MV')}
                {($ VSub_Number '$1') (.) ($ VSub_Name '$prev') (.bz2)}
                {($ VSub_Number '$1') (.) ($ VSub_Name '$k') (.bz2)}
              ]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[187])]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:k)
                  op: Equal
                  rhs: {($ VSub_Name '$prev')}
                  spids: [192]
                )
              ]
              spids: [192]
            )
          ]
          spids: [159 195]
        )
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$BZIP')} {(-c)} {($ VSub_Number '$1')}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {($ VSub_Number '$1') (.1.bz2)}
              spids: [203]
            )
          ]
        )
        (SimpleCommand
          words: [{(Lit_Other ':')}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {($ VSub_Number '$1')}
              spids: [211]
            )
          ]
        )
      ]
    )
  ]
)