(command.CommandList
  children: [
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOM>}
              here_end_span_id: 94
              stdin_parts: [
                <'/*\n'>
                <' * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.\n'>
                <' * Use is subject to license terms.\n'>
                <' */\n'>
                <'\n'>
                <'/*\n'>
                <' * This file was generated during make.\n'>
                <' */\n'>
                <'\n'>
                <'#include <fm/libfmevent.h>\n'>
                <'\n'>
                <'static const char *_fmev_errstrs[] = {\n'>
              ]
            )
        )
      ]
      more_env: []
      do_fork: T
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pattern='> name:pattern)
          op: assign_op.Equal
          rhs: {(SQ <'^    \\(FMEVERR_[A-Z0-9_]*\\).*\\/\\* *\\(.*\\) *\\*\\/.*'>)}
          spids: [96]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'replace='> name:replace)
          op: assign_op.Equal
          rhs: {(SQ <'\t"\\2" \\/\\* \\1 \\*\\/,'>)}
          spids: [101]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<sed>} {<-n>} 
          {(DQ <'s/'> ($ Id.VSub_DollarName pattern) <'/'> ($ Id.VSub_DollarName replace) <'/p'>)} {($ Id.VSub_Number 1)}
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOM>}
              here_end_span_id: 151
              stdin_parts: [
                <'};\n'>
                <'\n'>
                <'static const int _fmev_nerrs =\n'>
                <'    sizeof (_fmev_errstrs) / sizeof (_fmev_errstrs[0]);\n'>
                <'\n'>
                <'const char *\n'>
                <'fmev_strerror(fmev_err_t err)\n'>
                <'{\n'>
                <'\tconst char *s;\n'>
                <'\n'>
                <'\tif (err >= FMEVERR_UNKNOWN && (err - FMEVERR_UNKNOWN < _fmev_nerrs))\n'>
                <'\t\ts = _fmev_errstrs[err - FMEVERR_UNKNOWN];\n'>
                <'\telse\n'>
                <'\t\ts = _fmev_errstrs[0];\n'>
                <'\n'>
                <'\treturn (s);\n'>
                <'}\n'>
              ]
            )
        )
      ]
      more_env: []
      do_fork: T
    )
  ]
)