(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$0")} right: { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [69 74] ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirname) op: Equal rhs: { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [84 92] ) } spids: [83] ) ] spids: [83] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$dirname")} right: {($ VSub_Number "$0")} ) ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:top_dir) op: Equal rhs: {(SQ <..>)} spids: [107] ) ] spids: [107] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:top_dir) op: Equal rhs: {(${ VSub_Name dirname) (/..)} spids: [114] ) ] spids: [114] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (ForEach iter_name: lib_file iter_words: [{(help)} {(alias)}] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (C {(source)} {($ VSub_Name "$top_dir") (/lib/) (${ VSub_Name lib_file) (.sh)}) terminator: <Op_Semi ";"> ) ] spids: [133 145] ) spids: [126 131] ) ] spids: [-1 80] ) ] spids: [-1 147] ) (C {(_Dbg_help_add)} {(up)} { (SQ <"**up** [*count*]\n"> <"\n"> <"Move the current frame up in the stack trace (to an older frame). 0 is\n"> <"the most recent frame.\n"> <"\n"> <"If **count** is omitted, use 1. **count* can be any arithmetic expression.\n"> <"\n"> <"See also:\n"> <"---------\n"> <"\n"> <"**down** and **frame**.\n"> ) } {(1)} {(_Dbg_complete_up)} ) (FuncDef name: _Dbg_complete_up body: (BraceGroup children: [ (Sentence child:(C {(typeset)} {(-i)} {(start)}) terminator:<Op_Semi ";">) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:start) right: (ArithBinary op_id: Arith_Plus left: (ArithBinary op_id: Arith_Plus left: (ArithUnary op_id: Node_UnaryMinus child: (ArithVarRef name:_Dbg_stack_size) ) right: (ArithWord w:{(Lit_Digits 3)}) ) right: (ArithVarRef name:_Dbg_stack_pos) ) ) ) (Sentence child:(C {(typeset)} {(-i)} {(end)}) terminator:<Op_Semi ";">) (DParen child: (BinaryAssign op_id: Arith_Equal left: (LhsName name:end) right: (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:_Dbg_stack_size) right: (ArithWord w:{(Lit_Digits 2)}) ) right: (ArithVarRef name:_Dbg_stack_pos) ) ) ) (C {(_Dbg_complete_num_range)} {($ VSub_Name "$start")} {($ VSub_Name "$end")}) ] spids: [184] ) spids: [180 183] ) (FuncDef name: _Dbg_do_up body: (BraceGroup children: [ (AndOr children: [ (C {(_Dbg_not_running)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(3)}) ] op_id: Op_DAmp ) (C {(typeset)} {(Lit_VarLike "count=") (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)}) spids: [254 258] ) } ) (C {(_Dbg_is_signed_int)} {($ VSub_Name "$count")}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{(Lit_Digits 0)}) right: (ArithWord w:{($ VSub_QMark "$?")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(_Dbg_frame_adjust)} {($ VSub_Name "$count")} {(Lit_Other "+") (1)}) (C {(typeset)} {(-i)} {(Lit_VarLike "rc=") ($ VSub_QMark "$?")}) ] spids: [-1 281] ) ] else_action: [ (C {(_Dbg_errmsg)} {(DQ ("Expecting an integer; got ") ($ VSub_Name "$count"))}) (C {(typeset)} {(-i)} {(Lit_VarLike "rc=") (2)}) ] spids: [300 319] ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{(Lit_Digits 0)}) right: (ArithVarRef name:rc) ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_last_cmd) op: Equal rhs: {(SQ <up>)} spids: [333] ) ] spids: [333] ) ] op_id: Op_DAmp ) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name "$rc")}) ] spids: [239] ) spids: [235 238] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$0")} right: { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [357 362] ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (ForEach iter_name: _Dbg_file iter_words: [{(help)} {(msg)} {(sort)} {(columnize)}] do_arg_iter: False body: (DoGroup children: [ (C {(source)} {(${ VSub_Name top_dir) (/lib/) (${ VSub_Name _Dbg_file) (.sh)}) ] spids: [387 402] ) spids: [376 385] ) (C {(source)} {(${ VSub_Name top_dir) (/command/help.sh)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_Dbg_args) op:Equal rhs:{(SQ <up>)} spids:[413])] spids: [413] ) (C {(_Dbg_do_help)} {(up)}) ] spids: [-1 368] ) ] spids: [-1 423] ) ] )