(command.CommandList children: [ (C {<_Dbg_help_add_sub>} {<info>} {<functions>} { (SQ <'**info functions** [*pattern*]\n'> <'\n'> <'Show functions matching regular expression PATTERN.\n'> <'If pattern is empty, list all functions.\n'> <'\n'> <'Examples:\n'> <'---------\n'> <'\n'> <' info functions \\# list of all functions\n'> <' info functions s \\# functions containing an \\"s\\"\n'> <' info function \\^s \\# functions starting with an \\"s\\"\n'> <'\n'> <'See also:\n'> <'---------\n'> <'\n'> <'**info variables**.'> ) } {<1>} ) (command.ShFunction name: _Dbg_do_info_functions body: (BraceGroup children: [ (C {<typeset>} {<Id.Lit_VarLike 'pat='> ($ Id.VSub_Number '$1')}) (C {<typeset>} {<-a>} {<fns_a>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fns_a) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_get_functions>} {<0>} {(DQ ($ Id.VSub_DollarName '$pat'))}) ) } ] ) } spids: [114] ) ] ) (C {<typeset>} {<-i>} {<i>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name fns_a> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (C {<_Dbg_msg>} { (braced_var_sub token: <Id.VSub_Name fns_a> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) } ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) ] )