(command.CommandList
  children: [
    (command.Simple
      blame_tok: <_Dbg_help_add_sub>
      more_env: []
      words: [
        {<_Dbg_help_add_sub>}
        {<info>}
        {<files>}
        {
          (SQ <'**info files**\n'> <'\n'> 
            <'show a list of files that have been read in and properties regarding them.\n'>
          )
        }
        {<1>}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <_Dbg_do_info_files>
      name: _Dbg_do_info_files
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <_Dbg_msg>
              more_env: []
              words: [{<_Dbg_msg>} {(DQ <'Source files which we have recorded info about:'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [
                {<typeset>}
                {<-a>}
                {<Id.Lit_VarLike 'list='> 
                  (ShArrayLiteral
                    left: <Id.Op_LParen _>
                    words: []
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<-i>} {<Id.Lit_VarLike 'i='> <0>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <typeset>
              more_env: []
              words: [{<typeset>} {<key>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [key]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name _Dbg_file2canonic>
                          var_name: _Dbg_file2canonic
                          prefix_op: <Id.VSub_Bang '!'>
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen 'list['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen 'list['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen 'list['>
                              name: list
                              index: {($ Id.VSub_DollarName i)}
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName key))}
                        )
                      ]
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike i)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <sort_list>
              more_env: []
              words: [
                {<sort_list>}
                {<0>}
                {
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name list>
                    var_name: list
                    prefix_op: <Id.VSub_Pound '#'>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    right: <Id.Right_DollarBrace '}'>
                  ) <-1>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [file]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name list>
                          var_name: list
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <typeset>
                      more_env: []
                      words: [
                        {<typeset>}
                        {<-i>}
                        {<Id.Lit_VarLike 'lines='> 
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                blame_tok: <_Dbg_get_maxline>
                                more_env: []
                                words: [{<_Dbg_get_maxline>} {(DQ ($ Id.VSub_DollarName file))}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <typeset>
                      more_env: []
                      words: [{<typeset>} {<canonic_file>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'canonic_file='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'canonic_file='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'canonic_file='>
                              name: canonic_file
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name _Dbg_file2canonic>
                                  var_name: _Dbg_file2canonic
                                  bracket_op: 
                                    (bracket_op.ArrayIndex
                                      expr: {($ Id.VSub_DollarName file)}
                                    )
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      left: <Id.Op_DLeftParen _>
                                      child: ($ Id.Lit_ArithVarLike _Dbg_set_basename)
                                      right: <Id.Op_DRightParen _>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'file='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name file>
                                          var_name: file
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VOp1_DPound '##'>
                                              arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'canonic_file='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'canonic_file='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'canonic_file='>
                                      name: canonic_file
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name canonic_file>
                                          var_name: canonic_file
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VOp1_DPound '##'>
                                              arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [214 225]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <_Dbg_msg>
                      more_env: []
                      words: [
                        {<_Dbg_msg>}
                        {
                          (DQ <'  '> (${ Id.VSub_Name file) <': '> (${ Id.VSub_Name canonic_file) <', '> 
                            ($ Id.VSub_DollarName lines) <' lines'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)