(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: [
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:filename) op:Equal spids:[83])]
              spids: [81]
            )
            (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)})
                            )
                          spids: [88 97]
                        )
                      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: [16777215 101]
                )
              ]
              spids: [16777215 116]
            )
            (C {(_Dbg_tilde_expand_filename)} {(DQ ($ VSub_Number '$1'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          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'))}
                                    )
                                )
                            )
                          ]
                        )
                      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: [16777215 156]
                )
              ]
              spids: [16777215 173]
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [
                (assign_pair
                  lhs: (LhsName name:filevar)
                  op: Equal
                  rhs: 
                    {
                      (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]
                      )
                    }
                  spids: [178]
                )
              ]
              spids: [176]
            )
            (C {(_Dbg_set_assoc_scalar_entry)} {(DQ (_Dbg_file_cmd_))} {($ VSub_Name '$filevar')} 
              {(DQ ($ VSub_Name '$filename'))}
            )
            (Assignment
              keyword: Assign_Typeset
              pairs: [(assign_pair lhs:(LhsName name:source_file) op:Equal spids:[206])]
              spids: [204]
            )
            (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]
    )
  ]
)