(command.CommandList
  children: [
    (C {(_Dbg_help_add)} {(frame)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'**frame** [*frame-number*].\n' span_id:71) 
          (Token id:Id.Lit_Chars val:'\n' span_id:72) 
          (Token
            id: Id.Lit_Chars
            val: 'Change the current frame to frame *frame-numbrer* if specified, or the\n'
            span_id: 73
          ) (Token id:Id.Lit_Chars val:'most-recent frame, 0, if no frame number specified.\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'A negative number indicates the position from the other or\n' span_id:76) 
          (Token
            id: Id.Lit_Chars
            val: 'least-recently-entered end.  So **frame -1** moves to the oldest frame.\n'
            span_id: 77
          ) (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:'See also:\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'---------\n' span_id:80) (Token id:Id.Lit_Chars val:'\n' span_id:81) (Token id:Id.Lit_Chars val:'**up**, **down**' span_id:82)
        )
      } {(1)} {(_Dbg_complete_frame)}
    )
    (command.ShFunction
      name: _Dbg_complete_frame
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(typeset)} {(-i)} {(start)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:105)
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:start)
                  right: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Plus
                      left: 
                        (arith_expr.Unary
                          op_id: Id.Node_UnaryMinus
                          child: 
                            (arith_expr.VarRef
                              token: (Token id:Id.Lit_ArithVarLike val:_Dbg_stack_size span_id:111)
                            )
                        )
                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                    )
                )
            )
            (command.Sentence
              child: (C {(typeset)} {(-i)} {(end)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:123)
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:end)
                  right: 
                    (arith_expr.Binary
                      op_id: Id.Arith_Minus
                      left: 
                        (arith_expr.VarRef
                          token: (Token id:Id.Lit_ArithVarLike val:_Dbg_stack_size span_id:128)
                        )
                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                    )
                )
            )
            (C {(_Dbg_complete_num_range)} {($ Id.VSub_DollarName '$start')} 
              {($ Id.VSub_DollarName '$end')}
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_do_frame
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {(_Dbg_not_running)})
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:155)
                  arg_word: {(3)}
                )
              ]
            )
            (C {(typeset)} 
              {(Id.Lit_VarLike 'count=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Number val:1 span_id:164)
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(1)})
                )
              }
            )
            (C {(_Dbg_is_signed_int)} {($ Id.VSub_DollarName '$count')})
            (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.Lit_Digits 0)})
                              right: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')})
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:188)
                    )
                  ]
                  action: [
                    (C {(_Dbg_frame_adjust)} {($ Id.VSub_DollarName '$count')} {(0)})
                    (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'rc=') ($ Id.VSub_QMark '$?')})
                  ]
                  spids: [175 190]
                )
              ]
              else_action: [
                (C {(_Dbg_errmsg)} {(DQ ('Expecting an integer; got ') ($ Id.VSub_DollarName '$count'))})
                (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'rc=') (2)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_DEqual
                      left: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                      right: 
                        (arith_expr.VarRef
                          token: (Token id:Id.Lit_ArithVarLike val:rc span_id:235)
                        )
                    )
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd)
                      op: assign_op.Equal
                      rhs: {(SQ (Token id:Id.Lit_Chars val:frame span_id:243))}
                      spids: [241]
                    )
                  ]
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:247)
              arg_word: {($ Id.VSub_DollarName '$rc')}
            )
          ]
        )
    )
  ]
)