(command.CommandList
  children: [
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [{<Id.Lit_Colon ':'>} {<generate>} {<preroot>} {<features>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <0>
          pattern: (pat.Words words:[{<0>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <'/etc/preroot'>
                  more_env: []
                  words: [{<'/etc/preroot'>} {<'/'>} {<'/bin/echo'>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                  ]
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<Id.KW_Bang '!'>}
                      here_end_tok: <Id.Undefined_Tok ''>
                      stdin_parts: [
                        <'#pragma prototyped\n'>
                        <'\n'>
                        <'#define FS_PREROOT\t1\t\t\t/* preroot enabled\t*/\n'>
                        <'#define PR_BASE\t\t'>
                        <Id.Right_DoubleQuote '"'>
                        <CCS>
                        <Id.Right_DoubleQuote '"'>
                        <'\t\t\t/* preroot base env var\t*/\n'>
                        <'#define PR_COMMAND\t'>
                        <Id.Right_DoubleQuote '"'>
                        <'/etc/preroot'>
                        <Id.Right_DoubleQuote '"'>
                        <'\t\t/* the preroot command\t*/\n'>
                        <'#define PR_REAL\t\t'>
                        <Id.Right_DoubleQuote '"'>
                        <'/dev/..'>
                        <Id.Right_DoubleQuote '"'>
                        <'\t\t/* real root pathname\t*/\n'>
                        <'#define PR_SILENT\t'>
                        <Id.Right_DoubleQuote '"'>
                        <CCSQUIET>
                        <Id.Right_DoubleQuote '"'>
                        <'\t\t/* no command trace\t*/\n'>
                        <'\n'>
                        <'extern char*\t\tgetpreroot(char*, const char*);\n'>
                        <'extern int\t\tispreroot(const char*);\n'>
                        <'extern int\t\trealopen(const char*, int, int);\n'>
                        <'extern void\t\tsetpreroot(char**, const char*);\n'>
                        <'\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
          ]
          spids: [97 108]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {(DQ <'/* preroot not enabled */'>)}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
  ]
)