(command.CommandList children: [ (C {(_Dbg_help_add)} {(source)} { (SQ (Token id:Id.Lit_Chars val:'**source** *file*\n' span_id:77) (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:'Run debugger commands in *file*.' span_id:79) ) } ) (command.ShFunction name: _Dbg_do_source body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:103) ) ] action: [ (C {(_Dbg_errmsg)} { (SQ (Token id: Id.Lit_Chars val: 'Need to give a filename for the "source" command.' span_id: 111 ) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:115) arg_word: {(1)} ) ] spids: [90 105] ) ] ) (C {(typeset)} {(filename)}) (C {(_Dbg_tilde_expand_filename)} {(DQ ($ Id.VSub_Number '$1'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName '$filename')} ) ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName '$filename'))} right: {(SQ (Token id:Id.Lit_Chars val:/dev/stdin span_id:157))} ) ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:162) ) ] action: [ (command.Simple words: [{(exec)} {(Id.Lit_LBrace '{') (_Dbg_fdi) (Id.Lit_RBrace '}')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:176) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$filename'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_fd index: (arith_expr.UnaryAssign op_id: Id.Arith_DPlus child: (sh_lhs_expr.Name name:_Dbg_fd_last) ) ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$_Dbg_fdi')} spids: [182] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_cmdfile) op: assign_op.PlusEqual rhs: { (sh_array_literal left: (Token id:Id.Op_LParen val:'(' span_id:198) words: [{(DQ ($ Id.VSub_DollarName '$filename'))}] ) } spids: [197] ) ] ) ] spids: [136 164] ) ] else_action: [ (C {(_Dbg_errmsg)} { (DQ ('Source file ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:212) ) ($ Id.VSub_DollarName '$filename') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:214) ) (' is not readable.') ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:219) arg_word: {(3)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:227) arg_word: {(0)} ) ] ) ) ] )