
com.jaeksoft.searchlib.query.parser.BooleanQueryParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of opensearchserver Show documentation
Show all versions of opensearchserver Show documentation
OpenSearchServer is a powerful, enterprise-class, search engine program. Using the web user interface,
the crawlers (web, file, database, ...) and the REST/RESTFul API you will be able to integrate quickly and
easily advanced full-text search capabilities in your application. OpenSearchServer runs on Windows and
Linux/Unix/BSD.
// Generated from com/jaeksoft/searchlib/query/parser/BooleanQuery.g4 by ANTLR 4.1
package com.jaeksoft.searchlib.query.parser;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class BooleanQueryParser extends Parser {
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
AND=1, OR=2, NOT=3, STRING=4, QSTRING=5, WS=6;
public static final String[] tokenNames = {
"", "AND", "OR", "NOT", "STRING", "QSTRING", "WS"
};
public static final int
RULE_expression = 0;
public static final String[] ruleNames = {
"expression"
};
@Override
public String getGrammarFileName() { return "BooleanQuery.g4"; }
@Override
public String[] getTokenNames() { return tokenNames; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public ATN getATN() { return _ATN; }
public BooleanQueryParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class ExpressionContext extends ParserRuleContext {
public int _p;
public Token phrase;
public Token word;
public Token op;
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public TerminalNode AND() { return getToken(BooleanQueryParser.AND, 0); }
public TerminalNode OR() { return getToken(BooleanQueryParser.OR, 0); }
public TerminalNode NOT() { return getToken(BooleanQueryParser.NOT, 0); }
public List expression() {
return getRuleContexts(ExpressionContext.class);
}
public TerminalNode STRING() { return getToken(BooleanQueryParser.STRING, 0); }
public TerminalNode QSTRING() { return getToken(BooleanQueryParser.QSTRING, 0); }
public ExpressionContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); }
public ExpressionContext(ParserRuleContext parent, int invokingState, int _p) {
super(parent, invokingState);
this._p = _p;
}
@Override public int getRuleIndex() { return RULE_expression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof BooleanQueryListener ) ((BooleanQueryListener)listener).enterExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof BooleanQueryListener ) ((BooleanQueryListener)listener).exitExpression(this);
}
}
public final ExpressionContext expression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState, _p);
ExpressionContext _prevctx = _localctx;
int _startState = 0;
enterRecursionRule(_localctx, RULE_expression);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(5);
switch (_input.LA(1)) {
case QSTRING:
{
setState(3); ((ExpressionContext)_localctx).phrase = match(QSTRING);
}
break;
case STRING:
{
setState(4); ((ExpressionContext)_localctx).word = match(STRING);
}
break;
default:
throw new NoViableAltException(this);
}
_ctx.stop = _input.LT(-1);
setState(14);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
while ( _alt!=2 && _alt!=-1 ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new ExpressionContext(_parentctx, _parentState, _p);
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(7);
if (!(3 >= _localctx._p)) throw new FailedPredicateException(this, "3 >= $_p");
setState(9);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << AND) | (1L << OR) | (1L << NOT))) != 0)) {
{
setState(8);
((ExpressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << AND) | (1L << OR) | (1L << NOT))) != 0)) ) {
((ExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
consume();
}
}
setState(11); expression(0);
}
}
}
setState(16);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 0: return expression_sempred((ExpressionContext)_localctx, predIndex);
}
return true;
}
private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 0: return 3 >= _localctx._p;
}
return true;
}
public static final String _serializedATN =
"\3\uacf5\uee8c\u4f5d\u8b0d\u4a45\u78bd\u1b2f\u3378\3\b\24\4\2\t\2\3\2"+
"\3\2\3\2\5\2\b\n\2\3\2\3\2\5\2\f\n\2\3\2\7\2\17\n\2\f\2\16\2\22\13\2\3"+
"\2\2\3\2\2\3\3\2\3\5\25\2\7\3\2\2\2\4\5\b\2\1\2\5\b\7\7\2\2\6\b\7\6\2"+
"\2\7\4\3\2\2\2\7\6\3\2\2\2\b\20\3\2\2\2\t\13\6\2\2\3\n\f\t\2\2\2\13\n"+
"\3\2\2\2\13\f\3\2\2\2\f\r\3\2\2\2\r\17\5\2\2\2\16\t\3\2\2\2\17\22\3\2"+
"\2\2\20\16\3\2\2\2\20\21\3\2\2\2\21\3\3\2\2\2\22\20\3\2\2\2\5\7\13\20";
public static final ATN _ATN =
ATNSimulator.deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy