(FuncDef
  name: _Dbg_debugger
  body: 
    (BraceGroup
      children: [
        (C {(set)} {(-o)} {(functrace)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Pound '$#')})
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                      spids: [90 99]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:step_ignore)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [106]
                    )
                  ]
                  spids: [106]
                )
                (C {(shift)})
              ]
              spids: [16777215 103]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:step_ignore)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name _Dbg_step_ignore>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [119 124]
                      )
                    }
                  spids: [118]
                )
              ]
              spids: [116]
            )
          ]
          spids: [113 127]
        )
        (WhileUntil
          keyword: <KW_While while>
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_Great
                      left: (ArithWord w:{($ VSub_Pound '$#')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [133 142]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          body: 
            (DoGroup
              children: [(C {(eval)} {($ VSub_Number '$1')}) (C {(shift)})]
              spids: [146 157]
            )
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$_Dbg_set_trace_init')})
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_Dbg_set_trace_init)
                      op: Equal
                      rhs: {(1)}
                      spids: [176]
                    )
                  ]
                  spids: [176]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:_Dbg_step_ignore)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Name step_ignore>
                            suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)})
                            spids: [181 185]
                          )
                        }
                      spids: [180]
                    )
                  ]
                  spids: [180]
                )
                (C {(_Dbg_write_journal)} {(DQ ('_Dbg_step_ignore=0'))})
              ]
              spids: [16777215 173]
            )
          ]
          else_action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_step_ignore)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)})
                        spids: [199 203]
                      )
                    }
                  spids: [198]
                )
              ]
              spids: [198]
            )
          ]
          spids: [195 206]
        )
        (C {(trap)} {(SQ <'_Dbg_debug_trap_handler 0 "$BASH_COMMAND" "$@"'>)} {(DEBUG)})
      ]
      spids: [78]
    )
  spids: [74 77]
)