(command.CommandList
  children: [
    (C {<echo>} {(DQ <'! Generated automatically.  DO NOT EDIT!'>)})
    (C {<echo>})
    (C {<echo>} {(DQ <'  include \'fftw3.f03\''>)})
    (C {<echo>})
    (command.Pipeline
      children: [
        (command.Simple
          words: [
            {<perl>}
            {<-pe>}
            {
              (SQ 
                <
's/#define +([A-Z0-9_]+) +\\(([+-]?[0-9]+)U?\\)/\\n  integer\\(C_INTPTR_T\\), parameter :: \\1 = \\2\\n/g'
                >
              )
            }
          ]
          redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<fftw3-mpi.h>})]
          more_env: []
          do_fork: T
        )
        (C {<grep>} {(SQ <'integer(C_INTPTR_T)'>)})
      ]
      negated: F
      stderr_indices: []
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [
            {<perl>}
            {<-pe>}
            {
              (SQ 
                <
'if (/#define +([A-Z0-9_]+) +\\(([0-9]+)U? *<< *([0-9]+)\\)/) { print "\\n  integer\\(C_INT\\), parameter :: $1 = ",$2 << $3,"\\n"; }'
                >
              )
            }
          ]
          redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<fftw3-mpi.h>})]
          more_env: []
          do_fork: T
        )
        (C {<grep>} {(SQ <'integer(C_INT)'>)})
      ]
      negated: F
      stderr_indices: []
    )
    (command.ForEach
      iter_names: [p]
      iterable: (for_iter.Words words:[{(DQ )} {(DQ <f>)} {(DQ <l>)}])
      body: 
        (command.DoGroup
          children: [
            (C {<echo>})
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 148
                      stdin_parts: [
                        <'  type, bind(C) :: fftw'>
                        (${ Id.VSub_Name p)
                        <'_mpi_ddim\n'>
                        <'     integer(C_INTPTR_T) n, ib, ob\n'>
                        <'  end type fftw'>
                        (${ Id.VSub_Name p)
                        <'_mpi_ddim\n'>
                      ]
                    )
                )
              ]
              more_env: []
              do_fork: T
            )
            (C {<echo>})
            (C {<echo>} {(DQ <'  interface'>)})
            (command.Pipeline
              children: [
                (C {<grep>} {<-v>} {(SQ <mpi.h>)} {<fftw3-mpi.h>})
                (C {<gcc>} {<-E>} {<->})
                (C {<grep>} {(DQ <fftw> (${ Id.VSub_Name p) <_mpi_init>)})
                (C {<tr>} {(SQ <';'>)} {(SQ <'\\n'>)})
                (C {<perl>} {<'../api/genf03.pl'>})
              ]
              negated: F
              stderr_indices: []
            )
            (C {<echo>} {(DQ <'  end interface'>)})
          ]
        )
      redirects: []
    )
  ]
)