(command.CommandList children: [ (command.ShFunction name: fields_as_lines body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {<tr>} {(SQ <'\\n'>)} {(SQ <'\\f'>)}) (C {<sed>} {(SQ <'s/\\f/\\f\\n/g'>)}) (C {<tr>} {(SQ <'\\t'>)} {(SQ <'\\n'>)}) ] negated: F ) ] ) ) (command.ShFunction name: recover_lines body: (command.BraceGroup children: [ (command.Pipeline children: [(C {<tr>} {(SQ <'\\n'>)} {(SQ <'\\t'>)}) (C {<sed>} {(SQ <'s/\\f\\t/\\n/g'>)})] negated: F ) ] ) ) (command.ShFunction name: pad_numbers body: (command.BraceGroup children: [ (command.Pipeline children: [ (C {<fields_as_lines>}) (C {<sed>} {<-r>} { (DQ <'s/^([[:space:]]*[0-9]+[[:space:]]*)('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ) <'f|'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <")/printf '%06d' '"> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ) <"1'; printf '"> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <"2'/e"> ) } ) (C {<recover_lines>}) ] negated: F ) ] ) ) (command.ShFunction name: use_src_realpaths body: (command.BraceGroup children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (command.Simple words: [ {<read>} {<-r>} {<alloc_sourcefile>} {<alloc_sourceline>} {<alloc_fun>} {<alloc_rest>} ] more_env: [ (env_pair name: IFS val: { (single_quoted left: <Id.Left_SingleQuoteC "$'"> tokens: [<Id.Char_OneChar '\\t'>] ) } spids: [148] ) ] ) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {(DQ <'Saw alloc_rest: '> ($ Id.VSub_DollarName '$alloc_rest'))}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '1>&'> fd:1 arg_word:{<2>})] ) (C {<echo>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<readlink>} {<-f>} {($ Id.VSub_DollarName '$alloc_sourcefile')}) ] ) ) ) (single_quoted left:<Id.Left_SingleQuoteC "$'"> tokens:[<Id.Char_OneChar '\\t'>]) (DQ ($ Id.VSub_DollarName '$alloc_sourceline')) (single_quoted left:<Id.Left_SingleQuoteC "$'"> tokens:[<Id.Char_OneChar '\\t'>]) (DQ ($ Id.VSub_DollarName '$alloc_fun')) (single_quoted left:<Id.Left_SingleQuoteC "$'"> tokens:[<Id.Char_OneChar '\\t'>]) (DQ ($ Id.VSub_DollarName '$alloc_rest')) } ) ] ) ) ] ) ) (C {<.>} { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<dirname>} {($ Id.VSub_Number '$0')})]) ) </debug-funcs.sh> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:our_name) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<basename>} {(DQ ($ Id.VSub_Number '$0'))})] ) ) ) } spids: [230] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:our_name_rewritten) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$our_name'))}) (C {<sed>} {(SQ <'s/gather-\\(.*\\)\\.sh/gather-\\1/'>)}) ] negated: F ) ] ) ) ) } spids: [241] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_obj_allocs_file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [263] ) ] ) (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_DollarName '$all_obj_allocs_file'))}) (C {<cut>} {<-f1>}) (C {<sort>}) (C {<uniq>}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read>} {<obj>} {<rest>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} { (DQ <'Saw line '> ($ Id.VSub_DollarName '$obj') <' '> ($ Id.VSub_DollarName '$rest') ) } ] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '1>&'> fd:1 arg_word:{<2>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_cus_info) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<get_cu_info>} {(DQ ($ Id.VSub_DollarName '$obj'))})] ) ) ) } spids: [324] ) ] ) (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$all_cus_info'))}) (command.WhileUntil keyword: <Id.KW_While while> cond: [(command.Sentence child:(C {<read_cu_info>}) terminator:<Id.Op_Semi _>)] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$cu_language_num'))} arms: [ (case_arm pat_list: [{<1>} {<2>} {<12>}] action: [ (C { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<dirname>} {(DQ ($ Id.VSub_Number '$0'))})] ) ) </lang/c/bin/c-> (DQ ($ Id.VSub_DollarName '$our_name_rewritten')) } {(DQ ($ Id.VSub_DollarName '$cu_sourcepath'))} {(DQ ($ Id.VSub_DollarName '$obj'))} {(DQ ($ Id.VSub_DollarName '$cu_fname'))} {(DQ ($ Id.VSub_DollarName '$cu_compdir'))} ) ] spids: [365 371 406 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} { (DQ < 'Warning: could not gather source-level allocs for unknown language: ' > ($ Id.VSub_DollarName '$cu_language_fullstr') <' ('> ($ Id.VSub_DollarName '$cu_language_num') <', '> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {<-n>} { (DQ ($ Id.VSub_DollarName '$cu_language_fullstr' ) ) } ) (C {<hd>}) ] negated: F ) ] ) ) <')'> ) } ] redirects: [ (redir.Redir op: <Id.Redir_GreatAnd '1>&'> fd: 1 arg_word: {<2>} ) ] ) ] spids: [409 411 447 -1] ) ] ) ] ) ) ] negated: F ) ] ) ) (C {<pad_numbers>}) (C {<sort>} {<-t> (single_quoted left:<Id.Left_SingleQuoteC "$'"> tokens:[<Id.Char_OneChar '\\t'>])} {<-k1>} {<-k2>} ) (C {<uniq>}) ] negated: F ) ] )