(command.CommandList
  children: [
    (C {<typeset>} {<-r>} 
      {<Id.Lit_VarLike '_Dbg_info_cmds='> 
        (SQ 
          <
'args breakpoints display files functions line program signals source stack variables warranty'
          >
        )
      }
    )
    (command.ShFunction
      name: _Dbg_info_help
      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_DEqual
                                  left: {($ Id.VSub_Pound '$#')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<typeset>} {<-a>} {<list>})
                    (C {<_Dbg_section>} {(SQ <'List of info subcommands:'>)})
                    (command.ForEach
                      iter_name: thing
                      iter_words: [{($ Id.VSub_DollarName '$_Dbg_info_cmds')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [(C {<_Dbg_info_help>} {($ Id.VSub_DollarName '$thing')} {<1>})]
                        )
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [78 93]
                )
              ]
            )
            (C {<typeset>} {<Id.Lit_VarLike 'subcmd='> (DQ ($ Id.VSub_Number '$1'))})
            (C {<typeset>} {<Id.Lit_VarLike 'label='> (DQ ($ Id.VSub_Number '$2'))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: <Id.VSub_Name _Dbg_command_help_info>
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: {($ Id.VSub_DollarName '$subcmd')}
                                            )
                                        )
                                      )
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {($ Id.VSub_DollarName '$label')}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<_Dbg_msg_rst>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name _Dbg_command_help_info>
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: {($ Id.VSub_DollarName '$subcmd')}
                                      )
                                  )
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [182 194]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:label)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<builtin>} {<printf>} {(DQ <'info %-12s-- '>)} 
                                        {($ Id.VSub_DollarName '$subcmd')}
                                      )
                                  )
                                }
                              spids: [217]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [160 179]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$subcmd')}
              arms: [
                (case_arm
                  pat_list: [{<ar>} {<arg>} {<args>}]
                  action: [
                    (C {<_Dbg_msg>} 
                      {
                        (DQ <'info args -- Argument variables (e.g. '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'1, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                          <'2, ...) of the current stack frame.'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [246 256 276 -1]
                )
                (case_arm
                  pat_list: [
                    {<b>}
                    {<br>}
                    {<bre>}
                    {<brea>}
                    {(SQ <break>)}
                    {<breakp>}
                    {<breakpo>}
                    {<breakpoints>}
                    {<w>}
                    {<wa>}
                    {<wat>}
                    {<watc>}
                    {(SQ <watch>)}
                    {<watchp>}
                    {<watchpo>}
                    {<watchpoints>}
                  ]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info breakpoints -- Status of user-settable breakpoints'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [279 347 363 -1]
                )
                (case_arm
                  pat_list: [{<disp>} {<displ>} {<displa>} {<display>}]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info display -- Show all display expressions'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [366 380 396 -1]
                )
                (case_arm
                  pat_list: [{<Id.KW_Fi fi>} {<file>} {<files>} {<sources>}]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info files -- Source files in the program'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [399 412 428 -1]
                )
                (case_arm
                  pat_list: [
                    {<fu>}
                    {<fun>}
                    {<Id.KW_Func func>}
                    {<funct>}
                    {<functi>}
                    {<functio>}
                    {<Id.KW_Function function>}
                    {<functions>}
                  ]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info functions -- All function names'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [431 460 476 -1]
                )
                (case_arm
                  pat_list: [{<l>} {<li>} {<lin>} {<line>}]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info line -- list current line number and and file name'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [479 492 508 -1]
                )
                (case_arm
                  pat_list: [{<p>} {<pr>} {<pro>} {<prog>} {<progr>} {<progra>} {<program>}]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info program -- Execution status of the program.'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [511 537 553 -1]
                )
                (case_arm
                  pat_list: [
                    {<h>}
                    {<ha>}
                    {<han>}
                    {<hand>}
                    {<handl>}
                    {<handle>}
                    {<si>}
                    {<sig>}
                    {<sign>}
                    {<signa>}
                    {<signal>}
                    {<signals>}
                  ]
                  action: [
                    (C {<_Dbg_msg>} 
                      {(SQ <'info signals -- What debugger does when program gets various signals'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [556 604 620 -1]
                )
                (case_arm
                  pat_list: [{<so>} {<sou>} {<sourc>} {<source>}]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info source -- Information about the current source file'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [623 637 653 -1]
                )
                (case_arm
                  pat_list: [{<st>} {<sta>} {<stac>} {<stack>}]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info stack -- Backtrace of the stack'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [656 670 686 -1]
                )
                (case_arm
                  pat_list: [
                    {<tr>}
                    {<tra>}
                    {<trac>}
                    {<trace>}
                    {<tracep>}
                    {<tracepo>}
                    {<tracepoi>}
                    {<tracepoint>}
                    {<tracepoints>}
                  ]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info tracepoints -- Status of tracepoints'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [689 715 731 -1]
                )
                (case_arm
                  pat_list: [
                    {<v>}
                    {<va>}
                    {<Id.KW_Var var>}
                    {<vari>}
                    {<varia>}
                    {<variab>}
                    {<variabl>}
                    {<variable>}
                    {<variables>}
                  ]
                  action: [
                    (C {<_Dbg_msg>} {(SQ <'info variables -- All global and static variable names'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [734 768 784 -1]
                )
                (case_arm
                  pat_list: [{<w>} {<wa>} {<war>} {<warr>} {<warra>} {<warran>} {<warrant>} {<warranty>}]
                  action: [
                    (C {<_Dbg_msg>} 
                      {(SQ <'info warranty -- Various kinds of warranty you do not have'>)}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [787 817 833 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<_Dbg_errmsg>} 
                      {
                        (DQ <'Undefined info command: '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) ($ Id.VSub_DollarName '$subcmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          <'.  Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'help info'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <.>
                        )
                      }
                    )
                  ]
                  spids: [836 838 -1 858]
                )
              ]
            )
          ]
        )
    )
  ]
)