// Generated from DDMFormValuesQuery.g by ANTLR 4.3
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.dynamic.data.mapping.form.values.query.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;
/**
* @author Brian Wing Shun Chan
*/
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class DDMFormValuesQueryParser extends Parser {
static { RuntimeMetaData.checkVersion("4.3", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
T__5=1, T__4=2, T__3=3, T__2=4, T__1=5, T__0=6, IDENTIFIER=7, STRING_LITERAL=8,
SLASH=9, DOUBLE_SLASH=10, STAR=11, AT=12, OPEN_BRACKET=13, CLOSE_BRACKET=14,
EQUALS=15, WS=16;
public static final String[] tokenNames = {
"<INVALID>", "')'", "'and'", "'type'", "'or'", "'('", "'value'", "IDENTIFIER",
"STRING_LITERAL", "'/'", "'//'", "'*'", "'@'", "'['", "']'", "'='", "WS"
};
public static final int
RULE_path = 0, RULE_selectorExpression = 1, RULE_stepType = 2, RULE_fieldSelectorExpression = 3,
RULE_fieldSelector = 4, RULE_predicateExpression = 5, RULE_predicateOrExpression = 6,
RULE_predicateAndExpression = 7, RULE_predicateEqualityExpression = 8,
RULE_attribute = 9, RULE_attributeType = 10, RULE_attributeValue = 11,
RULE_localeExpression = 12;
public static final String[] ruleNames = {
"path", "selectorExpression", "stepType", "fieldSelectorExpression", "fieldSelector",
"predicateExpression", "predicateOrExpression", "predicateAndExpression",
"predicateEqualityExpression", "attribute", "attributeType", "attributeValue",
"localeExpression"
};
@Override
public String getGrammarFileName() { return "DDMFormValuesQuery.g"; }
@Override
public String[] getTokenNames() { return tokenNames; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public DDMFormValuesQueryParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class PathContext extends ParserRuleContext {
public List<SelectorExpressionContext> selectorExpression() {
return getRuleContexts(SelectorExpressionContext.class);
}
public SelectorExpressionContext selectorExpression(int i) {
return getRuleContext(SelectorExpressionContext.class,i);
}
public PathContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_path; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterPath(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitPath(this);
}
}
public final PathContext path() throws RecognitionException {
PathContext _localctx = new PathContext(_ctx, getState());
enterRule(_localctx, 0, RULE_path);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(29);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==SLASH || _la==DOUBLE_SLASH) {
{
{
setState(26); selectorExpression();
}
}
setState(31);
_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 SelectorExpressionContext extends ParserRuleContext {
public StepTypeContext stepType() {
return getRuleContext(StepTypeContext.class,0);
}
public FieldSelectorExpressionContext fieldSelectorExpression() {
return getRuleContext(FieldSelectorExpressionContext.class,0);
}
public SelectorExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_selectorExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterSelectorExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitSelectorExpression(this);
}
}
public final SelectorExpressionContext selectorExpression() throws RecognitionException {
SelectorExpressionContext _localctx = new SelectorExpressionContext(_ctx, getState());
enterRule(_localctx, 2, RULE_selectorExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(32); stepType();
setState(33); fieldSelectorExpression();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class StepTypeContext extends ParserRuleContext {
public TerminalNode DOUBLE_SLASH() { return getToken(DDMFormValuesQueryParser.DOUBLE_SLASH, 0); }
public TerminalNode SLASH() { return getToken(DDMFormValuesQueryParser.SLASH, 0); }
public StepTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_stepType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterStepType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitStepType(this);
}
}
public final StepTypeContext stepType() throws RecognitionException {
StepTypeContext _localctx = new StepTypeContext(_ctx, getState());
enterRule(_localctx, 4, RULE_stepType);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(35);
_la = _input.LA(1);
if ( !(_la==SLASH || _la==DOUBLE_SLASH) ) {
_errHandler.recoverInline(this);
}
consume();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class FieldSelectorExpressionContext extends ParserRuleContext {
public FieldSelectorContext fieldSelector() {
return getRuleContext(FieldSelectorContext.class,0);
}
public PredicateExpressionContext predicateExpression() {
return getRuleContext(PredicateExpressionContext.class,0);
}
public FieldSelectorExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_fieldSelectorExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterFieldSelectorExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitFieldSelectorExpression(this);
}
}
public final FieldSelectorExpressionContext fieldSelectorExpression() throws RecognitionException {
FieldSelectorExpressionContext _localctx = new FieldSelectorExpressionContext(_ctx, getState());
enterRule(_localctx, 6, RULE_fieldSelectorExpression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(37); fieldSelector();
setState(39);
_la = _input.LA(1);
if (_la==OPEN_BRACKET) {
{
setState(38); predicateExpression();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class FieldSelectorContext extends ParserRuleContext {
public TerminalNode IDENTIFIER() { return getToken(DDMFormValuesQueryParser.IDENTIFIER, 0); }
public TerminalNode STAR() { return getToken(DDMFormValuesQueryParser.STAR, 0); }
public FieldSelectorContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_fieldSelector; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterFieldSelector(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitFieldSelector(this);
}
}
public final FieldSelectorContext fieldSelector() throws RecognitionException {
FieldSelectorContext _localctx = new FieldSelectorContext(_ctx, getState());
enterRule(_localctx, 8, RULE_fieldSelector);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(41);
_la = _input.LA(1);
if ( !(_la==IDENTIFIER || _la==STAR) ) {
_errHandler.recoverInline(this);
}
consume();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PredicateExpressionContext extends ParserRuleContext {
public TerminalNode CLOSE_BRACKET() { return getToken(DDMFormValuesQueryParser.CLOSE_BRACKET, 0); }
public TerminalNode OPEN_BRACKET() { return getToken(DDMFormValuesQueryParser.OPEN_BRACKET, 0); }
public PredicateOrExpressionContext predicateOrExpression() {
return getRuleContext(PredicateOrExpressionContext.class,0);
}
public PredicateExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicateExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterPredicateExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitPredicateExpression(this);
}
}
public final PredicateExpressionContext predicateExpression() throws RecognitionException {
PredicateExpressionContext _localctx = new PredicateExpressionContext(_ctx, getState());
enterRule(_localctx, 10, RULE_predicateExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(43); match(OPEN_BRACKET);
setState(44); predicateOrExpression();
setState(45); match(CLOSE_BRACKET);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PredicateOrExpressionContext extends ParserRuleContext {
public List<PredicateAndExpressionContext> predicateAndExpression() {
return getRuleContexts(PredicateAndExpressionContext.class);
}
public PredicateAndExpressionContext predicateAndExpression(int i) {
return getRuleContext(PredicateAndExpressionContext.class,i);
}
public PredicateOrExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicateOrExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterPredicateOrExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitPredicateOrExpression(this);
}
}
public final PredicateOrExpressionContext predicateOrExpression() throws RecognitionException {
PredicateOrExpressionContext _localctx = new PredicateOrExpressionContext(_ctx, getState());
enterRule(_localctx, 12, RULE_predicateOrExpression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(47); predicateAndExpression();
setState(52);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__2) {
{
{
setState(48); match(T__2);
setState(49); predicateAndExpression();
}
}
setState(54);
_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 PredicateAndExpressionContext extends ParserRuleContext {
public PredicateEqualityExpressionContext predicateEqualityExpression(int i) {
return getRuleContext(PredicateEqualityExpressionContext.class,i);
}
public List<PredicateEqualityExpressionContext> predicateEqualityExpression() {
return getRuleContexts(PredicateEqualityExpressionContext.class);
}
public PredicateAndExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicateAndExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterPredicateAndExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitPredicateAndExpression(this);
}
}
public final PredicateAndExpressionContext predicateAndExpression() throws RecognitionException {
PredicateAndExpressionContext _localctx = new PredicateAndExpressionContext(_ctx, getState());
enterRule(_localctx, 14, RULE_predicateAndExpression);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(55); predicateEqualityExpression();
setState(60);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==T__4) {
{
{
setState(56); match(T__4);
setState(57); predicateEqualityExpression();
}
}
setState(62);
_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 PredicateEqualityExpressionContext extends ParserRuleContext {
public AttributeContext attribute() {
return getRuleContext(AttributeContext.class,0);
}
public TerminalNode EQUALS() { return getToken(DDMFormValuesQueryParser.EQUALS, 0); }
public TerminalNode STRING_LITERAL() { return getToken(DDMFormValuesQueryParser.STRING_LITERAL, 0); }
public TerminalNode AT() { return getToken(DDMFormValuesQueryParser.AT, 0); }
public PredicateEqualityExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_predicateEqualityExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterPredicateEqualityExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitPredicateEqualityExpression(this);
}
}
public final PredicateEqualityExpressionContext predicateEqualityExpression() throws RecognitionException {
PredicateEqualityExpressionContext _localctx = new PredicateEqualityExpressionContext(_ctx, getState());
enterRule(_localctx, 16, RULE_predicateEqualityExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(63); match(AT);
setState(64); attribute();
setState(65); match(EQUALS);
setState(66); match(STRING_LITERAL);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AttributeContext extends ParserRuleContext {
public AttributeTypeContext attributeType() {
return getRuleContext(AttributeTypeContext.class,0);
}
public AttributeValueContext attributeValue() {
return getRuleContext(AttributeValueContext.class,0);
}
public AttributeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_attribute; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterAttribute(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitAttribute(this);
}
}
public final AttributeContext attribute() throws RecognitionException {
AttributeContext _localctx = new AttributeContext(_ctx, getState());
enterRule(_localctx, 18, RULE_attribute);
try {
setState(70);
switch (_input.LA(1)) {
case T__3:
enterOuterAlt(_localctx, 1);
{
setState(68); attributeType();
}
break;
case T__0:
enterOuterAlt(_localctx, 2);
{
setState(69); attributeValue();
}
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 AttributeTypeContext extends ParserRuleContext {
public AttributeTypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_attributeType; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterAttributeType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitAttributeType(this);
}
}
public final AttributeTypeContext attributeType() throws RecognitionException {
AttributeTypeContext _localctx = new AttributeTypeContext(_ctx, getState());
enterRule(_localctx, 20, RULE_attributeType);
try {
enterOuterAlt(_localctx, 1);
{
setState(72); match(T__3);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class AttributeValueContext extends ParserRuleContext {
public LocaleExpressionContext localeExpression() {
return getRuleContext(LocaleExpressionContext.class,0);
}
public AttributeValueContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_attributeValue; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterAttributeValue(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitAttributeValue(this);
}
}
public final AttributeValueContext attributeValue() throws RecognitionException {
AttributeValueContext _localctx = new AttributeValueContext(_ctx, getState());
enterRule(_localctx, 22, RULE_attributeValue);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(74); match(T__0);
setState(76);
_la = _input.LA(1);
if (_la==T__1) {
{
setState(75); localeExpression();
}
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class LocaleExpressionContext extends ParserRuleContext {
public TerminalNode STRING_LITERAL() { return getToken(DDMFormValuesQueryParser.STRING_LITERAL, 0); }
public LocaleExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_localeExpression; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).enterLocaleExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof DDMFormValuesQueryListener ) ((DDMFormValuesQueryListener)listener).exitLocaleExpression(this);
}
}
public final LocaleExpressionContext localeExpression() throws RecognitionException {
LocaleExpressionContext _localctx = new LocaleExpressionContext(_ctx, getState());
enterRule(_localctx, 24, RULE_localeExpression);
try {
enterOuterAlt(_localctx, 1);
{
setState(78); match(T__1);
setState(79); match(STRING_LITERAL);
setState(80); match(T__5);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\22U\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\3\2\7\2\36\n\2\f\2\16\2!\13\2\3\3\3\3\3\3\3\4"+
"\3\4\3\5\3\5\5\5*\n\5\3\6\3\6\3\7\3\7\3\7\3\7\3\b\3\b\3\b\7\b\65\n\b\f"+
"\b\16\b8\13\b\3\t\3\t\3\t\7\t=\n\t\f\t\16\t@\13\t\3\n\3\n\3\n\3\n\3\n"+
"\3\13\3\13\5\13I\n\13\3\f\3\f\3\r\3\r\5\rO\n\r\3\16\3\16\3\16\3\16\3\16"+
"\2\2\17\2\4\6\b\n\f\16\20\22\24\26\30\32\2\4\3\2\13\f\4\2\t\t\r\rM\2\37"+
"\3\2\2\2\4\"\3\2\2\2\6%\3\2\2\2\b\'\3\2\2\2\n+\3\2\2\2\f-\3\2\2\2\16\61"+
"\3\2\2\2\209\3\2\2\2\22A\3\2\2\2\24H\3\2\2\2\26J\3\2\2\2\30L\3\2\2\2\32"+
"P\3\2\2\2\34\36\5\4\3\2\35\34\3\2\2\2\36!\3\2\2\2\37\35\3\2\2\2\37 \3"+
"\2\2\2 \3\3\2\2\2!\37\3\2\2\2\"#\5\6\4\2#$\5\b\5\2$\5\3\2\2\2%&\t\2\2"+
"\2&\7\3\2\2\2\')\5\n\6\2(*\5\f\7\2)(\3\2\2\2)*\3\2\2\2*\t\3\2\2\2+,\t"+
"\3\2\2,\13\3\2\2\2-.\7\17\2\2./\5\16\b\2/\60\7\20\2\2\60\r\3\2\2\2\61"+
"\66\5\20\t\2\62\63\7\6\2\2\63\65\5\20\t\2\64\62\3\2\2\2\658\3\2\2\2\66"+
"\64\3\2\2\2\66\67\3\2\2\2\67\17\3\2\2\28\66\3\2\2\29>\5\22\n\2:;\7\4\2"+
"\2;=\5\22\n\2<:\3\2\2\2=@\3\2\2\2><\3\2\2\2>?\3\2\2\2?\21\3\2\2\2@>\3"+
"\2\2\2AB\7\16\2\2BC\5\24\13\2CD\7\21\2\2DE\7\n\2\2E\23\3\2\2\2FI\5\26"+
"\f\2GI\5\30\r\2HF\3\2\2\2HG\3\2\2\2I\25\3\2\2\2JK\7\5\2\2K\27\3\2\2\2"+
"LN\7\b\2\2MO\5\32\16\2NM\3\2\2\2NO\3\2\2\2O\31\3\2\2\2PQ\7\7\2\2QR\7\n"+
"\2\2RS\7\3\2\2S\33\3\2\2\2\b\37)\66>HN";
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);
}
}
}