// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __org_apache_lucene_queryParser_QueryParser__
#define __org_apache_lucene_queryParser_QueryParser__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace search
        {
          class Query;
        }
        namespace analysis
        {
          class Analyzer;
        }
        namespace queryParser
        {
          class QueryParser;
          class ParseException;
          class CharStream;
          class QueryParser$JJCalls;
          class Token;
          class QueryParserTokenManager;
          class QueryParser$Operator;
        }
      }
    }
  }
}

class org::apache::lucene::queryParser::QueryParser : public ::java::lang::Object
{
public:
  QueryParser (::java::lang::String *, ::org::apache::lucene::analysis::Analyzer *);
  virtual ::org::apache::lucene::search::Query *parse (::java::lang::String *);
  virtual ::org::apache::lucene::analysis::Analyzer *getAnalyzer () { return analyzer; }
  virtual ::java::lang::String *getField () { return field; }
  virtual jfloat getFuzzyMinSim () { return fuzzyMinSim; }
  virtual void setFuzzyMinSim (jfloat);
  virtual jint getFuzzyPrefixLength () { return fuzzyPrefixLength; }
  virtual void setFuzzyPrefixLength (jint);
  virtual void setPhraseSlop (jint);
  virtual jint getPhraseSlop () { return phraseSlop; }
  virtual void setDefaultOperator (::org::apache::lucene::queryParser::QueryParser$Operator *);
  virtual ::org::apache::lucene::queryParser::QueryParser$Operator *getDefaultOperator () { return operator$; }
  virtual void setLowercaseExpandedTerms (jboolean);
  virtual jboolean getLowercaseExpandedTerms () { return lowercaseExpandedTerms; }
  virtual void setLocale (::java::util::Locale *);
  virtual ::java::util::Locale *getLocale () { return locale; }
public:  // actually protected
  virtual void addClause (::java::util::Vector *, jint, jint, ::org::apache::lucene::search::Query *);
  virtual ::org::apache::lucene::search::Query *getFieldQuery (::java::lang::String *, ::java::lang::String *);
  virtual ::org::apache::lucene::search::Query *getFieldQuery (::java::lang::String *, ::java::lang::String *, jint);
  virtual ::org::apache::lucene::search::Query *getRangeQuery (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, jboolean);
  virtual ::org::apache::lucene::search::Query *getBooleanQuery (::java::util::Vector *);
  virtual ::org::apache::lucene::search::Query *getBooleanQuery (::java::util::Vector *, jboolean);
  virtual ::org::apache::lucene::search::Query *getWildcardQuery (::java::lang::String *, ::java::lang::String *);
  virtual ::org::apache::lucene::search::Query *getPrefixQuery (::java::lang::String *, ::java::lang::String *);
  virtual ::org::apache::lucene::search::Query *getFuzzyQuery (::java::lang::String *, ::java::lang::String *, jfloat);
private:
  ::java::lang::String *discardEscapeChar (::java::lang::String *);
public:
  static ::java::lang::String *escape (::java::lang::String *);
  static void main (JArray< ::java::lang::String *> *);
  jint Conjunction ();
  jint Modifiers ();
  ::org::apache::lucene::search::Query *Query (::java::lang::String *);
  ::org::apache::lucene::search::Query *Clause (::java::lang::String *);
  ::org::apache::lucene::search::Query *Term (::java::lang::String *);
private:
  jboolean jj_2_1 (jint);
  jboolean jj_3_1 ();
  static void jj_la1_0_mth ();
public:
  QueryParser (::org::apache::lucene::queryParser::CharStream *);
  virtual void ReInit (::org::apache::lucene::queryParser::CharStream *);
  QueryParser (::org::apache::lucene::queryParser::QueryParserTokenManager *);
  virtual void ReInit (::org::apache::lucene::queryParser::QueryParserTokenManager *);
private:
  ::org::apache::lucene::queryParser::Token *jj_consume_token (jint);
  jboolean jj_scan_token (jint);
public:
  ::org::apache::lucene::queryParser::Token *getNextToken ();
  ::org::apache::lucene::queryParser::Token *getToken (jint);
private:
  jint jj_ntk ();
  void jj_add_error_token (jint, jint);
public:
  virtual ::org::apache::lucene::queryParser::ParseException *generateParseException ();
  void enable_tracing () { }
  void disable_tracing () { }
private:
  void jj_rescan_token ();
  void jj_save (jint, jint);
  static const jint CONJ_NONE = 0L;
  static const jint CONJ_AND = 1L;
  static const jint CONJ_OR = 2L;
  static const jint MOD_NONE = 0L;
  static const jint MOD_NOT = 10L;
  static const jint MOD_REQ = 11L;
public:
  static ::org::apache::lucene::queryParser::QueryParser$Operator *AND_OPERATOR;
  static ::org::apache::lucene::queryParser::QueryParser$Operator *OR_OPERATOR;
private:
  ::org::apache::lucene::queryParser::QueryParser$Operator * __attribute__((aligned(__alignof__( ::java::lang::Object )))) operator$;
public: // actually package-private
  jboolean lowercaseExpandedTerms;
  ::org::apache::lucene::analysis::Analyzer *analyzer;
  ::java::lang::String *field;
  jint phraseSlop;
  jfloat fuzzyMinSim;
  jint fuzzyPrefixLength;
  ::java::util::Locale *locale;
public:
  ::org::apache::lucene::queryParser::QueryParserTokenManager *token_source;
  ::org::apache::lucene::queryParser::Token *token;
  ::org::apache::lucene::queryParser::Token *jj_nt;
private:
  jint jj_ntk__;
  ::org::apache::lucene::queryParser::Token *jj_scanpos;
  ::org::apache::lucene::queryParser::Token *jj_lastpos;
  jint jj_la;
public:
  jboolean lookingAhead;
private:
  jboolean jj_semLA;
  jint jj_gen;
  jintArray jj_la1;
  static jintArray jj_la1_0;
  JArray< ::org::apache::lucene::queryParser::QueryParser$JJCalls *> *jj_2_rtns;
  jboolean jj_rescan;
  jint jj_gc;
  jboolean jj_ls;
  ::java::util::Vector *jj_expentries;
  jintArray jj_expentry;
  jint jj_kind;
  jintArray jj_lasttokens;
  jint jj_endpos;

  friend class org_apache_lucene_queryParser_QueryParser$JJCalls;
  friend class org_apache_lucene_queryParser_QueryParser$Operator;
  friend class org_apache_lucene_search_BooleanQuery$TooManyClauses;
  friend class org_apache_lucene_search_BooleanClause$Occur;
public:

  static ::java::lang::Class class$;
};

#endif /* __org_apache_lucene_queryParser_QueryParser__ */
