(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: [63 68] ) } ) ) 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: [78 86] ) } spids: [77] ) ] spids: [77] ) (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: [101] ) ] spids: [101] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:top_dir) op: Equal rhs: {(${ VSub_Name dirname) (/..)} spids: [108] ) ] spids: [108] ) ] 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: [127 139] ) spids: [120 125] ) ] spids: [-1 74] ) ] spids: [-1 141] ) (C {(_Dbg_help_add)} {(complete)} { (SQ <"**complete** *prefix-str*...\n"> <"\n"> <"\n"> <"Show command completion strings for *prefix-str*\n"> ) } ) (FuncDef name: _Dbg_do_complete body: (BraceGroup children: [ (Sentence child:(C {(typeset)} {(-a)} {(args)}) terminator:<Op_Semi ";">) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:args) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_At "$@")}])} spids: [171] ) ] spids: [171] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_matches) op: Equal rhs: {(ArrayLiteralPart)} spids: [177] ) ] spids: [177] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name args> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [186 192] ) } ) right: (ArithWord w:{(Lit_Digits 2)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(_Dbg_subcmd_complete)} { (BracedVarSub token: <VSub_Name args> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [208 213] ) } { (BracedVarSub token: <VSub_Name args> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [215 220] ) } ) ] spids: [-1 203] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name args> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [227 233] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(eval)} { (DQ ("builtin compgen -W ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (BracedVarSub token: <VSub_Name _Dbg_debugger_commands> prefix_op: VSub_Bang bracket_op: (WholeArray op_id:Lit_At) spids: [256 262] ) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" -- ") (BracedVarSub token: <VSub_Name args> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [265 270] ) ) } ) ] spids: [223 244] ) ] spids: [-1 274] ) (C {(typeset)} {(-i)} {(i)}) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name _Dbg_matches> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [297 303] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(_Dbg_msg)} { (BracedVarSub token: <VSub_Name _Dbg_matches> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$i")})) spids: [320 325] ) } ) ] spids: [315 328] ) ) ] spids: [161] ) spids: [157 160] ) (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: [344 349] ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(source)} {(${ VSub_Name top_dir) (/lib/msg.sh)}) (ForEach iter_name: _Dbg_file iter_words: [ (BracedWordTree parts: [ (${ VSub_Name top_dir) (/command/) (BracedAltPart words:[{(c) (Lit_Other "*")}{(help)}]) (.sh) ] ) ] do_arg_iter: False body: (DoGroup children:[(C {(source)} {($ VSub_Name "$_Dbg_file")})] spids:[386394]) spids: [371 384] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_args) op: Equal rhs: {(SQ <complete>)} spids: [398] ) ] spids: [398] ) (C {(_Dbg_do_help)} {(complete)}) (C {(_Dbg_do_complete)} {(c)}) ] spids: [-1 355] ) ] spids: [-1 413] ) ] )