(command.CommandList children: [ (C {(_Dbg_help_add)} {(run)} { (SQ (Token id:Id.Lit_Chars val:'**run** [*args*]\n' span_id:74) (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'Attempt to restart the program via an exec call.\n' span_id:76) (Token id:Id.Lit_Chars val:'\n' span_id:77) (Token id:Id.Lit_Chars val:'See also:\n' span_id:78) (Token id:Id.Lit_Chars val:'---------\n' span_id:79) (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id:Id.Lit_Chars val:'**set args**, **kill** and **quit**' span_id:81) ) } ) (command.ShFunction name: _Dbg_do_run body: (command.BraceGroup children: [ (C {(typeset)} {(script_args)}) (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:114) ) ] action: [ (C {(printf)} {(-v)} {(script_args)} {(DQ ('%q '))} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:_Dbg_orig_script_args span_id:131) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ) ] spids: [101 116] ) ] else_action: [ (C {(printf)} {(-v)} {(script_args)} {(DQ ('%q '))} {(DQ ($ Id.VSub_At '$@'))}) ] ) (C {(typeset)} {(Id.Lit_VarLike 'exec_cmd_prefix=') (DQ ($ Id.VSub_DollarName '$_Dbg_orig_0'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:_Dbg_script span_id:173) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:178) ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$BASH'))} {(Id.Lit_RBracket ']')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASH) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:bash span_id:197))} spids: [195] ) ] ) ] ) (C {(typeset)} {(Id.Lit_VarLike 'bash_opt=') (SQ )}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName '$_Dbg_frame_last_filename')} right: {($ Id.VSub_DollarName '$_Dbg_bogus_file')} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:236) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:script_args) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name bash_opt) ('-c ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:247) ) ($ Id.VSub_DollarName '$_Dbg_EXECUTION_STRING') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:249) ) ) } spids: [241] ) ] ) ] spids: [224 238] ) ] else_action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:script_args) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name bash_opt) ($ Id.VSub_DollarName '$_Dbg_orig_0') (' ') ($ Id.VSub_DollarName '$script_args') ) } spids: [256] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:265) ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exec_cmd_prefix) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$BASH'))} spids: [271] ) ] ) ] spids: [169 180] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$BASH'))} ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:289) ) ] action: [ (C {(local)} {(Id.Lit_VarLike 'exec_cmd_prefix=') (DQ ($ Id.VSub_DollarName '$BASH') (' ') ($ Id.VSub_DollarName '$_Dbg_orig_0')) } ) ] spids: [277 291] ) ] ) (C {(_Dbg_msg)} {(DQ ('Restarting with: ') ($ Id.VSub_DollarName '$script_args'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:BASH_SUBSHELL span_id:337) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)}) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:346) ) ] action: [ (C {(_Dbg_msg)} {(DQ ('Note you are in a subshell. We will need to leave that first.'))} ) (C {(_Dbg_write_journal)} { (DQ ('_Dbg_RESTART_COMMAND=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:362) ) ($ Id.VSub_DollarName '$exec_cmd_prefix') (' ') ($ Id.VSub_DollarName '$script_args') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:366) ) ) } ) (C {(_Dbg_do_quit)} {(0)}) ] spids: [333 348] ) ] ) (C {(_Dbg_cleanup)}) (C {(_Dbg_save_state)}) (C {(builtin)} {(cd)} {($ Id.VSub_DollarName '$_Dbg_init_cwd')}) (C {(eval)} { (DQ ('exec ') ($ Id.VSub_DollarName '$exec_cmd_prefix') (' ') ($ Id.VSub_DollarName '$script_args') ) } ) ] ) ) (C {(_Dbg_alias_add)} {(R)} {(run)}) (C {(_Dbg_alias_add)} {(restart)} {(run)}) ] )