// Generated from TaZQL.g4 by ANTLR 4.4
package grammar;
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 TaZQLParser extends Parser {
static { RuntimeMetaData.checkVersion("4.4", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
T__23=1, T__22=2, T__21=3, T__20=4, T__19=5, T__18=6, T__17=7, T__16=8,
T__15=9, T__14=10, T__13=11, T__12=12, T__11=13, T__10=14, T__9=15, T__8=16,
T__7=17, T__6=18, T__5=19, T__4=20, T__3=21, T__2=22, T__1=23, T__0=24,
BOOLEAN=25, NUMBER=26, TEXT=27, ID=28, WS=29, COMMENT=30;
public static final String[] tokenNames = {
"<INVALID>", "'/'", "'digits'", "'!='", "'||'", "'>='", "'{'", "'&&'",
"'=='", "'<'", "'} END'", "'}'", "'>'", "'if'", "'FORM'", "'<='", "'!'",
"'text'", "'else'", "'('", "')'", "'*'", "'choice'", "'+'", "'-'", "BOOLEAN",
"NUMBER", "TEXT", "ID", "WS", "COMMENT"
};
public static final int
RULE_questionnaire = 0, RULE_form = 1, RULE_question = 2, RULE_expression = 3,
RULE_type = 4;
public static final String[] ruleNames = {
"questionnaire", "form", "question", "expression", "type"
};
@Override
public String getGrammarFileName() { return "TaZQL.g4"; }
@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 TaZQLParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class QuestionnaireContext extends ParserRuleContext {
public FormContext form() {
return getRuleContext(FormContext.class,0);
}
public QuestionnaireContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_questionnaire; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterQuestionnaire(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitQuestionnaire(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitQuestionnaire(this);
else return visitor.visitChildren(this);
}
}
public final QuestionnaireContext questionnaire() throws RecognitionException {
QuestionnaireContext _localctx = new QuestionnaireContext(_ctx, getState());
enterRule(_localctx, 0, RULE_questionnaire);
try {
enterOuterAlt(_localctx, 1);
{
setState(10); form();
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class FormContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(TaZQLParser.ID, 0); }
public TerminalNode EOF() { return getToken(TaZQLParser.EOF, 0); }
public QuestionContext question(int i) {
return getRuleContext(QuestionContext.class,i);
}
public List<QuestionContext> question() {
return getRuleContexts(QuestionContext.class);
}
public FormContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_form; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterForm(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitForm(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitForm(this);
else return visitor.visitChildren(this);
}
}
public final FormContext form() throws RecognitionException {
FormContext _localctx = new FormContext(_ctx, getState());
enterRule(_localctx, 2, RULE_form);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(12); match(T__10);
setState(13); match(ID);
setState(14); match(T__18);
setState(16);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(15); question();
}
}
setState(18);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==T__11 || _la==ID );
setState(20); match(T__14);
setState(21); match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class QuestionContext extends ParserRuleContext {
public QuestionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_question; }
public QuestionContext() { }
public void copyFrom(QuestionContext ctx) {
super.copyFrom(ctx);
}
}
public static class SimpleQuestionContext extends QuestionContext {
public TerminalNode ID() { return getToken(TaZQLParser.ID, 0); }
public TerminalNode TEXT() { return getToken(TaZQLParser.TEXT, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public SimpleQuestionContext(QuestionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterSimpleQuestion(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitSimpleQuestion(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitSimpleQuestion(this);
else return visitor.visitChildren(this);
}
}
public static class ComputationQuestionContext extends QuestionContext {
public TerminalNode ID() { return getToken(TaZQLParser.ID, 0); }
public TerminalNode TEXT() { return getToken(TaZQLParser.TEXT, 0); }
public TypeContext type() {
return getRuleContext(TypeContext.class,0);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public ComputationQuestionContext(QuestionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterComputationQuestion(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitComputationQuestion(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitComputationQuestion(this);
else return visitor.visitChildren(this);
}
}
public static class IfelseStatementContext extends QuestionContext {
public ExpressionContext cond;
public QuestionContext question;
public List<QuestionContext> thenBranch = new ArrayList<QuestionContext>();
public List<QuestionContext> elseBranch = new ArrayList<QuestionContext>();
public QuestionContext question(int i) {
return getRuleContext(QuestionContext.class,i);
}
public List<QuestionContext> question() {
return getRuleContexts(QuestionContext.class);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public IfelseStatementContext(QuestionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterIfelseStatement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitIfelseStatement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitIfelseStatement(this);
else return visitor.visitChildren(this);
}
}
public static class IfStatementContext extends QuestionContext {
public QuestionContext question(int i) {
return getRuleContext(QuestionContext.class,i);
}
public List<QuestionContext> question() {
return getRuleContexts(QuestionContext.class);
}
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public IfStatementContext(QuestionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterIfStatement(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitIfStatement(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitIfStatement(this);
else return visitor.visitChildren(this);
}
}
public final QuestionContext question() throws RecognitionException {
QuestionContext _localctx = new QuestionContext(_ctx, getState());
enterRule(_localctx, 4, RULE_question);
int _la;
try {
setState(65);
switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) {
case 1:
_localctx = new SimpleQuestionContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(23); match(ID);
setState(24); match(TEXT);
setState(25); type();
}
break;
case 2:
_localctx = new ComputationQuestionContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(26); match(ID);
setState(27); match(TEXT);
setState(28); type();
setState(29); match(T__5);
setState(30); expression(0);
setState(31); match(T__4);
}
break;
case 3:
_localctx = new IfStatementContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(33); match(T__11);
setState(34); match(T__5);
setState(35); expression(0);
setState(36); match(T__4);
setState(37); match(T__18);
setState(39);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(38); question();
}
}
setState(41);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==T__11 || _la==ID );
setState(43); match(T__13);
}
break;
case 4:
_localctx = new IfelseStatementContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(45); match(T__11);
setState(46); match(T__5);
setState(47); ((IfelseStatementContext)_localctx).cond = expression(0);
setState(48); match(T__4);
setState(49); match(T__18);
setState(51);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(50); ((IfelseStatementContext)_localctx).question = question();
((IfelseStatementContext)_localctx).thenBranch.add(((IfelseStatementContext)_localctx).question);
}
}
setState(53);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==T__11 || _la==ID );
setState(55); match(T__13);
setState(56); match(T__6);
setState(57); match(T__18);
setState(59);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(58); ((IfelseStatementContext)_localctx).question = question();
((IfelseStatementContext)_localctx).elseBranch.add(((IfelseStatementContext)_localctx).question);
}
}
setState(61);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==T__11 || _la==ID );
setState(63); match(T__13);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ExpressionContext extends ParserRuleContext {
public ExpressionContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expression; }
public ExpressionContext() { }
public void copyFrom(ExpressionContext ctx) {
super.copyFrom(ctx);
}
}
public static class OrExpressionContext extends ExpressionContext {
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public OrExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterOrExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitOrExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitOrExpression(this);
else return visitor.visitChildren(this);
}
}
public static class NumberContext extends ExpressionContext {
public TerminalNode NUMBER() { return getToken(TaZQLParser.NUMBER, 0); }
public NumberContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterNumber(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitNumber(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitNumber(this);
else return visitor.visitChildren(this);
}
}
public static class ComparissionExpressionContext extends ExpressionContext {
public Token op;
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public ComparissionExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterComparissionExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitComparissionExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitComparissionExpression(this);
else return visitor.visitChildren(this);
}
}
public static class AndExpressionContext extends ExpressionContext {
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public AndExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterAndExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitAndExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitAndExpression(this);
else return visitor.visitChildren(this);
}
}
public static class AddSubExpressionContext extends ExpressionContext {
public Token op;
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public AddSubExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterAddSubExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitAddSubExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitAddSubExpression(this);
else return visitor.visitChildren(this);
}
}
public static class EquationExpressionContext extends ExpressionContext {
public Token op;
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public EquationExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterEquationExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitEquationExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitEquationExpression(this);
else return visitor.visitChildren(this);
}
}
public static class BracketsExpressionContext extends ExpressionContext {
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public BracketsExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterBracketsExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitBracketsExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitBracketsExpression(this);
else return visitor.visitChildren(this);
}
}
public static class MultDivExpressionContext extends ExpressionContext {
public Token op;
public ExpressionContext expression(int i) {
return getRuleContext(ExpressionContext.class,i);
}
public List<ExpressionContext> expression() {
return getRuleContexts(ExpressionContext.class);
}
public MultDivExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterMultDivExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitMultDivExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitMultDivExpression(this);
else return visitor.visitChildren(this);
}
}
public static class IdContext extends ExpressionContext {
public TerminalNode ID() { return getToken(TaZQLParser.ID, 0); }
public IdContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterId(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitId(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitId(this);
else return visitor.visitChildren(this);
}
}
public static class TextContext extends ExpressionContext {
public TerminalNode TEXT() { return getToken(TaZQLParser.TEXT, 0); }
public TextContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterText(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitText(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitText(this);
else return visitor.visitChildren(this);
}
}
public static class UnaryExpressionContext extends ExpressionContext {
public Token op;
public ExpressionContext expression() {
return getRuleContext(ExpressionContext.class,0);
}
public UnaryExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterUnaryExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitUnaryExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitUnaryExpression(this);
else return visitor.visitChildren(this);
}
}
public static class BooleanExpressionContext extends ExpressionContext {
public TerminalNode BOOLEAN() { return getToken(TaZQLParser.BOOLEAN, 0); }
public BooleanExpressionContext(ExpressionContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterBooleanExpression(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitBooleanExpression(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitBooleanExpression(this);
else return visitor.visitChildren(this);
}
}
public final ExpressionContext expression() throws RecognitionException {
return expression(0);
}
private ExpressionContext expression(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
ExpressionContext _prevctx = _localctx;
int _startState = 6;
enterRecursionRule(_localctx, 6, RULE_expression, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(78);
switch (_input.LA(1)) {
case T__8:
case T__1:
case T__0:
{
_localctx = new UnaryExpressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(68);
((UnaryExpressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__8) | (1L << T__1) | (1L << T__0))) != 0)) ) {
((UnaryExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
consume();
setState(69); expression(12);
}
break;
case BOOLEAN:
{
_localctx = new BooleanExpressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(70); match(BOOLEAN);
}
break;
case ID:
{
_localctx = new IdContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(71); match(ID);
}
break;
case TEXT:
{
_localctx = new TextContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(72); match(TEXT);
}
break;
case NUMBER:
{
_localctx = new NumberContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(73); match(NUMBER);
}
break;
case T__5:
{
_localctx = new BracketsExpressionContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(74); match(T__5);
setState(75); expression(0);
setState(76); match(T__4);
}
break;
default:
throw new NoViableAltException(this);
}
_ctx.stop = _input.LT(-1);
setState(100);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(98);
switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
case 1:
{
_localctx = new MultDivExpressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(80);
if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
setState(81);
((MultDivExpressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__23 || _la==T__3) ) {
((MultDivExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
consume();
setState(82); expression(12);
}
break;
case 2:
{
_localctx = new AddSubExpressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(83);
if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
setState(84);
((AddSubExpressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__1 || _la==T__0) ) {
((AddSubExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
consume();
setState(85); expression(11);
}
break;
case 3:
{
_localctx = new ComparissionExpressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(86);
if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
setState(87);
((ComparissionExpressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__19) | (1L << T__15) | (1L << T__12) | (1L << T__9))) != 0)) ) {
((ComparissionExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
consume();
setState(88); expression(10);
}
break;
case 4:
{
_localctx = new EquationExpressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(89);
if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
setState(90);
((EquationExpressionContext)_localctx).op = _input.LT(1);
_la = _input.LA(1);
if ( !(_la==T__21 || _la==T__16) ) {
((EquationExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
}
consume();
setState(91); expression(9);
}
break;
case 5:
{
_localctx = new AndExpressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(92);
if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
setState(93); match(T__17);
setState(94); expression(8);
}
break;
case 6:
{
_localctx = new OrExpressionContext(new ExpressionContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_expression);
setState(95);
if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
setState(96); match(T__20);
setState(97); expression(7);
}
break;
}
}
}
setState(102);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,7,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class TypeContext extends ParserRuleContext {
public TypeContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_type; }
public TypeContext() { }
public void copyFrom(TypeContext ctx) {
super.copyFrom(ctx);
}
}
public static class BooleanTypeContext extends TypeContext {
public BooleanTypeContext(TypeContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterBooleanType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitBooleanType(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitBooleanType(this);
else return visitor.visitChildren(this);
}
}
public static class IntegerTypeContext extends TypeContext {
public IntegerTypeContext(TypeContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterIntegerType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitIntegerType(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitIntegerType(this);
else return visitor.visitChildren(this);
}
}
public static class StringTypeContext extends TypeContext {
public StringTypeContext(TypeContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).enterStringType(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof TaZQLListener ) ((TaZQLListener)listener).exitStringType(this);
}
@Override
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
if ( visitor instanceof TaZQLVisitor ) return ((TaZQLVisitor<? extends T>)visitor).visitStringType(this);
else return visitor.visitChildren(this);
}
}
public final TypeContext type() throws RecognitionException {
TypeContext _localctx = new TypeContext(_ctx, getState());
enterRule(_localctx, 8, RULE_type);
try {
setState(106);
switch (_input.LA(1)) {
case T__2:
_localctx = new BooleanTypeContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(103); match(T__2);
}
break;
case T__22:
_localctx = new IntegerTypeContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(104); match(T__22);
}
break;
case T__7:
_localctx = new StringTypeContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(105); match(T__7);
}
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 boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 3: return expression_sempred((ExpressionContext)_localctx, predIndex);
}
return true;
}
private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
switch (predIndex) {
case 0: return precpred(_ctx, 11);
case 1: return precpred(_ctx, 10);
case 2: return precpred(_ctx, 9);
case 3: return precpred(_ctx, 8);
case 4: return precpred(_ctx, 7);
case 5: return precpred(_ctx, 6);
}
return true;
}
public static final String _serializedATN =
"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3 o\4\2\t\2\4\3\t\3"+
"\4\4\t\4\4\5\t\5\4\6\t\6\3\2\3\2\3\3\3\3\3\3\3\3\6\3\23\n\3\r\3\16\3\24"+
"\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3"+
"\4\3\4\6\4*\n\4\r\4\16\4+\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\6\4\66\n\4\r"+
"\4\16\4\67\3\4\3\4\3\4\3\4\6\4>\n\4\r\4\16\4?\3\4\3\4\5\4D\n\4\3\5\3\5"+
"\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\5\5Q\n\5\3\5\3\5\3\5\3\5\3\5\3\5"+
"\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\7\5e\n\5\f\5\16\5h\13"+
"\5\3\6\3\6\3\6\5\6m\n\6\3\6\2\3\b\7\2\4\6\b\n\2\7\4\2\22\22\31\32\4\2"+
"\3\3\27\27\3\2\31\32\6\2\7\7\13\13\16\16\21\21\4\2\5\5\n\n}\2\f\3\2\2"+
"\2\4\16\3\2\2\2\6C\3\2\2\2\bP\3\2\2\2\nl\3\2\2\2\f\r\5\4\3\2\r\3\3\2\2"+
"\2\16\17\7\20\2\2\17\20\7\36\2\2\20\22\7\b\2\2\21\23\5\6\4\2\22\21\3\2"+
"\2\2\23\24\3\2\2\2\24\22\3\2\2\2\24\25\3\2\2\2\25\26\3\2\2\2\26\27\7\f"+
"\2\2\27\30\7\2\2\3\30\5\3\2\2\2\31\32\7\36\2\2\32\33\7\35\2\2\33D\5\n"+
"\6\2\34\35\7\36\2\2\35\36\7\35\2\2\36\37\5\n\6\2\37 \7\25\2\2 !\5\b\5"+
"\2!\"\7\26\2\2\"D\3\2\2\2#$\7\17\2\2$%\7\25\2\2%&\5\b\5\2&\'\7\26\2\2"+
"\')\7\b\2\2(*\5\6\4\2)(\3\2\2\2*+\3\2\2\2+)\3\2\2\2+,\3\2\2\2,-\3\2\2"+
"\2-.\7\r\2\2.D\3\2\2\2/\60\7\17\2\2\60\61\7\25\2\2\61\62\5\b\5\2\62\63"+
"\7\26\2\2\63\65\7\b\2\2\64\66\5\6\4\2\65\64\3\2\2\2\66\67\3\2\2\2\67\65"+
"\3\2\2\2\678\3\2\2\289\3\2\2\29:\7\r\2\2:;\7\24\2\2;=\7\b\2\2<>\5\6\4"+
"\2=<\3\2\2\2>?\3\2\2\2?=\3\2\2\2?@\3\2\2\2@A\3\2\2\2AB\7\r\2\2BD\3\2\2"+
"\2C\31\3\2\2\2C\34\3\2\2\2C#\3\2\2\2C/\3\2\2\2D\7\3\2\2\2EF\b\5\1\2FG"+
"\t\2\2\2GQ\5\b\5\16HQ\7\33\2\2IQ\7\36\2\2JQ\7\35\2\2KQ\7\34\2\2LM\7\25"+
"\2\2MN\5\b\5\2NO\7\26\2\2OQ\3\2\2\2PE\3\2\2\2PH\3\2\2\2PI\3\2\2\2PJ\3"+
"\2\2\2PK\3\2\2\2PL\3\2\2\2Qf\3\2\2\2RS\f\r\2\2ST\t\3\2\2Te\5\b\5\16UV"+
"\f\f\2\2VW\t\4\2\2We\5\b\5\rXY\f\13\2\2YZ\t\5\2\2Ze\5\b\5\f[\\\f\n\2\2"+
"\\]\t\6\2\2]e\5\b\5\13^_\f\t\2\2_`\7\t\2\2`e\5\b\5\nab\f\b\2\2bc\7\6\2"+
"\2ce\5\b\5\tdR\3\2\2\2dU\3\2\2\2dX\3\2\2\2d[\3\2\2\2d^\3\2\2\2da\3\2\2"+
"\2eh\3\2\2\2fd\3\2\2\2fg\3\2\2\2g\t\3\2\2\2hf\3\2\2\2im\7\30\2\2jm\7\4"+
"\2\2km\7\23\2\2li\3\2\2\2lj\3\2\2\2lk\3\2\2\2m\13\3\2\2\2\13\24+\67?C"+
"Pdfl";
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);
}
}
}