(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:data) op:Equal rhs:{($ VSub_Number '$1')} spids:[87])]
      spids: [87]
    )
    (C {(shift)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cxx)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {($ VSub_Star '$*')})
                          (C {(sed)} {(SQ <s/-fgnu89-inline//>)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [93 105]
              )
            }
          spids: [92]
        )
      ]
      spids: [92]
    )
    (Pipeline
      children: [
        (WhileUntil
          keyword: <KW_While while>
          cond: [(Sentence child:(C {(read)} {(t)}) terminator:<Op_Semi ';'>)]
          body: 
            (DoGroup
              children: [
                (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$t') (':'))})
                (Pipeline
                  children: [
                    (C {($ VSub_Name '$cxx')} {(-S)} {(-xc) (Lit_Other '+') (Lit_Other '+')} {(-o)} {(-)} 
                      {(-D_GNU_SOURCE)} 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (SimpleCommand
                                  words: [{(cat)}]
                                  redirects: [
                                    (HereDoc
                                      op: <Redir_DLess '<<'>
                                      fd: 16777215
                                      here_begin: {(EOF)}
                                      here_end_span_id: 155
                                      stdin_parts: [
                                        ('#include <sys/types.h>\n')
                                        ('#include <sys/stat.h>\n')
                                        ('#include <sys/resource.h>\n')
                                        ('#include <unistd.h>\n')
                                        ('void foo (')
                                        ($ VSub_Name '$t')
                                        (') { }\n')
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                          left_token: <Left_ProcSubIn '<('>
                          spids: [141 156]
                        )
                      }
                    )
                    (C {(sed)} 
                      {
                        (SQ 
                          <
's/[[:space:]]*[.]globa\\?l[[:space:]]*_Z3foo\\([_[:alnum:]]*\\).*/\\1/p;d'
                          >
                        )
                      }
                    )
                  ]
                  negated: F
                )
              ]
              spids: [114 167]
            )
          redirects: [
            (HereDoc
              op: <Redir_DLess '<<'>
              fd: 16777215
              here_begin: {(EOF)}
              here_end_span_id: 242
              stdin_parts: [
                ('blkcnt64_t\n')
                ('blkcnt_t\n')
                ('blksize_t\n')
                ('caddr_t\n')
                ('clockid_t\n')
                ('clock_t\n')
                ('daddr_t\n')
                ('dev_t\n')
                ('fd_mask\n')
                ('fsblkcnt64_t\n')
                ('fsblkcnt_t\n')
                ('fsfilcnt64_t\n')
                ('fsfilcnt_t\n')
                ('fsid_t\n')
                ('gid_t\n')
                ('id_t\n')
                ('ino64_t\n')
                ('ino_t\n')
                ('int16_t\n')
                ('int32_t\n')
                ('int64_t\n')
                ('int8_t\n')
                ('intptr_t\n')
                ('key_t\n')
                ('loff_t\n')
                ('mode_t\n')
                ('nlink_t\n')
                ('off64_t\n')
                ('off_t\n')
                ('pid_t\n')
                ('pthread_attr_t\n')
                ('pthread_barrier_t\n')
                ('pthread_barrierattr_t\n')
                ('pthread_cond_t\n')
                ('pthread_condattr_t\n')
                ('pthread_key_t\n')
                ('pthread_mutex_t\n')
                ('pthread_mutexattr_t\n')
                ('pthread_once_t\n')
                ('pthread_rwlock_t\n')
                ('pthread_rwlockattr_t\n')
                ('pthread_spinlock_t\n')
                ('pthread_t\n')
                ('quad_t\n')
                ('register_t\n')
                ('rlim64_t\n')
                ('rlim_t\n')
                ('sigset_t\n')
                ('size_t\n')
                ('socklen_t\n')
                ('ssize_t\n')
                ('suseconds_t\n')
                ('time_t\n')
                ('u_char\n')
                ('uid_t\n')
                ('uint\n')
                ('u_int\n')
                ('u_int16_t\n')
                ('u_int32_t\n')
                ('u_int64_t\n')
                ('u_int8_t\n')
                ('ulong\n')
                ('u_long\n')
                ('u_quad_t\n')
                ('useconds_t\n')
                ('ushort\n')
                ('u_short\n')
              ]
            )
          ]
        )
        (C {(diff)} {(-N)} {(-U0)} {($ VSub_Name '$data')} {(-)})
      ]
      negated: F
    )
  ]
)