(command.CommandList
  children: [
    (C {(_Dbg_help_add)} {(action)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'**action** *linespec* *command*\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\n' span_id:65) (Token id:Id.Lit_Chars val:'Run *command* when *linespec* is hit\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\n' span_id:67) 
          (Token
            id: Id.Lit_Chars
            val: 'Use "A" to remove all actions and "L" to get a list of the actions in\n'
            span_id: 68
          ) (Token id:Id.Lit_Chars val:effect. span_id:69)
        )
      }
    )
    (command.ShFunction
      name: _Dbg_do_action
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')})
                              right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:104)
                    )
                  ]
                  action: [
                    (C {(_Dbg_list_action)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:113)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [91 106]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')})
                              right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:134)
                    )
                  ]
                  action: [
                    (C {(typeset)} 
                      {(Id.Lit_VarLike 'n=') ($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')}
                    )
                  ]
                  spids: [121 136]
                )
              ]
              else_action: [
                (C {(typeset)} {(Id.Lit_VarLike 'n=') ($ Id.VSub_Number '$1')})
                (C {(shift)})
              ]
            )
            (C {(typeset)} {(Id.Lit_VarLike 'stmt=') (DQ ($ Id.VSub_Star '$*'))})
            (C {(typeset)} {(filename)})
            (C {(typeset)} {(-i)} {(line_number)})
            (C {(typeset)} {(full_filename)})
            (C {(_Dbg_linespec_setup)} {($ Id.VSub_DollarName '$n')})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName '$full_filename')}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:205)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.VarRef
                                          token: 
                                            (Token
                                              id: Id.Lit_ArithVarLike
                                              val: line_number
                                              span_id: 214
                                            )
                                        )
                                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:223)
                            )
                          ]
                          action: [(C {(_Dbg_msg)} {(DQ ('There is no line 0 to set action at.'))})]
                          spids: [210 225]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_check_line)} {($ Id.VSub_DollarName '$line_number')} 
                          {(DQ ($ Id.VSub_DollarName '$full_filename'))}
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                )
                            )
                            (C {(_Dbg_set_action)} {(DQ ($ Id.VSub_DollarName '$full_filename'))} 
                              {(DQ ($ Id.VSub_DollarName '$line_number'))} {(DQ ($ Id.VSub_DollarName '$stmt'))}
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [195 207]
                )
              ]
              else_action: [(C {(_Dbg_file_not_read_in)} {($ Id.VSub_DollarName '$filename')})]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:291)
              arg_word: {(0)}
            )
          ]
        )
    )
    (C {(_Dbg_alias_add)} {(SQ (Token id:Id.Lit_Chars val:a span_id:301))} 
      {(SQ (Token id:Id.Lit_Chars val:action span_id:305))}
    )
    (command.ShFunction
      name: _Dbg_do_clear_action
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Great
                      left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')})
                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                    )
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:335)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(typeset)} {(-r)} 
              {(Id.Lit_VarLike 'n=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Number val:1 span_id:346)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')}
                    )
                )
              }
            )
            (C {(typeset)} {(filename)})
            (C {(typeset)} {(-i)} {(line_number)})
            (C {(typeset)} {(full_filename)})
            (C {(_Dbg_linespec_setup)} {($ Id.VSub_DollarName '$n')})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName '$full_filename')}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:387)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.VarRef
                                          token: 
                                            (Token
                                              id: Id.Lit_ArithVarLike
                                              val: line_number
                                              span_id: 396
                                            )
                                        )
                                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:405)
                            )
                          ]
                          action: [(C {(_Dbg_msg)} {(DQ ('There is no line 0 to clear action at.'))})]
                          spids: [392 407]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_check_line)} {($ Id.VSub_DollarName '$line_number')} 
                          {(DQ ($ Id.VSub_DollarName '$full_filename'))}
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                )
                            )
                            (C {(_Dbg_unset_action)} {(DQ ($ Id.VSub_DollarName '$full_filename'))} 
                              {(DQ ($ Id.VSub_DollarName '$line_number'))}
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_QMark '$?')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:467)
                                )
                              ]
                              action: [
                                (C {(_Dbg_msg)} {(DQ ('Removed action.'))})
                                (command.ControlFlow
                                  token: (Token id:Id.ControlFlow_Return val:return span_id:479)
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [455 469]
                            )
                          ]
                          else_action: [
                            (C {(_Dbg_errmsg)} 
                              {
                                (DQ ("Didn't find any actions to remove at ") 
                                  ($ Id.VSub_DollarName '$n') (.)
                                )
                              }
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [377 389]
                )
              ]
              else_action: [(C {(_Dbg_file_not_read_in)} {($ Id.VSub_DollarName '$filename')})]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:513)
              arg_word: {(1)}
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_do_action_delete
      body: 
        (command.BraceGroup
          children: [
            (C {(typeset)} {(-r)} {(Id.Lit_VarLike 'to_go=') ($ Id.VSub_At '$@')})
            (C {(typeset)} {(-i)} {(i)})
            (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'found=') (0)})
            (command.ForEach
              iter_name: del
              iter_words: [{($ Id.VSub_DollarName '$to_go')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$del')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']') (Id.Lit_Star '*')}
                          ]
                          action: [
                            (C {(_Dbg_delete_action_entry)} {($ Id.VSub_DollarName '$del')})
                            (command.DParen
                              child: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_PlusEqual
                                  left: (sh_lhs_expr.Name name:found)
                                  right: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                )
                            )
                          ]
                          spids: [574 579 597 -1]
                        )
                        (case_arm
                          pat_list: [{(Id.Lit_Star '*')}]
                          action: [
                            (C {(_Dbg_msg)} 
                              {(DQ ('Invalid entry number skipped: ') ($ Id.VSub_DollarName '$del'))}
                            )
                          ]
                          spids: [600 602 -1 613]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobNEqual
                      left: {($ Id.VSub_DollarName '$found')}
                      right: {(0)}
                    )
                )
                (C {(_Dbg_msg)} {(DQ ('Removed ') ($ Id.VSub_DollarName '$found') (' action(s).'))})
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:640)
              arg_word: {($ Id.VSub_DollarName '$found')}
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_do_clear_action
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Great
                      left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')})
                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                    )
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:673)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(typeset)} {(-r)} 
              {(Id.Lit_VarLike 'n=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Number val:1 span_id:684)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')}
                    )
                )
              }
            )
            (C {(typeset)} {(filename)})
            (C {(typeset)} {(-i)} {(line_number)})
            (C {(typeset)} {(full_filename)})
            (C {(_Dbg_linespec_setup)} {($ Id.VSub_DollarName '$n')})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {($ Id.VSub_DollarName '$full_filename')}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:725)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: 
                                        (arith_expr.VarRef
                                          token: 
                                            (Token
                                              id: Id.Lit_ArithVarLike
                                              val: line_number
                                              span_id: 734
                                            )
                                        )
                                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:743)
                            )
                          ]
                          action: [(C {(_Dbg_msg)} {(DQ ('There is no line 0 to clear action at.'))})]
                          spids: [730 745]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_check_line)} {($ Id.VSub_DollarName '$line_number')} 
                          {(DQ ($ Id.VSub_DollarName '$full_filename'))}
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                )
                            )
                            (C {(_Dbg_unset_action)} {(DQ ($ Id.VSub_DollarName '$full_filename'))} 
                              {(DQ ($ Id.VSub_DollarName '$line_number'))}
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_QMark '$?')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:805)
                                )
                              ]
                              action: [
                                (C {(_Dbg_msg)} {(DQ ('Removed action.'))})
                                (command.ControlFlow
                                  token: (Token id:Id.ControlFlow_Return val:return span_id:817)
                                  arg_word: {(0)}
                                )
                              ]
                              spids: [793 807]
                            )
                          ]
                          else_action: [
                            (C {(_Dbg_errmsg)} 
                              {
                                (DQ ("Didn't find any actions to remove at ") 
                                  ($ Id.VSub_DollarName '$n') (.)
                                )
                              }
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [715 727]
                )
              ]
              else_action: [(C {(_Dbg_file_not_read_in)} {($ Id.VSub_DollarName '$filename')})]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:851)
              arg_word: {(1)}
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_do_clear_all_actions
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_NEqual
                      left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')})
                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                    )
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:881)
                  arg_word: {(1)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.VarRef
                                  token: 
                                    (Token
                                      id: Id.Lit_ArithVarLike
                                      val: _Dbg_action_count
                                      span_id: 890
                                    )
                                )
                              right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:897)
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} {(DQ ('No actions to delete.'))})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:909)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [887 899]
                )
              ]
            )
            (C {(typeset)} {(-l)} {(_Dbg_response)})
            (C {(_Dbg_confirm)} {(DQ ('Delete all actions? (y/N): '))} 
              {(SQ (Token id:Id.Lit_Chars val:N span_id:932))}
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName '$_Dbg_response')}
                      right: {(Id.Lit_Other '[') (yY) (Id.Lit_Other ']')}
                    )
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:951)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_count=0'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_enable=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_line=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_file=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_stmt=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_file2action=()'))})
            (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_file2linenos=()'))})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:1006)
              arg_word: {(0)}
            )
          ]
        )
    )
  ]
)