(CommandList
  children: [
    (C {(_Dbg_help_add)} {(handle)} 
      {
        (DQ ('**handle** *signal* *action*\n') ('\n') ('Specify how to handle *signal*.\n') ('\n') 
          ('*signal* is a signal name like SIGSEGV, but numeric signals like 11\n') ('(which is usually equivalent on ') (Lit_Other '\\') ('*nix systems) is okay too.\n') ('\n') 
          ('*action* is one of ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (stop) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (nostop) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (print) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (', and\n') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (noprint) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('. ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Stop) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' indicates entering debugger if this signal\n') ('happens. ') 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Print) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
          (' indicates printing a message if this signal is\n') ('encountered. ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Stack) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' is like ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (print) 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' but except the entire call\n') ('stack is printed. Prefacing these actions with ') 
          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (no) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' indicates not to\n') 
          ('do the indicated action.')
        )
      }
    )
    (FuncDef
      name: _Dbg_do_handle
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sig)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [134]
                )
              ]
              spids: [132]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cmd)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [140]
                )
              ]
              spids: [138]
            )
            (Assignment
              keyword: Assign_Typeset
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:signum) op:Equal spids:[148])]
              spids: [144]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{($ VSub_Name '$sig')}))
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} {(DQ ('Missing signal name or signal number.'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 163]
                )
              ]
              spids: [16777215 178]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Name '$sig')}
                              right: {($ VSub_Name '$int_pat')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:signame)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(_Dbg_signum2name)} {($ VSub_Name '$sig')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [199 203]
                              )
                            }
                          spids: [198]
                        )
                      ]
                      spids: [198]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_NEqual
                                      left: (ArithWord w:{($ VSub_QMark '$?')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_errmsg)} {(DQ ('Bad signal number: ') ($ VSub_Name '$sig'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(2)}
                            )
                          ]
                          spids: [16777215 221]
                        )
                      ]
                      spids: [16777215 237]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:signum)
                          op: Equal
                          rhs: {(sig)}
                          spids: [240]
                        )
                      ]
                      spids: [240]
                    )
                  ]
                  spids: [16777215 195]
                )
              ]
              else_action: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_Typeset
                      pairs: [(assign_pair lhs:(LhsName name:signum) op:Equal spids:[249])]
                      spids: [247]
                    )
                  terminator: <Op_Semi ';'>
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:signum)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(_Dbg_name2signum)} {($ VSub_Name '$sig')})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [254 258]
                          )
                        }
                      spids: [253]
                    )
                  ]
                  spids: [253]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_NEqual
                                  left: (ArithWord w:{($ VSub_QMark '$?')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(_Dbg_errmsg)} {(DQ ('Bad signal name: ') ($ VSub_Name '$sig'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(3)}
                        )
                      ]
                      spids: [16777215 276]
                    )
                  ]
                  spids: [16777215 292]
                )
              ]
              spids: [244 295]
            )
            (Case
              to_match: {($ VSub_Name '$cmd')}
              arms: [
                (case_arm
                  pat_list: [{(nop)} {(nopr)} {(nopri)} {(noprin)} {(noprint)}]
                  action: [
                    (C 
                      {(_Dbg_sig_print) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <noprint>)
                      }
                    )
                    (C 
                      {(_Dbg_sig_stop) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <stop>)
                      }
                    )
                  ]
                  spids: [306 324 351 16777215]
                )
                (case_arm
                  pat_list: [{(nosta)} {(nostac)} {(nostack)}]
                  action: [
                    (C 
                      {(_Dbg_sig_show_stack) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <nostack>)
                      }
                    )
                  ]
                  spids: [355 365 378 16777215]
                )
                (case_arm
                  pat_list: [{(nosto)} {(nostop)}]
                  action: [
                    (C 
                      {(_Dbg_sig_stop) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <nostop>)
                      }
                    )
                  ]
                  spids: [382 388 401 16777215]
                )
                (case_arm
                  pat_list: [{(p)} {(pr)} {(pri)} {(prin)} {(print)}]
                  action: [
                    (C 
                      {(_Dbg_sig_print) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <print>)
                      }
                    )
                  ]
                  spids: [405 423 436 16777215]
                )
                (case_arm
                  pat_list: [{(sta)} {(stac)} {(stack)}]
                  action: [
                    (C 
                      {(_Dbg_sig_show_stack) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <showstack>)
                      }
                    )
                  ]
                  spids: [440 450 463 16777215]
                )
                (case_arm
                  pat_list: [{(sto)} {(stop)}]
                  action: [
                    (C 
                      {(_Dbg_sig_stop) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <stop>)
                      }
                    )
                    (C 
                      {(_Dbg_sig_print) (Lit_Other '[') (signum) (Lit_Other ']') (Lit_Other '=') 
                        (SQ <print>)
                      }
                    )
                  ]
                  spids: [467 473 500 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: (ArithUnary op_id:Arith_Bang child:(ArithVarRef name:cmd))
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(_Dbg_errmsg)} 
                              {
                                (DQ 
                                  (
'Need to give a command: stop, nostop, stack, nostack, print, noprint'
                                  )
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(4)}
                            )
                          ]
                          spids: [16777215 520]
                        )
                      ]
                      else_action: [
                        (C {(_Dbg_errmsg)} {(DQ ('Invalid handler command ') ($ VSub_Name '$cmd'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(5)}
                        )
                      ]
                      spids: [537 553]
                    )
                  ]
                  spids: [503 505 556 16777215]
                )
              ]
              spids: [299 303 559]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [129]
        )
      spids: [125 128]
    )
  ]
)