
io.mindmaps.graql.internal.parser.GraqlParser Maven / Gradle / Ivy
// Generated from io/mindmaps/graql/internal/parser/Graql.g4 by ANTLR 4.5
package io.mindmaps.graql.internal.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 GraqlParser extends Parser {
static { RuntimeMetaData.checkVersion("4.5", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17,
T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24,
T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31,
T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38,
T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, DATATYPE=45,
ORDER=46, BOOLEAN=47, VARIABLE=48, ID=49, STRING=50, REGEX=51, INTEGER=52,
REAL=53, COMMENT=54, WS=55, DOLLAR=56;
public static final int
RULE_queryEOF = 0, RULE_query = 1, RULE_matchEOF = 2, RULE_askEOF = 3,
RULE_insertEOF = 4, RULE_deleteEOF = 5, RULE_aggregateEOF = 6, RULE_computeEOF = 7,
RULE_matchQuery = 8, RULE_askQuery = 9, RULE_insertQuery = 10, RULE_deleteQuery = 11,
RULE_aggregateQuery = 12, RULE_computeQuery = 13, RULE_subgraph = 14,
RULE_aggregate = 15, RULE_argument = 16, RULE_namedAgg = 17, RULE_patterns = 18,
RULE_pattern = 19, RULE_varPatterns = 20, RULE_varPattern = 21, RULE_property = 22,
RULE_casting = 23, RULE_variable = 24, RULE_predicate = 25, RULE_value = 26,
RULE_patternSep = 27, RULE_id = 28;
public static final String[] ruleNames = {
"queryEOF", "query", "matchEOF", "askEOF", "insertEOF", "deleteEOF", "aggregateEOF",
"computeEOF", "matchQuery", "askQuery", "insertQuery", "deleteQuery",
"aggregateQuery", "computeQuery", "subgraph", "aggregate", "argument",
"namedAgg", "patterns", "pattern", "varPatterns", "varPattern", "property",
"casting", "variable", "predicate", "value", "patternSep", "id"
};
private static final String[] _LITERAL_NAMES = {
null, "'match'", "'select'", "','", "';'", "'limit'", "'offset'", "'distinct'",
"'order'", "'by'", "'ask'", "'insert'", "'delete'", "'aggregate'", "'compute'",
"'in'", "'('", "')'", "'as'", "'or'", "'{'", "'}'", "'isa'", "'ako'",
"'has-role'", "'plays-role'", "'has-scope'", "'id'", "'value'", "'lhs'",
"'rhs'", "'has'", "'has-resource'", "'is-abstract'", "'datatype'", "'regex'",
"':'", "'='", "'!='", "'>'", "'>='", "'<'", "'<='", "'contains'", "'and'",
null, null, null, null, null, null, null, null, null, null, null, "'$'"
};
private static final String[] _SYMBOLIC_NAMES = {
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, "DATATYPE", "ORDER",
"BOOLEAN", "VARIABLE", "ID", "STRING", "REGEX", "INTEGER", "REAL", "COMMENT",
"WS", "DOLLAR"
};
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 "Graql.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public GraqlParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class QueryEOFContext extends ParserRuleContext {
public QueryContext query() {
return getRuleContext(QueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public QueryEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_queryEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterQueryEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitQueryEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitQueryEOF(this);
else return visitor.visitChildren(this);
}
}
public final QueryEOFContext queryEOF() throws RecognitionException {
QueryEOFContext _localctx = new QueryEOFContext(_ctx, getState());
enterRule(_localctx, 0, RULE_queryEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(58);
query();
setState(59);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class QueryContext extends ParserRuleContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public AskQueryContext askQuery() {
return getRuleContext(AskQueryContext.class,0);
}
public InsertQueryContext insertQuery() {
return getRuleContext(InsertQueryContext.class,0);
}
public DeleteQueryContext deleteQuery() {
return getRuleContext(DeleteQueryContext.class,0);
}
public AggregateQueryContext aggregateQuery() {
return getRuleContext(AggregateQueryContext.class,0);
}
public ComputeQueryContext computeQuery() {
return getRuleContext(ComputeQueryContext.class,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 GraqlListener ) ((GraqlListener)listener).enterQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitQuery(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitQuery(this);
else return visitor.visitChildren(this);
}
}
public final QueryContext query() throws RecognitionException {
QueryContext _localctx = new QueryContext(_ctx, getState());
enterRule(_localctx, 2, RULE_query);
try {
setState(67);
switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(61);
matchQuery(0);
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(62);
askQuery();
}
break;
case 3:
enterOuterAlt(_localctx, 3);
{
setState(63);
insertQuery();
}
break;
case 4:
enterOuterAlt(_localctx, 4);
{
setState(64);
deleteQuery();
}
break;
case 5:
enterOuterAlt(_localctx, 5);
{
setState(65);
aggregateQuery();
}
break;
case 6:
enterOuterAlt(_localctx, 6);
{
setState(66);
computeQuery();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class MatchEOFContext extends ParserRuleContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public MatchEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_matchEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchEOF(this);
else return visitor.visitChildren(this);
}
}
public final MatchEOFContext matchEOF() throws RecognitionException {
MatchEOFContext _localctx = new MatchEOFContext(_ctx, getState());
enterRule(_localctx, 4, RULE_matchEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(69);
matchQuery(0);
setState(70);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AskEOFContext extends ParserRuleContext {
public AskQueryContext askQuery() {
return getRuleContext(AskQueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public AskEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_askEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAskEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAskEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAskEOF(this);
else return visitor.visitChildren(this);
}
}
public final AskEOFContext askEOF() throws RecognitionException {
AskEOFContext _localctx = new AskEOFContext(_ctx, getState());
enterRule(_localctx, 6, RULE_askEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(72);
askQuery();
setState(73);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class InsertEOFContext extends ParserRuleContext {
public InsertQueryContext insertQuery() {
return getRuleContext(InsertQueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public InsertEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_insertEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterInsertEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitInsertEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitInsertEOF(this);
else return visitor.visitChildren(this);
}
}
public final InsertEOFContext insertEOF() throws RecognitionException {
InsertEOFContext _localctx = new InsertEOFContext(_ctx, getState());
enterRule(_localctx, 8, RULE_insertEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(75);
insertQuery();
setState(76);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class DeleteEOFContext extends ParserRuleContext {
public DeleteQueryContext deleteQuery() {
return getRuleContext(DeleteQueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public DeleteEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_deleteEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterDeleteEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitDeleteEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitDeleteEOF(this);
else return visitor.visitChildren(this);
}
}
public final DeleteEOFContext deleteEOF() throws RecognitionException {
DeleteEOFContext _localctx = new DeleteEOFContext(_ctx, getState());
enterRule(_localctx, 10, RULE_deleteEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(78);
deleteQuery();
setState(79);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AggregateEOFContext extends ParserRuleContext {
public AggregateQueryContext aggregateQuery() {
return getRuleContext(AggregateQueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public AggregateEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_aggregateEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAggregateEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAggregateEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAggregateEOF(this);
else return visitor.visitChildren(this);
}
}
public final AggregateEOFContext aggregateEOF() throws RecognitionException {
AggregateEOFContext _localctx = new AggregateEOFContext(_ctx, getState());
enterRule(_localctx, 12, RULE_aggregateEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(81);
aggregateQuery();
setState(82);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ComputeEOFContext extends ParserRuleContext {
public ComputeQueryContext computeQuery() {
return getRuleContext(ComputeQueryContext.class,0);
}
public TerminalNode EOF() { return getToken(GraqlParser.EOF, 0); }
public ComputeEOFContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_computeEOF; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterComputeEOF(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitComputeEOF(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitComputeEOF(this);
else return visitor.visitChildren(this);
}
}
public final ComputeEOFContext computeEOF() throws RecognitionException {
ComputeEOFContext _localctx = new ComputeEOFContext(_ctx, getState());
enterRule(_localctx, 14, RULE_computeEOF);
try {
enterOuterAlt(_localctx, 1);
{
setState(84);
computeQuery();
setState(85);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class MatchQueryContext extends ParserRuleContext {
public MatchQueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_matchQuery; }
public MatchQueryContext() { }
public void copyFrom(MatchQueryContext ctx) {
super.copyFrom(ctx);
}
}
public static class MatchBaseContext extends MatchQueryContext {
public PatternsContext patterns() {
return getRuleContext(PatternsContext.class,0);
}
public MatchBaseContext(MatchQueryContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchBase(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchBase(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchBase(this);
else return visitor.visitChildren(this);
}
}
public static class MatchSelectContext extends MatchQueryContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public List VARIABLE() { return getTokens(GraqlParser.VARIABLE); }
public TerminalNode VARIABLE(int i) {
return getToken(GraqlParser.VARIABLE, i);
}
public MatchSelectContext(MatchQueryContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchSelect(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchSelect(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchSelect(this);
else return visitor.visitChildren(this);
}
}
public static class MatchOffsetContext extends MatchQueryContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public TerminalNode INTEGER() { return getToken(GraqlParser.INTEGER, 0); }
public MatchOffsetContext(MatchQueryContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchOffset(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchOffset(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchOffset(this);
else return visitor.visitChildren(this);
}
}
public static class MatchOrderByContext extends MatchQueryContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public TerminalNode VARIABLE() { return getToken(GraqlParser.VARIABLE, 0); }
public TerminalNode ORDER() { return getToken(GraqlParser.ORDER, 0); }
public MatchOrderByContext(MatchQueryContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchOrderBy(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchOrderBy(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchOrderBy(this);
else return visitor.visitChildren(this);
}
}
public static class MatchLimitContext extends MatchQueryContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public TerminalNode INTEGER() { return getToken(GraqlParser.INTEGER, 0); }
public MatchLimitContext(MatchQueryContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchLimit(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchLimit(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchLimit(this);
else return visitor.visitChildren(this);
}
}
public static class MatchDistinctContext extends MatchQueryContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public MatchDistinctContext(MatchQueryContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterMatchDistinct(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitMatchDistinct(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitMatchDistinct(this);
else return visitor.visitChildren(this);
}
}
public final MatchQueryContext matchQuery() throws RecognitionException {
return matchQuery(0);
}
private MatchQueryContext matchQuery(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
MatchQueryContext _localctx = new MatchQueryContext(_ctx, _parentState);
MatchQueryContext _prevctx = _localctx;
int _startState = 16;
enterRecursionRule(_localctx, 16, RULE_matchQuery, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new MatchBaseContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(88);
match(T__0);
setState(89);
patterns();
}
_ctx.stop = _input.LT(-1);
setState(123);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,4,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(121);
switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) {
case 1:
{
_localctx = new MatchSelectContext(new MatchQueryContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_matchQuery);
setState(91);
if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
setState(92);
match(T__1);
setState(93);
match(VARIABLE);
setState(98);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__2) {
{
{
setState(94);
match(T__2);
setState(95);
match(VARIABLE);
}
}
setState(100);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(101);
match(T__3);
}
break;
case 2:
{
_localctx = new MatchLimitContext(new MatchQueryContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_matchQuery);
setState(102);
if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
setState(103);
match(T__4);
setState(104);
match(INTEGER);
setState(105);
match(T__3);
}
break;
case 3:
{
_localctx = new MatchOffsetContext(new MatchQueryContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_matchQuery);
setState(106);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(107);
match(T__5);
setState(108);
match(INTEGER);
setState(109);
match(T__3);
}
break;
case 4:
{
_localctx = new MatchDistinctContext(new MatchQueryContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_matchQuery);
setState(110);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(111);
match(T__6);
setState(112);
match(T__3);
}
break;
case 5:
{
_localctx = new MatchOrderByContext(new MatchQueryContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_matchQuery);
setState(113);
if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
setState(114);
match(T__7);
setState(115);
match(T__8);
setState(116);
match(VARIABLE);
setState(118);
_la = _input.LA(1);
if (_la==ORDER) {
{
setState(117);
match(ORDER);
}
}
setState(120);
match(T__3);
}
break;
}
}
}
setState(125);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,4,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class AskQueryContext extends ParserRuleContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public AskQueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_askQuery; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAskQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAskQuery(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAskQuery(this);
else return visitor.visitChildren(this);
}
}
public final AskQueryContext askQuery() throws RecognitionException {
AskQueryContext _localctx = new AskQueryContext(_ctx, getState());
enterRule(_localctx, 18, RULE_askQuery);
try {
enterOuterAlt(_localctx, 1);
{
setState(126);
matchQuery(0);
setState(127);
match(T__9);
setState(128);
match(T__3);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class InsertQueryContext extends ParserRuleContext {
public VarPatternsContext varPatterns() {
return getRuleContext(VarPatternsContext.class,0);
}
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public InsertQueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_insertQuery; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterInsertQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitInsertQuery(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitInsertQuery(this);
else return visitor.visitChildren(this);
}
}
public final InsertQueryContext insertQuery() throws RecognitionException {
InsertQueryContext _localctx = new InsertQueryContext(_ctx, getState());
enterRule(_localctx, 20, RULE_insertQuery);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(131);
_la = _input.LA(1);
if (_la==T__0) {
{
setState(130);
matchQuery(0);
}
}
setState(133);
match(T__10);
setState(134);
varPatterns();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class DeleteQueryContext extends ParserRuleContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public VarPatternsContext varPatterns() {
return getRuleContext(VarPatternsContext.class,0);
}
public DeleteQueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_deleteQuery; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterDeleteQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitDeleteQuery(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitDeleteQuery(this);
else return visitor.visitChildren(this);
}
}
public final DeleteQueryContext deleteQuery() throws RecognitionException {
DeleteQueryContext _localctx = new DeleteQueryContext(_ctx, getState());
enterRule(_localctx, 22, RULE_deleteQuery);
try {
enterOuterAlt(_localctx, 1);
{
setState(136);
matchQuery(0);
setState(137);
match(T__11);
setState(138);
varPatterns();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AggregateQueryContext extends ParserRuleContext {
public MatchQueryContext matchQuery() {
return getRuleContext(MatchQueryContext.class,0);
}
public AggregateContext aggregate() {
return getRuleContext(AggregateContext.class,0);
}
public AggregateQueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_aggregateQuery; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAggregateQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAggregateQuery(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAggregateQuery(this);
else return visitor.visitChildren(this);
}
}
public final AggregateQueryContext aggregateQuery() throws RecognitionException {
AggregateQueryContext _localctx = new AggregateQueryContext(_ctx, getState());
enterRule(_localctx, 24, RULE_aggregateQuery);
try {
enterOuterAlt(_localctx, 1);
{
setState(140);
matchQuery(0);
setState(141);
match(T__12);
setState(142);
aggregate();
setState(143);
match(T__3);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ComputeQueryContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public SubgraphContext subgraph() {
return getRuleContext(SubgraphContext.class,0);
}
public ComputeQueryContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_computeQuery; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterComputeQuery(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitComputeQuery(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitComputeQuery(this);
else return visitor.visitChildren(this);
}
}
public final ComputeQueryContext computeQuery() throws RecognitionException {
ComputeQueryContext _localctx = new ComputeQueryContext(_ctx, getState());
enterRule(_localctx, 26, RULE_computeQuery);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(145);
match(T__13);
setState(146);
id();
setState(149);
_la = _input.LA(1);
if (_la==T__14) {
{
setState(147);
match(T__14);
setState(148);
subgraph();
}
}
setState(151);
match(T__3);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class SubgraphContext extends ParserRuleContext {
public List id() {
return getRuleContexts(IdContext.class);
}
public IdContext id(int i) {
return getRuleContext(IdContext.class,i);
}
public SubgraphContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_subgraph; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterSubgraph(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitSubgraph(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitSubgraph(this);
else return visitor.visitChildren(this);
}
}
public final SubgraphContext subgraph() throws RecognitionException {
SubgraphContext _localctx = new SubgraphContext(_ctx, getState());
enterRule(_localctx, 28, RULE_subgraph);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(153);
id();
setState(158);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__2) {
{
{
setState(154);
match(T__2);
setState(155);
id();
}
}
setState(160);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AggregateContext extends ParserRuleContext {
public AggregateContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_aggregate; }
public AggregateContext() { }
public void copyFrom(AggregateContext ctx) {
super.copyFrom(ctx);
}
}
public static class SelectAggContext extends AggregateContext {
public List namedAgg() {
return getRuleContexts(NamedAggContext.class);
}
public NamedAggContext namedAgg(int i) {
return getRuleContext(NamedAggContext.class,i);
}
public SelectAggContext(AggregateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterSelectAgg(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitSelectAgg(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitSelectAgg(this);
else return visitor.visitChildren(this);
}
}
public static class CustomAggContext extends AggregateContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public List argument() {
return getRuleContexts(ArgumentContext.class);
}
public ArgumentContext argument(int i) {
return getRuleContext(ArgumentContext.class,i);
}
public CustomAggContext(AggregateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterCustomAgg(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitCustomAgg(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitCustomAgg(this);
else return visitor.visitChildren(this);
}
}
public final AggregateContext aggregate() throws RecognitionException {
AggregateContext _localctx = new AggregateContext(_ctx, getState());
enterRule(_localctx, 30, RULE_aggregate);
int _la;
try {
int _alt;
setState(179);
switch (_input.LA(1)) {
case ID:
case STRING:
_localctx = new CustomAggContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(161);
id();
setState(165);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(162);
argument();
}
}
}
setState(167);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
}
}
break;
case T__15:
_localctx = new SelectAggContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(168);
match(T__15);
setState(169);
namedAgg();
setState(174);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__2) {
{
{
setState(170);
match(T__2);
setState(171);
namedAgg();
}
}
setState(176);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(177);
match(T__16);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ArgumentContext extends ParserRuleContext {
public ArgumentContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_argument; }
public ArgumentContext() { }
public void copyFrom(ArgumentContext ctx) {
super.copyFrom(ctx);
}
}
public static class AggregateArgumentContext extends ArgumentContext {
public AggregateContext aggregate() {
return getRuleContext(AggregateContext.class,0);
}
public AggregateArgumentContext(ArgumentContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAggregateArgument(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAggregateArgument(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAggregateArgument(this);
else return visitor.visitChildren(this);
}
}
public static class VariableArgumentContext extends ArgumentContext {
public TerminalNode VARIABLE() { return getToken(GraqlParser.VARIABLE, 0); }
public VariableArgumentContext(ArgumentContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterVariableArgument(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitVariableArgument(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitVariableArgument(this);
else return visitor.visitChildren(this);
}
}
public final ArgumentContext argument() throws RecognitionException {
ArgumentContext _localctx = new ArgumentContext(_ctx, getState());
enterRule(_localctx, 32, RULE_argument);
try {
setState(183);
switch (_input.LA(1)) {
case VARIABLE:
_localctx = new VariableArgumentContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(181);
match(VARIABLE);
}
break;
case T__15:
case ID:
case STRING:
_localctx = new AggregateArgumentContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(182);
aggregate();
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class NamedAggContext extends ParserRuleContext {
public AggregateContext aggregate() {
return getRuleContext(AggregateContext.class,0);
}
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public NamedAggContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_namedAgg; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterNamedAgg(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitNamedAgg(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitNamedAgg(this);
else return visitor.visitChildren(this);
}
}
public final NamedAggContext namedAgg() throws RecognitionException {
NamedAggContext _localctx = new NamedAggContext(_ctx, getState());
enterRule(_localctx, 34, RULE_namedAgg);
try {
enterOuterAlt(_localctx, 1);
{
setState(185);
aggregate();
setState(186);
match(T__17);
setState(187);
id();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PatternsContext extends ParserRuleContext {
public List pattern() {
return getRuleContexts(PatternContext.class);
}
public PatternContext pattern(int i) {
return getRuleContext(PatternContext.class,i);
}
public PatternsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_patterns; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPatterns(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPatterns(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPatterns(this);
else return visitor.visitChildren(this);
}
}
public final PatternsContext patterns() throws RecognitionException {
PatternsContext _localctx = new PatternsContext(_ctx, getState());
enterRule(_localctx, 36, RULE_patterns);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(192);
_errHandler.sync(this);
_alt = 1;
do {
switch (_alt) {
case 1:
{
{
setState(189);
pattern(0);
setState(190);
match(T__3);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(194);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,12,_ctx);
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PatternContext extends ParserRuleContext {
public PatternContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_pattern; }
public PatternContext() { }
public void copyFrom(PatternContext ctx) {
super.copyFrom(ctx);
}
}
public static class VarPatternCaseContext extends PatternContext {
public VarPatternContext varPattern() {
return getRuleContext(VarPatternContext.class,0);
}
public VarPatternCaseContext(PatternContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterVarPatternCase(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitVarPatternCase(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitVarPatternCase(this);
else return visitor.visitChildren(this);
}
}
public static class AndPatternContext extends PatternContext {
public PatternsContext patterns() {
return getRuleContext(PatternsContext.class,0);
}
public AndPatternContext(PatternContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAndPattern(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAndPattern(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAndPattern(this);
else return visitor.visitChildren(this);
}
}
public static class OrPatternContext extends PatternContext {
public List pattern() {
return getRuleContexts(PatternContext.class);
}
public PatternContext pattern(int i) {
return getRuleContext(PatternContext.class,i);
}
public OrPatternContext(PatternContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterOrPattern(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitOrPattern(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitOrPattern(this);
else return visitor.visitChildren(this);
}
}
public final PatternContext pattern() throws RecognitionException {
return pattern(0);
}
private PatternContext pattern(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
PatternContext _localctx = new PatternContext(_ctx, _parentState);
PatternContext _prevctx = _localctx;
int _startState = 38;
enterRecursionRule(_localctx, 38, RULE_pattern, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(202);
switch (_input.LA(1)) {
case T__15:
case T__21:
case T__22:
case T__23:
case T__24:
case T__25:
case T__26:
case T__27:
case T__28:
case T__29:
case T__30:
case T__31:
case T__32:
case T__33:
case T__34:
case VARIABLE:
case ID:
case STRING:
{
_localctx = new VarPatternCaseContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(197);
varPattern();
}
break;
case T__19:
{
_localctx = new AndPatternContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(198);
match(T__19);
setState(199);
patterns();
setState(200);
match(T__20);
}
break;
default:
throw new NoViableAltException(this);
}
_ctx.stop = _input.LT(-1);
setState(209);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,14,_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 OrPatternContext(new PatternContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_pattern);
setState(204);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(205);
match(T__18);
setState(206);
pattern(3);
}
}
}
setState(211);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,14,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class VarPatternsContext extends ParserRuleContext {
public List varPattern() {
return getRuleContexts(VarPatternContext.class);
}
public VarPatternContext varPattern(int i) {
return getRuleContext(VarPatternContext.class,i);
}
public VarPatternsContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_varPatterns; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterVarPatterns(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitVarPatterns(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitVarPatterns(this);
else return visitor.visitChildren(this);
}
}
public final VarPatternsContext varPatterns() throws RecognitionException {
VarPatternsContext _localctx = new VarPatternsContext(_ctx, getState());
enterRule(_localctx, 40, RULE_varPatterns);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(215);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(212);
varPattern();
setState(213);
match(T__3);
}
}
setState(217);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__15) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << VARIABLE) | (1L << ID) | (1L << STRING))) != 0) );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class VarPatternContext extends ParserRuleContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public List property() {
return getRuleContexts(PropertyContext.class);
}
public PropertyContext property(int i) {
return getRuleContext(PropertyContext.class,i);
}
public VarPatternContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_varPattern; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterVarPattern(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitVarPattern(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitVarPattern(this);
else return visitor.visitChildren(this);
}
}
public final VarPatternContext varPattern() throws RecognitionException {
VarPatternContext _localctx = new VarPatternContext(_ctx, getState());
enterRule(_localctx, 42, RULE_varPattern);
int _la;
try {
int _alt;
setState(233);
switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(219);
variable();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(221);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << VARIABLE) | (1L << ID) | (1L << STRING))) != 0)) {
{
setState(220);
variable();
}
}
setState(223);
property();
setState(230);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,18,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(225);
_la = _input.LA(1);
if (_la==T__2) {
{
setState(224);
match(T__2);
}
}
setState(227);
property();
}
}
}
setState(232);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,18,_ctx);
}
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PropertyContext extends ParserRuleContext {
public PropertyContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_property; }
public PropertyContext() { }
public void copyFrom(PropertyContext ctx) {
super.copyFrom(ctx);
}
}
public static class PropDatatypeContext extends PropertyContext {
public TerminalNode DATATYPE() { return getToken(GraqlParser.DATATYPE, 0); }
public PropDatatypeContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropDatatype(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropDatatype(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropDatatype(this);
else return visitor.visitChildren(this);
}
}
public static class AkoContext extends PropertyContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public AkoContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterAko(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitAko(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitAko(this);
else return visitor.visitChildren(this);
}
}
public static class PropRelContext extends PropertyContext {
public List casting() {
return getRuleContexts(CastingContext.class);
}
public CastingContext casting(int i) {
return getRuleContext(CastingContext.class,i);
}
public PropRelContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropRel(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropRel(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropRel(this);
else return visitor.visitChildren(this);
}
}
public static class PropHasContext extends PropertyContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public PredicateContext predicate() {
return getRuleContext(PredicateContext.class,0);
}
public TerminalNode VARIABLE() { return getToken(GraqlParser.VARIABLE, 0); }
public PropHasContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropHas(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropHas(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropHas(this);
else return visitor.visitChildren(this);
}
}
public static class PropLhsContext extends PropertyContext {
public QueryContext query() {
return getRuleContext(QueryContext.class,0);
}
public PropLhsContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropLhs(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropLhs(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropLhs(this);
else return visitor.visitChildren(this);
}
}
public static class PropIdContext extends PropertyContext {
public TerminalNode STRING() { return getToken(GraqlParser.STRING, 0); }
public PropIdContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropId(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropId(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropId(this);
else return visitor.visitChildren(this);
}
}
public static class PropRhsContext extends PropertyContext {
public QueryContext query() {
return getRuleContext(QueryContext.class,0);
}
public PropRhsContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropRhs(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropRhs(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropRhs(this);
else return visitor.visitChildren(this);
}
}
public static class IsAbstractContext extends PropertyContext {
public IsAbstractContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterIsAbstract(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitIsAbstract(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitIsAbstract(this);
else return visitor.visitChildren(this);
}
}
public static class HasScopeContext extends PropertyContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public HasScopeContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterHasScope(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitHasScope(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitHasScope(this);
else return visitor.visitChildren(this);
}
}
public static class PropResourceContext extends PropertyContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public PropResourceContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropResource(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropResource(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropResource(this);
else return visitor.visitChildren(this);
}
}
public static class PlaysRoleContext extends PropertyContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public PlaysRoleContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPlaysRole(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPlaysRole(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPlaysRole(this);
else return visitor.visitChildren(this);
}
}
public static class IsaContext extends PropertyContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public IsaContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterIsa(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitIsa(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitIsa(this);
else return visitor.visitChildren(this);
}
}
public static class PropRegexContext extends PropertyContext {
public TerminalNode REGEX() { return getToken(GraqlParser.REGEX, 0); }
public PropRegexContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropRegex(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropRegex(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropRegex(this);
else return visitor.visitChildren(this);
}
}
public static class HasRoleContext extends PropertyContext {
public VariableContext variable() {
return getRuleContext(VariableContext.class,0);
}
public HasRoleContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterHasRole(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitHasRole(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitHasRole(this);
else return visitor.visitChildren(this);
}
}
public static class PropValueContext extends PropertyContext {
public PredicateContext predicate() {
return getRuleContext(PredicateContext.class,0);
}
public PropValueContext(PropertyContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPropValue(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPropValue(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPropValue(this);
else return visitor.visitChildren(this);
}
}
public final PropertyContext property() throws RecognitionException {
PropertyContext _localctx = new PropertyContext(_ctx, getState());
enterRule(_localctx, 44, RULE_property);
int _la;
try {
setState(285);
switch (_input.LA(1)) {
case T__21:
_localctx = new IsaContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(235);
match(T__21);
setState(236);
variable();
}
break;
case T__22:
_localctx = new AkoContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(237);
match(T__22);
setState(238);
variable();
}
break;
case T__23:
_localctx = new HasRoleContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(239);
match(T__23);
setState(240);
variable();
}
break;
case T__24:
_localctx = new PlaysRoleContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(241);
match(T__24);
setState(242);
variable();
}
break;
case T__25:
_localctx = new HasScopeContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(243);
match(T__25);
setState(244);
variable();
}
break;
case T__26:
_localctx = new PropIdContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(245);
match(T__26);
setState(246);
match(STRING);
}
break;
case T__27:
_localctx = new PropValueContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(247);
match(T__27);
setState(249);
switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
case 1:
{
setState(248);
predicate(0);
}
break;
}
}
break;
case T__28:
_localctx = new PropLhsContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(251);
match(T__28);
setState(252);
match(T__19);
setState(253);
query();
setState(254);
match(T__20);
}
break;
case T__29:
_localctx = new PropRhsContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(256);
match(T__29);
setState(257);
match(T__19);
setState(258);
query();
setState(259);
match(T__20);
}
break;
case T__30:
_localctx = new PropHasContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(261);
match(T__30);
setState(262);
id();
setState(265);
switch ( getInterpreter().adaptivePredict(_input,21,_ctx) ) {
case 1:
{
setState(263);
predicate(0);
}
break;
case 2:
{
setState(264);
match(VARIABLE);
}
break;
}
}
break;
case T__31:
_localctx = new PropResourceContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(267);
match(T__31);
setState(268);
variable();
}
break;
case T__15:
_localctx = new PropRelContext(_localctx);
enterOuterAlt(_localctx, 12);
{
setState(269);
match(T__15);
setState(270);
casting();
setState(275);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__2) {
{
{
setState(271);
match(T__2);
setState(272);
casting();
}
}
setState(277);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(278);
match(T__16);
}
break;
case T__32:
_localctx = new IsAbstractContext(_localctx);
enterOuterAlt(_localctx, 13);
{
setState(280);
match(T__32);
}
break;
case T__33:
_localctx = new PropDatatypeContext(_localctx);
enterOuterAlt(_localctx, 14);
{
setState(281);
match(T__33);
setState(282);
match(DATATYPE);
}
break;
case T__34:
_localctx = new PropRegexContext(_localctx);
enterOuterAlt(_localctx, 15);
{
setState(283);
match(T__34);
setState(284);
match(REGEX);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class CastingContext extends ParserRuleContext {
public List variable() {
return getRuleContexts(VariableContext.class);
}
public VariableContext variable(int i) {
return getRuleContext(VariableContext.class,i);
}
public CastingContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_casting; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterCasting(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitCasting(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitCasting(this);
else return visitor.visitChildren(this);
}
}
public final CastingContext casting() throws RecognitionException {
CastingContext _localctx = new CastingContext(_ctx, getState());
enterRule(_localctx, 46, RULE_casting);
try {
enterOuterAlt(_localctx, 1);
{
setState(290);
switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
case 1:
{
setState(287);
variable();
setState(288);
match(T__35);
}
break;
}
setState(292);
variable();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class VariableContext extends ParserRuleContext {
public IdContext id() {
return getRuleContext(IdContext.class,0);
}
public TerminalNode VARIABLE() { return getToken(GraqlParser.VARIABLE, 0); }
public VariableContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_variable; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterVariable(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitVariable(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitVariable(this);
else return visitor.visitChildren(this);
}
}
public final VariableContext variable() throws RecognitionException {
VariableContext _localctx = new VariableContext(_ctx, getState());
enterRule(_localctx, 48, RULE_variable);
try {
setState(296);
switch (_input.LA(1)) {
case ID:
case STRING:
enterOuterAlt(_localctx, 1);
{
setState(294);
id();
}
break;
case VARIABLE:
enterOuterAlt(_localctx, 2);
{
setState(295);
match(VARIABLE);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PredicateContext extends ParserRuleContext {
public PredicateContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicate; }
public PredicateContext() { }
public void copyFrom(PredicateContext ctx) {
super.copyFrom(ctx);
}
}
public static class PredicateEqContext extends PredicateContext {
public ValueContext value() {
return getRuleContext(ValueContext.class,0);
}
public PredicateEqContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateEq(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateEq(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateEq(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateAndContext extends PredicateContext {
public List predicate() {
return getRuleContexts(PredicateContext.class);
}
public PredicateContext predicate(int i) {
return getRuleContext(PredicateContext.class,i);
}
public PredicateAndContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateAnd(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateAnd(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateAnd(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateGteContext extends PredicateContext {
public ValueContext value() {
return getRuleContext(ValueContext.class,0);
}
public PredicateGteContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateGte(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateGte(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateGte(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateNeqContext extends PredicateContext {
public ValueContext value() {
return getRuleContext(ValueContext.class,0);
}
public PredicateNeqContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateNeq(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateNeq(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateNeq(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateRegexContext extends PredicateContext {
public TerminalNode REGEX() { return getToken(GraqlParser.REGEX, 0); }
public PredicateRegexContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateRegex(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateRegex(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateRegex(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateContainsContext extends PredicateContext {
public TerminalNode STRING() { return getToken(GraqlParser.STRING, 0); }
public PredicateContainsContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateContains(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateContains(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateContains(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateGtContext extends PredicateContext {
public ValueContext value() {
return getRuleContext(ValueContext.class,0);
}
public PredicateGtContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateGt(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateGt(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateGt(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateLteContext extends PredicateContext {
public ValueContext value() {
return getRuleContext(ValueContext.class,0);
}
public PredicateLteContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateLte(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateLte(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateLte(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateParensContext extends PredicateContext {
public PredicateContext predicate() {
return getRuleContext(PredicateContext.class,0);
}
public PredicateParensContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateParens(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateParens(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateParens(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateOrContext extends PredicateContext {
public List predicate() {
return getRuleContexts(PredicateContext.class);
}
public PredicateContext predicate(int i) {
return getRuleContext(PredicateContext.class,i);
}
public PredicateOrContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateOr(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateOr(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateOr(this);
else return visitor.visitChildren(this);
}
}
public static class PredicateLtContext extends PredicateContext {
public ValueContext value() {
return getRuleContext(ValueContext.class,0);
}
public PredicateLtContext(PredicateContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPredicateLt(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPredicateLt(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPredicateLt(this);
else return visitor.visitChildren(this);
}
}
public final PredicateContext predicate() throws RecognitionException {
return predicate(0);
}
private PredicateContext predicate(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
PredicateContext _localctx = new PredicateContext(_ctx, _parentState);
PredicateContext _prevctx = _localctx;
int _startState = 50;
enterRecursionRule(_localctx, 50, RULE_predicate, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(320);
switch (_input.LA(1)) {
case T__36:
case BOOLEAN:
case STRING:
case INTEGER:
case REAL:
{
_localctx = new PredicateEqContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(300);
_la = _input.LA(1);
if (_la==T__36) {
{
setState(299);
match(T__36);
}
}
setState(302);
value();
}
break;
case T__37:
{
_localctx = new PredicateNeqContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(303);
match(T__37);
setState(304);
value();
}
break;
case T__38:
{
_localctx = new PredicateGtContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(305);
match(T__38);
setState(306);
value();
}
break;
case T__39:
{
_localctx = new PredicateGteContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(307);
match(T__39);
setState(308);
value();
}
break;
case T__40:
{
_localctx = new PredicateLtContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(309);
match(T__40);
setState(310);
value();
}
break;
case T__41:
{
_localctx = new PredicateLteContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(311);
match(T__41);
setState(312);
value();
}
break;
case T__42:
{
_localctx = new PredicateContainsContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(313);
match(T__42);
setState(314);
match(STRING);
}
break;
case REGEX:
{
_localctx = new PredicateRegexContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(315);
match(REGEX);
}
break;
case T__15:
{
_localctx = new PredicateParensContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(316);
match(T__15);
setState(317);
predicate(0);
setState(318);
match(T__16);
}
break;
default:
throw new NoViableAltException(this);
}
_ctx.stop = _input.LT(-1);
setState(330);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,29,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(328);
switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) {
case 1:
{
_localctx = new PredicateAndContext(new PredicateContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_predicate);
setState(322);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(323);
match(T__43);
setState(324);
predicate(4);
}
break;
case 2:
{
_localctx = new PredicateOrContext(new PredicateContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_predicate);
setState(325);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(326);
match(T__18);
setState(327);
predicate(3);
}
break;
}
}
}
setState(332);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,29,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class ValueContext extends ParserRuleContext {
public ValueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_value; }
public ValueContext() { }
public void copyFrom(ValueContext ctx) {
super.copyFrom(ctx);
}
}
public static class ValueBooleanContext extends ValueContext {
public TerminalNode BOOLEAN() { return getToken(GraqlParser.BOOLEAN, 0); }
public ValueBooleanContext(ValueContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterValueBoolean(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitValueBoolean(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitValueBoolean(this);
else return visitor.visitChildren(this);
}
}
public static class ValueStringContext extends ValueContext {
public TerminalNode STRING() { return getToken(GraqlParser.STRING, 0); }
public ValueStringContext(ValueContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterValueString(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitValueString(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitValueString(this);
else return visitor.visitChildren(this);
}
}
public static class ValueRealContext extends ValueContext {
public TerminalNode REAL() { return getToken(GraqlParser.REAL, 0); }
public ValueRealContext(ValueContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterValueReal(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitValueReal(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitValueReal(this);
else return visitor.visitChildren(this);
}
}
public static class ValueIntegerContext extends ValueContext {
public TerminalNode INTEGER() { return getToken(GraqlParser.INTEGER, 0); }
public ValueIntegerContext(ValueContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterValueInteger(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitValueInteger(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitValueInteger(this);
else return visitor.visitChildren(this);
}
}
public final ValueContext value() throws RecognitionException {
ValueContext _localctx = new ValueContext(_ctx, getState());
enterRule(_localctx, 52, RULE_value);
try {
setState(337);
switch (_input.LA(1)) {
case STRING:
_localctx = new ValueStringContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(333);
match(STRING);
}
break;
case INTEGER:
_localctx = new ValueIntegerContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(334);
match(INTEGER);
}
break;
case REAL:
_localctx = new ValueRealContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(335);
match(REAL);
}
break;
case BOOLEAN:
_localctx = new ValueBooleanContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(336);
match(BOOLEAN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PatternSepContext extends ParserRuleContext {
public PatternContext pattern() {
return getRuleContext(PatternContext.class,0);
}
public PatternSepContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_patternSep; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterPatternSep(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitPatternSep(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitPatternSep(this);
else return visitor.visitChildren(this);
}
}
public final PatternSepContext patternSep() throws RecognitionException {
PatternSepContext _localctx = new PatternSepContext(_ctx, getState());
enterRule(_localctx, 54, RULE_patternSep);
try {
enterOuterAlt(_localctx, 1);
{
setState(339);
pattern(0);
setState(340);
match(T__3);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class IdContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(GraqlParser.ID, 0); }
public TerminalNode STRING() { return getToken(GraqlParser.STRING, 0); }
public IdContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_id; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).enterId(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof GraqlListener ) ((GraqlListener)listener).exitId(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
if ( visitor instanceof GraqlVisitor ) return ((GraqlVisitor extends T>)visitor).visitId(this);
else return visitor.visitChildren(this);
}
}
public final IdContext id() throws RecognitionException {
IdContext _localctx = new IdContext(_ctx, getState());
enterRule(_localctx, 56, RULE_id);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(342);
_la = _input.LA(1);
if ( !(_la==ID || _la==STRING) ) {
_errHandler.recoverInline(this);
} else {
consume();
}
}
}
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 8:
return matchQuery_sempred((MatchQueryContext)_localctx, predIndex);
case 19:
return pattern_sempred((PatternContext)_localctx, predIndex);
case 25:
return predicate_sempred((PredicateContext)_localctx, predIndex);
}
return true;
}
private boolean matchQuery_sempred(MatchQueryContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return precpred(_ctx, 5);
case 1:
return precpred(_ctx, 4);
case 2:
return precpred(_ctx, 3);
case 3:
return precpred(_ctx, 2);
case 4:
return precpred(_ctx, 1);
}
return true;
}
private boolean pattern_sempred(PatternContext _localctx, int predIndex) {
switch (predIndex) {
case 5:
return precpred(_ctx, 2);
}
return true;
}
private boolean predicate_sempred(PredicateContext _localctx, int predIndex) {
switch (predIndex) {
case 6:
return precpred(_ctx, 3);
case 7:
return precpred(_ctx, 2);
}
return true;
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3:\u015b\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\3\2\3\2\3\2\3\3\3\3"+
"\3\3\3\3\3\3\3\3\5\3F\n\3\3\4\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3\7\3\7"+
"\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\7\nc"+
"\n\n\f\n\16\nf\13\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3\n\3"+
"\n\3\n\3\n\3\n\3\n\5\ny\n\n\3\n\7\n|\n\n\f\n\16\n\177\13\n\3\13\3\13\3"+
"\13\3\13\3\f\5\f\u0086\n\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\16\3\16\3\16"+
"\3\16\3\16\3\17\3\17\3\17\3\17\5\17\u0098\n\17\3\17\3\17\3\20\3\20\3\20"+
"\7\20\u009f\n\20\f\20\16\20\u00a2\13\20\3\21\3\21\7\21\u00a6\n\21\f\21"+
"\16\21\u00a9\13\21\3\21\3\21\3\21\3\21\7\21\u00af\n\21\f\21\16\21\u00b2"+
"\13\21\3\21\3\21\5\21\u00b6\n\21\3\22\3\22\5\22\u00ba\n\22\3\23\3\23\3"+
"\23\3\23\3\24\3\24\3\24\6\24\u00c3\n\24\r\24\16\24\u00c4\3\25\3\25\3\25"+
"\3\25\3\25\3\25\5\25\u00cd\n\25\3\25\3\25\3\25\7\25\u00d2\n\25\f\25\16"+
"\25\u00d5\13\25\3\26\3\26\3\26\6\26\u00da\n\26\r\26\16\26\u00db\3\27\3"+
"\27\5\27\u00e0\n\27\3\27\3\27\5\27\u00e4\n\27\3\27\7\27\u00e7\n\27\f\27"+
"\16\27\u00ea\13\27\5\27\u00ec\n\27\3\30\3\30\3\30\3\30\3\30\3\30\3\30"+
"\3\30\3\30\3\30\3\30\3\30\3\30\3\30\5\30\u00fc\n\30\3\30\3\30\3\30\3\30"+
"\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\3\30\5\30\u010c\n\30\3\30"+
"\3\30\3\30\3\30\3\30\3\30\7\30\u0114\n\30\f\30\16\30\u0117\13\30\3\30"+
"\3\30\3\30\3\30\3\30\3\30\3\30\5\30\u0120\n\30\3\31\3\31\3\31\5\31\u0125"+
"\n\31\3\31\3\31\3\32\3\32\5\32\u012b\n\32\3\33\3\33\5\33\u012f\n\33\3"+
"\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3"+
"\33\3\33\3\33\3\33\5\33\u0143\n\33\3\33\3\33\3\33\3\33\3\33\3\33\7\33"+
"\u014b\n\33\f\33\16\33\u014e\13\33\3\34\3\34\3\34\3\34\5\34\u0154\n\34"+
"\3\35\3\35\3\35\3\36\3\36\3\36\2\5\22(\64\37\2\4\6\b\n\f\16\20\22\24\26"+
"\30\32\34\36 \"$&(*,.\60\62\64\668:\2\3\3\2\63\64\u017a\2<\3\2\2\2\4E"+
"\3\2\2\2\6G\3\2\2\2\bJ\3\2\2\2\nM\3\2\2\2\fP\3\2\2\2\16S\3\2\2\2\20V\3"+
"\2\2\2\22Y\3\2\2\2\24\u0080\3\2\2\2\26\u0085\3\2\2\2\30\u008a\3\2\2\2"+
"\32\u008e\3\2\2\2\34\u0093\3\2\2\2\36\u009b\3\2\2\2 \u00b5\3\2\2\2\"\u00b9"+
"\3\2\2\2$\u00bb\3\2\2\2&\u00c2\3\2\2\2(\u00cc\3\2\2\2*\u00d9\3\2\2\2,"+
"\u00eb\3\2\2\2.\u011f\3\2\2\2\60\u0124\3\2\2\2\62\u012a\3\2\2\2\64\u0142"+
"\3\2\2\2\66\u0153\3\2\2\28\u0155\3\2\2\2:\u0158\3\2\2\2<=\5\4\3\2=>\7"+
"\2\2\3>\3\3\2\2\2?F\5\22\n\2@F\5\24\13\2AF\5\26\f\2BF\5\30\r\2CF\5\32"+
"\16\2DF\5\34\17\2E?\3\2\2\2E@\3\2\2\2EA\3\2\2\2EB\3\2\2\2EC\3\2\2\2ED"+
"\3\2\2\2F\5\3\2\2\2GH\5\22\n\2HI\7\2\2\3I\7\3\2\2\2JK\5\24\13\2KL\7\2"+
"\2\3L\t\3\2\2\2MN\5\26\f\2NO\7\2\2\3O\13\3\2\2\2PQ\5\30\r\2QR\7\2\2\3"+
"R\r\3\2\2\2ST\5\32\16\2TU\7\2\2\3U\17\3\2\2\2VW\5\34\17\2WX\7\2\2\3X\21"+
"\3\2\2\2YZ\b\n\1\2Z[\7\3\2\2[\\\5&\24\2\\}\3\2\2\2]^\f\7\2\2^_\7\4\2\2"+
"_d\7\62\2\2`a\7\5\2\2ac\7\62\2\2b`\3\2\2\2cf\3\2\2\2db\3\2\2\2de\3\2\2"+
"\2eg\3\2\2\2fd\3\2\2\2g|\7\6\2\2hi\f\6\2\2ij\7\7\2\2jk\7\66\2\2k|\7\6"+
"\2\2lm\f\5\2\2mn\7\b\2\2no\7\66\2\2o|\7\6\2\2pq\f\4\2\2qr\7\t\2\2r|\7"+
"\6\2\2st\f\3\2\2tu\7\n\2\2uv\7\13\2\2vx\7\62\2\2wy\7\60\2\2xw\3\2\2\2"+
"xy\3\2\2\2yz\3\2\2\2z|\7\6\2\2{]\3\2\2\2{h\3\2\2\2{l\3\2\2\2{p\3\2\2\2"+
"{s\3\2\2\2|\177\3\2\2\2}{\3\2\2\2}~\3\2\2\2~\23\3\2\2\2\177}\3\2\2\2\u0080"+
"\u0081\5\22\n\2\u0081\u0082\7\f\2\2\u0082\u0083\7\6\2\2\u0083\25\3\2\2"+
"\2\u0084\u0086\5\22\n\2\u0085\u0084\3\2\2\2\u0085\u0086\3\2\2\2\u0086"+
"\u0087\3\2\2\2\u0087\u0088\7\r\2\2\u0088\u0089\5*\26\2\u0089\27\3\2\2"+
"\2\u008a\u008b\5\22\n\2\u008b\u008c\7\16\2\2\u008c\u008d\5*\26\2\u008d"+
"\31\3\2\2\2\u008e\u008f\5\22\n\2\u008f\u0090\7\17\2\2\u0090\u0091\5 \21"+
"\2\u0091\u0092\7\6\2\2\u0092\33\3\2\2\2\u0093\u0094\7\20\2\2\u0094\u0097"+
"\5:\36\2\u0095\u0096\7\21\2\2\u0096\u0098\5\36\20\2\u0097\u0095\3\2\2"+
"\2\u0097\u0098\3\2\2\2\u0098\u0099\3\2\2\2\u0099\u009a\7\6\2\2\u009a\35"+
"\3\2\2\2\u009b\u00a0\5:\36\2\u009c\u009d\7\5\2\2\u009d\u009f\5:\36\2\u009e"+
"\u009c\3\2\2\2\u009f\u00a2\3\2\2\2\u00a0\u009e\3\2\2\2\u00a0\u00a1\3\2"+
"\2\2\u00a1\37\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a3\u00a7\5:\36\2\u00a4\u00a6"+
"\5\"\22\2\u00a5\u00a4\3\2\2\2\u00a6\u00a9\3\2\2\2\u00a7\u00a5\3\2\2\2"+
"\u00a7\u00a8\3\2\2\2\u00a8\u00b6\3\2\2\2\u00a9\u00a7\3\2\2\2\u00aa\u00ab"+
"\7\22\2\2\u00ab\u00b0\5$\23\2\u00ac\u00ad\7\5\2\2\u00ad\u00af\5$\23\2"+
"\u00ae\u00ac\3\2\2\2\u00af\u00b2\3\2\2\2\u00b0\u00ae\3\2\2\2\u00b0\u00b1"+
"\3\2\2\2\u00b1\u00b3\3\2\2\2\u00b2\u00b0\3\2\2\2\u00b3\u00b4\7\23\2\2"+
"\u00b4\u00b6\3\2\2\2\u00b5\u00a3\3\2\2\2\u00b5\u00aa\3\2\2\2\u00b6!\3"+
"\2\2\2\u00b7\u00ba\7\62\2\2\u00b8\u00ba\5 \21\2\u00b9\u00b7\3\2\2\2\u00b9"+
"\u00b8\3\2\2\2\u00ba#\3\2\2\2\u00bb\u00bc\5 \21\2\u00bc\u00bd\7\24\2\2"+
"\u00bd\u00be\5:\36\2\u00be%\3\2\2\2\u00bf\u00c0\5(\25\2\u00c0\u00c1\7"+
"\6\2\2\u00c1\u00c3\3\2\2\2\u00c2\u00bf\3\2\2\2\u00c3\u00c4\3\2\2\2\u00c4"+
"\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\'\3\2\2\2\u00c6\u00c7\b\25\1"+
"\2\u00c7\u00cd\5,\27\2\u00c8\u00c9\7\26\2\2\u00c9\u00ca\5&\24\2\u00ca"+
"\u00cb\7\27\2\2\u00cb\u00cd\3\2\2\2\u00cc\u00c6\3\2\2\2\u00cc\u00c8\3"+
"\2\2\2\u00cd\u00d3\3\2\2\2\u00ce\u00cf\f\4\2\2\u00cf\u00d0\7\25\2\2\u00d0"+
"\u00d2\5(\25\5\u00d1\u00ce\3\2\2\2\u00d2\u00d5\3\2\2\2\u00d3\u00d1\3\2"+
"\2\2\u00d3\u00d4\3\2\2\2\u00d4)\3\2\2\2\u00d5\u00d3\3\2\2\2\u00d6\u00d7"+
"\5,\27\2\u00d7\u00d8\7\6\2\2\u00d8\u00da\3\2\2\2\u00d9\u00d6\3\2\2\2\u00da"+
"\u00db\3\2\2\2\u00db\u00d9\3\2\2\2\u00db\u00dc\3\2\2\2\u00dc+\3\2\2\2"+
"\u00dd\u00ec\5\62\32\2\u00de\u00e0\5\62\32\2\u00df\u00de\3\2\2\2\u00df"+
"\u00e0\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1\u00e8\5.\30\2\u00e2\u00e4\7\5"+
"\2\2\u00e3\u00e2\3\2\2\2\u00e3\u00e4\3\2\2\2\u00e4\u00e5\3\2\2\2\u00e5"+
"\u00e7\5.\30\2\u00e6\u00e3\3\2\2\2\u00e7\u00ea\3\2\2\2\u00e8\u00e6\3\2"+
"\2\2\u00e8\u00e9\3\2\2\2\u00e9\u00ec\3\2\2\2\u00ea\u00e8\3\2\2\2\u00eb"+
"\u00dd\3\2\2\2\u00eb\u00df\3\2\2\2\u00ec-\3\2\2\2\u00ed\u00ee\7\30\2\2"+
"\u00ee\u0120\5\62\32\2\u00ef\u00f0\7\31\2\2\u00f0\u0120\5\62\32\2\u00f1"+
"\u00f2\7\32\2\2\u00f2\u0120\5\62\32\2\u00f3\u00f4\7\33\2\2\u00f4\u0120"+
"\5\62\32\2\u00f5\u00f6\7\34\2\2\u00f6\u0120\5\62\32\2\u00f7\u00f8\7\35"+
"\2\2\u00f8\u0120\7\64\2\2\u00f9\u00fb\7\36\2\2\u00fa\u00fc\5\64\33\2\u00fb"+
"\u00fa\3\2\2\2\u00fb\u00fc\3\2\2\2\u00fc\u0120\3\2\2\2\u00fd\u00fe\7\37"+
"\2\2\u00fe\u00ff\7\26\2\2\u00ff\u0100\5\4\3\2\u0100\u0101\7\27\2\2\u0101"+
"\u0120\3\2\2\2\u0102\u0103\7 \2\2\u0103\u0104\7\26\2\2\u0104\u0105\5\4"+
"\3\2\u0105\u0106\7\27\2\2\u0106\u0120\3\2\2\2\u0107\u0108\7!\2\2\u0108"+
"\u010b\5:\36\2\u0109\u010c\5\64\33\2\u010a\u010c\7\62\2\2\u010b\u0109"+
"\3\2\2\2\u010b\u010a\3\2\2\2\u010b\u010c\3\2\2\2\u010c\u0120\3\2\2\2\u010d"+
"\u010e\7\"\2\2\u010e\u0120\5\62\32\2\u010f\u0110\7\22\2\2\u0110\u0115"+
"\5\60\31\2\u0111\u0112\7\5\2\2\u0112\u0114\5\60\31\2\u0113\u0111\3\2\2"+
"\2\u0114\u0117\3\2\2\2\u0115\u0113\3\2\2\2\u0115\u0116\3\2\2\2\u0116\u0118"+
"\3\2\2\2\u0117\u0115\3\2\2\2\u0118\u0119\7\23\2\2\u0119\u0120\3\2\2\2"+
"\u011a\u0120\7#\2\2\u011b\u011c\7$\2\2\u011c\u0120\7/\2\2\u011d\u011e"+
"\7%\2\2\u011e\u0120\7\65\2\2\u011f\u00ed\3\2\2\2\u011f\u00ef\3\2\2\2\u011f"+
"\u00f1\3\2\2\2\u011f\u00f3\3\2\2\2\u011f\u00f5\3\2\2\2\u011f\u00f7\3\2"+
"\2\2\u011f\u00f9\3\2\2\2\u011f\u00fd\3\2\2\2\u011f\u0102\3\2\2\2\u011f"+
"\u0107\3\2\2\2\u011f\u010d\3\2\2\2\u011f\u010f\3\2\2\2\u011f\u011a\3\2"+
"\2\2\u011f\u011b\3\2\2\2\u011f\u011d\3\2\2\2\u0120/\3\2\2\2\u0121\u0122"+
"\5\62\32\2\u0122\u0123\7&\2\2\u0123\u0125\3\2\2\2\u0124\u0121\3\2\2\2"+
"\u0124\u0125\3\2\2\2\u0125\u0126\3\2\2\2\u0126\u0127\5\62\32\2\u0127\61"+
"\3\2\2\2\u0128\u012b\5:\36\2\u0129\u012b\7\62\2\2\u012a\u0128\3\2\2\2"+
"\u012a\u0129\3\2\2\2\u012b\63\3\2\2\2\u012c\u012e\b\33\1\2\u012d\u012f"+
"\7\'\2\2\u012e\u012d\3\2\2\2\u012e\u012f\3\2\2\2\u012f\u0130\3\2\2\2\u0130"+
"\u0143\5\66\34\2\u0131\u0132\7(\2\2\u0132\u0143\5\66\34\2\u0133\u0134"+
"\7)\2\2\u0134\u0143\5\66\34\2\u0135\u0136\7*\2\2\u0136\u0143\5\66\34\2"+
"\u0137\u0138\7+\2\2\u0138\u0143\5\66\34\2\u0139\u013a\7,\2\2\u013a\u0143"+
"\5\66\34\2\u013b\u013c\7-\2\2\u013c\u0143\7\64\2\2\u013d\u0143\7\65\2"+
"\2\u013e\u013f\7\22\2\2\u013f\u0140\5\64\33\2\u0140\u0141\7\23\2\2\u0141"+
"\u0143\3\2\2\2\u0142\u012c\3\2\2\2\u0142\u0131\3\2\2\2\u0142\u0133\3\2"+
"\2\2\u0142\u0135\3\2\2\2\u0142\u0137\3\2\2\2\u0142\u0139\3\2\2\2\u0142"+
"\u013b\3\2\2\2\u0142\u013d\3\2\2\2\u0142\u013e\3\2\2\2\u0143\u014c\3\2"+
"\2\2\u0144\u0145\f\5\2\2\u0145\u0146\7.\2\2\u0146\u014b\5\64\33\6\u0147"+
"\u0148\f\4\2\2\u0148\u0149\7\25\2\2\u0149\u014b\5\64\33\5\u014a\u0144"+
"\3\2\2\2\u014a\u0147\3\2\2\2\u014b\u014e\3\2\2\2\u014c\u014a\3\2\2\2\u014c"+
"\u014d\3\2\2\2\u014d\65\3\2\2\2\u014e\u014c\3\2\2\2\u014f\u0154\7\64\2"+
"\2\u0150\u0154\7\66\2\2\u0151\u0154\7\67\2\2\u0152\u0154\7\61\2\2\u0153"+
"\u014f\3\2\2\2\u0153\u0150\3\2\2\2\u0153\u0151\3\2\2\2\u0153\u0152\3\2"+
"\2\2\u0154\67\3\2\2\2\u0155\u0156\5(\25\2\u0156\u0157\7\6\2\2\u01579\3"+
"\2\2\2\u0158\u0159\t\2\2\2\u0159;\3\2\2\2!Edx{}\u0085\u0097\u00a0\u00a7"+
"\u00b0\u00b5\u00b9\u00c4\u00cc\u00d3\u00db\u00df\u00e3\u00e8\u00eb\u00fb"+
"\u010b\u0115\u011f\u0124\u012a\u012e\u0142\u014a\u014c\u0153";
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