(command.CommandList children: [ (command.ShFunction name_tok: <fields_as_lines> name: fields_as_lines body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <'\\n'>)} {(SQ <'\\f'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/\\f/\\f\\n/g'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <'\\t'>)} {(SQ <'\\n'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <recover_lines> name: recover_lines body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <'\\n'>)} {(SQ <'\\t'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/\\f\\t/\\n/g'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <pad_numbers> name: pad_numbers body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <fields_as_lines> more_env: [] words: [{<fields_as_lines>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-r>} { (DQ <'s/^([[:space:]]*[0-9]+[[:space:]]*)('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'f|'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <')/printf \'%06d\' \''> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'1\'; printf \''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'2\'/e'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <recover_lines> more_env: [] words: [{<recover_lines>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <use_src_realpaths> name: use_src_realpaths body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <read> more_env: [ (EnvPair left: <Id.Lit_VarLike 'IFS='> name: IFS val: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) } ) ] words: [ {<read>} {<-r>} {<alloc_sourcefile>} {<alloc_sourceline>} {<alloc_fun>} {<alloc_rest>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] 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 ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <readlink> more_env: [] words: [{<readlink>} {<-f>} {($ Id.VSub_DollarName alloc_sourcefile)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) (DQ ($ Id.VSub_DollarName alloc_sourceline)) (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) (DQ ($ Id.VSub_DollarName alloc_fun)) (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) (DQ ($ Id.VSub_DollarName alloc_rest)) } ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {($ Id.VSub_Number 0)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/debug-funcs.sh'> } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'our_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'our_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'our_name='> name:our_name) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {(DQ ($ Id.VSub_Number 0))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'our_name_rewritten='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'our_name_rewritten='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'our_name_rewritten='> name:our_name_rewritten) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName our_name))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/gather-\\(.*\\)\\.sh/gather-\\1/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'all_obj_allocs_file='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'all_obj_allocs_file='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'all_obj_allocs_file='> name: all_obj_allocs_file ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(DQ ($ Id.VSub_DollarName all_obj_allocs_file))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-f1>}] redirects: [] do_fork: T ) (command.Simple blame_tok:<sort> more_env:[] words:[{<sort>}] redirects:[] do_fork:T) (command.Simple blame_tok:<uniq> more_env:[] words:[{<uniq>}] redirects:[] do_fork:T) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<obj>} {<rest>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] 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 left: <Id.Lit_VarLike 'all_cus_info='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'all_cus_info='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'all_cus_info='> name:all_cus_info) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <get_cu_info> more_env: [] words: [{<get_cu_info>} {(DQ ($ Id.VSub_DollarName obj))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName all_cus_info))}] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <read_cu_info> more_env: [] words: [{<read_cu_info>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName cu_language_num))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Op_LParen _> pattern: (pat.Words words:[{<1>} {<2>} {<12>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <Id.Left_DollarParen '$('> more_env: [] words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ ($ Id.VSub_Number 0))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/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))} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Op_LParen _> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] 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) <', '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-n>} { (DQ ($ Id.VSub_DollarName cu_language_fullstr) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <hd> more_env: [] words: [{<hd>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) <')'> ) } ] redirects: [ (Redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <pad_numbers> more_env: [] words: [{<pad_numbers>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [ {<sort>} {<-t> (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) } {<-k1>} {<-k2>} ] redirects: [] do_fork: T ) (command.Simple blame_tok:<uniq> more_env:[] words:[{<uniq>}] redirects:[] do_fork:T) ] ops: [ <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> ] ) ] )