(command.CommandList children: [ (C {(typeset)} {(-i)} {(Lit_VarLike '_Dbg_inside_skip=') (0)}) (C {(typeset)} {(-A)} {(_Dbg_cmdloop_hooks)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_cmdloop_hooks index: (arith_expr.ArithWord w:{(SQ <display>)}) ) op: Equal rhs: {(SQ <_Dbg_eval_all_display>)} ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(typeset)} {(_Dbg_read_fn)}) terminator:<Op_Semi ';'>) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:_Dbg_read_fn) op:Equal rhs:{(SQ <read>)})] ) ] ) (C {(typeset)} {(Lit_VarLike '_Dbg_space=') (SQ <' '>)}) (C {(typeset)} {(Lit_VarLike '_Dbg_edit=') (SQ <-e>)}) (C {(typeset)} {(Lit_VarLike '_Dbg_edit_style=') (SQ <emacs>)}) (C {(KW_Set set)} {(-o)} {($ VSub_DollarName '$_Dbg_edit_style')}) (C {(typeset)} {(Lit_VarLike '_Dbg_prompt_str=') (SQ <'$_Dbg_debugger_name${_Dbg_less}${#_Dbg_history[@]}${_Dbg_greater}$_Dbg_space'>) } ) (C {(typeset)} {(Lit_VarLike '_Dbg_last_x_args=') (SQ )}) (C {(typeset)} {(Lit_VarLike '_Dbg_last_cmd=') (SQ )}) (command.CommandList children: [ (command.Sentence child:(C {(typeset)} {(-i)} {(_Dbg_fdi)}) terminator:<Op_Semi ';'>) (command.Simple words: [{(exec)} {(Lit_LBrace '{') (_Dbg_fdi) (Lit_RBrace '}')}] redirects: [(redir.Redir op:<Redir_LessAnd '<&'> fd:16777215 arg_word:{(0)})] ) ] ) (C {(typeset)} {(-i)} {(Lit_VarLike '_Dbg_fd_last=') (0)}) (command.CommandList children: [ (command.Sentence child: (C {(typeset)} {(-a)} {(_Dbg_cmdfile)}) terminator: <Op_Semi ';'> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_cmdfile) op: Equal rhs: {(sh_array_literal left:<Op_LParen '('> words:[{(SQ )}])} ) ] ) ] ) (command.CommandList children: [ (command.Sentence child:(C {(typeset)} {(-a)} {(_Dbg_fd)}) terminator:<Op_Semi ';'>) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_fd) op: Equal rhs: {(sh_array_literal left:<Op_LParen '('> words:[{($ VSub_DollarName '$_Dbg_fdi')}])} ) ] ) ] ) (C {(typeset)} {(_Dbg_prompt_output)}) (command.ShFunction name: _Dbg_process_commands body: (command.BraceGroup children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:_Dbg_inside_skip) op:Equal rhs:{(0)})] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:_Dbg_step_ignore) op:Equal rhs:{(-1)})] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:_Dbg_continue_rc) op:Equal rhs:{(-1)})] ) (C {(_Dbg_write_journal)} {(DQ ('_Dbg_step_ignore=') ($ VSub_DollarName '$_Dbg_step_ignore'))} ) (C {(typeset)} {(key)}) (command.ForEach iter_name: key iter_words: [ { (braced_var_sub token: <VSub_Name _Dbg_cmdloop_hooks> prefix_op: VSub_Bang bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C { (braced_var_sub token: <VSub_Name _Dbg_cmdloop_hooks> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ VSub_DollarName '$key')}) ) ) } ) ] ) ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Arith_Great left: (arith_expr.VarRef token:<Lit_ArithVarLike _Dbg_fd_last>) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (C {(typeset)} {(Lit_VarLike '_Dbg_greater=') (SQ )}) (C {(typeset)} {(Lit_VarLike '_Dbg_less=') (SQ )}) (C {(typeset)} {(result)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(_Dbg_copies)} {(SQ <'>'>)} {($ VSub_DollarName '$_Dbg_DEBUGGER_LEVEL')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_greater) op: Equal rhs: {($ VSub_DollarName '$result')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_less) op: Equal rhs: { (braced_var_sub token: <VSub_Name result> suffix_op: (suffix_op.PatSub pat: {(Lit_Other '>')} replace: {(Lit_Other '<')} replace_mode: Lit_Slash ) ) } ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(_Dbg_copies)} {(SQ <')'>)} {($ VSub_DollarName '$BASH_SUBSHELL')}) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_greater) op: Equal rhs: {(DQ (${ VSub_Name result) (${ VSub_Name _Dbg_greater))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_less) op: Equal rhs: { (DQ (${ VSub_Name _Dbg_less) (braced_var_sub token: <VSub_Name result> suffix_op: (suffix_op.PatSub pat: {(')')} replace: {('(')} replace_mode: Lit_Slash ) ) ) } ) ] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_prompt_output) op: Equal rhs: { (braced_var_sub token: <VSub_Name _Dbg_tty> suffix_op: (suffix_op.Unary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (dev) (Lit_Slash /) (null)} ) ) } ) ] ) (C {(eval)} {(DQ ('local _Dbg_prompt=') ($ VSub_DollarName '$_Dbg_prompt_str'))}) (C {(_Dbg_preloop)}) (C {(typeset)} {(_Dbg_cmd)}) (C {(typeset)} {(args)}) (C {(typeset)} {(rc)}) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (C {(KW_Set set)} {(-o)} {(history)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_input_desc) op: Equal rhs: { (braced_var_sub token: <VSub_Name _Dbg_fd> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_fd_last> ) ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$_Dbg_tty')} right: {(SQ <'&1'>)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-n)} {(DQ ($ VSub_DollarName '$_Dbg_prompt'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{(read)} {(_Dbg_cmd)} {(args)}] redirects: [ (redir.Redir op: <Redir_LessAnd '<&'> fd: 16777215 arg_word: {($ VSub_DollarName '$_Dbg_input_desc')} ) (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.ControlFlow token: <ControlFlow_Break break> ) ] ) ] ) ] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_set_read_completion> ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_read_fn) op: Equal rhs: {(SQ <readc>)} ) ] ) ] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_read_fn) op: Equal rhs: {(SQ <read>)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [ {($ VSub_DollarName '$_Dbg_read_fn')} {($ VSub_DollarName '$_Dbg_edit')} {(-p)} {(DQ ($ VSub_DollarName '$_Dbg_prompt'))} {(_Dbg_cmd)} {(args)} ] redirects: [ (redir.Redir op: <Redir_LessAnd '<&'> fd: 16777215 arg_word: {($ VSub_DollarName '$_Dbg_input_desc')} ) (redir.Redir op: <Redir_DGreat '2>>'> fd: 2 arg_word: {($ VSub_DollarName '$_Dbg_prompt_output')} ) ] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(KW_Set set)} {(Lit_Other '+') (o)} {(history)}) (command.ControlFlow token: <ControlFlow_Break break> ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: BoolBinary_EqualTilde left: {($ VSub_DollarName '$_Dbg_cmd')} right: {(SQ <' '>)} ) right: (bool_expr.Unary op_id: BoolUnary_z child: {($ VSub_DollarName '$args')} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(typeset)} {(-a)} {(ary)}) terminator: <Op_Semi ';'> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: Equal rhs: {(SQ <' '>)} ) (assign_pair lhs: (sh_lhs_expr.Name name:ary) op: Equal rhs: { (sh_array_literal left: <Op_LParen '('> words: [{($ VSub_DollarName '$_Dbg_cmd')}] ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_cmd) op: Equal rhs: { (braced_var_sub token: <VSub_Name ary> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) } ) ] ) (C {(unset)} {(Lit_ArrayLhsOpen 'ary[') (0) (Lit_RBracket ']')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:args) op: Equal rhs: { (DQ (braced_var_sub token: <VSub_Name ary> bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } ) ] ) ] ) ] ) (C {(KW_Set set)} {(Lit_Other '+') (o)} {(history)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_brkpt_commands_defining> ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Case to_match: {($ VSub_DollarName '$_Dbg_cmd')} arms: [ (case_arm pat_list: [{(silent)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_brkpt_commands_silent index: (arith_expr.ArithWord w: { ($ VSub_DollarName '$_Dbg_brkpt_commands_current' ) } ) ) op: Equal rhs: {(1)} ) ] ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) (case_arm pat_list: [{(end)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: _Dbg_brkpt_commands_defining ) op: Equal rhs: {(0)} ) ] ) (C {(eval)} { (DQ ('_Dbg_prompt=') ($ VSub_DollarName '$_Dbg_prompt_str') ) } ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_brkpt_commands index: (arith_expr.ArithWord w: { (braced_var_sub token: <VSub_Name _Dbg_brkpt_commands> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id: Lit_At ) ) } ) ) op: Equal rhs: { (DQ ($ VSub_DollarName '$_Dbg_cmd') (' ') ($ VSub_DollarName '$args') ) } ) ] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (sh_lhs_expr.IndexedName name: _Dbg_brkpt_commands_end index: (arith_expr.ArithWord w: { ($ VSub_DollarName '$_Dbg_brkpt_commands_current' ) } ) ) ) ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rc) op: Equal rhs: {($ VSub_QMark '$?')} ) ] ) ] ) ] else_action: [ (C {(_Dbg_onecmd)} {(DQ ($ VSub_DollarName '$_Dbg_cmd'))} {(DQ ($ VSub_DollarName '$args'))} ) (C {(_Dbg_postcmd)}) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Arith_GreatEqual left: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_continue_rc> ) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$_Dbg_continue_rc')} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_brkpt_commands_defining> ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_prompt) op: Equal rhs: {(SQ <'>'>)} ) ] ) ] ) ] else_action: [ (C {(eval)} {(DQ ('_Dbg_prompt=') ($ VSub_DollarName '$_Dbg_prompt_str'))} ) ] ) ] ) ) (C {(unset)} {(Lit_ArrayLhsOpen '_Dbg_fd[') (_Dbg_fd_last--) (Lit_RBracket ']')}) ] ) ) (C {(_Dbg_msg)} {(SQ )}) (C {(_Dbg_do_quit)}) ] ) ) (command.ShFunction name: _Dbg_annotation body: (command.BraceGroup children: [ (C {(typeset)} {(Lit_VarLike 'label=') (DQ ($ VSub_Number '$1'))}) (C {(shift)}) (C {(_Dbg_do_print)} {(DQ ('\x1a\x1a') ($ VSub_DollarName '$label'))}) (C {($ VSub_Star '$*')}) (C {(_Dbg_do_print)} {(SQ <'\x1a\x1a'>)}) ] ) ) (command.ShFunction name: _Dbg_onecmd body: (command.BraceGroup children: [ (C {(typeset)} {(Lit_VarLike 'full_cmd=') ($ VSub_At '$@')}) (C {(typeset)} {(Lit_VarLike '_Dbg_orig_cmd=') (DQ ($ VSub_Number '$1'))}) (command.Sentence child: (C {(typeset)} {(expanded_alias)}) terminator: <Op_Semi ';'> ) (C {(_Dbg_alias_expand)} {(DQ ($ VSub_DollarName '$_Dbg_orig_cmd'))}) (C {(typeset)} {(Lit_VarLike '_Dbg_cmd=') (DQ ($ VSub_DollarName '$expanded_alias'))}) (C {(shift)}) (C {(typeset)} {(Lit_VarLike '_Dbg_args=') (DQ ($ VSub_At '$@'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_z child: {($ VSub_DollarName '$_Dbg_cmd')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_cmd) op: Equal rhs: {($ VSub_DollarName '$_Dbg_last_next_step_cmd')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_args) op: Equal rhs: {($ VSub_DollarName '$_Dbg_last_next_step_args')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:full_cmd) op: Equal rhs: { (DQ ($ VSub_DollarName '$_Dbg_cmd') (' ') ($ VSub_DollarName '$_Dbg_args') ) } ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_GlobDEqual left: {($ VSub_DollarName '$_Dbg_set_trace_commands')} right: {(SQ <on>)} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(_Dbg_msg)} {(DQ ('+') ($ VSub_DollarName '$full_cmd'))})] ) ] ) (C {(local)} {(Lit_VarLike 'dq_cmd=') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(_Dbg_esc_dq)} {(DQ ($ VSub_DollarName '$_Dbg_cmd'))})] ) ) } ) (C {(local)} {(Lit_VarLike 'dq_args=') (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(_Dbg_esc_dq)} {(DQ ($ VSub_DollarName '$_Dbg_args'))})] ) ) } ) (C {(_Dbg_write_journal)} { (DQ ('_Dbg_history[') (braced_var_sub token: <VSub_Name _Dbg_history> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) (']=') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ($ VSub_DollarName '$dq_cmd') (' ') ($ VSub_DollarName '$dq_args') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: _Dbg_history index: (arith_expr.ArithWord w: { (braced_var_sub token: <VSub_Name _Dbg_history> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) } ) ) op: Equal rhs: {(DQ ($ VSub_DollarName '$_Dbg_cmd') (' ') ($ VSub_DollarName '$_Dbg_args'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_hi) op: Equal rhs: { (braced_var_sub token: <VSub_Name _Dbg_history> prefix_op: VSub_Pound bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) } ) ] ) (C {(history)} {(-s)} {(--)} {(DQ ($ VSub_DollarName '$full_cmd'))}) (C {(typeset)} {(-i)} {(Lit_VarLike '_Dbg_redo=') (1)}) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.DParen child:(arith_expr.VarRef token:<Lit_ArithVarLike _Dbg_redo>)) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:_Dbg_redo) op:Equal rhs:{(0)})] ) (command.AndOr ops: [Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_z child: {($ VSub_DollarName '$_Dbg_cmd')} ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_cmd) op: Equal rhs: {($ VSub_DollarName '$_Dbg_last_cmd')} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$_Dbg_cmd')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(typeset)} {(-i)} {(Lit_VarLike 'found=') (0)}) (C {(typeset)} {(found_cmd)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: { (braced_var_sub token: <VSub_Name _Dbg_debugger_commands> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ VSub_DollarName '$_Dbg_cmd')} ) ) ) } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: Equal rhs: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found_cmd) op: Equal rhs: {($ VSub_DollarName '$_Dbg_cmd')} ) ] ) ] ) ] else_action: [ (C {(typeset)} {(-i)} {(Lit_VarLike 'count=') (0)}) (command.Sentence child: (C {(typeset)} {(list)}) terminator: <Op_Semi ';'> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:list) op: Equal rhs: { (DQ (braced_var_sub token: <VSub_Name _Dbg_debugger_commands> prefix_op: VSub_Bang bracket_op: (bracket_op.WholeArray op_id:Lit_At) ) ) } ) ] ) (command.ForEach iter_name: try iter_words: [{($ VSub_DollarName '$list')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: BoolBinary_EqualTilde left: {($ VSub_DollarName '$try')} right: {(Lit_Other '^') ($ VSub_DollarName '$_Dbg_cmd') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found_cmd) op: Equal rhs: {($ VSub_DollarName '$try')} ) ] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Node_PostDPlus child: (sh_lhs_expr.Name name:count) ) ) ] ) ] ) ] ) ) (command.DParen child: (arith_expr.BinaryAssign op_id: Arith_Equal left: (sh_lhs_expr.Name name:found) right: (arith_expr.Binary op_id: Arith_DEqual left: (arith_expr.VarRef token:<Lit_ArithVarLike count>) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token:<Lit_ArithVarLike found>) ) terminator: <Op_Semi ';'> ) ] action: [ (C { (braced_var_sub token: <VSub_Name _Dbg_debugger_commands> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ VSub_DollarName '$found_cmd')} ) ) ) } {($ VSub_DollarName '$_Dbg_args')} ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: Equal rhs: {($ VSub_DollarName '$_Dbg_space_IFS')} ) ] ) terminator: <Op_Semi ';'> ) (C {(eval)} {(DQ ('_Dbg_prompt=') ($ VSub_DollarName '$_Dbg_prompt_str'))} ) (command.AndOr ops: [Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Arith_GreatEqual left: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_continue_rc> ) right: (arith_expr.ArithWord w:{(Lit_Digits 0)}) ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$_Dbg_continue_rc')} ) ] ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) ] ) ] ) ] ) (command.Case to_match: {($ VSub_DollarName '$_Dbg_cmd')} arms: [ (case_arm pat_list: [ {(Lit_LBracket '[') (Lit_Pound '#') (Lit_RBracket ']') (Lit_Star '*')} ] action: [ (C {(_Dbg_history_remove_item)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <'#'>)} ) ] ) ] ) (case_arm pat_list: [{(.)}] action: [ (C {(_Dbg_list)} {($ VSub_DollarName '$_Dbg_frame_last_filename')} {($ VSub_DollarName '$_Dbg_frame_last_lineno')} {(1)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <list>)} ) ] ) ] ) (case_arm pat_list: [{(/) (Lit_Star '*')}] action: [ (C {(_Dbg_do_search)} {($ VSub_DollarName '$_Dbg_cmd')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <search>)} ) ] ) ] ) (case_arm pat_list: [ {(Lit_LBracket '[') (Lit_QMark '?') (Lit_RBracket ']') (Lit_Star '*')} ] action: [ (C {(_Dbg_do_reverse)} {($ VSub_DollarName '$_Dbg_cmd')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(DQ (reverse))} ) ] ) ] ) (case_arm pat_list: [{(cd)}] action: [ (C {(local)} {(Lit_VarLike 'cd_command=') (DQ ('cd ') ($ VSub_DollarName '$_Dbg_args')) } ) (C {(eval)} {($ VSub_DollarName '$cd_command')}) (C {(_Dbg_do_pwd)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <cd>)} ) ] ) ] ) (case_arm pat_list: [{(comp)} {(compl)} {(comple)} {(complet)} {(complete)}] action: [ (C {(_Dbg_do_complete)} {($ VSub_DollarName '$_Dbg_args')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <complete>)} ) ] ) ] ) (case_arm pat_list: [{(debug)}] action: [ (C {(_Dbg_do_debug)} {($ VSub_DollarName '$_Dbg_args')}) (C {(_Dbg_do_next_skip)} {(SQ <skip>)} {(1)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: Equal rhs: {(DQ ($ VSub_DollarName '$_Dbg_old_IFS'))} ) ] ) terminator: <Op_Semi ';'> ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <debug>)} ) ] ) ] ) (case_arm pat_list: [{(D)} {(deletea)} {(deleteal)} {(deleteall)}] action: [ (C {(_Dbg_clear_all_brkpt)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <deleteall>)} ) ] ) ] ) (case_arm pat_list:[{(ControlFlow_Return return)}]) (case_arm pat_list: [{(shell)} {(SQ <'!!'>)}] action: [(C {(eval)} {($ VSub_DollarName '$_Dbg_args')})] ) (case_arm pat_list: [{(si)} {(sig)} {(sign)} {(signa)} {(signal)}] action: [ (C {(_Dbg_do_signal)} {($ VSub_DollarName '$_Dbg_args')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_last_cmd) op: Equal rhs: {(SQ <signal>)} ) ] ) ] ) (case_arm pat_list: [{(SQ <'step+'>)} {(SQ <step->)}] action: [ (C {(_Dbg_do_step)} {(DQ ($ VSub_DollarName '$_Dbg_cmd'))} {($ VSub_DollarName '$_Dbg_args')} ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) (case_arm pat_list: [{(L)}] action: [ (C {(_Dbg_do_list_brkpt)}) (C {(_Dbg_list_watch)}) (C {(_Dbg_list_action)}) ] ) (case_arm pat_list: [{(A)}] action: [(C {(_Dbg_do_clear_all_actions)} {($ VSub_DollarName '$_Dbg_args')})] ) (case_arm pat_list: [{(H)}] action: [ (C {(_Dbg_history_remove_item)}) (C {(_Dbg_do_history_list)} {($ VSub_DollarName '$_Dbg_args')}) ] ) (case_arm pat_list: [{(S)}] action: [(C {(_Dbg_do_list_functions)} {($ VSub_DollarName '$_Dbg_args')})] ) (case_arm pat_list: [{(V)}] action: [ (C {(_Dbg_do_info_variables)} {(DQ ($ VSub_DollarName '$_Dbg_args'))}) ] ) (case_arm pat_list: [ {(word_part.EscapedLiteral token:<Lit_EscapedChar '\\!'>) (Lit_Star '*')} {(history)} ] action: [(C {(_Dbg_do_history)} {($ VSub_DollarName '$_Dbg_args')})] ) (case_arm pat_list: [{(SQ )}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: BoolUnary_n child: {($ VSub_DollarName '$_Dbg_last_cmd')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_cmd) op: Equal rhs: {($ VSub_DollarName '$_Dbg_last_cmd')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_Dbg_redo) op: Equal rhs: {(1)} ) ] ) ] ) ] ) ] ) (case_arm pat_list: [{(Lit_Star '*')}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token: <Lit_ArithVarLike _Dbg_set_autoeval> ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_do_eval)} {($ VSub_DollarName '$_Dbg_cmd')} {($ VSub_DollarName '$_Dbg_args')} ) ] ) ] else_action: [ (C {(_Dbg_undefined_cmd)} {(DQ ($ VSub_DollarName '$_Dbg_cmd'))}) (C {(_Dbg_history_remove_item)}) ] ) ] ) ] ) ] ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: Equal rhs: {($ VSub_DollarName '$_Dbg_space_IFS')} ) ] ) terminator: <Op_Semi ';'> ) (C {(eval)} {(DQ ('_Dbg_prompt=') ($ VSub_DollarName '$_Dbg_prompt_str'))}) ] ) ) (command.ShFunction name: _Dbg_preloop body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token:<Lit_ArithVarLike _Dbg_set_annotate>) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_Dbg_annotation)} {(SQ <breakpoints>)} {(_Dbg_do_info)} {(breakpoints)}) (C {(_Dbg_annotation)} {(SQ <stack>)} {(_Dbg_do_backtrace)} {(3)}) ] ) ] ) ] ) ) (command.ShFunction name: _Dbg_postcmd body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token:<Lit_ArithVarLike _Dbg_set_annotate>) ) terminator: <Op_Semi ';'> ) ] action: [ (command.Case to_match: {($ VSub_DollarName '$_Dbg_last_cmd')} arms: [ (case_arm pat_list: [ {(ControlFlow_Break break)} {(tbreak)} {(disable)} {(enable)} {(condition)} {(clear)} {(delete)} ] action: [ (C {(_Dbg_annotation)} {(SQ <breakpoints>)} {(_Dbg_do_info)} {(breakpoints)}) ] ) (case_arm pat_list: [{(up)} {(down)} {(frame)}] action: [(C {(_Dbg_annotation)} {(SQ <stack>)} {(_Dbg_do_backtrace)} {(3)})] ) (case_arm pat_list:[{(Lit_Star '*')}]) ] ) ] ) ] ) ] ) ) ] )