(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:temp)
          op: Equal
          rhs: 
            {
              (DQ (/tmp/) 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                  left_token: <Left_CommandSub '$('>
                  spids: [13 17]
                ) (.) ($ VSub_Dollar '$$')
              )
            }
          spids: [10]
        )
      ]
      spids: [10]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:htdocs)
          op: Equal
          rhs: {(DQ (/usr/local/etc/httpd/htdocs/))}
          spids: [30]
        )
      ]
      spids: [30]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:myhome)
          op: Equal
          rhs: {(DQ (/usr/home/taylor/))}
          spids: [35]
        )
      ]
      spids: [35]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:cgibin)
          op: Equal
          rhs: {(DQ (/usr/local/etc/httpd/cgi-bin/))}
          spids: [40]
        )
      ]
      spids: [40]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sedstr)
          op: Equal
          rhs: 
            {
              (DQ ('s/^/  /g;s|') ($ VSub_Name '$htdocs') ('|[htdocs]  |;s|') ($ VSub_Name '$myhome') 
                ('|[homedir] |;s|') ($ VSub_Name '$cgibin') ('|[cgi-bin] |')
              )
            }
          spids: [46]
        )
      ]
      spids: [46]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:screen)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'(File does not exist|Invalid error redirect|premature EOF|Premature end of script|script not found)'
                )
              )
            }
          spids: [58]
        )
      ]
      spids: [58]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:length) op:Equal rhs:{(5)} spids:[65])]
      spids: [65]
    )
    (FuncDef
      name: checkfor
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(grep)} {(DQ (${ VSub_Number 2) (':'))} {(DQ ($ VSub_Number '$1'))})
                (C {(awk)} {(SQ <'{print $NF}'>)})
                (C {(sort)})
                (C {(uniq)} {(-c)})
                (C {(sort)} {(-rn)})
                (C {(head)} {(-) ($ VSub_Name '$length')})
                (SimpleCommand
                  words: [{(sed)} {(DQ ($ VSub_Name '$sedstr'))}]
                  redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$temp')})]
                )
              ]
              negated: F
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (SimpleCommand
                                      words: [{(wc)} {(-l)}]
                                      redirects: [
                                        (Redir
                                          op: <Redir_Less '<'>
                                          fd: 16777215
                                          arg_word: {($ VSub_Name '$temp')}
                                        )
                                      ]
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [143 151]
                            )
                          } {(-gt)} {(0)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ )})
                    (C {(echo)} {(DQ ($ VSub_Number '$2') (' errors:'))})
                    (C {(cat)} {($ VSub_Name '$temp')})
                  ]
                  spids: [16777215 161]
                )
              ]
              spids: [16777215 183]
            )
          ]
          spids: [77]
        )
      spids: [72 75]
    )
    (C {(trap)} 
      {
        (DQ 
          (CommandSubPart
            command_list: (CommandList children:[(C {(which)} {(rm)})])
            left_token: <Left_Backtick '`'>
            spids: [191 195]
          ) (' -f ') ($ VSub_Name '$temp')
        )
      } {(0)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-l))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:length)
                      op: Equal
                      rhs: {($ VSub_Number '$2')}
                      spids: [224]
                    )
                  ]
                  spids: [224]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)} {(2)})
          ]
          spids: [16777215 221]
        )
      ]
      spids: [16777215 232]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(1)} {(-o)} {(KW_Bang '!')} {(-r)} 
                  {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                      left_token: <Left_CommandSub '$('>
                      spids: [266 270]
                    ) (' [-l len] error_log')
                  )
                }
              ]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 259]
        )
      ]
      spids: [16777215 282]
    )
    (C {(echo)} {(Input)} {(file)} {($ VSub_Number '$1')} {(has)} 
      {
        (CommandSubPart
          command_list: 
            (CommandList
              children: [
                (SimpleCommand
                  words: [{(wc)} {(-l)}]
                  redirects: [
                    (Redir
                      op: <Redir_Less '<'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Number '$1'))}
                    )
                  ]
                )
              ]
            )
          left_token: <Left_CommandSub '$('>
          spids: [295 305]
        )
      } {(entries.)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(grep)} {(-E)} {(SQ <'\\[.*:.*:.*\\]'>)} {(DQ ($ VSub_Number '$1'))})
                            (C {(head)} {(-1)})
                            (C {(awk)} {(SQ <'{print $1" "$2" "$3" "$4" "$5 }'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [312 338]
                )
              )
            }
          spids: [310]
        )
      ]
      spids: [310]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:end)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(grep)} {(-E)} {(SQ <'\\[.*:.*:.*\\]'>)} {(DQ ($ VSub_Number '$1'))})
                            (C {(tail)} {(-1)})
                            (C {(awk)} {(SQ <'{print $1" "$2" "$3" "$4" "$5 }'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [343 369]
                )
              )
            }
          spids: [341]
        )
      ]
      spids: [341]
    )
    (C {(/bin/echo)} {(-n)} {(DQ ('Entries from ') ($ VSub_Name '$start') (' to ') ($ VSub_Name '$end'))})
    (C {(echo)} {(DQ )})
    (C {(checkfor)} {(DQ ($ VSub_Number '$1'))} {(DQ ('File does not exist'))})
    (C {(checkfor)} {(DQ ($ VSub_Number '$1'))} {(DQ ('Invalid error redirection directive'))})
    (C {(checkfor)} {(DQ ($ VSub_Number '$1'))} {(DQ ('premature EOF'))})
    (C {(checkfor)} {(DQ ($ VSub_Number '$1'))} {(DQ ('script not found or unable to stat'))})
    (C {(checkfor)} {(DQ ($ VSub_Number '$1'))} {(DQ ('Premature end of script headers'))})
    (Pipeline
      children: [
        (C {(grep)} {(-vE)} {(DQ ($ VSub_Name '$screen'))} {(DQ ($ VSub_Number '$1'))})
        (C {(grep)} {(DQ (Lit_Other '\\') ('[error') (Lit_Other '\\') (']'))})
        (C {(grep)} {(DQ (Lit_Other '\\') ('[client '))})
        (C {(sed)} {(SQ <'s/\\[error\\]/\\`/'>)})
        (C {(cut)} {(-d) (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>)} {(-f2)})
        (C {(cut)} {(-d) (EscapedLiteralPart token:<Lit_EscapedChar '\\ '>)} {(-f4-)})
        (C {(sort)})
        (C {(uniq)} {(-c)})
        (C {(sort)} {(-rn)})
        (C {(sed)} {(SQ <'s/^/  /'>)})
        (SimpleCommand
          words: [{(head)} {(-) ($ VSub_Name '$length')}]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$temp')})]
        )
      ]
      negated: F
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} 
                  {
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (SimpleCommand
                              words: [{(wc)} {(-l)}]
                              redirects: [
                                (Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: {($ VSub_Name '$temp')}
                                )
                              ]
                            )
                          ]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [548 556]
                    )
                  } {(-gt)} {(0)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ )})
            (C {(echo)} {(DQ ('Additional error messages in log file:'))})
            (C {(cat)} {($ VSub_Name '$temp')})
          ]
          spids: [16777215 566]
        )
      ]
      spids: [16777215 586]
    )
    (C {(echo)} {(DQ )})
    (C {(echo)} {(DQ ('And non-error messages occurring in the log file:'))})
    (Pipeline
      children: [
        (C {(grep)} {(-vE)} {(DQ ($ VSub_Name '$screen'))} {(DQ ($ VSub_Number '$1'))})
        (C {(grep)} {(-v)} {(DQ (Lit_Other '\\') ('[error') (Lit_Other '\\') (']'))})
        (C {(sort)})
        (C {(uniq)} {(-c)})
        (C {(sort)} {(-rn)})
        (C {(sed)} {(SQ <'s/^/  /'>)})
        (C {(head)} {(-) ($ VSub_Name '$length')})
      ]
      negated: F
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)