(CommandList
  children: [
    (Assignment
      keyword: Assign_Typeset
      flags: [-a]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_keep) op:Equal spids:[69])]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_keep)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(SQ <keep>)} {(SQ <del>)}])}
          spids: [71]
        )
      ]
      spids: [71]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-a]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_line) op:Equal spids:[104])]
          spids: [100]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_line)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [107]
        )
      ]
      spids: [107]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_count) op:Equal rhs:{(0)} spids:[119])]
      spids: [115]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-a]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_file) op:Equal spids:[130])]
          spids: [126]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_file)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [133]
        )
      ]
      spids: [133]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-a]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_enable) op:Equal spids:[145])]
          spids: [141]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_enable)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [148]
        )
      ]
      spids: [148]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-a]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_counts) op:Equal spids:[160])]
          spids: [156]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_counts)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [163]
        )
      ]
      spids: [163]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-a]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_onetime) op:Equal spids:[175])]
          spids: [171]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_onetime)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [178]
        )
      ]
      spids: [178]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-a]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_cond) op:Equal spids:[190])]
          spids: [186]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_cond)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [193]
        )
      ]
      spids: [193]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_max) op:Equal rhs:{(0)} spids:[208])]
      spids: [204]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-A]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_file2linenos) op:Equal spids:[219])]
          spids: [215]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_file2linenos)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [222]
        )
      ]
      spids: [222]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_Typeset
          flags: [-A]
          pairs: [(assign_pair lhs:(LhsName name:_Dbg_brkpt_file2brkpt) op:Equal spids:[234])]
          spids: [230]
        )
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_brkpt_file2brkpt)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [237]
        )
      ]
      spids: [237]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_watch_exp)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [259]
        )
      ]
      spids: [255]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_watch_val)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [270]
        )
      ]
      spids: [266]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-ai]
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_watch_arith)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [281]
        )
      ]
      spids: [277]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-ai]
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_watch_count)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [292]
        )
      ]
      spids: [288]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-ai]
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_watch_enable)
          op: Equal
          rhs: {(ArrayLiteralPart)}
          spids: [303]
        )
      ]
      spids: [299]
    )
    (Assignment
      keyword: Assign_Typeset
      flags: [-i]
      pairs: [(assign_pair lhs:(LhsName name:_Dbg_watch_max) op:Equal rhs:{(0)} spids:[314])]
      spids: [310]
    )
    (Assignment
      keyword: Assign_Typeset
      pairs: [
        (assign_pair
          lhs: (LhsName name:_Dbg_watch_pat)
          op: Equal
          rhs: {(DQ (${ VSub_Name int_pat) ('[wW]'))}
          spids: [327]
        )
      ]
      spids: [325]
    )
    (FuncDef
      name: _Dbg_save_breakpoints
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:file) op:Equal spids:[349])]
              spids: [347]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_line)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [358]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_file)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [369]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_cond)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [380]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_count)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [391]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_enable)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [402]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_onetime)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [413]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_max)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [424]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_file2linenos)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [435]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_brkpt_file2brkpt)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [446]
                )
              ]
            )
          ]
          spids: [344]
        )
      spids: [340 343]
    )
    (FuncDef
      name: _Dbg_save_watchpoints
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_watch_exp)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [467]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_watch_val)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [478]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_watch_arith)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [489]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_watch_count)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [500]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_watch_enable)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [511]
                )
              ]
            )
            (SimpleCommand
              words: [{(Assign_Typeset typeset)} {(-p)} {(_Dbg_watch_max)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$_Dbg_statefile')}
                  spids: [522]
                )
              ]
            )
          ]
          spids: [458]
        )
      spids: [454 457]
    )
    (FuncDef
      name: _Dbg_enable_disable
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_LessEqual
                              left: (ArithWord w:{($ VSub_Pound '$#')})
                              right: (ArithWord w:{(Lit_Digits 2)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} 
                      {
                        (DQ ('_Dbg_enable_disable error - need at least 2 args, got ') 
                          ($ VSub_Pound '$#')
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 556]
                )
              ]
              spids: [16777215 572]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:on)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [579]
                )
              ]
              spids: [575]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:en_dis)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [585]
                )
              ]
              spids: [583]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {(SQ <display>)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(shift)})
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:to_go)
                          op: Equal
                          rhs: {(DQ ($ VSub_At '$@'))}
                          spids: [620]
                        )
                      ]
                      spids: [618]
                    )
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[628])]
                      spids: [626]
                    )
                    (C {(eval)} {(DQ ($ VSub_Name '$_seteglob'))})
                    (ForEach
                      iter_name: i
                      iter_words: [{($ VSub_Name '$to_go')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {($ VSub_Name '$i')}
                              arms: [
                                (case_arm
                                  pat_list: [{($ VSub_Name '$int_pat')}]
                                  action: [
                                    (C {(_Dbg_enable_disable_display)} {($ VSub_Name '$on')} 
                                      {($ VSub_Name '$en_dis')} {($ VSub_Name '$i')}
                                    )
                                  ]
                                  spids: [658 660 672 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(_Dbg_errmsg)} 
                                      {(DQ ('Invalid entry number skipped: ') ($ VSub_Name '$i'))}
                                    )
                                  ]
                                  spids: [675 677 16777215 688]
                                )
                              ]
                              spids: [651 655 688]
                            )
                          ]
                          spids: [648 691]
                        )
                      spids: [643 646]
                    )
                    (C {(eval)} {(DQ ($ VSub_Name '$_resteglob'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 612]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {(SQ <action>)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(shift)})
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:to_go)
                          op: Equal
                          rhs: {(DQ ($ VSub_At '$@'))}
                          spids: [730]
                        )
                      ]
                      spids: [728]
                    )
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[738])]
                      spids: [736]
                    )
                    (C {(eval)} {(DQ ($ VSub_Name '$_seteglob'))})
                    (ForEach
                      iter_name: i
                      iter_words: [{($ VSub_Name '$to_go')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {($ VSub_Name '$i')}
                              arms: [
                                (case_arm
                                  pat_list: [{($ VSub_Name '$int_pat')}]
                                  action: [
                                    (C {(_Dbg_enable_disable_action)} {($ VSub_Name '$on')} 
                                      {($ VSub_Name '$en_dis')} {($ VSub_Name '$i')}
                                    )
                                  ]
                                  spids: [768 770 782 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(_Dbg_errmsg)} 
                                      {(DQ ('Invalid entry number skipped: ') ($ VSub_Name '$i'))}
                                    )
                                  ]
                                  spids: [785 787 16777215 798]
                                )
                              ]
                              spids: [761 765 798]
                            )
                          ]
                          spids: [758 801]
                        )
                      spids: [753 756]
                    )
                    (C {(eval)} {(DQ ($ VSub_Name '$_resteglob'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [706 722]
                )
              ]
              spids: [16777215 816]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Typeset
                  pairs: [(assign_pair lhs:(LhsName name:to_go) op:Equal spids:[822])]
                  spids: [820]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:to_go)
                  op: Equal
                  rhs: {(DQ ($ VSub_At '$@'))}
                  spids: [825]
                )
              ]
              spids: [825]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[833])]
              spids: [831]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$_seteglob'))})
            (ForEach
              iter_name: i
              iter_words: [{($ VSub_Name '$to_go')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name '$i')}
                      arms: [
                        (case_arm
                          pat_list: [{($ VSub_Name '$_Dbg_watch_pat')}]
                          action: [
                            (C {(_Dbg_enable_disable_watch)} {($ VSub_Name '$on')} 
                              {($ VSub_Name '$en_dis')} 
                              {
                                (BracedVarSub
                                  token: <VSub_Name del>
                                  suffix_op: 
                                    (Slice
                                      begin: (ArithWord w:{(Lit_Digits 0)})
                                      length: 
                                        (ArithBinary
                                          op_id: Arith_Minus
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name del>
                                                    prefix_op: VSub_Pound
                                                    spids: [879 882]
                                                  )
                                                }
                                            )
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  spids: [874 885]
                                )
                              }
                            )
                          ]
                          spids: [863 865 888 16777215]
                        )
                        (case_arm
                          pat_list: [{($ VSub_Name '$int_pat')}]
                          action: [
                            (C {(_Dbg_enable_disable_brkpt)} {($ VSub_Name '$on')} 
                              {($ VSub_Name '$en_dis')} {($ VSub_Name '$i')}
                            )
                          ]
                          spids: [891 893 905 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(_Dbg_errmsg)} 
                              {(DQ ('Invalid entry number skipped: ') ($ VSub_Name '$i'))}
                            )
                          ]
                          spids: [908 910 16777215 921]
                        )
                      ]
                      spids: [856 860 921]
                    )
                  ]
                  spids: [853 924]
                )
              spids: [848 851]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$_resteglob'))})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [540]
        )
      spids: [536 539]
    )
    (FuncDef
      name: _Dbg_print_brkpt_count
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Typeset
                  flags: [-i]
                  pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[961])]
                  spids: [957]
                )
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:i)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [964]
                )
              ]
              spids: [964]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_NEqual
                              left: 
                                (ArithBinary
                                  op_id: Arith_LBracket
                                  left: (ArithVarRef name:_Dbg_brkpt_counts)
                                  right: (ArithVarRef name:i)
                                )
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:_Dbg_brkpt_counts)
                                          right: (ArithVarRef name:i)
                                        )
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_printf)} 
                              {(DQ (Lit_Other '\\') ('tbreakpoint already hit 1 time'))}
                            )
                          ]
                          spids: [16777215 1007]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_printf)} {(DQ (Lit_Other '\\') ('tbreakpoint already hit %d times'))} 
                          {
                            (BracedVarSub
                              token: <VSub_Name _Dbg_brkpt_counts>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                              spids: [1028 1033]
                            )
                          }
                        )
                      ]
                      spids: [1018 1036]
                    )
                  ]
                  spids: [16777215 986]
                )
              ]
              spids: [16777215 1039]
            )
          ]
          spids: [954]
        )
      spids: [950 953]
    )
    (FuncDef
      name: _Dbg_clear_all_brkpt
      body: 
        (BraceGroup
          children: [
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_file2linenos=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_file2brkpt=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_line=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_cond=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_file=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_enable=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_counts=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_onetime=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_brkpt_count=0'))})
          ]
          spids: [1055]
        )
      spids: [1051 1054]
    )
    (FuncDef
      name: _Dbg_set_brkpt
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DPipe
                      left: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithWord w:{($ VSub_Pound '$#')})
                          right: (ArithWord w:{(Lit_Digits 3)})
                        )
                      right: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Pound '$#')})
                          right: (ArithWord w:{(Lit_Digits 4)})
                        )
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:source_file) op:Equal spids:[1162])]
              spids: [1160]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source_file)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(_Dbg_expand_filename)} {(DQ ($ VSub_Number '$1'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1166 1172]
                      )
                    }
                  spids: [1165]
                )
              ]
              spids: [1165]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-ri]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lineno)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [1179]
                )
              ]
              spids: [1175]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-ri]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:is_temp)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [1187]
                )
              ]
              spids: [1183]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:condition)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 4>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)})
                        spids: [1196 1200]
                      )
                    }
                  spids: [1195]
                )
              ]
              spids: [1191]
            )
            (DParen
              child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:_Dbg_brkpt_max))
            )
            (DParen
              child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:_Dbg_brkpt_count))
            )
            (C 
              {(_Dbg_brkpt_line) (Lit_Other '[') ($ VSub_Name '$_Dbg_brkpt_max') (Lit_Other ']') 
                (Lit_Other '=') ($ VSub_Name '$lineno')
              }
            )
            (C 
              {(_Dbg_brkpt_file) (Lit_Other '[') ($ VSub_Name '$_Dbg_brkpt_max') (Lit_Other ']') 
                (Lit_Other '=') (DQ ($ VSub_Name '$source_file'))
              }
            )
            (C 
              {(_Dbg_brkpt_cond) (Lit_Other '[') ($ VSub_Name '$_Dbg_brkpt_max') (Lit_Other ']') 
                (Lit_Other '=') (DQ ($ VSub_Name '$condition'))
              }
            )
            (C 
              {(_Dbg_brkpt_onetime) (Lit_Other '[') ($ VSub_Name '$_Dbg_brkpt_max') (Lit_Other ']') 
                (Lit_Other '=') ($ VSub_Name '$is_temp')
              }
            )
            (C 
              {(_Dbg_brkpt_counts) (Lit_Other '[') ($ VSub_Name '$_Dbg_brkpt_max') (Lit_Other ']') 
                (Lit_Other '=') (0)
              }
            )
            (C 
              {(_Dbg_brkpt_enable) (Lit_Other '[') ($ VSub_Name '$_Dbg_brkpt_max') (Lit_Other ']') 
                (Lit_Other '=') (1)
              }
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:dq_source_file) op:Equal spids:[1278])]
              spids: [1276]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dq_source_file)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(_Dbg_esc_dq)} {(DQ ($ VSub_Name '$source_file'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1282 1288]
                      )
                    }
                  spids: [1281]
                )
              ]
              spids: [1281]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dq_condition)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(_Dbg_esc_dq)} {(DQ ($ VSub_Name '$condition'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1294 1300]
                      )
                    }
                  spids: [1293]
                )
              ]
              spids: [1291]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_Dbg_old_set_opts)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$_Dbg_old_set_opts') (' -o functrace'))}
                  spids: [1308]
                )
              ]
              spids: [1308]
            )
            (C {(_Dbg_write_journal_eval)} 
              {(DQ ("_Dbg_old_set_opts='") ($ VSub_Name '$_Dbg_old_set_opts') ("'"))}
            )
            (C {(_Dbg_write_journal_eval)} 
              {
                (DQ ('_Dbg_brkpt_line[') ($ VSub_Name '$_Dbg_brkpt_max') (']=') ($ VSub_Name '$lineno'))
              }
            )
            (C {(_Dbg_write_journal_eval)} 
              {
                (DQ ('_Dbg_brkpt_file[') ($ VSub_Name '$_Dbg_brkpt_max') (']=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$dq_source_file') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
            (C {(_Dbg_write_journal)} 
              {
                (DQ ('_Dbg_brkpt_cond[') ($ VSub_Name '$_Dbg_brkpt_max') (']=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$dq_condition') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
            (C {(_Dbg_write_journal)} 
              {
                (DQ ('_Dbg_brkpt_onetime[') ($ VSub_Name '$_Dbg_brkpt_max') (']=') 
                  ($ VSub_Name '$is_temp')
                )
              }
            )
            (C {(_Dbg_write_journal)} 
              {
                (DQ ('_Dbg_brkpt_counts[') ($ VSub_Name '$_Dbg_brkpt_max') (']=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (0) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
            (C {(_Dbg_write_journal)} 
              {(DQ ('_Dbg_brkpt_enable[') ($ VSub_Name '$_Dbg_brkpt_max') (']=1'))}
            )
            (C {(_Dbg_write_journal_eval)} 
              {
                (DQ ('_Dbg_brkpt_file2linenos[') ($ VSub_Name '$source_file') (']+=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$lineno') (' ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
            (C {(_Dbg_write_journal_eval)} 
              {
                (DQ ('_Dbg_brkpt_file2brkpt[') ($ VSub_Name '$source_file') (']+=') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' ') ($ VSub_Name '$_Dbg_brkpt_max') (' ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source_file)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(_Dbg_adjust_filename)} {(DQ ($ VSub_Name '$source_file'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1429 1435]
                      )
                    }
                  spids: [1428]
                )
              ]
              spids: [1428]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:is_temp)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_msg)} 
                      {
                        (DQ ('Breakpoint ') ($ VSub_Name '$_Dbg_brkpt_max') (' set in file ') 
                          (${ VSub_Name source_file) (', line ') ($ VSub_Name '$lineno') (.)
                        )
                      }
                    )
                  ]
                  spids: [16777215 1453]
                )
              ]
              else_action: [
                (C {(_Dbg_msg)} 
                  {
                    (DQ ('One-time breakpoint ') ($ VSub_Name '$_Dbg_brkpt_max') (' set in file ') 
                      (${ VSub_Name source_file) (', line ') ($ VSub_Name '$lineno') (.)
                    )
                  }
                )
              ]
              spids: [1471 1489]
            )
            (C {(_Dbg_write_journal)} {(DQ ('_Dbg_brkpt_max=') ($ VSub_Name '$_Dbg_brkpt_max'))})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1131]
        )
      spids: [1127 1130]
    )
    (FuncDef
      name: _Dbg_unset_brkpt_arrays
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Pound '$#')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:del)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1542]
                )
              ]
              spids: [1538]
            )
            (C {(_Dbg_write_journal_eval)} {(DQ ('unset _Dbg_brkpt_line[') ($ VSub_Name '$del') (']'))})
            (C {(_Dbg_write_journal_eval)} 
              {(DQ ('unset _Dbg_brkpt_counts[') ($ VSub_Name '$del') (']'))}
            )
            (C {(_Dbg_write_journal_eval)} {(DQ ('unset _Dbg_brkpt_file[') ($ VSub_Name '$del') (']'))})
            (C {(_Dbg_write_journal_eval)} 
              {(DQ ('unset _Dbg_brkpt_enable[') ($ VSub_Name '$del') (']'))}
            )
            (C {(_Dbg_write_journal_eval)} {(DQ ('unset _Dbg_brkpt_cond[') ($ VSub_Name '$del') (']'))})
            (C {(_Dbg_write_journal_eval)} 
              {(DQ ('unset _Dbg_brkpt_onetime[') ($ VSub_Name '$del') (']'))}
            )
            (DParen
              child: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:_Dbg_brkpt_count))
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1517]
        )
      spids: [1513 1516]
    )
    (FuncDef
      name: _Dbg_unset_brkpt
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Pound '$#')})
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:filename)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1651]
                )
              ]
              spids: [1649]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lineno)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [1659]
                )
              ]
              spids: [1655]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[1667])]
              spids: [1663]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:fullname) op:Equal spids:[1673])]
              spids: [1671]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fullname)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(_Dbg_expand_filename)} {(DQ ($ VSub_Name '$filename'))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1677 1683]
                      )
                    }
                  spids: [1676]
                )
              ]
              spids: [1676]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:linenos) op:Equal spids:[1695])]
              spids: [1691]
            )
            (C {(eval)} 
              {
                (DQ ('linenos=(') 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_brkpt_file2linenos>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$fullname')}))
                    spids: [1702 1707]
                  ) (')')
                )
              }
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:brkpt_nos) op:Equal spids:[1716])]
              spids: [1712]
            )
            (C {(eval)} 
              {
                (DQ ('brkpt_nos=(') 
                  (BracedVarSub
                    token: <VSub_Name _Dbg_brkpt_file2brkpt>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$fullname')}))
                    spids: [1723 1728]
                  ) (')')
                )
              }
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[1738])]
              spids: [1734]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_LessEqual
                  left: (ArithVarRef name:i)
                  right: 
                    (ArithWord
                      w: 
                        {
                          (BracedVarSub
                            token: <VSub_Name linenos>
                            prefix_op: VSub_Pound
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [1757 1763]
                          )
                        }
                    )
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:linenos)
                                          right: (ArithVarRef name:i)
                                        )
                                      right: (ArithVarRef name:lineno)
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Typeset
                              flags: [-i]
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:brkpt_num)
                                  op: Equal
                                  spids: [1804]
                                )
                              ]
                              spids: [1800]
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:brkpt_num)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_LBracket
                                      left: (ArithVarRef name:brkpt_nos)
                                      right: (ArithVarRef name:i)
                                    )
                                )
                            )
                            (C {(_Dbg_unset_brkpt_arrays)} {($ VSub_Name '$brkpt_num')})
                            (C {(unset)} {(linenos) (Lit_Other '[') (i) (Lit_Other ']')})
                            (C 
                              {(_Dbg_brkpt_file2linenos) (Lit_Other '[') ($ VSub_Name '$fullname') 
                                (Lit_Other ']') (Lit_Other '=') 
                                (BracedVarSub
                                  token: <VSub_Name linenos>
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [1840 1845]
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_Typeset
                              flags: [-a]
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:brkpt_nos)
                                  op: Equal
                                  spids: [1852]
                                )
                              ]
                              spids: [1848]
                            )
                            (C {(eval)} 
                              {
                                (DQ ('brkpt_nos=(') 
                                  (BracedVarSub
                                    token: <VSub_Name _Dbg_brkpt_file2brkpt>
                                    bracket_op: 
                                      (ArrayIndex
                                        expr: (ArithWord w:{($ VSub_Name '$filename')})
                                      )
                                    spids: [1859 1864]
                                  ) (')')
                                )
                              }
                            )
                            (C {(unset)} 
                              {(brkpt_nos) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']')}
                            )
                            (C 
                              {(_Dbg_brkpt_file2brkpt) (Lit_Other '[') ($ VSub_Name '$filename') 
                                (Lit_Other ']') (Lit_Other '=') 
                                (BracedVarSub
                                  token: <VSub_Name brkpt_nos>
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [1882 1887]
                                )
                              }
                            )
                            (DParen
                              child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:found))
                            )
                          ]
                          spids: [16777215 1793]
                        )
                      ]
                      spids: [16777215 1900]
                    )
                  ]
                  spids: [1772 1903]
                )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithVarRef name:found)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:filename)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(_Dbg_file_canonic)} {(DQ ($ VSub_Name '$filename'))})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1925 1931]
                              )
                            }
                          spids: [1924]
                        )
                      ]
                      spids: [1924]
                    )
                    (C {(_Dbg_errmsg)} 
                      {
                        (DQ ('No breakpoint found at ') ($ VSub_Name '$filename') (', line ') 
                          (${ VSub_Name lineno) (.)
                        )
                      }
                    )
                  ]
                  spids: [16777215 1921]
                )
              ]
              spids: [16777215 1947]
            )
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_Name '$found')}
            )
          ]
          spids: [1627]
        )
      spids: [1623 1626]
    )
    (FuncDef
      name: _Dbg_delete_brkpt_entry
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Pound '$#')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-r]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:del)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1992]
                )
              ]
              spids: [1988]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[2002])]
              spids: [1998]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[2009])]
              spids: [2005]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_z
                              child: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name _Dbg_brkpt_file>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$del')}))
                                    spids: [2020 2025]
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} {(DQ ('No breakpoint number ') ($ VSub_Name '$del') (.))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 2031]
                )
              ]
              spids: [16777215 2048]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source_file)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name _Dbg_brkpt_file>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$del')}))
                        spids: [2054 2059]
                      )
                    }
                  spids: [2053]
                )
              ]
              spids: [2051]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lineno)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name _Dbg_brkpt_line>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$del')}))
                        spids: [2067 2072]
                      )
                    }
                  spids: [2066]
                )
              ]
              spids: [2062]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:try) op:Equal spids:[2079])]
              spids: [2075]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:new_lineno_val)
                  op: Equal
                  rhs: {(SQ )}
                  spids: [2084]
                )
              ]
              spids: [2082]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:new_brkpt_nos)
                  op: Equal
                  rhs: {(SQ )}
                  spids: [2091]
                )
              ]
              spids: [2089]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(-1)} spids:[2100])]
              spids: [2096]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:brkpt_nos) op:Equal spids:[2108])]
              spids: [2104]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:brkpt_nos)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (BracedVarSub
                              token: <VSub_Name _Dbg_brkpt_file2brkpt>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$source_file')}))
                              spids: [2113 2118]
                            )
                          }
                        ]
                      )
                    }
                  spids: [2111]
                )
              ]
              spids: [2111]
            )
            (ForEach
              iter_name: try
              iter_words: [
                {
                  (BracedVarSub
                    token: <VSub_Name _Dbg_brkpt_file2linenos>
                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$source_file')}))
                    spids: [2128 2133]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:brkpt_nos)
                                          right: (ArithVarRef name:i)
                                        )
                                      right: (ArithVarRef name:del)
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_NEqual
                                              left: (ArithVarRef name:try)
                                              right: (ArithVarRef name:lineno)
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(_Dbg_errmsg)} {(SQ <'internal brkpt structure inconsistency'>)})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2183]
                                )
                              ]
                              spids: [16777215 2198]
                            )
                            (C {(_Dbg_unset_brkpt_arrays)} {($ VSub_Name '$del')})
                            (DParen
                              child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:found))
                            )
                          ]
                          spids: [16777215 2165]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:new_lineno_val)
                              op: PlusEqual
                              rhs: {(DQ (' ') ($ VSub_Name '$try') (' '))}
                              spids: [2216]
                            )
                          ]
                          spids: [2216]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:new_brkpt_nos)
                              op: PlusEqual
                              rhs: 
                                {
                                  (DQ (' ') 
                                    (BracedVarSub
                                      token: <VSub_Name brkpt_nos>
                                      bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                      spids: [2227 2232]
                                    ) (' ')
                                  )
                                }
                              spids: [2224]
                            )
                          ]
                          spids: [2224]
                        )
                      ]
                      spids: [2213 2237]
                    )
                  ]
                  spids: [2137 2240]
                )
              spids: [2127 2135]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithVarRef name:found)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name new_lineno_val>
                                                prefix_op: VSub_Pound
                                                bracket_op: (WholeArray op_id:Lit_At)
                                                spids: [2265 2271]
                                              )
                                            }
                                        )
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_write_journal_eval)} 
                              {
                                (DQ ("unset '_Dbg_brkpt_file2linenos[") ($ VSub_Name '$source_file') 
                                  ("]'")
                                )
                              }
                            )
                            (C {(_Dbg_write_journal_eval)} 
                              {
                                (DQ ("unset '_Dbg_brkpt_file2brkpt[") ($ VSub_Name '$source_file') 
                                  ("]'")
                                )
                              }
                            )
                          ]
                          spids: [16777215 2282]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_write_journal_eval)} 
                          {
                            (DQ ('_Dbg_brkpt_file2linenos[') ($ VSub_Name '$source_file') (']=') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\"'>
                              ) (${ VSub_Name new_lineno_val) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                        (C {(_Dbg_write_journal_eval)} 
                          {
                            (DQ ('_Dbg_brkpt_file2brkpt[') ($ VSub_Name '$source_file') (']=') 
                              (EscapedLiteralPart
                                token: <Lit_EscapedChar '\\"'>
                              ) ($ VSub_Name '$new_brkpt_nos') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                      ]
                      spids: [2307 2340]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 2258]
                )
              ]
              spids: [16777215 2348]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1967]
        )
      spids: [1963 1966]
    )
    (FuncDef
      name: _Dbg_enable_disable_action
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Pound '$#')})
                      right: (ArithWord w:{(Lit_Digits 3)})
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:on)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2388]
                )
              ]
              spids: [2384]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:en_dis)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [2394]
                )
              ]
              spids: [2392]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:i)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [2402]
                )
              ]
              spids: [2398]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name _Dbg_brkpt_file>
                                      bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                      spids: [2413 2418]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_action_enable>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name '$i')})
                                              )
                                            spids: [2432 2437]
                                          )
                                        }
                                      right: {($ VSub_Name '$on')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_errmsg)} 
                              {
                                (DQ ('Breakpoint entry ') ($ VSub_Name '$i') (' already ') 
                                  (${ VSub_Name en_dis) (', so nothing done.')
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 2447]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_write_journal_eval)} 
                          {(DQ ('_Dbg_brkpt_enable[') ($ VSub_Name '$i') (']=') ($ VSub_Name '$on'))}
                        )
                        (C {(_Dbg_msg)} 
                          {
                            (DQ ('Action entry ') ($ VSub_Name '$i') (' ') ($ VSub_Name '$en_dis') (.))
                          }
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [2468 2497]
                    )
                  ]
                  spids: [16777215 2425]
                )
              ]
              else_action: [
                (C {(_Dbg_errmsg)} 
                  {(DQ ('Action entry ') ($ VSub_Name '$i') (" doesn't exist, so nothing done."))}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              spids: [2500 2517]
            )
          ]
          spids: [2365]
        )
      spids: [2361 2364]
    )
    (FuncDef
      name: _Dbg_enable_disable_brkpt
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_NEqual
                      left: (ArithWord w:{($ VSub_Pound '$#')})
                      right: (ArithWord w:{(Lit_Digits 3)})
                    )
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:on)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2552]
                )
              ]
              spids: [2548]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:en_dis)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [2558]
                )
              ]
              spids: [2556]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:i)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [2566]
                )
              ]
              spids: [2562]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name _Dbg_brkpt_file>
                                      bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                      spids: [2577 2582]
                                    )
                                  )
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_brkpt_enable>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name '$i')})
                                              )
                                            spids: [2596 2601]
                                          )
                                        }
                                      right: {($ VSub_Name '$on')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_errmsg)} 
                              {
                                (DQ ('Breakpoint entry ') ($ VSub_Name '$i') (' already ') 
                                  (${ VSub_Name en_dis) (', so nothing done.')
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 2611]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_write_journal_eval)} 
                          {(DQ ('_Dbg_brkpt_enable[') ($ VSub_Name '$i') (']=') ($ VSub_Name '$on'))}
                        )
                        (C {(_Dbg_msg)} 
                          {
                            (DQ ('Breakpoint entry ') ($ VSub_Name '$i') (' ') ($ VSub_Name '$en_dis') 
                              (.)
                            )
                          }
                        )
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(0)}
                        )
                      ]
                      spids: [2632 2661]
                    )
                  ]
                  spids: [16777215 2589]
                )
              ]
              else_action: [
                (C {(_Dbg_errmsg)} 
                  {
                    (DQ ('Breakpoint entry ') ($ VSub_Name '$i') (" doesn't exist, so nothing done."))
                  }
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              spids: [2664 2681]
            )
          ]
          spids: [2529]
        )
      spids: [2525 2528]
    )
    (FuncDef
      name: _Dbg_get_watch_exp_eval
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:i)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2701]
                )
              ]
              spids: [2697]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:new_val) op:Equal spids:[2707])]
              spids: [2705]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(eval)} {(echo)} 
                                            {(EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                                              (BracedVarSub
                                                token: <VSub_Name _Dbg_watch_exp>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithWord w:{($ VSub_Name '$i')})
                                                  )
                                                spids: [2721 2726]
                                              ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [2715 2728]
                                  )
                                }
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:new_val)
                          op: Equal
                          rhs: {(SQ )}
                          spids: [2741]
                        )
                      ]
                      spids: [2741]
                    )
                  ]
                  spids: [16777215 2738]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithBinary
                                  op_id: Arith_LBracket
                                  left: (ArithVarRef name:_Dbg_watch_arith)
                                  right: (ArithWord w:{($ VSub_Name '$i')})
                                )
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(.)} {(${ VSub_Name _Dbg_libdir) (/dbg-set-d-vars.inc)})
                    (C {(eval)} {(let)} 
                      {(Lit_VarLike 'new_val=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                        (BracedVarSub
                          token: <VSub_Name _Dbg_watch_exp>
                          bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                          spids: [2781 2786]
                        ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                      }
                    )
                  ]
                  spids: [2746 2764]
                )
              ]
              else_action: [
                (C {(.)} {(${ VSub_Name _Dbg_libdir) (/dbg-set-d-vars.inc)})
                (C {(eval)} 
                  {(Lit_VarLike 'new_val=') 
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name _Dbg_watch_exp>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                        spids: [2805 2810]
                      )
                    )
                  }
                )
              ]
              spids: [2790 2814]
            )
            (C {(echo)} {($ VSub_Name '$new_val')})
          ]
          spids: [2694]
        )
      spids: [2690 2693]
    )
    (FuncDef
      name: _Dbg_enable_disable_watch
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:on)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [2838]
                )
              ]
              spids: [2834]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:en_dis)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [2844]
                )
              ]
              spids: [2842]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:i)
                  op: Equal
                  rhs: {($ VSub_Number '$3')}
                  spids: [2852]
                )
              ]
              spids: [2848]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name _Dbg_watch_exp>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                spids: [2863 2868]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_watch_enable>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name '$i')})
                                              )
                                            spids: [2882 2887]
                                          )
                                        }
                                      right: {($ VSub_Name '$on')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_msg)} 
                              {
                                (DQ ('Watchpoint entry ') ($ VSub_Name '$i') (' already ') 
                                  ($ VSub_Name '$en_dis') (' so nothing done.')
                                )
                              }
                            )
                          ]
                          spids: [16777215 2897]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_write_journal_eval)} 
                          {(DQ ('_Dbg_watch_enable[') ($ VSub_Name '$i') (']=') ($ VSub_Name '$on'))}
                        )
                        (C {(_Dbg_msg)} 
                          {
                            (DQ ('Watchpoint entry ') ($ VSub_Name '$i') (' ') ($ VSub_Name '$en_dis') 
                              (.)
                            )
                          }
                        )
                      ]
                      spids: [2911 2935]
                    )
                  ]
                  spids: [16777215 2875]
                )
              ]
              else_action: [
                (C {(_Dbg_msg)} 
                  {(DQ ('Watchpoint entry ') ($ VSub_Name '$i') (" doesn't exist so nothing done."))}
                )
              ]
              spids: [2938 2950]
            )
          ]
          spids: [2831]
        )
      spids: [2827 2830]
    )
    (FuncDef
      name: _Dbg_list_watch
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (BracedVarSub
                              token: <VSub_Name _Dbg_watch_exp>
                              prefix_op: VSub_Pound
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [2966 2972]
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(0)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:i)
                          op: Equal
                          rhs: {(0)}
                          spids: [2987]
                        )
                        (assign_pair
                          lhs: (LhsName name:j)
                          op: Equal
                          spids: [2990]
                        )
                      ]
                      spids: [2985]
                    )
                    (C {(_Dbg_section)} {(DQ ('Num Type       Enb  Expression'))})
                    (ForExpr
                      init: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                      cond: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithVarRef name:i)
                          right: (ArithVarRef name:_Dbg_watch_max)
                        )
                      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} 
                                          {
                                            (DQ 
                                              (BracedVarSub
                                                token: <VSub_Name _Dbg_watch_exp>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithWord w:{($ VSub_Name '$i')})
                                                  )
                                                spids: [3040 3045]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(_Dbg_printf)} {(SQ <'%-3d watchpoint %-4s %s'>)} 
                                      {($ VSub_Name '$i')} 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name _Dbg_yn>
                                          bracket_op: 
                                            (ArrayIndex
                                              expr: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name _Dbg_watch_enable>
                                                        bracket_op: 
                                                          (ArrayIndex
                                                            expr: (ArithWord w:{($ VSub_Name '$i')})
                                                          )
                                                        spids: [3067 3072]
                                                      )
                                                    }
                                                )
                                            )
                                          spids: [3064 3074]
                                        )
                                      } 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name _Dbg_watch_exp>
                                            bracket_op: 
                                              (ArrayIndex
                                                expr: (ArithWord w:{($ VSub_Name '$i')})
                                              )
                                            spids: [3079 3084]
                                          )
                                        )
                                      }
                                    )
                                    (C {(_Dbg_print_brkpt_count)} 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name _Dbg_watch_count>
                                          bracket_op: 
                                            (ArrayIndex
                                              expr: (ArithWord w:{($ VSub_Name '$i')})
                                            )
                                          spids: [3090 3095]
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 3051]
                                )
                              ]
                              spids: [16777215 3098]
                            )
                          ]
                          spids: [3030 3101]
                        )
                    )
                  ]
                  spids: [16777215 2982]
                )
              ]
              else_action: [(C {(_Dbg_msg)} {(DQ ('No watch expressions have been set.'))})]
              spids: [3104 3114]
            )
          ]
          spids: [2959]
        )
      spids: [2955 2958]
    )
    (FuncDef
      name: _Dbg_delete_watch_entry
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:del)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [3130]
                )
              ]
              spids: [3126]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name _Dbg_watch_exp>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$del')}))
                                spids: [3142 3147]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_write_journal_eval)} 
                      {(DQ ('unset _Dbg_watch_exp[') ($ VSub_Name '$del') (']'))}
                    )
                    (C {(_Dbg_write_journal_eval)} 
                      {(DQ ('unset _Dbg_watch_val[') ($ VSub_Name '$del') (']'))}
                    )
                    (C {(_Dbg_write_journal_eval)} 
                      {(DQ ('unset _Dbg_watch_enable[') ($ VSub_Name '$del') (']'))}
                    )
                    (C {(_Dbg_write_journal_eval)} 
                      {(DQ ('unset _Dbg_watch_count[') ($ VSub_Name '$del') (']'))}
                    )
                  ]
                  spids: [16777215 3154]
                )
              ]
              else_action: [
                (C {(_Dbg_msg)} 
                  {
                    (DQ ('Watchpoint entry ') ($ VSub_Name '$del') (" doesn't exist so nothing done."))
                  }
                )
              ]
              spids: [3193 3205]
            )
          ]
          spids: [3123]
        )
      spids: [3119 3122]
    )
    (FuncDef
      name: _Dbg_clear_watch
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithWord w:{($ VSub_Pound '$#')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_Dbg_prompt_output)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name _Dbg_tty>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_ColonHyphen
                                    arg_word: {(Lit_Slash /) (dev) (Lit_Slash /) (null)}
                                  )
                                spids: [3238 3245]
                              )
                            }
                          spids: [3237]
                        )
                      ]
                      spids: [3235]
                    )
                    (SimpleCommand
                      words: [
                        {(read)}
                        {($ VSub_Name '$_Dbg_edit')}
                        {(-p)}
                        {(DQ ('Delete all watchpoints? (y/n): '))}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_LessAnd
                          fd: 16777215
                          arg_word: {($ VSub_Name '$_Dbg_input_desc')}
                          spids: [3260]
                        )
                        (Redir
                          op_id: Redir_DGreat
                          fd: 2
                          arg_word: {($ VSub_Name '$_Dbg_prompt_output')}
                          spids: [3263]
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {($ VSub_Name '$REPLY')}
                                      right: {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_write_journal_eval)} {(unset)} 
                              {(_Dbg_watch_exp) (Lit_Other '[') (Lit_Other '@') (Lit_Other ']')}
                            )
                            (C {(_Dbg_write_journal_eval)} {(unset)} 
                              {(_Dbg_watch_val) (Lit_Other '[') (Lit_Other '@') (Lit_Other ']')}
                            )
                            (C {(_Dbg_write_journal_eval)} {(unset)} 
                              {(_Dbg_watch_enable) (Lit_Other '[') (Lit_Other '@') (Lit_Other ']')}
                            )
                            (C {(_Dbg_write_journal_eval)} {(unset)} 
                              {(_Dbg_watch_count) (Lit_Other '[') (Lit_Other '@') (Lit_Other ']')}
                            )
                            (C {(_Dbg_msg)} {(DQ ('All Watchpoints have been cleared'))})
                          ]
                          spids: [16777215 3285]
                        )
                      ]
                      spids: [16777215 3335]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 3232]
                )
              ]
              spids: [16777215 3343]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$_seteglob'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {($ VSub_Name '$int_pat')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_write_journal_eval)} 
                      {(DQ ('unset _Dbg_watch_exp[') ($ VSub_Number '$1') (']'))}
                    )
                    (C {(_msg)} {(DQ ('Watchpoint ') ($ VSub_Name '$i') (' has been cleared'))})
                  ]
                  spids: [16777215 3367]
                )
              ]
              else_action: [
                (C {(_Dbg_list_watch)})
                (C {(_basdhb_msg)} {(DQ ('Please specify a numeric watchpoint number'))})
              ]
              spids: [3388 3401]
            )
            (C {(eval)} {(DQ ($ VSub_Name '$_resteglob'))})
          ]
          spids: [3214]
        )
      spids: [3210 3213]
    )
  ]
)