(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] ) ] )