(CommandList
  children: [
    (FuncDef
      name: fields_as_lines
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(tr)} {(SQ <'\\n'>)} {(SQ <'\\f'>)})
                (C {(sed)} {(SQ <'s/\\f/\\f\\n/g'>)})
                (C {(tr)} {(SQ <'\\t'>)} {(SQ <'\\n'>)})
              ]
              negated: False
            )
          ]
          spids: [12]
        )
      spids: [7 11]
    )
    (FuncDef
      name: recover_lines
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [(C {(tr)} {(SQ <'\\n'>)} {(SQ <'\\t'>)}) (C {(sed)} {(SQ <'s/\\f\\t/\\n/g'>)})]
              negated: False
            )
          ]
          spids: [61]
        )
      spids: [56 60]
    )
    (FuncDef
      name: pad_numbers
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(fields_as_lines)})
                (C {(sed)} {(-r)} 
                  {
                    (DQ ('s/^([[:space:]]*[0-9]+[[:space:]]*)(') 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ('f|') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (")/printf '%06d' '") 
                      (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ("1'; printf '") (EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ("2'/e")
                    )
                  }
                )
                (C {(recover_lines)})
              ]
              negated: False
            )
          ]
          spids: [92]
        )
      spids: [87 91]
    )
    (FuncDef
      name: use_src_realpaths
      body: 
        (BraceGroup
          children: [
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [
                        {(read)}
                        {(-r)}
                        {(alloc_sourcefile)}
                        {(alloc_sourceline)}
                        {(alloc_fun)}
                        {(alloc_rest)}
                      ]
                      more_env: [(env_pair name:IFS val:{(SQ <Lit_EscapedChar '\\t'>)} spids:[148])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('Saw alloc_rest: ') ($ VSub_Name '$alloc_rest'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[176])]
                    )
                    (C {(echo)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(readlink)} {(-f)} {($ VSub_Name '$alloc_sourcefile')})]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [183 190]
                          )
                        ) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$alloc_sourceline')) (SQ <Lit_EscapedChar '\\t'>) 
                        (DQ ($ VSub_Name '$alloc_fun')) (SQ <Lit_EscapedChar '\\t'>) (DQ ($ VSub_Name '$alloc_rest'))
                      }
                    )
                  ]
                  spids: [166 212]
                )
            )
          ]
          spids: [143]
        )
      spids: [138 142]
    )
    (C {(.)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number '$0')})])
          left_token: <Left_CommandSub '$('>
          spids: [222 226]
        ) (/debug-funcs.sh)
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:our_name)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(basename)} {(DQ ($ VSub_Number '$0'))})])
                  left_token: <Left_CommandSub '$('>
                  spids: [232 238]
                )
              )
            }
          spids: [230]
        )
      ]
      spids: [230]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:our_name_rewritten)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$our_name'))})
                            (C {(sed)} {(SQ <'s/gather-\\(.*\\)\\.sh/gather-\\1/'>)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [243 259]
                )
              )
            }
          spids: [241]
        )
      ]
      spids: [241]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:all_obj_allocs_file)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$1'))}
          spids: [263]
        )
      ]
      spids: [263]
    )
    (Pipeline
      children: [
        (C {(cat)} {(DQ ($ VSub_Name '$all_obj_allocs_file'))})
        (C {(cut)} {(-f1)})
        (C {(sort)})
        (C {(uniq)})
        (While
          cond: [(Sentence child:(C {(read)} {(obj)} {(rest)}) terminator:<Op_Semi ';'>)]
          body: 
            (DoGroup
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ('Saw line ') ($ VSub_Name '$obj') (' ') ($ VSub_Name '$rest'))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[320])]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:all_cus_info)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(get_cu_info)} {(DQ ($ VSub_Name '$obj'))})]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [326 334]
                            )
                          )
                        }
                      spids: [324]
                    )
                  ]
                  spids: [324]
                )
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Name '$all_cus_info'))})
                    (While
                      cond: [(Sentence child:(C {(read_cu_info)}) terminator:<Op_Semi ';'>)]
                      body: 
                        (DoGroup
                          children: [
                            (Case
                              to_match: {(DQ ($ VSub_Name '$cu_language_num'))}
                              arms: [
                                (case_arm
                                  pat_list: [{(1)} {(2)} {(12)}]
                                  action: [
                                    (C 
                                      {
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [(C {(dirname)} {(DQ ($ VSub_Number '$0'))})]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [377 383]
                                        ) (/lang/c/bin/c-) (DQ ($ VSub_Name '$our_name_rewritten'))
                                      } {(DQ ($ VSub_Name '$cu_sourcepath'))} {(DQ ($ VSub_Name '$obj'))} {(DQ ($ VSub_Name '$cu_fname'))} 
                                      {(DQ ($ VSub_Name '$cu_compdir'))}
                                    )
                                  ]
                                  spids: [365 371 406 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(echo)}
                                        {
                                          (DQ 
                                            (
'Warning: could not gather source-level allocs for unknown language: '
                                            ) ($ VSub_Name '$cu_language_fullstr') (' (') ($ VSub_Name '$cu_language_num') (', ') 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(-n)} 
                                                          {(DQ ($ VSub_Name '$cu_language_fullstr'))}
                                                        )
                                                        (C {(hd)})
                                                      ]
                                                      negated: False
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [425 439]
                                            ) (')')
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_GreatAnd
                                          fd: 1
                                          arg_word: {(2)}
                                          spids: [443]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [409 411 447 16777215]
                                )
                              ]
                              spids: [356 362 450]
                            )
                          ]
                          spids: [353 453]
                        )
                    )
                  ]
                  negated: False
                )
              ]
              spids: [308 455]
            )
        )
        (C {(pad_numbers)})
        (C {(sort)} {(-t) (SQ <Lit_EscapedChar '\\t'>)} {(-k1)} {(-k2)})
        (C {(uniq)})
      ]
      negated: False
    )
  ]
)