(CommandList
  children: [
    (C {(_Dbg_help_add)} {(file)} 
      {(DQ ("file FILENAME\n") ("\n") ("Set FILENAME as the current source file."))}
    )
    (FuncDef
      name: _Dbg_do_file
      body: 
        (BraceGroup
          children: [
            (C {(typeset)} {(filename)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithWord w:{($ VSub_Pound "$#")})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} {(DQ ("Need to give a filename for the file command"))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 101]
                )
              ]
              spids: [-1 116]
            )
            (C {(_Dbg_tilde_expand_filename)} {(DQ ($ VSub_Number "$1"))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          children: [
                            (DBracket
                              expr: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_f
                                      child: {(DQ ($ VSub_Name "$filename"))}
                                    )
                                )
                            )
                            (DBracket
                              expr: 
                                (LogicalNot
                                  child: 
                                    (BoolUnary
                                      op_id: BoolUnary_x
                                      child: {(DQ ($ VSub_Name "$filename"))}
                                    )
                                )
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(_Dbg_errmsg)} 
                      {
                        (DQ ("Source file ") ($ VSub_Name "$filename") 
                          (" does not exist as a readable regular file.")
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [-1 156]
                )
              ]
              spids: [-1 173]
            )
            (C {(typeset)} 
              {(Lit_VarLike "filevar=") 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(_Dbg_file2var)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name BASH_SOURCE>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)}))
                              spids: [182 187]
                            )
                          }
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [179 188]
                )
              }
            )
            (C {(_Dbg_set_assoc_scalar_entry)} {(DQ (_Dbg_file_cmd_))} {($ VSub_Name "$filevar")} 
              {(DQ ($ VSub_Name "$filename"))}
            )
            (C {(typeset)} {(source_file)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source_file)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(_Dbg_file_canonic)} 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name BASH_SOURCE>
                                      bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)}))
                                      spids: [214 219]
                                    )
                                  )
                                }
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [210 221]
                      )
                    }
                  spids: [209]
                )
              ]
              spids: [209]
            )
            (C {(_Dbg_msg)} 
              {
                (DQ ("File ") ($ VSub_Name "$filename") (" will be used when ") 
                  ($ VSub_Name "$source_file") (" is referenced.")
                )
              }
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [77]
        )
      spids: [73 76]
    )
  ]
)