(command.CommandList children: [ (C {<_Dbg_help_add_sub>} {<info>} {<files>} { (SQ <'**info files**\n'> <'\n'> <'show a list of files that have been read in and properties regarding them.\n'> ) } {<1>} ) (command.ShFunction name: _Dbg_do_info_files body: (BraceGroup children: [ (C {<_Dbg_msg>} {(DQ <'Source files which we have recorded info about:'>)}) (C {<typeset>} {<-a>} {<Id.Lit_VarLike 'list='> (sh_array_literal left:<Id.Op_LParen _>)}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'i='> <0>}) (C {<typeset>} {<key>}) (command.ForEach iter_name: key iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name _Dbg_file2canonic> prefix_op: (Id.VSub_Bang) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name:list index:{($ Id.VSub_DollarName '$i')}) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$key'))} spids: [130] ) ] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) ) ] ) ) (C {<sort_list>} {<0>} { (braced_var_sub token: <Id.VSub_Name list> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) <-1> } ) (command.ForEach iter_name: file iter_words: [ { (DQ (braced_var_sub token: <Id.VSub_Name list> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'lines='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<_Dbg_get_maxline>} {(DQ ($ Id.VSub_DollarName '$file'))}) ) } ) (C {<typeset>} {<canonic_file>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:canonic_file) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name _Dbg_file2canonic> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$file')} ) ) ) } spids: [203] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: <Id.Lit_ArithVarLike _Dbg_set_basename> ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name file> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) ) } spids: [232] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:canonic_file) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name canonic_file> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) ) } spids: [243] ) ] ) ] spids: [214 225] ) ] ) (C {<_Dbg_msg>} { (DQ <' '> (${ Id.VSub_Name file) <': '> (${ Id.VSub_Name canonic_file) <', '> ($ Id.VSub_DollarName '$lines') <' lines'> ) } ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) ] )