(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:archivedir)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$HOME') (/.deleted-files))}
          spids: [32]
        )
      ]
      spids: [32]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:realrm)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(which)} {(rm)})])
                  left_token: <Left_CommandSub '$('>
                  spids: [40 44]
                )
              )
            }
          spids: [38]
        )
      ]
      spids: [38]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:copy)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(which)} {(cp)})])
                  left_token: <Left_CommandSub '$('>
                  spids: [49 53]
                ) (' -R')
              )
            }
          spids: [47]
        )
      ]
      spids: [47]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(exec)} {($ VSub_Name '$realrm')})]
          spids: [16777215 72]
        )
      ]
      spids: [16777215 85]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:flags) op:Equal rhs:{(DQ )} spids:[92])]
      spids: [92]
    )
    (While
      cond: [(C {(getopts)} {(DQ (dfiPRrvW))} {(opt)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$opt')}
              arms: [
                (case_arm
                  pat_list: [{(f)}]
                  action: [(C {(exec)} {($ VSub_Name '$realrm')} {(DQ ($ VSub_At '$@'))})]
                  spids: [117 119 129 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flags)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$flags') (' -') ($ VSub_Name '$opt'))}
                          spids: [139]
                        )
                      ]
                      spids: [139]
                    )
                  ]
                  spids: [135 137 146 16777215]
                )
              ]
              spids: [110 114 152]
            )
          ]
          spids: [107 154]
        )
    )
    (C {(shift)} 
      {
        (ArithSubPart
          anode: 
            (ArithBinary
              op_id: Arith_Minus
              left: (ArithWord w:{($ VSub_Name '$OPTIND')})
              right: (ArithWord w:{(Lit_Digits 1)})
            )
          spids: [158 167]
        )
      }
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {($ VSub_Name '$archivedir')} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-w)} {($ VSub_Name '$HOME')} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Number '$0') (" failed: can't create ") 
                            ($ VSub_Name '$archivedir') (' in ') ($ VSub_Name '$HOME')
                          )
                        }
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[225])]
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 212]
                )
              ]
              spids: [16777215 235]
            )
            (C {(mkdir)} {($ VSub_Name '$archivedir')})
            (C {(chmod)} {(700)} {($ VSub_Name '$archivedir') (Lit_Pound '#')} {(a)} {(little)} {(bit)} 
              {(of)} {(privacy) (Lit_Comma ',')} {(please)}
            )
          ]
          spids: [16777215 195]
        )
      ]
      spids: [16777215 263]
    )
    (ForEach
      iter_name: arg
      do_arg_iter: T
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:newname)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$archivedir') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(date)} {(DQ ('+%S.%M.%H.%d.%m'))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [278 284]
                        ) (.) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(basename)} {(DQ ($ VSub_Name '$arg'))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [286 292]
                        )
                      )
                    }
                  spids: [274]
                )
              ]
              spids: [274]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$arg'))} {(-o)} {(-d)} 
                          {(DQ ($ VSub_Name '$arg'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {($ VSub_Name '$copy')} {(DQ ($ VSub_Name '$arg'))} 
                      {(DQ ($ VSub_Name '$newname'))}
                    )
                  ]
                  spids: [16777215 318]
                )
              ]
              spids: [16777215 333]
            )
          ]
          spids: [271 335]
        )
      spids: [16777215 16777215]
    )
    (C {(exec)} {($ VSub_Name '$realrm')} {($ VSub_Name '$flags')} {(DQ ($ VSub_At '$@'))})
  ]
)