(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:locatedb)
          op: Equal
          rhs: {(DQ (/var/locate.db))}
          spids: [17]
        )
      ]
      spids: [17]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:slocatedb)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$HOME') (/.slocatedb))}
          spids: [22]
        )
      ]
      spids: [22]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {($ VSub_Name '$slocatedb')} {(-o)} 
                  {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (--explain))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(DQ (EOF))}
                  here_end_span_id: 74
                  stdin_parts: [
                    ('Warning: Secure locate keeps a private database for each user, and your\n')
                    ("database hasn't yet been created. Until it is (probably late tonight),\n")
                    ("I'll just use the public locate database, which will show you all\n")
                    ('publicly accessible matches rather than those explicitly available to\n')
                    ('account ${USER:-$LOGNAME}.\n')
                  ]
                )
                (Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                          {(DQ (--explain))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})]
                  spids: [16777215 94]
                )
              ]
              spids: [16777215 102]
            )
            (C {(touch)} {($ VSub_Name '$slocatedb')})
            (C {(chmod)} {(600)} {($ VSub_Name '$slocatedb')})
          ]
          spids: [16777215 55]
        )
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-s)} {($ VSub_Name '$slocatedb')} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:locatedb)
                  op: Equal
                  rhs: {($ VSub_Name '$slocatedb')}
                  spids: [148]
                )
              ]
              spids: [148]
            )
          ]
          spids: [133 145]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(echo)}
            {
              (DQ ('Warning: using public database. Use ') 
                (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Number '$0') (' --explain') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' for details.')
              )
            }
          ]
          redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
        )
      ]
      spids: [151 168]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' pattern'))}]
                  redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                )
              terminator: <Op_Semi ';'>
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 185]
        )
      ]
      spids: [16777215 204]
    )
    (C {(exec)} {(grep)} {(-i)} {(DQ ($ VSub_Number '$1'))} {($ VSub_Name '$locatedb')})
  ]
)