(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_Number '$0')}
                      right: 
                        {
                          (braced_var_sub
                            token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:70)
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                              )
                          )
                        }
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:78)
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dirname)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:85)
                        bracket_op: 
                          (bracket_op.ArrayIndex
                            expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                          )
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VOp1_Percent
                            arg_word: {(Id.Lit_Slash /) ('*')}
                          )
                      )
                    }
                  spids: [83]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_DollarName '$dirname')}
                      right: {($ Id.VSub_Number '$0')}
                    )
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:top_dir)
                      op: assign_op.Equal
                      rhs: {(SQ (Token id:Id.Lit_Chars val:.. span_id:109))}
                      spids: [107]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:top_dir)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name dirname) (/..)}
                      spids: [114]
                    )
                  ]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{(help)} {(alias)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Sentence
                      child: 
                        (C {(source)} 
                          {($ Id.VSub_DollarName '$top_dir') (/lib/) (${ Id.VSub_Name file) (.sh)}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:143)
                    )
                  ]
                )
            )
          ]
          spids: [61 80]
        )
      ]
    )
    (C {(_Dbg_help_add)} {(help)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'**help** [*command* [*subcommand* ..]]\n' span_id:156) 
          (Token id:Id.Lit_Chars val:'\n' span_id:157) (Token id:Id.Lit_Chars val:'If no arguments are given, print a list of command names.\n' span_id:158) 
          (Token
            id: Id.Lit_Chars
            val: 'With a command name give help for that command. For many commands\n'
            span_id: 159
          ) 
          (Token
            id: Id.Lit_Chars
            val: 'you can get further detailed help by listing the subcommand name.\n'
            span_id: 160
          ) (Token id:Id.Lit_Chars val:'\n' span_id:161) (Token id:Id.Lit_Chars val:'Examples:\n' span_id:162) 
          (Token id:Id.Lit_Chars val:'---------\n' span_id:163) (Token id:Id.Lit_Chars val:'\n' span_id:164) (Token id:Id.Lit_Chars val:'  help\n' span_id:165) 
          (Token id:Id.Lit_Chars val:'  help up\n' span_id:166) (Token id:Id.Lit_Chars val:'  help set\n' span_id:167) 
          (Token id:Id.Lit_Chars val:'  help set args' span_id:168)
        )
      } {(1)} {(_Dbg_complete_help)}
    )
    (command.ShFunction
      name: _Dbg_complete_help
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(typeset)} {(-a)} {(words)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:188)
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ (Token id:Id.Lit_Chars val:' ' span_id:193))}
                  spids: [191]
                )
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:words)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: (Token id:Id.Op_LParen val:'(' span_id:197)
                        words: [{($ Id.VSub_DollarName '$COMP_LINE')}]
                      )
                    }
                  spids: [196]
                )
              ]
            )
            (C {(typeset)} {(subcmds)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:subcmds)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:_Dbg_command_help span_id:213)
                          prefix_op: (Id.VSub_Bang)
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                        )
                      )
                    }
                  spids: [209]
                )
              ]
            )
            (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: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:words span_id:227)
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:239)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COMPREPLY)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:245)
                                words: [{($ Id.VSub_DollarName '$subcmds')}]
                              )
                            }
                          spids: [244]
                        )
                      ]
                    )
                  ]
                  spids: [221 241]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_DEqual
                              left: 
                                (arith_expr.ArithWord
                                  w: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:words span_id:258)
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:271)
                    )
                  ]
                  action: [
                    (C {(typeset)} 
                      {(Id.Lit_VarLike 'commands=') 
                        (DQ 
                          (braced_var_sub
                            token: (Token id:Id.VSub_Name val:_Dbg_command_help span_id:282)
                            prefix_op: (Id.VSub_Bang)
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COMPREPLY)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:291)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:293)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {(DQ ($ Id.VSub_DollarName '$subcmds'))} 
                                              {
                                                (DQ 
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: words
                                                        span_id: 304
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 1)}
                                                          )
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [290]
                        )
                      ]
                    )
                  ]
                  spids: [252 273]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:COMPREPLY)
                      op: assign_op.Equal
                      rhs: {(sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:319))}
                      spids: [318]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_do_help
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {(DQ ($ Id.VSub_DollarName '$_Dbg_args'))}
                      right: {(SQ (Token id:Id.Lit_Chars val:'*' span_id:361))}
                    )
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_Dbg_args)
                      op: assign_op.Equal
                      rhs: {(SQ )}
                      spids: [368]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(SQ )}
                              right: {($ Id.VSub_DollarName '$_Dbg_args')}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:387)
                    )
                  ]
                  action: [
                    (C {(_Dbg_help_sort_command_names)})
                    (C {(_Dbg_section)} 
                      {(SQ (Token id:Id.Lit_Chars val:'Available commands:' span_id:398))}
                    )
                    (C {(typeset)} {(-a)} 
                      {(Id.Lit_VarLike 'list=') 
                        (sh_array_literal
                          left: (Token id:Id.Op_LParen val:'(' span_id:407)
                          words: [
                            {
                              (DQ 
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: _Dbg_sorted_command_names
                                      span_id: 410
                                    )
                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                )
                              )
                            }
                          ]
                        )
                      }
                    )
                    (C {(_Dbg_list_columns)})
                    (C {(_Dbg_msg)} {(SQ )})
                    (C {(_Dbg_msg)} 
                      {
                        (SQ 
                          (Token
                            id: Id.Lit_Chars
                            val: 'Readline command line editing (emacs/vi mode) is available.'
                            span_id: 431
                          )
                        )
                      }
                    )
                    (C {(_Dbg_msg)} 
                      {
                        (SQ 
                          (Token
                            id: Id.Lit_Chars
                            val: 'Type "help" followed by command name for full documentation.'
                            span_id: 438
                          )
                        )
                      }
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:442)
                      arg_word: {(0)}
                    )
                  ]
                  spids: [374 389]
                )
              ]
              else_action: [
                (C {(typeset)} {(Id.Lit_VarLike 'dbg_cmd=') (DQ ($ Id.VSub_Number '$1'))})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: 
                                    {
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: _Dbg_command_help
                                            span_id: 465
                                          )
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.ArithWord
                                                w: {($ Id.VSub_DollarName '$dbg_cmd')}
                                              )
                                          )
                                      )
                                    }
                                )
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:473)
                        )
                      ]
                      action: [
                        (C {(_Dbg_msg_rst)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:_Dbg_command_help span_id:482)
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$dbg_cmd')})
                                  )
                              )
                            )
                          }
                        )
                      ]
                      spids: [458 475]
                    )
                  ]
                  else_action: [
                    (C {(_Dbg_alias_expand)} {($ Id.VSub_DollarName '$dbg_cmd')})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dbg_cmd)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$expanded_alias'))}
                          spids: [498]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: 
                                        {
                                          (braced_var_sub
                                            token: 
                                              (Token
                                                id: Id.VSub_Name
                                                val: _Dbg_command_help
                                                span_id: 511
                                              )
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: 
                                                  (arith_expr.ArithWord
                                                    w: {($ Id.VSub_DollarName '$dbg_cmd')}
                                                  )
                                              )
                                          )
                                        }
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:519)
                            )
                          ]
                          action: [
                            (C {(_Dbg_msg_rst)} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:_Dbg_command_help span_id:528)
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: 
                                          (arith_expr.ArithWord
                                            w: {($ Id.VSub_DollarName '$dbg_cmd')}
                                          )
                                      )
                                  )
                                )
                              }
                            )
                          ]
                          spids: [504 521]
                        )
                      ]
                      else_action: [
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$dbg_cmd')}
                          arms: [
                            (case_arm
                              pat_list: [{(i)} {(Id.KW_In in)} {(inf)} {(info)}]
                              action: [
                                (C {(_Dbg_info_help)} {($ Id.VSub_Number '$2')})
                                (command.ControlFlow
                                  token: (Token id:Id.ControlFlow_Return val:return span_id:568)
                                )
                              ]
                              spids: [546 560 571 -1]
                            )
                            (case_arm
                              pat_list: [{(sh)} {(sho)} {(show)}]
                              action: [(C {(_Dbg_help_show)} {($ Id.VSub_Number '$2')})]
                              spids: [574 584 592 -1]
                            )
                            (case_arm
                              pat_list: [{(se)} {(Id.KW_Set set)}]
                              action: [(C {(_Dbg_help_set)} {($ Id.VSub_Number '$2')})]
                              spids: [595 601 609 -1]
                            )
                            (case_arm
                              pat_list: [{(Id.Lit_Star '*')}]
                              action: [
                                (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'count=') (0)})
                                (C {(typeset)} {(found_cmd)})
                                (command.Sentence
                                  child: (C {(typeset)} {(list)})
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:637)
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:list)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: _Dbg_command_help
                                                  span_id: 643
                                                )
                                              prefix_op: (Id.VSub_Bang)
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            )
                                          )
                                        }
                                      spids: [639]
                                    )
                                  ]
                                )
                                (command.ForEach
                                  iter_name: try
                                  iter_words: [{($ Id.VSub_DollarName '$list')}]
                                  do_arg_iter: F
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_EqualTilde
                                                          left: {($ Id.VSub_DollarName '$try')}
                                                          right: 
                                                            {(Id.Lit_Other '^') 
                                                              ($ Id.VSub_DollarName '$dbg_cmd')
                                                            }
                                                        )
                                                    )
                                                  terminator: 
                                                    (Token
                                                      id: Id.Op_Semi
                                                      val: ';'
                                                      span_id: 677
                                                    )
                                                )
                                              ]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:found_cmd)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$try')}
                                                      spids: [682]
                                                    )
                                                  ]
                                                )
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.UnaryAssign
                                                      op_id: Id.Node_PostDPlus
                                                      child: (sh_lhs_expr.Name name:count)
                                                    )
                                                )
                                              ]
                                              spids: [664 679]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (command.DParen
                                  child: 
                                    (arith_expr.BinaryAssign
                                      op_id: Id.Arith_Equal
                                      left: (sh_lhs_expr.Name name:found)
                                      right: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            (arith_expr.VarRef
                                              token: 
                                                (Token
                                                  id: Id.Lit_ArithVarLike
                                                  val: count
                                                  span_id: 703
                                                )
                                            )
                                          right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                        )
                                    )
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.VarRef
                                                  token: 
                                                    (Token
                                                      id: Id.Lit_ArithVarLike
                                                      val: found
                                                      span_id: 714
                                                    )
                                                )
                                            )
                                          terminator: (Token id:Id.Op_Semi val:';' span_id:717)
                                        )
                                      ]
                                      action: [
                                        (C {(_Dbg_msg)} 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: 
                                                  (Token
                                                    id: Id.VSub_Name
                                                    val: _Dbg_command_help
                                                    span_id: 726
                                                  )
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: {($ Id.VSub_DollarName '$found_cmd')}
                                                      )
                                                  )
                                              )
                                            )
                                          }
                                        )
                                      ]
                                      spids: [711 719]
                                    )
                                  ]
                                  else_action: [
                                    (C {(_Dbg_errmsg)} 
                                      {
                                        (DQ ('Undefined command: ') 
                                          (word_part.EscapedLiteral
                                            token: 
                                              (Token
                                                id: Id.Lit_EscapedChar
                                                val: '\\"'
                                                span_id: 741
                                              )
                                          ) ($ Id.VSub_DollarName '$dbg_cmd') 
                                          (word_part.EscapedLiteral
                                            token: 
                                              (Token
                                                id: Id.Lit_EscapedChar
                                                val: '\\"'
                                                span_id: 743
                                              )
                                          ) ('.  Try ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:745)) (help) 
                                          (word_part.EscapedLiteral
                                            token: 
                                              (Token
                                                id: Id.Lit_EscapedChar
                                                val: '\\"'
                                                span_id: 747
                                              )
                                          ) (.)
                                        )
                                      }
                                    )
                                    (command.ControlFlow
                                      token: (Token id:Id.ControlFlow_Return val:return span_id:752)
                                      arg_word: {(1)}
                                    )
                                  ]
                                )
                              ]
                              spids: [612 614 760 -1]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:aliases_found)
                      op: assign_op.Equal
                      rhs: {(SQ )}
                      spids: [772]
                    )
                  ]
                )
                (C {(_Dbg_alias_find_aliased)} {(DQ ($ Id.VSub_DollarName '$dbg_cmd'))})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName '$aliases_found')}
                                )
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:794)
                        )
                      ]
                      action: [
                        (C {(_Dbg_msg)} {(SQ )})
                        (C {(_Dbg_msg)} 
                          {
                            (DQ ('Aliases for ') ($ Id.VSub_DollarName '$dbg_cmd') (': ') 
                              ($ Id.VSub_DollarName '$aliases_found')
                            )
                          }
                        )
                      ]
                      spids: [784 796]
                    )
                  ]
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:818)
                  arg_word: {(2)}
                )
              ]
            )
          ]
        )
    )
    (C {(_Dbg_alias_add)} {(SQ (Token id:Id.Lit_Chars val:h span_id:831))} {(help)})
    (C {(_Dbg_alias_add)} {(SQ (Token id:Id.Lit_Chars val:'?' span_id:839))} {(help)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {($ Id.VSub_Number '$0')}
                      right: 
                        {
                          (braced_var_sub
                            token: (Token id:Id.VSub_Name val:BASH_SOURCE span_id:857)
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                              )
                          )
                        }
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:865)
            )
          ]
          action: [
            (command.ForEach
              iter_name: file
              iter_words: [{(sort)} {(columnize)} {(list)} {(msg)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Sentence
                      child: 
                        (C {(source)} 
                          {($ Id.VSub_DollarName '$top_dir') (/lib/) (${ Id.VSub_Name file) (.sh)}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:897)
                    )
                  ]
                )
            )
            (C {(_Dbg_do_help)})
            (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:--- span_id:917))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_Dbg_args)
                  op: assign_op.Equal
                  rhs: {(SQ (Token id:Id.Lit_Chars val:help span_id:923))}
                  spids: [921]
                )
              ]
            )
            (C {(_Dbg_do_help)} {(help)})
          ]
          spids: [848 867]
        )
      ]
    )
  ]
)