(CommandList
  children: [
    (Case
      to_match: {($ VSub_Hyphen "$-") (Lit_Other ":") ($ VSub_Name "$BASH_VERSION")}
      arms: [
        (case_arm
          pat_list: [
            {(Lit_Other "*") (x) (Lit_Other "*") (Lit_Other ":") (Lit_Other "[") (0123456789) 
              (Lit_Other "]") (Lit_Other "*")
            }
          ]
          action: [
            (Sentence
              child: (C {(Lit_Other ":")} {(bash)} {(set)} {(-x)} {(is)} {(broken)} {(Lit_Other ":")})
              terminator: <Op_Semi ";">
            )
            (Sentence child:(C {(set)} {(Lit_Other "+") (ex)}) terminator:<Op_Semi ";">)
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:old) op:Equal rhs:{(1)} spids:[106])]
              spids: [106]
            )
          ]
          spids: [75 83 109 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:old) op:Equal rhs:{(SQ )} spids:[114])]
              spids: [114]
            )
          ]
          spids: [111 112 116 -1]
        )
      ]
      spids: [67 73 118]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:command) op:Equal rhs:{(ppcc)} spids:[121])]
      spids: [121]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:clobber) op:Equal rhs:{(SQ )} spids:[124])]
      spids: [124]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:doti) op:Equal rhs:{(SQ )} spids:[126])]
      spids: [126]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:exec) op:Equal rhs:{(1)} spids:[128])]
      spids: [128]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:linki) op:Equal rhs:{(SQ )} spids:[131])]
      spids: [131]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:multiopt) op:Equal rhs:{(o)} spids:[133])]
      spids: [133]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:post) op:Equal rhs:{(SQ )} spids:[136])]
      spids: [136]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ppfile) op:Equal rhs:{(SQ )} spids:[138])]
      spids: [138]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ppld) op:Equal rhs:{(SQ )} spids:[140])]
      spids: [140]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ppstdout) op:Equal rhs:{(SQ )} spids:[142])]
      spids: [142]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:src1) op:Equal rhs:{(DQ ("*.[cCsS]"))} spids:[144])]
      spids: [144]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:src2)
          op: Equal
          rhs: {(DQ ("*.[cC][xX][xX]"))}
          spids: [149]
        )
      ]
      spids: [149]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:src3)
          op: Equal
          rhs: {(DQ ("*.[cC][pP][pP]"))}
          spids: [154]
        )
      ]
      spids: [154]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:src4)
          op: Equal
          rhs: {(DQ ("*.[aA][sS][mM]"))}
          spids: [159]
        )
      ]
      spids: [159]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tmp)
          op: Equal
          rhs: {(/tmp/pC) ($ VSub_Dollar "$$")}
          spids: [164]
        )
      ]
      spids: [164]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(SQ )} spids:[168])]
      spids: [168]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:usage)
          op: Equal
          rhs: 
            {
              (DQ ("Usage: ") ($ VSub_Name "$command") 
                (" [ -nv ] [ -o dialect-option ] pp-command ... cc-command ...")
              )
            }
          spids: [170]
        )
      ]
      spids: [170]
    )
    (While
      cond: [(C {(Lit_Other ":")})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Pound "$#")}
              arms: [
                (case_arm
                  pat_list: [{(0)}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [190 191 195 -1]
                )
              ]
              spids: [183 187 198]
            )
            (Case
              to_match: {($ VSub_Number "$1")}
              arms: [
                (case_arm
                  pat_list: [{(-o) (Lit_Other "*")}]
                  action: [
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(-o)}]
                          action: [
                            (Case
                              to_match: {($ VSub_Pound "$#")}
                              arms: [
                                (case_arm
                                  pat_list: [{(1)}]
                                  action: [
                                    (SimpleCommand
                                      words: [{(echo)} {(DQ ($ VSub_Name "$usage"))}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: -1
                                          arg_word: {(2)}
                                          spids: [242]
                                        )
                                      ]
                                    )
                                    (C {(exit)} {(2)})
                                  ]
                                  spids: [233 234 251 -1]
                                )
                              ]
                              spids: [226 230 254]
                            )
                            (C {(shift)})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:opt)
                                  op: Equal
                                  rhs: {($ VSub_Number "$1")}
                                  spids: [260]
                                )
                              ]
                              spids: [260]
                            )
                          ]
                          spids: [223 224 264 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Case
                              to_match: {($ VSub_Name "$RANDOM")}
                              arms: [
                                (case_arm
                                  pat_list: [{($ VSub_Name "$RANDOM")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (Pipeline
                                                        children: [
                                                          (C {(echo)} {(x) ($ VSub_Number "$1")})
                                                          (C {(sed)} {(s/...//)})
                                                        ]
                                                        negated: False
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick "`">
                                                spids: [280 291]
                                              )
                                            }
                                          spids: [279]
                                        )
                                      ]
                                      spids: [279]
                                    )
                                  ]
                                  spids: [277 278 293 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {("??")}
                                                  )
                                                spids: [300 304]
                                              )
                                            }
                                          spids: [299]
                                        )
                                      ]
                                      spids: [299]
                                    )
                                  ]
                                  spids: [296 297 306 -1]
                                )
                              ]
                              spids: [270 274 309]
                            )
                          ]
                          spids: [267 268 312 -1]
                        )
                      ]
                      spids: [216 220 315]
                    )
                    (Case
                      to_match: {($ VSub_Name "$opt")}
                      arms: [
                        (case_arm
                          pat_list: [{(NO) (Lit_Other "*")} {(no) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:value)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [331]
                                )
                              ]
                              spids: [331]
                            )
                            (Case
                              to_match: {($ VSub_Name "$RANDOM")}
                              arms: [
                                (case_arm
                                  pat_list: [{($ VSub_Name "$RANDOM")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (Pipeline
                                                        children: [
                                                          (C {(echo)} {($ VSub_Name "$opt")})
                                                          (C {(sed)} {(s/..//)})
                                                        ]
                                                        negated: False
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick "`">
                                                spids: [344 354]
                                              )
                                            }
                                          spids: [343]
                                        )
                                      ]
                                      spids: [343]
                                    )
                                  ]
                                  spids: [341 342 356 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:opt)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {("??")}
                                                  )
                                                spids: [363 367]
                                              )
                                            }
                                          spids: [362]
                                        )
                                      ]
                                      spids: [362]
                                    )
                                  ]
                                  spids: [359 360 369 -1]
                                )
                              ]
                              spids: [334 338 372]
                            )
                          ]
                          spids: [325 330 375 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Case
                              to_match: {($ VSub_Name "$opt")}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "*") (Lit_Other "=") (Lit_Other "*")}]
                                  action: [
                                    (Case
                                      to_match: {($ VSub_Name "$RANDOM")}
                                      arms: [
                                        (case_arm
                                          pat_list: [{($ VSub_Name "$RANDOM")}]
                                          action: [
                                            (C {(eval)} 
                                              {
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (Pipeline
                                                          children: [
                                                            (C {(echo)} {($ VSub_Name "$opt")})
                                                            (C {(sed)} 
                                                              {
                                                                (SQ 
                                                                  <
"s/\\\\([^=]*\\\\)/opt=\\\\1 value/"
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          negated: False
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_Backtick "`">
                                                  spids: [404 416]
                                                )
                                              }
                                            )
                                          ]
                                          spids: [400 401 418 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other "*")}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:value)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name opt>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Pound
                                                            arg_word: {("*=")}
                                                          )
                                                        spids: [425 429]
                                                      )
                                                    }
                                                  spids: [424]
                                                )
                                              ]
                                              spids: [424]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:opt)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name opt>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_DPercent
                                                            arg_word: {("=*")}
                                                          )
                                                        spids: [433 437]
                                                      )
                                                    }
                                                  spids: [432]
                                                )
                                              ]
                                              spids: [432]
                                            )
                                          ]
                                          spids: [421 422 440 -1]
                                        )
                                      ]
                                      spids: [393 397 443]
                                    )
                                  ]
                                  spids: [388 391 446 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:value)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [452]
                                        )
                                      ]
                                      spids: [452]
                                    )
                                  ]
                                  spids: [449 450 456 -1]
                                )
                              ]
                              spids: [381 385 459]
                            )
                          ]
                          spids: [378 379 462 -1]
                        )
                      ]
                      spids: [318 322 465]
                    )
                    (Case
                      to_match: {($ VSub_Name "$opt")}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(C) (Lit_Other "+") (Lit_Other "+")}
                            {(c) (Lit_Other "+") (Lit_Other "+")}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppld)
                                  op: Equal
                                  rhs: {($ VSub_Name "$value")}
                                  spids: [485]
                                )
                              ]
                              spids: [485]
                            )
                          ]
                          spids: [475 482 489 -1]
                        )
                        (case_arm
                          pat_list: [{(DOTI)} {(doti)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {($ VSub_Name "$value")}
                                  spids: [498]
                                )
                              ]
                              spids: [498]
                            )
                          ]
                          spids: [492 495 502 -1]
                        )
                        (case_arm
                          pat_list: [{(LINKI)} {(linki)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:linki)
                                  op: Equal
                                  rhs: {($ VSub_Name "$value")}
                                  spids: [511]
                                )
                              ]
                              spids: [511]
                            )
                          ]
                          spids: [505 508 515 -1]
                        )
                        (case_arm
                          pat_list: [{(MULTI)} {(multi)}]
                          action: [
                            (Case
                              to_match: {($ VSub_Name "$value")}
                              arms: [
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:multiopt)
                                          op: Equal
                                          rhs: {(SQ )}
                                          spids: [535]
                                        )
                                      ]
                                      spids: [535]
                                    )
                                  ]
                                  spids: [-1 533 538 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:multiopt)
                                          op: Equal
                                          rhs: {($ VSub_Name "$multiopt") ($ VSub_Name "$value")}
                                          spids: [544]
                                        )
                                      ]
                                      spids: [544]
                                    )
                                  ]
                                  spids: [541 542 549 -1]
                                )
                              ]
                              spids: [524 528 552]
                            )
                          ]
                          spids: [518 521 555 -1]
                        )
                        (case_arm
                          pat_list: [{(PPLD)} {(ppld)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppld)
                                  op: Equal
                                  rhs: {($ VSub_Name "$value")}
                                  spids: [564]
                                )
                              ]
                              spids: [564]
                            )
                          ]
                          spids: [558 561 568 -1]
                        )
                        (case_arm
                          pat_list: [{(exec)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:exec)
                                  op: Equal
                                  rhs: {($ VSub_Name "$value")}
                                  spids: [574]
                                )
                              ]
                              spids: [574]
                            )
                          ]
                          spids: [571 572 578 -1]
                        )
                        (case_arm
                          pat_list: [{(verbose)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:verbose)
                                  op: Equal
                                  rhs: {($ VSub_Name "$value")}
                                  spids: [583]
                                )
                              ]
                              spids: [583]
                            )
                          ]
                          spids: [581 582 587 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          spids: [590 591 597 -1]
                        )
                      ]
                      spids: [468 472 600]
                    )
                  ]
                  spids: [208 210 603 -1]
                )
                (case_arm
                  pat_list: [{(-) (Lit_Other "*")}]
                  action: [
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(-) (Lit_Other "*") (Lit_Other "[") (KW_Bang "!") (iklnvO) (Lit_Other "]") 
                              (Lit_Other "*")
                            }
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ($ VSub_Name "$usage"))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_GreatAnd
                                  fd: -1
                                  arg_word: {(2)}
                                  spids: [633]
                                )
                              ]
                            )
                            (C {(exit)} {(2)})
                          ]
                          spids: [617 624 642 -1]
                        )
                      ]
                      spids: [610 614 645]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (i) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [660]
                                )
                              ]
                              spids: [660]
                            )
                          ]
                          spids: [655 658 663 -1]
                        )
                      ]
                      spids: [648 652 666]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (k) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [681]
                                )
                                (assign_pair
                                  lhs: (LhsName name:linki)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [684]
                                )
                              ]
                              spids: [681]
                            )
                          ]
                          spids: [676 679 687 -1]
                        )
                      ]
                      spids: [669 673 690]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (l) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppld)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [705]
                                )
                              ]
                              spids: [705]
                            )
                          ]
                          spids: [700 703 708 -1]
                        )
                      ]
                      spids: [693 697 711]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (n) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:exec)
                                  op: Equal
                                  rhs: {(SQ )}
                                  spids: [726]
                                )
                              ]
                              spids: [726]
                            )
                          ]
                          spids: [721 724 728 -1]
                        )
                      ]
                      spids: [714 718 731]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (v) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:verbose)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [746]
                                )
                              ]
                              spids: [746]
                            )
                          ]
                          spids: [741 744 749 -1]
                        )
                      ]
                      spids: [734 738 752]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (O) (Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:old)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [767]
                                )
                              ]
                              spids: [767]
                            )
                          ]
                          spids: [762 765 770 -1]
                        )
                      ]
                      spids: [755 759 773]
                    )
                  ]
                  spids: [606 608 776 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [779 780 785 -1]
                )
              ]
              spids: [201 205 788]
            )
            (C {(shift)})
          ]
          spids: [181 793]
        )
    )
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm
          pat_list: [{(0)}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_Name "$usage"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[810])]
            )
            (C {(exit)} {(2)})
          ]
          spids: [801 802 819 -1]
        )
      ]
      spids: [795 799 821]
    )
    (C {(trap)} 
      {
        (SQ <"\tstatus=$?\n"> <"\ttrap \"\" 0\n"> <"\tcase $clobber in\n"> <"\t?*)\tcase $verbose in\n"> 
          <"\t\t1)\techo + rm -rf $clobber ;;\n"> <"\t\tesac\n"> <"\t\tcase $exec in\n"> <"\t\t1)\trm -rf $clobber ;;\n"> <"\t\tesac\n"> <"\t\t;;\n"> 
          <"\tesac\n"> <"\tcase $post in\n"> <"\t?*)\tcase $verbose in\n"> <"\t\t1)\techo + $post ;;\n"> <"\t\tesac\n"> 
          <"\t\tcase $exec in\n"> <"\t\t1)\teval \"$post\" ;;\n"> <"\t\tesac\n"> <"\t\t;;\n"> <"\tesac\n"> <"\texit $status\n">
        )
      } {(0)} {(1)} {(2)} {(3)} {(15)}
    )
    (Case
      to_match: {($ VSub_Name "$old")}
      arms: [
        (case_arm
          pat_list: [{(SQ )}]
          action: [
            (Case
              to_match: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Subshell
                            child: 
                              (CommandList
                                children: [
                                  (Sentence
                                    child: (C {(set)} {(-A)} {(a)} {(no)} {(ok)})
                                    terminator: <Op_Semi ";">
                                  )
                                  (Sentence
                                    child: 
                                      (DParen
                                        child: 
                                          (BinaryAssign
                                            op_id: Arith_Equal
                                            left: (LhsName name:b)
                                            right: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: (ArithWord w:{(Lit_Digits 1)})
                                                right: (ArithWord w:{(Lit_Digits 1)})
                                              )
                                          )
                                      )
                                    terminator: <Op_Semi ";">
                                  )
                                  (C {(echo)} 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name a>
                                          bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)}))
                                          spids: [897 902]
                                        ) ($ VSub_Name "$b")
                                      )
                                    }
                                  )
                                ]
                              )
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 2
                                arg_word: {(/dev/null)}
                                spids: [907]
                              )
                            ]
                            spids: [872 905]
                          )
                        ]
                      )
                    left_token: <Left_Backtick "`">
                    spids: [871 909]
                  )
                }
              arms: [
                (case_arm pat_list:[{(ok2)}] spids:[914915917-1])
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:old) op:Equal rhs:{(1)} spids:[923])]
                      spids: [923]
                    )
                  ]
                  spids: [920 921 926 -1]
                )
              ]
              spids: [869 911 929]
            )
          ]
          spids: [-1 867 932 -1]
        )
      ]
      spids: [859 863 934]
    )
    (Case
      to_match: {($ VSub_Name "$old") (Lit_Other ":") ($ VSub_Name "$RANDOM")}
      arms: [
        (case_arm
          pat_list: [
            {(Lit_Other "*") (Lit_Other ":") ($ VSub_Name "$RANDOM")}
            {(1) (Lit_Other ":") (Lit_Other "*")}
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:nfile) op:Equal rhs:{(SQ )} spids:[958])]
              spids: [958]
            )
            (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(SQ )} {(DQ ($ VSub_Number "$1"))})
            (While
              cond: [(C {(Lit_Other ":")})]
              body: 
                (DoGroup
                  children: [
                    (C {(shift)})
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}
                          ]
                          spids: [998 1003 1005 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [1008 1009 1013 -1]
                        )
                      ]
                      spids: [991 995 1016]
                    )
                    (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Number "$1"))})
                  ]
                  spids: [983 1033]
                )
            )
            (While
              cond: [(C {(Lit_Other ":")})]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg)
                          op: Equal
                          rhs: {($ VSub_Number "$1")}
                          spids: [1043]
                        )
                      ]
                      spids: [1043]
                    )
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Name "$arg")}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [-1 1059 1064 -1]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other "[") ($ VSub_Name "$multiopt") (Lit_Other "]")}]
                          action: [
                            (Case
                              to_match: {($ VSub_Number "$1")}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                                  action: [
                                    (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$arg"))})
                                    (C {(shift)})
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:arg)
                                          op: Equal
                                          rhs: {($ VSub_Number "$1")}
                                          spids: [1102]
                                        )
                                      ]
                                      spids: [1102]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1081 1083 1109 -1]
                                )
                              ]
                              spids: [1074 1078 1112]
                            )
                          ]
                          spids: [1067 1071 1115 -1]
                        )
                        (case_arm
                          pat_list: [{(-E)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppstdout)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1121]
                                )
                              ]
                              spids: [1121]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1125]
                                )
                              ]
                              spids: [1125]
                            )
                            (C {(trap)} {(0)} {(1)} {(2)} {(3)} {(15)})
                          ]
                          spids: [1118 1119 1142 -1]
                        )
                        (case_arm
                          pat_list: [{(-P)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppfile)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1148]
                                )
                              ]
                              spids: [1148]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1152]
                                )
                              ]
                              spids: [1152]
                            )
                            (C {(trap)} {(0)} {(1)} {(2)} {(3)} {(15)})
                          ]
                          spids: [1145 1146 1169 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}
                          ]
                          spids: [1172 1177 1179 -1]
                        )
                        (case_arm
                          pat_list: [
                            {($ VSub_Name "$src1")}
                            {($ VSub_Name "$src2")}
                            {($ VSub_Name "$src3")}
                            {($ VSub_Name "$src4")}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nfile)
                                  op: Equal
                                  rhs: {(_) ($ VSub_Name "$nfile")}
                                  spids: [1192]
                                )
                              ]
                              spids: [1192]
                            )
                            (C {(eval)} {(input) ($ VSub_Name "$nfile") (Lit_Other "=") (SQ <"$arg">)})
                            (Case
                              to_match: {($ VSub_Name "$ppstdout")}
                              arms: [
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  action: [
                                    (Case
                                      to_match: {($ VSub_Name "$doti")}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(DQ )}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:file)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {(echo)} {($ VSub_Name "$arg")})
                                                                  (C {(sed)} {(-e)} {(DQ ("s,.*/,,"))} 
                                                                    {(-e)} {(DQ ("s,^,") ($ VSub_Name "$tmp") ("/,"))}
                                                                  )
                                                                ]
                                                                negated: False
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_Backtick "`">
                                                        spids: [1230 1252]
                                                      )
                                                    }
                                                  spids: [1229]
                                                )
                                              ]
                                              spids: [1229]
                                            )
                                            (Case
                                              to_match: {($ VSub_Name "$clobber")}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{(DQ )}]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:clobber)
                                                          op: Equal
                                                          rhs: {($ VSub_Name "$tmp")}
                                                          spids: [1266]
                                                        )
                                                      ]
                                                      spids: [1266]
                                                    )
                                                    (Case
                                                      to_match: {($ VSub_Name "$verbose")}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(1)}]
                                                          action: [
                                                            (C {(print)} {(-r)} {(--)} {(Lit_Other "+")} 
                                                              {(mkdir)} {($ VSub_Name "$tmp")}
                                                            )
                                                          ]
                                                          spids: [1277 1278 1292 -1]
                                                        )
                                                      ]
                                                      spids: [1270 1274 1295]
                                                    )
                                                    (Case
                                                      to_match: {($ VSub_Name "$exec")}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(1)}]
                                                          action: [
                                                            (AndOr
                                                              children: [
                                                                (C {(mkdir)} {($ VSub_Name "$tmp")})
                                                                (C {(exit)})
                                                              ]
                                                              op_id: Op_DPipe
                                                            )
                                                          ]
                                                          spids: [1305 1306 1316 -1]
                                                        )
                                                      ]
                                                      spids: [1298 1302 1319]
                                                    )
                                                  ]
                                                  spids: [-1 1264 1322 -1]
                                                )
                                              ]
                                              spids: [1255 1259 1325]
                                            )
                                          ]
                                          spids: [-1 1227 1328 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other "*")}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:file)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {(echo)} {($ VSub_Name "$arg")})
                                                                  (C {(sed)} {(-e)} {(DQ ("s,.*/,,"))} 
                                                                    {(-e)} {(DQ ("s,[.][^.]*,.i,"))}
                                                                  )
                                                                ]
                                                                negated: False
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_Backtick "`">
                                                        spids: [1335 1355]
                                                      )
                                                    }
                                                  spids: [1334]
                                                )
                                              ]
                                              spids: [1334]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:clobber)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ VSub_Name "$clobber") (" ") 
                                                        ($ VSub_Name "$file")
                                                      )
                                                    }
                                                  spids: [1358]
                                                )
                                              ]
                                              spids: [1358]
                                            )
                                          ]
                                          spids: [1331 1332 1366 -1]
                                        )
                                      ]
                                      spids: [1218 1222 1369]
                                    )
                                    (C {(eval)} 
                                      {(output) ($ VSub_Name "$nfile") (Lit_Other "=") (SQ <"$file">)}
                                    )
                                  ]
                                  spids: [-1 1216 1382 -1]
                                )
                              ]
                              spids: [1207 1211 1385]
                            )
                          ]
                          spids: [1182 1189 1388 -1]
                        )
                      ]
                      spids: [1050 1054 1391]
                    )
                    (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$arg"))})
                    (C {(shift)})
                  ]
                  spids: [1041 1411]
                )
            )
            (AndOr
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(SQ )} {(DQ ($ VSub_Number "$1"))})
                        (While
                          cond: [(C {(Lit_Other ":")})]
                          body: 
                            (DoGroup
                              children: [
                                (C {(shift)})
                                (C {(shift)})
                                (Case
                                  to_match: {($ VSub_Number "$1")}
                                  arms: [
                                    (case_arm
                                      pat_list: [
                                        {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") 
                                          (Lit_Other "*")
                                        }
                                      ]
                                      spids: [1458 1463 1465 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other "*")}]
                                      action: [
                                        (C {(shift)})
                                        (ControlFlow
                                          token: <ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [1468 1469 1477 -1]
                                    )
                                  ]
                                  spids: [1451 1455 1480]
                                )
                                (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Number "$1"))})
                              ]
                              spids: [1443 1497]
                            )
                        )
                        (Case
                          to_match: {($ VSub_Name "$doti") ($ VSub_Name "$ppstdout")}
                          arms: [
                            (case_arm
                              pat_list: [{(DQ )}]
                              action: [
                                (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(-D-L)})
                                (C {(shift)})
                              ]
                              spids: [-1 1510 1527 -1]
                            )
                          ]
                          spids: [1500 1505 1530]
                        )
                        (C {(shift)})
                        (While
                          cond: [(C {(Lit_Other ":")})]
                          body: 
                            (DoGroup
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:arg)
                                      op: Equal
                                      rhs: {($ VSub_Number "$1")}
                                      spids: [1543]
                                    )
                                  ]
                                  spids: [1543]
                                )
                                (C {(shift)})
                                (Case
                                  to_match: {($ VSub_Name "$arg")}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(SQ )}]
                                      action: [(ControlFlow token:<ControlFlow_Break break>)]
                                      spids: [-1 1559 1564 -1]
                                    )
                                    (case_arm
                                      pat_list: [
                                        {(-) (Lit_Other "[") ($ VSub_Name "$multiopt") (Lit_Other "]")}
                                      ]
                                      action: [
                                        (Case
                                          to_match: {($ VSub_Number "$1")}
                                          arms: [
                                            (case_arm
                                              pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                                              action: [(C {(shift)})]
                                              spids: [1581 1583 1587 -1]
                                            )
                                          ]
                                          spids: [1574 1578 1590]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                        )
                                      ]
                                      spids: [1567 1571 1596 -1]
                                    )
                                    (case_arm
                                      pat_list: [
                                        {(-) (Lit_Other "[") (DIU) (Lit_Other "]") (Lit_Other "*")}
                                        {(-) (Lit_Other "[") 
                                          (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ) (Lit_Other "]") (Lit_Other "[") (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_) 
                                          (Lit_Other "]") (Lit_Other "*")
                                        }
                                      ]
                                      spids: [1599 1613 1616 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(-G)}]
                                      action: [
                                        (Case
                                          to_match: {($ VSub_Number "$1")}
                                          arms: [
                                            (case_arm
                                              pat_list: [
                                                {(Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "*")}
                                              ]
                                              action: [(C {(shift)})]
                                              spids: [1629 1633 1637 -1]
                                            )
                                          ]
                                          spids: [1622 1626 1640]
                                        )
                                      ]
                                      spids: [1619 1620 1643 -1]
                                    )
                                    (case_arm
                                      pat_list: [
                                        {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") 
                                          (Lit_Other "*")
                                        }
                                      ]
                                      action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                                      spids: [1646 1651 1656 -1]
                                    )
                                    (case_arm
                                      pat_list: [
                                        {($ VSub_Name "$src1")}
                                        {($ VSub_Name "$src2")}
                                        {($ VSub_Name "$src3")}
                                        {($ VSub_Name "$src4")}
                                      ]
                                      action: [(ControlFlow token:<ControlFlow_Break break>)]
                                      spids: [1659 1666 1672 -1]
                                    )
                                  ]
                                  spids: [1550 1554 1675]
                                )
                                (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$arg"))})
                                (C {(shift)})
                              ]
                              spids: [1541 1695]
                            )
                        )
                        (Case
                          to_match: {($ VSub_Name "$nfile")}
                          arms: [
                            (case_arm
                              pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                              action: [
                                (While
                                  cond: [(C {(Lit_Other ":")})]
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:arg)
                                              op: Equal
                                              rhs: {($ VSub_Number "$1")}
                                              spids: [1716]
                                            )
                                          ]
                                          spids: [1716]
                                        )
                                        (C {(shift)})
                                        (Case
                                          to_match: {($ VSub_Name "$arg")}
                                          arms: [
                                            (case_arm
                                              pat_list: [{(SQ )}]
                                              action: [(ControlFlow token:<ControlFlow_Break break>)]
                                              spids: [-1 1732 1736 -1]
                                            )
                                          ]
                                          spids: [1723 1727 1739]
                                        )
                                      ]
                                      spids: [1714 1742]
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:n)
                                      op: Equal
                                      rhs: {(SQ )}
                                      spids: [1745]
                                    )
                                  ]
                                  spids: [1745]
                                )
                                (While
                                  cond: [(C {(Lit_Other ":")})]
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Case
                                          to_match: {($ VSub_Name "$n")}
                                          arms: [
                                            (case_arm
                                              pat_list: [{($ VSub_Name "$nfile")}]
                                              action: [(ControlFlow token:<ControlFlow_Break break>)]
                                              spids: [1762 1763 1767 -1]
                                            )
                                          ]
                                          spids: [1755 1759 1770]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:n)
                                              op: Equal
                                              rhs: {(_) ($ VSub_Name "$n")}
                                              spids: [1773]
                                            )
                                          ]
                                          spids: [1773]
                                        )
                                        (C {(eval)} 
                                          {(Lit_VarLike "input=") (SQ <"$input">) ($ VSub_Name "$n")}
                                        )
                                        (Case
                                          to_match: {($ VSub_Name "$ppstdout")}
                                          arms: [
                                            (case_arm
                                              pat_list: [{(DQ )}]
                                              action: [
                                                (C {(eval)} 
                                                  {(Lit_VarLike "output=") (SQ <"$output">) 
                                                    ($ VSub_Name "$n")
                                                  }
                                                )
                                                (Case
                                                  to_match: {($ VSub_Name "$verbose")}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [{(1)}]
                                                      action: [
                                                        (C {(echo)} {(Lit_Other "+")} 
                                                          {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$input"))} {(DQ ($ VSub_Name "$output"))}
                                                        )
                                                      ]
                                                      spids: [1814 1815 1833 -1]
                                                    )
                                                  ]
                                                  spids: [1807 1811 1836]
                                                )
                                                (Case
                                                  to_match: {($ VSub_Name "$exec")}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [{(1)}]
                                                      action: [
                                                        (AndOr
                                                          children: [
                                                            (C {(DQ ($ VSub_At "$@"))} 
                                                              {(DQ ($ VSub_Name "$input"))} {(DQ ($ VSub_Name "$output"))}
                                                            )
                                                            (C {(exit)})
                                                          ]
                                                          op_id: Op_DPipe
                                                        )
                                                      ]
                                                      spids: [1846 1847 1865 -1]
                                                    )
                                                  ]
                                                  spids: [1839 1843 1869]
                                                )
                                              ]
                                              spids: [-1 1796 1872 -1]
                                            )
                                            (case_arm
                                              pat_list: [{(Lit_Other "*")}]
                                              action: [
                                                (Case
                                                  to_match: {($ VSub_Name "$verbose")}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [{(1)}]
                                                      action: [
                                                        (C {(echo)} {(Lit_Other "+")} 
                                                          {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$input"))}
                                                        )
                                                      ]
                                                      spids: [1885 1886 1900 -1]
                                                    )
                                                  ]
                                                  spids: [1878 1882 1903]
                                                )
                                                (Case
                                                  to_match: {($ VSub_Name "$exec")}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [{(1)}]
                                                      action: [
                                                        (AndOr
                                                          children: [
                                                            (C {(DQ ($ VSub_At "$@"))} 
                                                              {(DQ ($ VSub_Name "$input"))}
                                                            )
                                                            (C {(exit)})
                                                          ]
                                                          op_id: Op_DPipe
                                                        )
                                                      ]
                                                      spids: [1913 1914 1928 -1]
                                                    )
                                                  ]
                                                  spids: [1906 1910 1932]
                                                )
                                              ]
                                              spids: [1875 1876 1935 -1]
                                            )
                                          ]
                                          spids: [1787 1791 1938]
                                        )
                                      ]
                                      spids: [1753 1941]
                                    )
                                )
                              ]
                              spids: [1705 1707 1944 -1]
                            )
                          ]
                          spids: [1698 1702 1947]
                        )
                      ]
                    )
                  spids: [1418 1950]
                )
                (C {(exit)})
              ]
              op_id: Op_DPipe
            )
            (Case
              to_match: {($ VSub_Name "$ppfile") ($ VSub_Name "$ppstdout")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                  action: [(C {(exit)})]
                  spids: [1965 1967 1971 -1]
                )
              ]
              spids: [1957 1962 1974]
            )
            (While
              cond: [(C {(Lit_Other ":")})]
              body: 
                (DoGroup
                  children: [
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}
                          ]
                          spids: [1994 1999 2001 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [2004 2005 2009 -1]
                        )
                      ]
                      spids: [1987 1991 2012]
                    )
                  ]
                  spids: [1982 2015]
                )
            )
            (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(SQ )} {(DQ ($ VSub_Number "$1"))})
            (C {(shift)})
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:n) op:Equal rhs:{(SQ )} spids:[2041])]
              spids: [2041]
            )
            (While
              cond: [(C {(Lit_Other ":")})]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg)
                          op: Equal
                          rhs: {($ VSub_Number "$1")}
                          spids: [2051]
                        )
                      ]
                      spids: [2051]
                    )
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Name "$arg")}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [-1 2067 2072 -1]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other "[") ($ VSub_Name "$multiopt") (Lit_Other "]")}]
                          action: [
                            (Case
                              to_match: {($ VSub_Number "$1")}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
                                  action: [
                                    (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$arg"))})
                                    (C {(shift)})
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:arg)
                                          op: Equal
                                          rhs: {($ VSub_Number "$1")}
                                          spids: [2110]
                                        )
                                      ]
                                      spids: [2110]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [2089 2091 2117 -1]
                                )
                              ]
                              spids: [2082 2086 2120]
                            )
                          ]
                          spids: [2075 2079 2123 -1]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other "[") (DIU) (Lit_Other "]") (Lit_Other "*")}]
                          action: [
                            (Case
                              to_match: {($ VSub_Name "$ppld")}
                              arms: [
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                                  spids: [-1 2141 2145 -1]
                                )
                              ]
                              spids: [2132 2136 2148]
                            )
                          ]
                          spids: [2126 2131 2151 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}
                          ]
                          spids: [2154 2159 2161 -1]
                        )
                        (case_arm
                          pat_list: [
                            {($ VSub_Name "$src1")}
                            {($ VSub_Name "$src2")}
                            {($ VSub_Name "$src3")}
                            {($ VSub_Name "$src4")}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:n)
                                  op: Equal
                                  rhs: {(_) ($ VSub_Name "$n")}
                                  spids: [2174]
                                )
                              ]
                              spids: [2174]
                            )
                            (C {(eval)} {(Lit_VarLike "arg=") (SQ <"$output">) ($ VSub_Name "$n")})
                          ]
                          spids: [2164 2171 2188 -1]
                        )
                      ]
                      spids: [2058 2062 2191]
                    )
                    (C {(set)} {(SQ )} {(DQ ($ VSub_At "$@"))} {(DQ ($ VSub_Name "$arg"))})
                    (C {(shift)})
                  ]
                  spids: [2049 2211]
                )
            )
            (Case
              to_match: {($ VSub_Name "$verbose")}
              arms: [
                (case_arm
                  pat_list: [{(1)}]
                  action: [(C {(echo)} {(Lit_Other "+")} {(DQ ($ VSub_At "$@"))})]
                  spids: [2221 2222 2232 -1]
                )
              ]
              spids: [2214 2218 2235]
            )
            (Case
              to_match: {($ VSub_Name "$exec")}
              arms: [
                (case_arm
                  pat_list: [{(1)}]
                  action: [(C {(DQ ($ VSub_At "$@"))})]
                  spids: [2245 2246 2252 -1]
                )
              ]
              spids: [2238 2242 2256]
            )
          ]
          spids: [944 951 2259 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (C {(integer)} {(Lit_VarLike "npp=") (1)} {(Lit_VarLike "ncc=") (1)} 
              {(Lit_VarLike "nav=") (1)} {(Lit_VarLike "xav=") ($ VSub_Pound "$#")} {(oav)}
            )
            (C {(set)} {(-A)} {(av)} {(DQ ($ VSub_At "$@"))})
            (C 
              {(pp) (Lit_Other "[") (0) (Lit_Other "]") (Lit_Other "=") 
                (BracedVarSub
                  token: <VSub_Name av>
                  bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                  spids: [2297 2302]
                )
              }
            )
            (While
              cond: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:nav)
                      right: (ArithVarRef name:xav)
                    )
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name av>
                                bracket_op: (ArrayIndex expr:(ArithVarRef name:nav))
                                spids: [2322 2327]
                              )
                            }
                          spids: [2321]
                        )
                      ]
                      spids: [2321]
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:nav)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:nav)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                    (Case
                      to_match: {($ VSub_Name "$arg")}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}
                          ]
                          spids: [2353 2358 2360 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [2363 2364 2368 -1]
                        )
                      ]
                      spids: [2346 2350 2371]
                    )
                    (C 
                      {(pp) (Lit_Other "[") (npp) (Lit_Other "]") (Lit_Other "=") ($ VSub_Name "$arg")}
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:npp)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:npp)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                  ]
                  spids: [2319 2398]
                )
            )
            (Case
              to_match: {($ VSub_Name "$doti")}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (C {(pp) (Lit_Other "[") (npp) (Lit_Other "]") (Lit_Other "=") (-D-L)})
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:npp)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:npp)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                  ]
                  spids: [-1 2410 2436 -1]
                )
              ]
              spids: [2401 2405 2439]
            )
            (C {(cc) (Lit_Other "[") (0) (Lit_Other "]") (Lit_Other "=") ($ VSub_Name "$arg")})
            (While
              cond: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:nav)
                      right: (ArithVarRef name:xav)
                    )
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name av>
                                bracket_op: (ArrayIndex expr:(ArithVarRef name:nav))
                                spids: [2467 2472]
                              )
                            }
                          spids: [2466]
                        )
                      ]
                      spids: [2466]
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:nav)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:nav)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                    (Case
                      to_match: {($ VSub_Name "$arg")}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(-) (Lit_Other "[") ($ VSub_Name "$multiopt") (Lit_Other "]")}
                            {(-) (Lit_Other "[") (Qq) (Lit_Other "]") (dir)}
                            {(-) (Lit_Other "[") (Qq) (Lit_Other "]") (option)}
                            {(-) (Lit_Other "[") (Qq) (Lit_Other "]") (path)}
                            {(-) (Lit_Other "[") (Qq) (Lit_Other "]") (produce)}
                          ]
                          action: [
                            (Case
                              to_match: {($ VSub_Name "$arg")}
                              arms: [
                                (case_arm
                                  pat_list: [{(-) (Lit_Other "[") (Qq) (Lit_Other "]") (option)}]
                                  action: [
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:oav)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:nav)
                                              right: (ArithWord w:{(Lit_Digits 2)})
                                            )
                                        )
                                    )
                                  ]
                                  spids: [2536 2541 2560 -1]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other "*")}]
                                  action: [
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:oav)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:nav)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                    )
                                  ]
                                  spids: [2563 2564 2582 -1]
                                )
                              ]
                              spids: [2529 2533 2585]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_Great
                                          left: (ArithVarRef name:oav)
                                          right: (ArithVarRef name:xav)
                                        )
                                    )
                                  ]
                                  action: [
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:oav)
                                          right: (ArithVarRef name:xav)
                                        )
                                    )
                                  ]
                                  spids: [-1 2602]
                                )
                              ]
                              spids: [-1 2616]
                            )
                            (While
                              cond: [
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_Less
                                      left: (ArithVarRef name:nav)
                                      right: (ArithVarRef name:oav)
                                    )
                                )
                              ]
                              body: 
                                (DoGroup
                                  children: [
                                    (C 
                                      {(cc) (Lit_Other "[") (ncc) (Lit_Other "]") (Lit_Other "=") 
                                        ($ VSub_Name "$arg")
                                      }
                                    )
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:ncc)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:ncc)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:arg)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name av>
                                                bracket_op: (ArrayIndex expr:(ArithVarRef name:nav))
                                                spids: [2660 2665]
                                              )
                                            }
                                          spids: [2659]
                                        )
                                      ]
                                      spids: [2659]
                                    )
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:nav)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:nav)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                    )
                                  ]
                                  spids: [2633 2684]
                                )
                            )
                          ]
                          spids: [2498 2526 2687 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(-) (Lit_Other "[") (DIU) (Lit_Other "]") (Lit_Other "*")}
                            {(-) (Lit_Other "[") 
                              (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ) (Lit_Other "]") (Lit_Other "[") (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_) 
                              (Lit_Other "]") (Lit_Other "*")
                            }
                          ]
                          action: [
                            (C 
                              {(pp) (Lit_Other "[") (npp) (Lit_Other "]") (Lit_Other "=") 
                                ($ VSub_Name "$arg")
                              }
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:npp)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:npp)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                            )
                            (Case
                              to_match: {($ VSub_Name "$ppld")}
                              arms: [
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  action: [
                                    (Case
                                      to_match: {($ VSub_Name "$arg")}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {(-) (Lit_Other "[") (DIU) (Lit_Other "]") (Lit_Other "*")}
                                          ]
                                          action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                                          spids: [2749 2754 2758 -1]
                                        )
                                      ]
                                      spids: [2742 2746 2761]
                                    )
                                  ]
                                  spids: [-1 2740 2764 -1]
                                )
                              ]
                              spids: [2731 2735 2767]
                            )
                            (Case
                              to_match: {($ VSub_Name "$arg")}
                              arms: [
                                (case_arm
                                  pat_list: [{(-D-) (Lit_Other "*")}]
                                  action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                                  spids: [2777 2779 2783 -1]
                                )
                              ]
                              spids: [2770 2774 2786]
                            )
                          ]
                          spids: [2690 2704 2789 -1]
                        )
                        (case_arm
                          pat_list: [{(-E)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppstdout)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2795]
                                )
                              ]
                              spids: [2795]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2799]
                                )
                              ]
                              spids: [2799]
                            )
                            (C {(trap)} {(0)} {(1)} {(2)} {(3)} {(15)})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [2792 2793 2819 -1]
                        )
                        (case_arm
                          pat_list: [{(-G)}]
                          action: [
                            (Case
                              to_match: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name av>
                                    bracket_op: (ArrayIndex expr:(ArithVarRef name:nav))
                                    spids: [2827 2832]
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "*")}]
                                  action: [
                                    (C 
                                      {(cc) (Lit_Other "[") (ncc) (Lit_Other "]") (Lit_Other "=") 
                                        ($ VSub_Name "$arg")
                                      }
                                    )
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:ncc)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:ncc)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:arg)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name av>
                                                bracket_op: (ArrayIndex expr:(ArithVarRef name:nav))
                                                spids: [2868 2873]
                                              )
                                            }
                                          spids: [2867]
                                        )
                                      ]
                                      spids: [2867]
                                    )
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:nav)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:nav)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                    )
                                  ]
                                  spids: [2837 2841 2892 -1]
                                )
                              ]
                              spids: [2825 2834 2895]
                            )
                          ]
                          spids: [2822 2823 2898 -1]
                        )
                        (case_arm
                          pat_list: [{(-P)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ppfile)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2904]
                                )
                              ]
                              spids: [2904]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:doti)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2908]
                                )
                              ]
                              spids: [2908]
                            )
                            (C {(trap)} {(0)} {(1)} {(2)} {(3)} {(15)})
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [2901 2902 2928 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(-) (Lit_Pound "#") (Lit_Other "*")}
                            {(-dryrun)}
                            {(--dryrun)}
                            {(-verbose)}
                            {(--verbose)}
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:verbose)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2945]
                                )
                              ]
                              spids: [2945]
                            )
                          ]
                          spids: [2931 2942 2949 -1]
                        )
                        (case_arm
                          pat_list: [
                            {(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}
                          ]
                          spids: [2952 2957 2959 -1]
                        )
                        (case_arm
                          pat_list: [
                            {($ VSub_Name "$src1")}
                            {($ VSub_Name "$src2")}
                            {($ VSub_Name "$src3")}
                            {($ VSub_Name "$src4")}
                          ]
                          action: [
                            (Case
                              to_match: {($ VSub_Name "$ppstdout")}
                              arms: [
                                (case_arm
                                  pat_list: [{(DQ )}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:out)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name arg>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {("*") (Lit_Slash /)}
                                                  )
                                                spids: [2984 2989]
                                              )
                                            }
                                          spids: [2983]
                                        )
                                      ]
                                      spids: [2983]
                                    )
                                    (Case
                                      to_match: {($ VSub_Name "$doti")}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(1)}]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:out)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name out>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Percent
                                                            arg_word: {(".*")}
                                                          )
                                                        spids: [3003 3007]
                                                      ) (.i)
                                                    }
                                                  spids: [3002]
                                                )
                                              ]
                                              spids: [3002]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:clobber)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ VSub_Name "$clobber") (" ") 
                                                        ($ VSub_Name "$out")
                                                      )
                                                    }
                                                  spids: [3011]
                                                )
                                              ]
                                              spids: [3011]
                                            )
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (SimpleCommand
                                                      words: [{(test)} {(-L)} {($ VSub_Name "$out")}]
                                                      redirects: [
                                                        (Redir
                                                          op_id: Redir_Great
                                                          fd: 2
                                                          arg_word: {(/dev/null)}
                                                          spids: [3027]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  action: [
                                                    (Case
                                                      to_match: {($ VSub_Name "$verbose")}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(1)}]
                                                          action: [
                                                            (C {(echo)} {(Lit_Other "+")} {(rm)} {(-f)} 
                                                              {($ VSub_Name "$out")}
                                                            )
                                                          ]
                                                          spids: [3040 3041 3053 -1]
                                                        )
                                                      ]
                                                      spids: [3033 3037 3056]
                                                    )
                                                    (Case
                                                      to_match: {($ VSub_Name "$exec")}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(1)}]
                                                          action: [
                                                            (C {(rm)} {(-f)} {($ VSub_Name "$out")})
                                                          ]
                                                          spids: [3066 3067 3075 -1]
                                                        )
                                                      ]
                                                      spids: [3059 3063 3078]
                                                    )
                                                  ]
                                                  spids: [-1 3031]
                                                )
                                              ]
                                              spids: [-1 3081]
                                            )
                                            (Case
                                              to_match: 
                                                {($ VSub_Name "$linki") (Lit_Other ":") 
                                                  ($ VSub_Name "$ppfile")
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [{(1) (Lit_Other ":")}]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:post)
                                                          op: Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ VSub_Name "$post") (" ln -s ") 
                                                                ($ VSub_Name "$arg") (" ") ($ VSub_Name "$out") (";")
                                                              )
                                                            }
                                                          spids: [3097]
                                                        )
                                                      ]
                                                      spids: [3097]
                                                    )
                                                  ]
                                                  spids: [3093 3095 3107 -1]
                                                )
                                              ]
                                              spids: [3084 3090 3110]
                                            )
                                          ]
                                          spids: [2999 3000 3113 -1]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other "*")}]
                                          action: [
                                            (Case
                                              to_match: {($ VSub_Name "$clobber")}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{(DQ )}]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:clobber)
                                                          op: Equal
                                                          rhs: {($ VSub_Name "$tmp")}
                                                          spids: [3130]
                                                        )
                                                      ]
                                                      spids: [3130]
                                                    )
                                                    (Case
                                                      to_match: {($ VSub_Name "$verbose")}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(1)}]
                                                          action: [
                                                            (C {(print)} {(-r)} {(--)} {(Lit_Other "+")} 
                                                              {(mkdir)} {($ VSub_Name "$tmp")}
                                                            )
                                                          ]
                                                          spids: [3141 3142 3156 -1]
                                                        )
                                                      ]
                                                      spids: [3134 3138 3159]
                                                    )
                                                    (Case
                                                      to_match: {($ VSub_Name "$exec")}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{(1)}]
                                                          action: [
                                                            (AndOr
                                                              children: [
                                                                (C {(mkdir)} {($ VSub_Name "$tmp")})
                                                                (C {(exit)})
                                                              ]
                                                              op_id: Op_DPipe
                                                            )
                                                          ]
                                                          spids: [3169 3170 3180 -1]
                                                        )
                                                      ]
                                                      spids: [3162 3166 3183]
                                                    )
                                                  ]
                                                  spids: [-1 3128 3186 -1]
                                                )
                                              ]
                                              spids: [3119 3123 3189]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:out)
                                                  op: Equal
                                                  rhs: {($ VSub_Name "$tmp") (/) ($ VSub_Name "$out")}
                                                  spids: [3192]
                                                )
                                              ]
                                              spids: [3192]
                                            )
                                          ]
                                          spids: [3116 3117 3198 -1]
                                        )
                                      ]
                                      spids: [2992 2996 3201]
                                    )
                                    (C 
                                      {(pp) (Lit_Other "[") (npp) (Lit_Other "+") (1) (Lit_Other "]") 
                                        (Lit_Other "=") ($ VSub_Name "$out")
                                      }
                                    )
                                  ]
                                  spids: [-1 2981 3214 -1]
                                )
                              ]
                              spids: [2972 2976 3217]
                            )
                            (C 
                              {(pp) (Lit_Other "[") (npp) (Lit_Other "]") (Lit_Other "=") 
                                ($ VSub_Name "$arg")
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {($ VSub_Name "$out")}
                                  spids: [3228]
                                )
                              ]
                              spids: [3228]
                            )
                            (Case
                              to_match: {($ VSub_Name "$verbose")}
                              arms: [
                                (case_arm
                                  pat_list: [{(1)}]
                                  action: [
                                    (C {(print)} {(-r)} {(--)} {(Lit_Other "+")} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name pp>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [3251 3256]
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [3239 3240 3259 -1]
                                )
                              ]
                              spids: [3232 3236 3262]
                            )
                            (Case
                              to_match: {($ VSub_Name "$exec")}
                              arms: [
                                (case_arm
                                  pat_list: [{(1)}]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C 
                                          {
                                            (DQ 
                                              (BracedVarSub
                                                token: <VSub_Name pp>
                                                bracket_op: (WholeArray op_id:Lit_At)
                                                spids: [3276 3281]
                                              )
                                            )
                                          }
                                        )
                                        (C {(exit)})
                                      ]
                                      op_id: Op_DPipe
                                    )
                                  ]
                                  spids: [3272 3273 3288 -1]
                                )
                              ]
                              spids: [3265 3269 3291]
                            )
                          ]
                          spids: [2962 2969 3294 -1]
                        )
                      ]
                      spids: [2491 2495 3297]
                    )
                    (C 
                      {(cc) (Lit_Other "[") (ncc) (Lit_Other "]") (Lit_Other "=") ($ VSub_Name "$arg")}
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:ncc)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:ncc)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                  ]
                  spids: [2464 3324]
                )
            )
            (Case
              to_match: {($ VSub_Name "$ppfile") ($ VSub_Name "$ppstdout")}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Case
                      to_match: {($ VSub_Name "$verbose")}
                      arms: [
                        (case_arm
                          pat_list: [{(1)}]
                          action: [
                            (C {(print)} {(-r)} {(--)} {(Lit_Other "+")} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name cc>
                                    bracket_op: (WholeArray op_id:Lit_At)
                                    spids: [3358 3363]
                                  )
                                )
                              }
                            )
                          ]
                          spids: [3346 3347 3366 -1]
                        )
                      ]
                      spids: [3339 3343 3369]
                    )
                    (Case
                      to_match: {($ VSub_Name "$exec")}
                      arms: [
                        (case_arm
                          pat_list: [{(1)}]
                          action: [
                            (C 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name cc>
                                    bracket_op: (WholeArray op_id:Lit_At)
                                    spids: [3383 3388]
                                  )
                                )
                              }
                            )
                          ]
                          spids: [3379 3380 3391 -1]
                        )
                      ]
                      spids: [3372 3376 3394]
                    )
                  ]
                  spids: [-1 3337 3397 -1]
                )
              ]
              spids: [3327 3332 3400]
            )
          ]
          spids: [2261 2262 -1 3402]
        )
      ]
      spids: [936 942 3402]
    )
  ]
)