(CommandList
  children: [
    (FuncDef
      name: __my_reassemble_comp_words_by_ref
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:exclude) op:Equal spids:[16])
                (assign_pair lhs:(LhsName name:i) op:Equal spids:[18])
                (assign_pair lhs:(LhsName name:j) op:Equal spids:[20])
                (assign_pair lhs:(LhsName name:first) op:Equal spids:[22])
              ]
              spids: [14]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:exclude)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: 
                            (PatSub
                              pat: {('[^') ($ VSub_Name '$COMP_WORDBREAKS') (']')}
                              do_all: T
                              do_prefix: F
                              do_suffix: F
                            )
                          spids: [31 38]
                        )
                      )
                    }
                  spids: [29]
                )
              ]
              spids: [29]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cword_)
                  op: Equal
                  rhs: {($ VSub_Name '$COMP_CWORD')}
                  spids: [42]
                )
              ]
              spids: [42]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$exclude'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:words_)
                          op: Equal
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name COMP_WORDS>
                                        bracket_op: (WholeArray op_id:Lit_At)
                                        spids: [65 70]
                                      )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [62]
                        )
                      ]
                      spids: [62]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 59]
                )
              ]
              spids: [16777215 78]
            )
            (ForExpr
              init: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  right: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:j)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: 
                    (ArithWord
                      w: 
                        {
                          (BracedVarSub
                            token: <VSub_Name COMP_WORDS>
                            prefix_op: VSub_Pound
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [106 112]
                          )
                        }
                    )
                )
              update: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  right: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:j))
                )
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:first) op:Equal rhs:{(t)} spids:[136])]
                      spids: [136]
                    )
                    (WhileUntil
                      keyword: <KW_While while>
                      cond: [
                        (AndOr
                          ops: [Op_DAmp Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(-gt)} {(0)} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-n)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name COMP_WORDS>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                    spids: [161 166]
                                  )
                                )
                              } {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name COMP_WORDS>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                    suffix_op: 
                                      (PatSub
                                        pat: {('[^') ($ VSub_Name '$exclude') (']')}
                                        do_all: T
                                        do_prefix: F
                                        do_suffix: F
                                      )
                                    spids: [181 191]
                                  )
                                )
                              } {(Lit_Other '=')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name COMP_WORDS>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                    spids: [197 202]
                                  )
                                )
                              } {(Lit_Other ']')}
                            )
                          ]
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(Lit_Other '[')} {($ VSub_Name '$j')} {(-ge)} {(2)} 
                                              {(Lit_Other ']')}
                                            )
                                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$first'))} 
                                              {(Lit_Other ']')}
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (DParen
                                      child: 
                                        (UnaryAssign
                                          op_id: Node_PostDMinus
                                          child: (LhsName name:j)
                                        )
                                      spids: [247 251]
                                    )
                                  ]
                                  spids: [16777215 244]
                                )
                              ]
                              spids: [16777215 254]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:first)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [257]
                                )
                              ]
                              spids: [257]
                            )
                            (C 
                              {(words_) (Lit_Other '[') ($ VSub_Name '$j') (Lit_Other ']') 
                                (Lit_Other '=') 
                                (BracedVarSub
                                  token: <VSub_Name words_>
                                  bracket_op: (ArrayIndex expr:(ArithVarRef name:j))
                                  spids: [265 270]
                                ) 
                                (BracedVarSub
                                  token: <VSub_Name COMP_WORDS>
                                  bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                                  spids: [271 276]
                                )
                              }
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(Lit_Other '=')} 
                                          {($ VSub_Name '$COMP_CWORD')} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:cword_)
                                          op: Equal
                                          rhs: {($ VSub_Name '$j')}
                                          spids: [295]
                                        )
                                      ]
                                      spids: [295]
                                    )
                                  ]
                                  spids: [16777215 292]
                                )
                              ]
                              spids: [16777215 299]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_Less
                                              left: (ArithWord w:{($ VSub_Name '$i')})
                                              right: 
                                                (ArithBinary
                                                  op_id: Arith_Minus
                                                  left: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_Name COMP_WORDS>
                                                            prefix_op: VSub_Pound
                                                            bracket_op: (WholeArray op_id:Lit_At)
                                                            spids: [309 315]
                                                          )
                                                        }
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          spids: [304 321]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (DParen
                                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                                      spids: [327 331]
                                    )
                                  ]
                                  spids: [16777215 324]
                                )
                              ]
                              else_action: [(ControlFlow token:<ControlFlow_Return return>)]
                              spids: [334 344]
                            )
                          ]
                          spids: [208 347]
                        )
                    )
                    (C 
                      {(words_) (Lit_Other '[') ($ VSub_Name '$j') (Lit_Other ']') (Lit_Other '=') 
                        (BracedVarSub
                          token: <VSub_Name words_>
                          bracket_op: (ArrayIndex expr:(ArithVarRef name:j))
                          spids: [355 360]
                        ) 
                        (BracedVarSub
                          token: <VSub_Name COMP_WORDS>
                          bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                          spids: [361 366]
                        )
                      }
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(Lit_Other '=')} 
                                  {($ VSub_Name '$COMP_CWORD')} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cword_)
                                  op: Equal
                                  rhs: {($ VSub_Name '$j')}
                                  spids: [385]
                                )
                              ]
                              spids: [385]
                            )
                          ]
                          spids: [16777215 382]
                        )
                      ]
                      spids: [16777215 389]
                    )
                  ]
                  spids: [125 392]
                )
            )
          ]
          spids: [11]
        )
      spids: [7 10]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:preload_get_comp_words_by_ref)
          op: Equal
          rhs: {(DQ (true))}
          spids: [403]
        )
      ]
      spids: [403]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Name '$preload_get_comp_words_by_ref')} {(Lit_Other '=')} 
                  {(DQ (true))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [{(type)} {(_get_comp_words_by_ref)}]
                  redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:preload_get_comp_words_by_ref)
                      op: Equal
                      rhs: {(DQ (false))}
                      spids: [437]
                    )
                  ]
                  spids: [437]
                )
              ]
            )
          ]
          spids: [16777215 424]
        )
      ]
      spids: [16777215 442]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(Lit_Other '[')} {($ VSub_Name '$preload_get_comp_words_by_ref')} {(Lit_Other '=')} 
          {(DQ (true))} {(Lit_Other ']')}
        )
        (FuncDef
          name: __perf_get_comp_words_by_ref
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair lhs:(LhsName name:exclude) op:Equal spids:[467])
                    (assign_pair lhs:(LhsName name:cur_) op:Equal spids:[469])
                    (assign_pair lhs:(LhsName name:words_) op:Equal spids:[471])
                    (assign_pair lhs:(LhsName name:cword_) op:Equal spids:[473])
                  ]
                  spids: [465]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-n))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:exclude)
                              op: Equal
                              rhs: {($ VSub_Number '$2')}
                              spids: [496]
                            )
                          ]
                          spids: [496]
                        )
                        (C {(shift)} {(2)})
                      ]
                      spids: [16777215 493]
                    )
                  ]
                  spids: [16777215 505]
                )
                (C {(__my_reassemble_comp_words_by_ref)} {(DQ ($ VSub_Name '$exclude'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cur_)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Name words_>
                            bracket_op: (ArrayIndex expr:(ArithVarRef name:cword_))
                            spids: [516 521]
                          )
                        }
                      spids: [515]
                    )
                  ]
                  spids: [515]
                )
                (WhileUntil
                  keyword: <KW_While while>
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (Case
                          to_match: {(DQ ($ VSub_Number '$1'))}
                          arms: [
                            (case_arm
                              pat_list: [{(cur)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:cur)
                                      op: Equal
                                      rhs: {($ VSub_Name '$cur_')}
                                      spids: [553]
                                    )
                                  ]
                                  spids: [553]
                                )
                              ]
                              spids: [549 550 557 16777215]
                            )
                            (case_arm
                              pat_list: [{(prev)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:prev)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name words_>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: 
                                                  (ArithBinary
                                                    op_id: Arith_Minus
                                                    left: (ArithWord w:{($ VSub_Name '$cword_')})
                                                    right: (ArithWord w:{(Lit_Digits 1)})
                                                  )
                                              )
                                            spids: [565 572]
                                          )
                                        }
                                      spids: [564]
                                    )
                                  ]
                                  spids: [564]
                                )
                              ]
                              spids: [560 561 575 16777215]
                            )
                            (case_arm
                              pat_list: [{(words)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:words)
                                      op: Equal
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {
                                                (DQ 
                                                  (BracedVarSub
                                                    token: <VSub_Name words_>
                                                    bracket_op: (WholeArray op_id:Lit_At)
                                                    spids: [585 590]
                                                  )
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [582]
                                    )
                                  ]
                                  spids: [582]
                                )
                              ]
                              spids: [578 579 595 16777215]
                            )
                            (case_arm
                              pat_list: [{(cword)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:cword)
                                      op: Equal
                                      rhs: {($ VSub_Name '$cword_')}
                                      spids: [602]
                                    )
                                  ]
                                  spids: [602]
                                )
                              ]
                              spids: [598 599 606 16777215]
                            )
                          ]
                          spids: [540 546 609]
                        )
                        (C {(shift)})
                      ]
                      spids: [537 615]
                    )
                )
              ]
              spids: [462]
            )
          spids: [458 461]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:preload__ltrim_colon_completions)
          op: Equal
          rhs: {(DQ (true))}
          spids: [626]
        )
      ]
      spids: [626]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Name '$preload__ltrim_colon_completions')} 
                  {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [{(type)} {(__ltrim_colon_completions)}]
                  redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:preload__ltrim_colon_completions)
                      op: Equal
                      rhs: {(DQ (false))}
                      spids: [660]
                    )
                  ]
                  spids: [660]
                )
              ]
            )
          ]
          spids: [16777215 647]
        )
      ]
      spids: [16777215 665]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(Lit_Other '[')} {($ VSub_Name '$preload__ltrim_colon_completions')} {(Lit_Other '=')} 
          {(DQ (true))} {(Lit_Other ']')}
        )
        (FuncDef
          name: __perf__ltrim_colon_completions
          body: 
            (BraceGroup
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (LogicalAnd
                                  left: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ ($ VSub_Number '$1'))}
                                      right: {(Lit_Other '*') (Lit_Other ':') (Lit_Other '*')}
                                    )
                                  right: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(DQ ($ VSub_Name '$COMP_WORDBREAKS'))}
                                      right: {(Lit_Other '*') (Lit_Other ':') (Lit_Other '*')}
                                    )
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:colon_word)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Number 1>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: 
                                          {
                                            (DQ 
                                              (BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*:')}
                                                  )
                                                spids: [731 735]
                                              )
                                            )
                                          }
                                      )
                                    spids: [727 737]
                                  )
                                }
                              spids: [726]
                            )
                          ]
                          spids: [724]
                        )
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:i)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name COMPREPLY>
                                    prefix_op: VSub_Pound
                                    bracket_op: (WholeArray op_id:Arith_Star)
                                    spids: [743 749]
                                  )
                                }
                              spids: [742]
                            )
                          ]
                          spids: [740]
                        )
                        (WhileUntil
                          keyword: <KW_While while>
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_ge
                                      left: 
                                        {
                                          (ArithSubPart
                                            anode: 
                                              (UnaryAssign
                                                op_id: Arith_DMinus
                                                child: (LhsName name:i)
                                              )
                                            spids: [756 760]
                                          )
                                        }
                                      right: {(0)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (C 
                                  {(COMPREPLY) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') 
                                    (Lit_Other '=') 
                                    (BracedVarSub
                                      token: <VSub_Name COMPREPLY>
                                      bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VOp1_Pound
                                          arg_word: {(DQ ($ VSub_Name '$colon_word'))}
                                        )
                                      spids: [777 786]
                                    )
                                  }
                                )
                              ]
                              spids: [769 789]
                            )
                        )
                      ]
                      spids: [16777215 717]
                    )
                  ]
                  spids: [16777215 792]
                )
              ]
              spids: [685]
            )
          spids: [681 684]
        )
      ]
    )
    (FuncDef
      name: __perfcomp
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} {(DQ ($ VSub_Number '$1'))} {(--)} 
                                      {(DQ ($ VSub_Number '$2'))}
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [808 824]
                            )
                          }
                        ]
                      )
                    }
                  spids: [805]
                )
              ]
              spids: [805]
            )
          ]
          spids: [802]
        )
      spids: [797 801]
    )
    (FuncDef
      name: __perfcomp_colon
      body: 
        (BraceGroup
          children: [
            (C {(__perfcomp)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$preload__ltrim_colon_completions')} 
                          {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(__ltrim_colon_completions)} {($ VSub_Name '$cur')})]
                  spids: [16777215 865]
                )
              ]
              else_action: [(C {(__perf__ltrim_colon_completions)} {($ VSub_Name '$cur')})]
              spids: [873 881]
            )
          ]
          spids: [836]
        )
      spids: [831 835]
    )
    (FuncDef
      name: __perf_prev_skip_opts
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:i) op:Equal spids:[896])
                (assign_pair lhs:(LhsName name:cmd_) op:Equal spids:[898])
                (assign_pair lhs:(LhsName name:cmds_) op:Equal spids:[900])
              ]
              spids: [894]
            )
            (C {(let)} {(Lit_VarLike 'i=') (cword-1)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmds_)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {($ VSub_Name '$cmd')} {($ VSub_Number '$1')} {(--list-cmds)})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [911 917]
                      )
                    }
                  spids: [910]
                )
              ]
              spids: [910]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:prev_skip_opts)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [920]
                )
              ]
              spids: [920]
            )
            (WhileUntil
              keyword: <KW_While while>
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {($ VSub_Name '$i')} {(-ge)} {(0)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name words>
                                            bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                                            spids: [945 950]
                                          )
                                        }
                                      right: {($ VSub_Number '$1')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return>)]
                          spids: [16777215 959]
                        )
                      ]
                      spids: [16777215 965]
                    )
                    (ForEach
                      iter_name: cmd_
                      iter_words: [{($ VSub_Name '$cmds_')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name words>
                                                    bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                                                    spids: [984 989]
                                                  )
                                                }
                                              right: {($ VSub_Name '$cmd_')}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:prev_skip_opts)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name words>
                                                bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                                                spids: [1002 1007]
                                              )
                                            }
                                          spids: [1001]
                                        )
                                      ]
                                      spids: [1001]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                    )
                                  ]
                                  spids: [16777215 998]
                                )
                              ]
                              spids: [16777215 1013]
                            )
                          ]
                          spids: [977 1016]
                        )
                      spids: [973 975]
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:i))
                      spids: [1019 1023]
                    )
                  ]
                  spids: [938 1026]
                )
            )
          ]
          spids: [891]
        )
      spids: [886 890]
    )
    (FuncDef
      name: __perf_main
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:cmd) op:Equal spids:[1041])]
              spids: [1039]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name words>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [1046 1051]
                      )
                    }
                  spids: [1045]
                )
              ]
              spids: [1045]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPREPLY)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [1054]
                )
              ]
              spids: [1054]
            )
            (C {(__perf_prev_skip_opts)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {($ VSub_Name '$prev_skip_opts')} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {($ VSub_Name '$cur')}
                                      right: {(--) (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cmds)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [(C {($ VSub_Name '$cmd')} {(--list-opts)})]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1103 1107]
                                      )
                                    }
                                  spids: [1102]
                                )
                              ]
                              spids: [1102]
                            )
                          ]
                          spids: [16777215 1099]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:cmds)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [(C {($ VSub_Name '$cmd')} {(--list-cmds)})]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1114 1118]
                                  )
                                }
                              spids: [1113]
                            )
                          ]
                          spids: [1113]
                        )
                      ]
                      spids: [1110 1121]
                    )
                    (C {(__perfcomp)} {(DQ ($ VSub_Name '$cmds'))} {(DQ ($ VSub_Name '$cur'))})
                  ]
                  spids: [16777215 1082]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {($ VSub_Name '$prev')}
                                  right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[1147 1155])}
                                )
                              right: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {($ VSub_Name '$prev_skip_opts')}
                                  right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[1164 1170])}
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:evts)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {($ VSub_Name '$cmd')} {(list)} {(--raw-dump)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1179 1185]
                              )
                            }
                          spids: [1178]
                        )
                      ]
                      spids: [1178]
                    )
                    (C {(__perfcomp_colon)} {(DQ ($ VSub_Name '$evts'))} {(DQ ($ VSub_Name '$cur'))})
                  ]
                  spids: [1139 1175]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {($ VSub_Name '$prev_skip_opts')}
                                  right: {(ExtGlobPart op:<ExtGlob_At '@('> spids:[1214 1239])}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcmds)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {($ VSub_Name '$cmd')} {($ VSub_Name '$prev_skip_opts')} 
                                            {(--list-cmds)}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1248 1254]
                                  )
                                }
                              spids: [1247]
                            )
                          ]
                          spids: [1247]
                        )
                        (C {(__perfcomp_colon)} {(DQ ($ VSub_Name '$subcmds'))} 
                          {(DQ ($ VSub_Name '$cur'))}
                        )
                      ]
                      spids: [16777215 1244]
                    )
                  ]
                  spids: [16777215 1268]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {($ VSub_Name '$cur')}
                                  right: {(--) (Lit_Other '*')}
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcmd)
                              op: Equal
                              rhs: {($ VSub_Name '$prev_skip_opts')}
                              spids: [1292]
                            )
                          ]
                          spids: [1292]
                        )
                        (C {(__perf_prev_skip_opts)} {($ VSub_Name '$subcmd')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:subcmd)
                              op: Equal
                              rhs: 
                                {($ VSub_Name '$subcmd') (DQ (' ')) ($ VSub_Name '$prev_skip_opts')}
                              spids: [1301]
                            )
                          ]
                          spids: [1301]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:opts)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {($ VSub_Name '$cmd')} {($ VSub_Name '$subcmd')} 
                                            {(--list-opts)}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [1310 1316]
                                  )
                                }
                              spids: [1309]
                            )
                          ]
                          spids: [1309]
                        )
                        (C {(__perfcomp)} {(DQ ($ VSub_Name '$opts'))} {(DQ ($ VSub_Name '$cur'))})
                      ]
                      spids: [16777215 1289]
                    )
                  ]
                  spids: [16777215 1330]
                )
              ]
              spids: [1199 1333]
            )
          ]
          spids: [1036]
        )
      spids: [1031 1035]
    )
  ]
)