// Generated from ./src/damp/ekeko/snippets/Snippet.g4 by ANTLR 4.1
package damp.ekeko.snippets;
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 SnippetParser extends Parser {
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
OPEN=1, CLOSE=2, MIDDLE=3, TXT=4;
public static final String[] tokenNames = {
"<INVALID>", "'['", "']'", "']@['", "TXT"
};
public static final int
RULE_snippet = 0, RULE_meta = 1, RULE_premeta = 2, RULE_postmeta = 3,
RULE_directives = 4;
public static final String[] ruleNames = {
"snippet", "meta", "premeta", "postmeta", "directives"
};
@Override
public String getGrammarFileName() { return "Snippet.g4"; }
@Override
public String[] getTokenNames() { return tokenNames; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public ATN getATN() { return _ATN; }
public SnippetParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class SnippetContext extends ParserRuleContext {
public List<TerminalNode> TXT() { return getTokens(SnippetParser.TXT); }
public TerminalNode TXT(int i) {
return getToken(SnippetParser.TXT, i);
}
public SnippetContext snippet(int i) {
return getRuleContext(SnippetContext.class,i);
}
public MetaContext meta() {
return getRuleContext(MetaContext.class,0);
}
public List<SnippetContext> snippet() {
return getRuleContexts(SnippetContext.class);
}
public SnippetContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_snippet; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).enterSnippet(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).exitSnippet(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof SnippetVisitor ) return ((SnippetVisitor<? extends T>)visitor).visitSnippet(this);
else return visitor.visitChildren(this);
}
}
public final SnippetContext snippet() throws RecognitionException {
SnippetContext _localctx = new SnippetContext(_ctx, getState());
enterRule(_localctx, 0, RULE_snippet);
try {
int _alt;
setState(28);
switch (_input.LA(1)) {
case OPEN:
enterOuterAlt(_localctx, 1);
{
setState(10); meta();
setState(14);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
while ( _alt!=2 && _alt!=-1 ) {
if ( _alt==1 ) {
{
{
setState(11); snippet();
}
}
}
setState(16);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
}
}
break;
case TXT:
enterOuterAlt(_localctx, 2);
{
setState(18);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,1,_ctx);
do {
switch (_alt) {
case 1:
{
{
setState(17); match(TXT);
}
}
break;
default:
throw new NoViableAltException(this);
}
setState(20);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,1,_ctx);
} while ( _alt!=2 && _alt!=-1 );
setState(25);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
while ( _alt!=2 && _alt!=-1 ) {
if ( _alt==1 ) {
{
{
setState(22); snippet();
}
}
}
setState(27);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,2,_ctx);
}
}
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 MetaContext extends ParserRuleContext {
public PostmetaContext postmeta() {
return getRuleContext(PostmetaContext.class,0);
}
public PremetaContext premeta() {
return getRuleContext(PremetaContext.class,0);
}
public MetaContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_meta; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).enterMeta(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).exitMeta(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof SnippetVisitor ) return ((SnippetVisitor<? extends T>)visitor).visitMeta(this);
else return visitor.visitChildren(this);
}
}
public final MetaContext meta() throws RecognitionException {
MetaContext _localctx = new MetaContext(_ctx, getState());
enterRule(_localctx, 2, RULE_meta);
try {
enterOuterAlt(_localctx, 1);
{
setState(30); premeta();
setState(31); postmeta();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PremetaContext extends ParserRuleContext {
public TerminalNode OPEN() { return getToken(SnippetParser.OPEN, 0); }
public TerminalNode MIDDLE() { return getToken(SnippetParser.MIDDLE, 0); }
public SnippetContext snippet() {
return getRuleContext(SnippetContext.class,0);
}
public PremetaContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_premeta; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).enterPremeta(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).exitPremeta(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof SnippetVisitor ) return ((SnippetVisitor<? extends T>)visitor).visitPremeta(this);
else return visitor.visitChildren(this);
}
}
public final PremetaContext premeta() throws RecognitionException {
PremetaContext _localctx = new PremetaContext(_ctx, getState());
enterRule(_localctx, 4, RULE_premeta);
try {
enterOuterAlt(_localctx, 1);
{
setState(33); match(OPEN);
setState(34); snippet();
setState(35); match(MIDDLE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class PostmetaContext extends ParserRuleContext {
public TerminalNode CLOSE() { return getToken(SnippetParser.CLOSE, 0); }
public DirectivesContext directives() {
return getRuleContext(DirectivesContext.class,0);
}
public PostmetaContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_postmeta; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).enterPostmeta(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).exitPostmeta(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof SnippetVisitor ) return ((SnippetVisitor<? extends T>)visitor).visitPostmeta(this);
else return visitor.visitChildren(this);
}
}
public final PostmetaContext postmeta() throws RecognitionException {
PostmetaContext _localctx = new PostmetaContext(_ctx, getState());
enterRule(_localctx, 6, RULE_postmeta);
try {
enterOuterAlt(_localctx, 1);
{
setState(37); directives();
setState(38); match(CLOSE);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class DirectivesContext extends ParserRuleContext {
public List<TerminalNode> TXT() { return getTokens(SnippetParser.TXT); }
public TerminalNode TXT(int i) {
return getToken(SnippetParser.TXT, i);
}
public DirectivesContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_directives; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).enterDirectives(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof SnippetListener ) ((SnippetListener)listener).exitDirectives(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof SnippetVisitor ) return ((SnippetVisitor<? extends T>)visitor).visitDirectives(this);
else return visitor.visitChildren(this);
}
}
public final DirectivesContext directives() throws RecognitionException {
DirectivesContext _localctx = new DirectivesContext(_ctx, getState());
enterRule(_localctx, 8, RULE_directives);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(41);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(40); match(TXT);
}
}
setState(43);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==TXT );
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static final String _serializedATN =
"\3\uacf5\uee8c\u4f5d\u8b0d\u4a45\u78bd\u1b2f\u3378\3\6\60\4\2\t\2\4\3"+
"\t\3\4\4\t\4\4\5\t\5\4\6\t\6\3\2\3\2\7\2\17\n\2\f\2\16\2\22\13\2\3\2\6"+
"\2\25\n\2\r\2\16\2\26\3\2\7\2\32\n\2\f\2\16\2\35\13\2\5\2\37\n\2\3\3\3"+
"\3\3\3\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\6\6\6,\n\6\r\6\16\6-\3\6\2\7\2\4"+
"\6\b\n\2\2/\2\36\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\20\5\4\3\2\r\17\5\2\2\2\16\r\3\2\2\2\17\22\3\2\2\2\20\16\3\2\2\2\20"+
"\21\3\2\2\2\21\37\3\2\2\2\22\20\3\2\2\2\23\25\7\6\2\2\24\23\3\2\2\2\25"+
"\26\3\2\2\2\26\24\3\2\2\2\26\27\3\2\2\2\27\33\3\2\2\2\30\32\5\2\2\2\31"+
"\30\3\2\2\2\32\35\3\2\2\2\33\31\3\2\2\2\33\34\3\2\2\2\34\37\3\2\2\2\35"+
"\33\3\2\2\2\36\f\3\2\2\2\36\24\3\2\2\2\37\3\3\2\2\2 !\5\6\4\2!\"\5\b\5"+
"\2\"\5\3\2\2\2#$\7\3\2\2$%\5\2\2\2%&\7\5\2\2&\7\3\2\2\2\'(\5\n\6\2()\7"+
"\4\2\2)\t\3\2\2\2*,\7\6\2\2+*\3\2\2\2,-\3\2\2\2-+\3\2\2\2-.\3\2\2\2.\13"+
"\3\2\2\2\7\20\26\33\36-";
public static final ATN _ATN =
ATNSimulator.deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}