(command.CommandList
  children: [
    (C {<_Dbg_help_add>} {<file>} 
      {(DQ <'file FILENAME\n'> <'\n'> <'Set FILENAME as the current source file.'>)}
    )
    (command.ShFunction
      name: _Dbg_do_file
      body: 
        (BraceGroup
          children: [
            (C {<typeset>} {<filename>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_Pound '$#')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<_Dbg_errmsg>} {(DQ <'Need to give a filename for the file command'>)})
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [86 101]
                )
              ]
            )
            (C {<_Dbg_tilde_expand_filename>} {(DQ ($ Id.VSub_Number '$1'))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {(DQ ($ Id.VSub_DollarName '$filename'))}
                                        )
                                    )
                                )
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_x
                                          child: {(DQ ($ Id.VSub_DollarName '$filename'))}
                                        )
                                    )
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<_Dbg_errmsg>} 
                      {
                        (DQ <'Source file '> ($ Id.VSub_DollarName '$filename') 
                          <' does not exist as a readable regular file.'>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [126 156]
                )
              ]
            )
            (C {<typeset>} 
              {<Id.Lit_VarLike 'filevar='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<_Dbg_file2var>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Name BASH_SOURCE>
                          bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                        )
                      }
                    )
                )
              }
            )
            (C {<_Dbg_set_assoc_scalar_entry>} {(DQ <_Dbg_file_cmd_>)} 
              {($ Id.VSub_DollarName '$filevar')} {(DQ ($ Id.VSub_DollarName '$filename'))}
            )
            (C {<typeset>} {<source_file>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:source_file)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<_Dbg_file_canonic>} 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: <Id.VSub_Name BASH_SOURCE>
                                  bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>})
                                )
                              )
                            }
                          )
                      )
                    }
                  spids: [209]
                )
              ]
            )
            (C {<_Dbg_msg>} 
              {
                (DQ <'File '> ($ Id.VSub_DollarName '$filename') <' will be used when '> 
                  ($ Id.VSub_DollarName '$source_file') <' is referenced.'>
                )
              }
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
  ]
)