(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: [66 71] ) } ) ) 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: [81 89] ) } spids: [80] ) ] spids: [80] ) (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: [104] ) ] spids: [104] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:top_dir) op: Equal rhs: {(${ VSub_Name dirname) (/..)} spids: [111] ) ] spids: [111] ) ] 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: [130 142] ) spids: [123 128] ) ] spids: [-1 77] ) ] spids: [-1 144] ) (C {(_Dbg_help_add)} {(down)} { (SQ <"**down** [*count*]\n"> <"\n"> <"Move the current frame down in the stack trace (to an newer frame). 0 is\n"> <"the most recent frame.\n"> <"\n"> <"If *count* is omitted, use 1.\n"> <"\n"> <"See also:\n"> <"---------\n"> <"\n"> <"**down** and **frame**."> ) } {(1)} {(_Dbg_complete_down)} ) (FuncDef name: _Dbg_complete_down 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 2)}) ) 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 3)}) ) right: (ArithVarRef name:_Dbg_stack_pos) ) ) ) (C {(_Dbg_complete_num_range)} {($ VSub_Name "$start")} {($ VSub_Name "$end")}) ] spids: [181] ) spids: [177 180] ) (FuncDef name: _Dbg_do_down 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: [251 255] ) } ) (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")} {(-1)}) (C {(typeset)} {(-i)} {(Lit_VarLike "rc=") ($ VSub_QMark "$?")}) ] spids: [-1 278] ) ] else_action: [ (C {(_Dbg_errmsg)} {(DQ ("Expecting an integer; got ") ($ VSub_Name "$count"))}) (C {(typeset)} {(-i)} {(Lit_VarLike "rc=") (2)}) ] spids: [296 315] ) (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 <down>)} spids: [329] ) ] spids: [329] ) ] op_id: Op_DAmp ) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name "$rc")}) ] spids: [236] ) spids: [232 235] ) (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: [353 358] ) } ) ) 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: [383 398] ) spids: [372 381] ) (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 <down>)} spids: [409] ) ] spids: [409] ) (C {(_Dbg_do_help)} {(down)}) ] spids: [-1 364] ) ] spids: [-1 419] ) ] )