// Generated from TaZQL.g4 by ANTLR 4.4 package main; 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, NEWLINE=30, COMMENTS=31; public static final String[] tokenNames = { "<INVALID>", "'/'", "'digits'", "'!='", "'||'", "'>='", "'{'", "'&&'", "'=='", "'<'", "'} END'", "'}'", "'>'", "'if'", "'FORM'", "'<='", "'!'", "'text'", "'else'", "'('", "')'", "'*'", "'choice'", "'+'", "'-'", "BOOLEAN", "NUMBER", "TEXT", "ID", "WS", "NEWLINE", "COMMENTS" }; 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); } } }