(command.CommandList children: [ (C {(_Dbg_help_add)} {(action)} { (SQ (Token id:Id.Lit_Chars val:'**action** *linespec* *command*\n' span_id:64) (Token id:Id.Lit_Chars val:'\n' span_id:65) (Token id:Id.Lit_Chars val:'Run *command* when *linespec* is hit\n' span_id:66) (Token id:Id.Lit_Chars val:'\n' span_id:67) (Token id: Id.Lit_Chars val: 'Use "A" to remove all actions and "L" to get a list of the actions in\n' span_id: 68 ) (Token id:Id.Lit_Chars val:effect. span_id:69) ) } ) (command.ShFunction name: _Dbg_do_action 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:104) ) ] action: [ (C {(_Dbg_list_action)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:113) arg_word: {(1)} ) ] spids: [91 106] ) ] ) (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 1)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:134) ) ] action: [ (C {(typeset)} {(Id.Lit_VarLike 'n=') ($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')} ) ] spids: [121 136] ) ] else_action: [ (C {(typeset)} {(Id.Lit_VarLike 'n=') ($ Id.VSub_Number '$1')}) (C {(shift)}) ] ) (C {(typeset)} {(Id.Lit_VarLike 'stmt=') (DQ ($ Id.VSub_Star '$*'))}) (C {(typeset)} {(filename)}) (C {(typeset)} {(-i)} {(line_number)}) (C {(typeset)} {(full_filename)}) (C {(_Dbg_linespec_setup)} {($ Id.VSub_DollarName '$n')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$full_filename')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:205) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: line_number span_id: 214 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:223) ) ] action: [(C {(_Dbg_msg)} {(DQ ('There is no line 0 to set action at.'))})] spids: [210 225] ) ] else_action: [ (C {(_Dbg_check_line)} {($ Id.VSub_DollarName '$line_number')} {(DQ ($ Id.VSub_DollarName '$full_filename'))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) (C {(_Dbg_set_action)} {(DQ ($ Id.VSub_DollarName '$full_filename'))} {(DQ ($ Id.VSub_DollarName '$line_number'))} {(DQ ($ Id.VSub_DollarName '$stmt'))} ) ] ) ] ) ] spids: [195 207] ) ] else_action: [(C {(_Dbg_file_not_read_in)} {($ Id.VSub_DollarName '$filename')})] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:291) arg_word: {(0)} ) ] ) ) (C {(_Dbg_alias_add)} {(SQ (Token id:Id.Lit_Chars val:a span_id:301))} {(SQ (Token id:Id.Lit_Chars val:action span_id:305))} ) (command.ShFunction name: _Dbg_do_clear_action body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:335) arg_word: {(1)} ) ] ) (C {(typeset)} {(-r)} {(Id.Lit_VarLike 'n=') (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:346) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')} ) ) } ) (C {(typeset)} {(filename)}) (C {(typeset)} {(-i)} {(line_number)}) (C {(typeset)} {(full_filename)}) (C {(_Dbg_linespec_setup)} {($ Id.VSub_DollarName '$n')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$full_filename')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:387) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: line_number span_id: 396 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:405) ) ] action: [(C {(_Dbg_msg)} {(DQ ('There is no line 0 to clear action at.'))})] spids: [392 407] ) ] else_action: [ (C {(_Dbg_check_line)} {($ Id.VSub_DollarName '$line_number')} {(DQ ($ Id.VSub_DollarName '$full_filename'))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) (C {(_Dbg_unset_action)} {(DQ ($ Id.VSub_DollarName '$full_filename'))} {(DQ ($ Id.VSub_DollarName '$line_number'))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_QMark '$?')} right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:467) ) ] action: [ (C {(_Dbg_msg)} {(DQ ('Removed action.'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:479) arg_word: {(0)} ) ] spids: [455 469] ) ] else_action: [ (C {(_Dbg_errmsg)} { (DQ ("Didn't find any actions to remove at ") ($ Id.VSub_DollarName '$n') (.) ) } ) ] ) ] ) ] spids: [377 389] ) ] else_action: [(C {(_Dbg_file_not_read_in)} {($ Id.VSub_DollarName '$filename')})] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:513) arg_word: {(1)} ) ] ) ) (command.ShFunction name: _Dbg_do_action_delete body: (command.BraceGroup children: [ (C {(typeset)} {(-r)} {(Id.Lit_VarLike 'to_go=') ($ Id.VSub_At '$@')}) (C {(typeset)} {(-i)} {(i)}) (C {(typeset)} {(-i)} {(Id.Lit_VarLike 'found=') (0)}) (command.ForEach iter_name: del iter_words: [{($ Id.VSub_DollarName '$to_go')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$del')} arms: [ (case_arm pat_list: [ {(Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']') (Id.Lit_Star '*')} ] action: [ (C {(_Dbg_delete_action_entry)} {($ Id.VSub_DollarName '$del')}) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: (sh_lhs_expr.Name name:found) right: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')}) ) ) ] spids: [574 579 597 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(_Dbg_msg)} {(DQ ('Invalid entry number skipped: ') ($ Id.VSub_DollarName '$del'))} ) ] spids: [600 602 -1 613] ) ] ) ] ) ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName '$found')} right: {(0)} ) ) (C {(_Dbg_msg)} {(DQ ('Removed ') ($ Id.VSub_DollarName '$found') (' action(s).'))}) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:640) arg_word: {($ Id.VSub_DollarName '$found')} ) ] ) ) (command.ShFunction name: _Dbg_do_clear_action body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:673) arg_word: {(1)} ) ] ) (C {(typeset)} {(-r)} {(Id.Lit_VarLike 'n=') (braced_var_sub token: (Token id:Id.VSub_Number val:1 span_id:684) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {($ Id.VSub_DollarName '$_Dbg_frame_last_lineno')} ) ) } ) (C {(typeset)} {(filename)}) (C {(typeset)} {(-i)} {(line_number)}) (C {(typeset)} {(full_filename)}) (C {(_Dbg_linespec_setup)} {($ Id.VSub_DollarName '$n')}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName '$full_filename')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:725) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: line_number span_id: 734 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:743) ) ] action: [(C {(_Dbg_msg)} {(DQ ('There is no line 0 to clear action at.'))})] spids: [730 745] ) ] else_action: [ (C {(_Dbg_check_line)} {($ Id.VSub_DollarName '$line_number')} {(DQ ($ Id.VSub_DollarName '$full_filename'))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_QMark '$?')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) (C {(_Dbg_unset_action)} {(DQ ($ Id.VSub_DollarName '$full_filename'))} {(DQ ($ Id.VSub_DollarName '$line_number'))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_QMark '$?')} right: {(0)} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:805) ) ] action: [ (C {(_Dbg_msg)} {(DQ ('Removed action.'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:817) arg_word: {(0)} ) ] spids: [793 807] ) ] else_action: [ (C {(_Dbg_errmsg)} { (DQ ("Didn't find any actions to remove at ") ($ Id.VSub_DollarName '$n') (.) ) } ) ] ) ] ) ] spids: [715 727] ) ] else_action: [(C {(_Dbg_file_not_read_in)} {($ Id.VSub_DollarName '$filename')})] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:851) arg_word: {(1)} ) ] ) ) (command.ShFunction name: _Dbg_do_clear_all_actions body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: (arith_expr.ArithWord w:{($ Id.VSub_Pound '$#')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:881) arg_word: {(1)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.VarRef token: (Token id: Id.Lit_ArithVarLike val: _Dbg_action_count span_id: 890 ) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:897) ) ] action: [ (C {(_Dbg_errmsg)} {(DQ ('No actions to delete.'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:909) arg_word: {(1)} ) ] spids: [887 899] ) ] ) (C {(typeset)} {(-l)} {(_Dbg_response)}) (C {(_Dbg_confirm)} {(DQ ('Delete all actions? (y/N): '))} {(SQ (Token id:Id.Lit_Chars val:N span_id:932))} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$_Dbg_response')} right: {(Id.Lit_Other '[') (yY) (Id.Lit_Other ']')} ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:951) arg_word: {(1)} ) ] ) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_count=0'))}) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_enable=()'))}) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_line=()'))}) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_file=()'))}) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_stmt=()'))}) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_file2action=()'))}) (C {(_Dbg_write_journal_eval)} {(DQ ('_Dbg_action_file2linenos=()'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1006) arg_word: {(0)} ) ] ) ) ] )