(CommandList
  children: [
    (FuncDef
      name: escape_eregexp
      body: 
        (BraceGroup
          children: [
            (C {(sed)} {(-r)} 
              {(SQ <'s/(\\*|\\.|\\[|\\^|\\$|\\[|\\]|\\||\\{|\\}|\\?|\\+|\\(|\\)|\\\\)/\\\\\\1/g'>)}
            )
          ]
          spids: [16]
        )
      spids: [11 15]
    )
    (FuncDef
      name: escapefn_eregexp
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [(C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(escape_eregexp)})]
              negated: False
            )
          ]
          spids: [43]
        )
      spids: [38 42]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:line_regexp)
          op: Equal
          rhs: {(SQ <'^[0-9a-f]* <([^>]*)>'>)}
          spids: [68]
        )
      ]
      spids: [68]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:alloc_site_regexp)
          op: Equal
          rhs: {(DQ (${ VSub_Name line_regexp) ('.*')) (SQ <'call.*alloc'>)}
          spids: [73]
        )
      ]
      spids: [73]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:allocation_sites)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(objdump)} {(--prefix-addresses)} {(-d)} {(DQ ($ VSub_Number '$1'))})
                            (C {(egrep)} {(DQ ($ VSub_Name '$alloc_site_regexp'))})
                            (C {(sed)} {(-r)} 
                              {
                                (DQ (s/) (${ VSub_Name alloc_site_regexp) ('.*/') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\1'>
                                  ) (/)
                                )
                              }
                            )
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [86 124]
                )
              )
            }
          spids: [84]
        )
      ]
      spids: [84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:objdump_output)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(objdump)} {(--prefix-addresses)} {(-dS)} {(DQ ($ VSub_Number '$1'))})
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [136 148]
                )
              )
            }
          spids: [134]
        )
      ]
      spids: [134]
    )
    (While
      cond: [(Sentence child:(C {(read)} {(sym)} {(offset)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:regexp)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('<') 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(escapefn_eregexp)} {(DQ ($ VSub_Name '$sym'))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [175 183]
                        ) (EscapedLiteralPart token:<Lit_EscapedChar '\\+'>) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(escapefn_eregexp)} {(DQ ($ VSub_Name '$offset'))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [185 192]
                        ) ('>')
                      )
                    }
                  spids: [172]
                )
              ]
              spids: [172]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('regexp: ') ($ VSub_Name '$regexp'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[204])]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:context)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name '$objdump_output'))})
                                    (C {(egrep)} {(-B200)} {(DQ ($ VSub_Name '$regexp'))})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [218 236]
                        )
                      )
                    }
                  spids: [216]
                )
              ]
              spids: [216]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('context: ') ($ VSub_Name '$context'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[250])]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:source)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name '$context'))})
                                    (C {(egrep)} {(-v)} {(DQ ($ VSub_Name '$line_regexp'))})
                                    (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [260 290]
                        )
                      )
                    }
                  spids: [258]
                )
              ]
              spids: [258]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:token)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ($ VSub_Name '$source'))})
                                    (C {(egrep)} {(SQ <'(new|sizeof)([^0-9a-z_]|$)'>)})
                                    (C {(sed)} {(-r)} {(SQ <'s/.*(new|sizeof)([^0-9a-zA-Z_]|$)/\\2/'>)})
                                    (C {(sed)} {(-r)} 
                                      {(SQ <'s/[^0-9a-zA-Z_]*([a-zA-Z0-9_ \\*]+).*/\\1/'>)}
                                    )
                                  ]
                                  negated: False
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [307 343]
                        )
                      )
                    }
                  spids: [305]
                )
              ]
              spids: [305]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('token: ') ($ VSub_Name '$token'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[357])]
            )
            (C {(echo)} 
              {
                (DQ ('Guessed that site <') (${ VSub_Name sym) ('+') (${ VSub_Name offset) 
                  ('> allocated: ') (${ VSub_Name token)
                )
              }
            )
          ]
          spids: [161 382]
        )
      redirects: [
        (Redir
          op_id: Redir_TLess
          fd: -1
          arg_word: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$allocation_sites'))})
                            (C {(sed)} {(-r)} {(SQ <'s/\\+(0x[0-9a-f]*)$/ \\1/'>)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [386 404]
                )
              )
            }
          spids: [384]
        )
      ]
    )
  ]
)