(command.CommandList children: [ (command.Simple blame_tok: <_Dbg_help_add_sub> more_env: [] words: [ {<_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>} ] redirects: [] do_fork: T ) (command.ShFunction name_tok: <_Dbg_do_info_files> name: _Dbg_do_info_files body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [{<_Dbg_msg>} {(DQ <'Source files which we have recorded info about:'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-a>} {<Id.Lit_VarLike 'list='> (ShArrayLiteral left: <Id.Op_LParen _> words: [] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<Id.Lit_VarLike 'i='> <0>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<key>}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_file2canonic> var_name: _Dbg_file2canonic prefix_op: <Id.VSub_Bang '!'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_ArrayLhsOpen 'list['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen 'list['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'list['> name: list index: {($ Id.VSub_DollarName i)} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName key))} ) ] redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike i) ) right: <Id.Op_DRightParen _> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <sort_list> more_env: [] words: [ {<sort_list>} {<0>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) <-1> } ] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [file] iterable: (for_iter.Words words: [ { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name list> var_name: list bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-i>} {<Id.Lit_VarLike 'lines='> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <_Dbg_get_maxline> more_env: [] words: [{<_Dbg_get_maxline>} {(DQ ($ Id.VSub_DollarName file))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<canonic_file>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'canonic_file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'canonic_file='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'canonic_file='> name: canonic_file ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name _Dbg_file2canonic> var_name: _Dbg_file2canonic bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName file)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: ($ Id.Lit_ArithVarLike _Dbg_set_basename) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'file='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name file> var_name: file suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'canonic_file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'canonic_file='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'canonic_file='> name: canonic_file ) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name canonic_file> var_name: canonic_file suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) ] spids: [214 225] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <_Dbg_msg> more_env: [] words: [ {<_Dbg_msg>} { (DQ <' '> (${ Id.VSub_Name file) <': '> (${ Id.VSub_Name canonic_file) <', '> ($ Id.VSub_DollarName lines) <' lines'> ) } ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )