![JAR search and dependency download from the Maven repository](/logo.png)
org.lockss.tdb.TdbQueryParser Maven / Gradle / Ivy
// Generated from org/lockss/tdb/TdbQueryParser.g4 by ANTLR 4.7.2
package org.lockss.tdb;
/* ===================================================================
WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING
If you are modifying a Java file with this warning in it, you are
making changes in the wrong place. This Java file was generated by
ANTLR from a grammar file. You should be editing the grammar file
instead.
=================================================================== */
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 TdbQueryParser extends Parser {
static { RuntimeMetaData.checkVersion("4.7.2", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
AND=1, OR=2, IS=3, NOT=4, SET=5, EQUALS=6, NOT_EQUALS=7, MATCHES=8, DOES_NOT_MATCH=9,
PAREN_OPEN=10, PAREN_CLOSE=11, STRING=12, IDENTIFIER=13, WHITESPACE=14;
public static final int
RULE_query = 0, RULE_orExpression = 1, RULE_andExpression = 2, RULE_expression = 3;
private static String[] makeRuleNames() {
return new String[] {
"query", "orExpression", "andExpression", "expression"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, "'and'", "'or'", "'is'", "'not'", "'set'", "'='", "'!='", "'~'",
"'!~'", "'('", "')'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "AND", "OR", "IS", "NOT", "SET", "EQUALS", "NOT_EQUALS", "MATCHES",
"DOES_NOT_MATCH", "PAREN_OPEN", "PAREN_CLOSE", "STRING", "IDENTIFIER",
"WHITESPACE"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "TdbQueryParser.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public TdbQueryParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class QueryContext extends ParserRuleContext {
public OrExpressionContext orExpression() {
return getRuleContext(OrExpressionContext.class,0);
}
public TerminalNode EOF() { return getToken(TdbQueryParser.EOF, 0); }
public QueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_query; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitQuery(this);
}
}
public final QueryContext query() throws RecognitionException {
QueryContext _localctx = new QueryContext(_ctx, getState());
enterRule(_localctx, 0, RULE_query);
try {
enterOuterAlt(_localctx, 1);
{
setState(8);
orExpression(0);
setState(9);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class OrExpressionContext extends ParserRuleContext {
public OrExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_orExpression; }
public OrExpressionContext() { }
public void copyFrom(OrExpressionContext ctx) {
super.copyFrom(ctx);
}
}
public static class Or2Context extends OrExpressionContext {
public OrExpressionContext orExpression() {
return getRuleContext(OrExpressionContext.class,0);
}
public TerminalNode OR() { return getToken(TdbQueryParser.OR, 0); }
public AndExpressionContext andExpression() {
return getRuleContext(AndExpressionContext.class,0);
}
public Or2Context(OrExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterOr2(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitOr2(this);
}
}
public static class Or1Context extends OrExpressionContext {
public AndExpressionContext andExpression() {
return getRuleContext(AndExpressionContext.class,0);
}
public Or1Context(OrExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterOr1(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitOr1(this);
}
}
public final OrExpressionContext orExpression() throws RecognitionException {
return orExpression(0);
}
private OrExpressionContext orExpression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
OrExpressionContext _localctx = new OrExpressionContext(_ctx, _parentState);
OrExpressionContext _prevctx = _localctx;
int _startState = 2;
enterRecursionRule(_localctx, 2, RULE_orExpression, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new Or1Context(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(12);
andExpression(0);
}
_ctx.stop = _input.LT(-1);
setState(19);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new Or2Context(new OrExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_orExpression);
setState(14);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(15);
match(OR);
setState(16);
andExpression(0);
}
}
}
setState(21);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class AndExpressionContext extends ParserRuleContext {
public AndExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_andExpression; }
public AndExpressionContext() { }
public void copyFrom(AndExpressionContext ctx) {
super.copyFrom(ctx);
}
}
public static class And2Context extends AndExpressionContext {
public AndExpressionContext andExpression() {
return getRuleContext(AndExpressionContext.class,0);
}
public TerminalNode AND() { return getToken(TdbQueryParser.AND, 0); }
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public And2Context(AndExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterAnd2(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitAnd2(this);
}
}
public static class And1Context extends AndExpressionContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public And1Context(AndExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterAnd1(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitAnd1(this);
}
}
public final AndExpressionContext andExpression() throws RecognitionException {
return andExpression(0);
}
private AndExpressionContext andExpression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
AndExpressionContext _localctx = new AndExpressionContext(_ctx, _parentState);
AndExpressionContext _prevctx = _localctx;
int _startState = 4;
enterRecursionRule(_localctx, 4, RULE_andExpression, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new And1Context(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(23);
expression();
}
_ctx.stop = _input.LT(-1);
setState(30);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,1,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new And2Context(new AndExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_andExpression);
setState(25);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(26);
match(AND);
setState(27);
expression();
}
}
}
setState(32);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,1,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class ExpressionContext extends ParserRuleContext {
public ExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression; }
public ExpressionContext() { }
public void copyFrom(ExpressionContext ctx) {
super.copyFrom(ctx);
}
}
public static class ExprStringContext extends ExpressionContext {
public TerminalNode IDENTIFIER() { return getToken(TdbQueryParser.IDENTIFIER, 0); }
public TerminalNode STRING() { return getToken(TdbQueryParser.STRING, 0); }
public TerminalNode IS() { return getToken(TdbQueryParser.IS, 0); }
public TerminalNode EQUALS() { return getToken(TdbQueryParser.EQUALS, 0); }
public TerminalNode NOT_EQUALS() { return getToken(TdbQueryParser.NOT_EQUALS, 0); }
public TerminalNode NOT() { return getToken(TdbQueryParser.NOT, 0); }
public ExprStringContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterExprString(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitExprString(this);
}
}
public static class ExprRegexContext extends ExpressionContext {
public TerminalNode IDENTIFIER() { return getToken(TdbQueryParser.IDENTIFIER, 0); }
public TerminalNode STRING() { return getToken(TdbQueryParser.STRING, 0); }
public TerminalNode MATCHES() { return getToken(TdbQueryParser.MATCHES, 0); }
public TerminalNode DOES_NOT_MATCH() { return getToken(TdbQueryParser.DOES_NOT_MATCH, 0); }
public ExprRegexContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterExprRegex(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitExprRegex(this);
}
}
public static class ExprSubContext extends ExpressionContext {
public TerminalNode PAREN_OPEN() { return getToken(TdbQueryParser.PAREN_OPEN, 0); }
public OrExpressionContext orExpression() {
return getRuleContext(OrExpressionContext.class,0);
}
public TerminalNode PAREN_CLOSE() { return getToken(TdbQueryParser.PAREN_CLOSE, 0); }
public ExprSubContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterExprSub(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitExprSub(this);
}
}
public static class ExprSetContext extends ExpressionContext {
public TerminalNode IDENTIFIER() { return getToken(TdbQueryParser.IDENTIFIER, 0); }
public TerminalNode IS() { return getToken(TdbQueryParser.IS, 0); }
public TerminalNode SET() { return getToken(TdbQueryParser.SET, 0); }
public TerminalNode NOT() { return getToken(TdbQueryParser.NOT, 0); }
public ExprSetContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).enterExprSet(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TdbQueryParserListener ) ((TdbQueryParserListener)listener).exitExprSet(this);
}
}
public final ExpressionContext expression() throws RecognitionException {
ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
enterRule(_localctx, 6, RULE_expression);
int _la;
try {
setState(56);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) {
case 1:
_localctx = new ExprSubContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(33);
match(PAREN_OPEN);
setState(34);
orExpression(0);
setState(35);
match(PAREN_CLOSE);
}
break;
case 2:
_localctx = new ExprSetContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(37);
match(IDENTIFIER);
setState(38);
match(IS);
setState(40);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(39);
match(NOT);
}
}
setState(42);
match(SET);
}
break;
case 3:
_localctx = new ExprStringContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(43);
match(IDENTIFIER);
setState(50);
_errHandler.sync(this);
switch (_input.LA(1)) {
case IS:
{
setState(44);
match(IS);
setState(46);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==NOT) {
{
setState(45);
match(NOT);
}
}
}
break;
case EQUALS:
{
setState(48);
match(EQUALS);
}
break;
case NOT_EQUALS:
{
setState(49);
match(NOT_EQUALS);
}
break;
default:
throw new NoViableAltException(this);
}
setState(52);
match(STRING);
}
break;
case 4:
_localctx = new ExprRegexContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(53);
match(IDENTIFIER);
setState(54);
_la = _input.LA(1);
if ( !(_la==MATCHES || _la==DOES_NOT_MATCH) ) {
_errHandler.recoverInline(this);
}
else {
if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
_errHandler.reportMatch(this);
consume();
}
setState(55);
match(STRING);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 1:
return orExpression_sempred((OrExpressionContext)_localctx, predIndex);
case 2:
return andExpression_sempred((AndExpressionContext)_localctx, predIndex);
}
return true;
}
private boolean orExpression_sempred(OrExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return precpred(_ctx, 2);
}
return true;
}
private boolean andExpression_sempred(AndExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 1:
return precpred(_ctx, 2);
}
return true;
}
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\20=\4\2\t\2\4\3\t"+
"\3\4\4\t\4\4\5\t\5\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\7\3\24\n\3\f\3"+
"\16\3\27\13\3\3\4\3\4\3\4\3\4\3\4\3\4\7\4\37\n\4\f\4\16\4\"\13\4\3\5\3"+
"\5\3\5\3\5\3\5\3\5\3\5\5\5+\n\5\3\5\3\5\3\5\3\5\5\5\61\n\5\3\5\3\5\5\5"+
"\65\n\5\3\5\3\5\3\5\3\5\5\5;\n\5\3\5\2\4\4\6\6\2\4\6\b\2\3\3\2\n\13\2"+
"A\2\n\3\2\2\2\4\r\3\2\2\2\6\30\3\2\2\2\b:\3\2\2\2\n\13\5\4\3\2\13\f\7"+
"\2\2\3\f\3\3\2\2\2\r\16\b\3\1\2\16\17\5\6\4\2\17\25\3\2\2\2\20\21\f\4"+
"\2\2\21\22\7\4\2\2\22\24\5\6\4\2\23\20\3\2\2\2\24\27\3\2\2\2\25\23\3\2"+
"\2\2\25\26\3\2\2\2\26\5\3\2\2\2\27\25\3\2\2\2\30\31\b\4\1\2\31\32\5\b"+
"\5\2\32 \3\2\2\2\33\34\f\4\2\2\34\35\7\3\2\2\35\37\5\b\5\2\36\33\3\2\2"+
"\2\37\"\3\2\2\2 \36\3\2\2\2 !\3\2\2\2!\7\3\2\2\2\" \3\2\2\2#$\7\f\2\2"+
"$%\5\4\3\2%&\7\r\2\2&;\3\2\2\2\'(\7\17\2\2(*\7\5\2\2)+\7\6\2\2*)\3\2\2"+
"\2*+\3\2\2\2+,\3\2\2\2,;\7\7\2\2-\64\7\17\2\2.\60\7\5\2\2/\61\7\6\2\2"+
"\60/\3\2\2\2\60\61\3\2\2\2\61\65\3\2\2\2\62\65\7\b\2\2\63\65\7\t\2\2\64"+
".\3\2\2\2\64\62\3\2\2\2\64\63\3\2\2\2\65\66\3\2\2\2\66;\7\16\2\2\678\7"+
"\17\2\289\t\2\2\29;\7\16\2\2:#\3\2\2\2:\'\3\2\2\2:-\3\2\2\2:\67\3\2\2"+
"\2;\t\3\2\2\2\b\25 *\60\64:";
public static final ATN _ATN =
new ATNDeserializer().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