(command.CommandList
  children: [
    (C {<_Dbg_help_add>} {<alias>} 
      {
        (SQ <'**alias** *alias-name* *debugger-command*\n'> <'\n'> 
          <'Make *alias-name* be an alias for *debugger-command*.\n'> <'\n'> <'Examples:\n'> <'---------\n'> <'\n'> 
          <'    alias cat list   # "cat prog.py" is the same as "list prog.py"\n'> <'    alias s   step   # "s" is now an alias for "step".\n'> 
          <'                     # The above example is done by default.\n'> <'\n'> <'See also:\n'> <'---------\n'> <'\n'> <'**unalias** and **show alias**.\n'>
        )
      }
    )
    (command.ShFunction
      name: _Dbg_do_alias
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_Pound '$#')}
                                  right: {<Id.Lit_Digits 2>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<_Dbg_errmsg>} 
                      {(DQ <'Got '> ($ Id.VSub_Pound '$#') <' parameters, but need 2.'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [86 99]
                )
              ]
            )
            (C {<_Dbg_alias_add>} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$2')})
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (C {<_Dbg_help_add>} {<unalias>} 
      {
        (SQ <'**unalias** *name*\n'> <'\n'> <'Remove debugger command alias *name*.\n'> <'\n'> 
          <'Use **show aliases** to get a list the aliases in effect.\n'>
        )
      } {<1>}
    )
    (command.ShFunction
      name: _Dbg_do_unalias
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_NEqual
                                  left: {($ Id.VSub_Pound '$#')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<_Dbg_errmsg>} 
                      {(DQ <'Got '> ($ Id.VSub_Pound '$#') <' parameters, but need 1.'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [156 169]
                )
              ]
            )
            (C {<_Dbg_alias_remove>} {($ Id.VSub_Number '$1')})
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
  ]
)