(CommandList children: [ (C {(_Dbg_help_add)} {(history)} { (DQ ("history [N]\n") ("\n") ("Rerun a debugger command from the debugger history. \n") ("\n") ("See also H to list the history. If N is negative you are you going\n") ("back that many items from the end rather specifying an absolute history number.") ) } ) (FuncDef name: _Dbg_do_history body: (BraceGroup children: [ (C {(typeset)} {(-i)} {(history_num)}) (C {(_Dbg_history_parse)} {($ VSub_At "$@")}) (C {(_Dbg_history_remove_item)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithVarRef name:history_num) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:history_num) right: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_history> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [122 128] ) } ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(set)} { (BracedVarSub token: <VSub_Name _Dbg_history> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name "$history_num")}) ) spids: [141 146] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_cmd) op: Equal rhs: {($ VSub_Number "$1")} spids: [149] ) ] spids: [149] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_args) op: Equal rhs: {(DQ ($ VSub_At "$@"))} spids: [156] ) ] spids: [156] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_redo) op: Equal rhs: {(1)} spids: [162] ) ] spids: [162] ) terminator: <Op_Semi ";"> ) ] spids: [-1 135] ) ] else_action: [ (C {(_Dbg_errmsg)} { (DQ ("Number ") ($ VSub_Number "$1") (" (") ($ VSub_Name "$history_num") (") should be less than ") (BracedVarSub token: <VSub_Name _Dbg_history> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [180 186] ) ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [167 195] ) ] spids: [-1 110] ) ] spids: [-1 198] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [77] ) spids: [73 76] ) (FuncDef name: _Dbg_do_history_list body: (BraceGroup children: [ (C {(eval)} {(DQ ($ VSub_Name "$_seteglob"))}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Number "$1")} right: {($ VSub_Name "$int_pat")} ) ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Number "$1")} right: {(-) ($ VSub_Name "$int_pat")} ) ) (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Number "$1")}) ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [ (C {(_Dbg_msg)} {(DQ ("Invalid history number: ") ($ VSub_Number "$1"))}) (C {(eval)} {(DQ ($ VSub_Name "$_resteglob"))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [-1 269] ) ] spids: [-1 293] ) (C {(eval)} {(DQ ($ VSub_Name "$_resteglob"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_hi) op: Equal rhs: { (BracedVarSub token: <VSub_Name _Dbg_history> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [305 311] ) } spids: [304] ) ] spids: [304] ) (Assignment keyword: Assign_Local flags: ["'-i'"] pairs: [ (assign_pair lhs: (LhsName name:n) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$_Dbg_hi") (-1)} ) spids: [319 324] ) } spids: [318] ) ] spids: [314] ) (Assignment keyword: Assign_Local flags: ["'-i'"] pairs: [ (assign_pair lhs: (LhsName name:stop) op: Equal rhs: { (BracedVarSub token: <VSub_Number 2> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 0)})) spids: [332 336] ) } spids: [331] ) ] spids: [327] ) (Assignment keyword: Assign_Local flags: ["'-i'"] pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[343])] spids: [339] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:n) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:stop) right: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:_Dbg_hi) right: (ArithVarRef name:n) ) ) ) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:n) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:_Dbg_hi) right: (ArithWord w:{(Lit_Digits 1)}) ) ) ) ] spids: [-1 364] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithVarRef name:n) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:_Dbg_hi) right: (ArithWord w:{(Lit_Digits 1)}) ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:n) right: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:_Dbg_hi) right: (ArithWord w:{(Lit_Digits 1)}) ) ) ) ] spids: [387 404] ) ] spids: [-1 417] ) (ForExpr init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithVarRef name:n)) cond: (ArithBinary op_id: Arith_DAmp left: (ArithBinary op_id: Arith_GreatEqual left: (ArithVarRef name:i) right: (ArithVarRef name:stop) ) right: (ArithBinary op_id: Arith_GreatEqual left: (ArithVarRef name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) ) update: (UnaryAssign op_id:Node_PostDMinus child:(LhsName name:i)) body: (DoGroup children: [ (C {(_Dbg_msg)} { (DQ (${ VSub_Name i) (": ") (BracedVarSub token: <VSub_Name _Dbg_history> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [464 469] ) ) } ) ] spids: [454 473] ) ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [221] ) spids: [217 220] ) (C {(_Dbg_alias_add)} {(SQ <"!">)} {(SQ <history>)}) ] )