(command.CommandList children: [ (C {<_Dbg_help_add>} {<commands>} { (SQ <'commands [BKPT-NUM]\n'> <'\n'> <'Set commands to be executed when a breakpoint is hit.\n'> <'\n'> <'Without BKPT-NUM, the targeted breakpoint is the last one set. The\n'> <'commands themselves follow starting on the next line. \n'> <'\n'> <'Type a line containing "end" to indicate the end of them. Give\n'> <'"silent" as the first line to make the breakpoint silent; then no\n'> <'output is printed when it is hit, except what the commands print.'> ) } ) (command.ShFunction name: _Dbg_do_commands body: (BraceGroup children: [ (C {<eval>} {(DQ ($ Id.VSub_DollarName '$_seteglob'))}) (C {<typeset>} {<Id.Lit_VarLike 'num='> ($ Id.VSub_Number '$1')}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'found='> <0>}) (command.Case to_match: {($ Id.VSub_DollarName '$num')} arms: [ (case_arm pat_list: [{($ Id.VSub_DollarName '$int_pat')}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_file> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$num')} ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<_Dbg_errmsg>} {(DQ <'No breakpoint number '> ($ Id.VSub_DollarName '$num') <.>)} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [117 134] ) ] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike found> right: {<Id.Lit_Digits 1>} ) ) ] spids: [112 114 162 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<_Dbg_errmsg>} {(DQ <'Invalid entry number skipped: '> ($ Id.VSub_DollarName '$num'))} ) ] spids: [165 167 -1 178] ) ] ) (C {<eval>} {(DQ ($ Id.VSub_DollarName '$_resteglob'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:<Id.Lit_ArithVarLike found>) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_brkpt_commands_defining) op: assign_op.Equal rhs: {<1>} spids: [203] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_brkpt_commands_current) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$num')} spids: [207] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_brkpt_commands_end index: {($ Id.VSub_DollarName '$num')} ) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_commands> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [211] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_brkpt_commands_start index: {($ Id.VSub_DollarName '$num')} ) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name _Dbg_brkpt_commands_end> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$num')} ) ) } spids: [225] ) ] ) (C {<_Dbg_msg>} { (DQ <'Type commands for when breakpoint '> ($ Id.VSub_DollarName '$found') <' hit, one per line.'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_prompt) op: assign_op.Equal rhs: {(SQ <'>'>)} spids: [247] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [188 199] ) ] ) ] ) ) ] )