(command.CommandList children: [ (command.ShFunction name: fields_as_lines body: (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: (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: (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: (BraceGroup children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (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_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] multiline: F ) } spids: [148] ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {(DQ <'Saw alloc_rest: '> ($ Id.VSub_DollarName '$alloc_rest'))}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) (C {<echo>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {<-f>} {($ Id.VSub_DollarName '$alloc_sourcefile')}) ) ) (single_quoted left:<Id.Left_DollarSingleQuote '$\''> tokens:[<Id.Char_OneChar '\\t'>] multiline:F) (DQ ($ Id.VSub_DollarName '$alloc_sourceline')) (single_quoted left:<Id.Left_DollarSingleQuote '$\''> tokens:[<Id.Char_OneChar '\\t'>] multiline:F) (DQ ($ Id.VSub_DollarName '$alloc_fun')) (single_quoted left:<Id.Left_DollarSingleQuote '$\''> tokens:[<Id.Char_OneChar '\\t'>] multiline:F) (DQ ($ Id.VSub_DollarName '$alloc_rest')) } ) ] ) ) ] ) ) (C {<.>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (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 '$('> child: (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 '$('> child: (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: (condition.Shell commands: [ (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 op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (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 '$('> child: (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: (condition.Shell commands: [ (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 '$('> child: (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 '$('> child: (command.Pipeline children: [ (C {<echo>} {<-n>} { (DQ ($ Id.VSub_DollarName '$cu_language_fullstr' ) ) } ) (C {<hd>}) ] negated: F ) ) <')'> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] spids: [409 411 447 -1] ) ] ) ] ) ) ] negated: F ) ] ) ) (C {<pad_numbers>}) (C {<sort>} {<-t> (single_quoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] multiline: F ) } {<-k1>} {<-k2>} ) (C {<uniq>}) ] negated: F ) ] )