Source code for pycropml.transpiler.antlr_py.grammars.RParser

# Generated from Documents\THESE\pycropml_pheno\src\pycropml\antlr_grammarV4\r\R.g4 by ANTLR 4.8
# encoding: utf-8
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
	from typing import TextIO
else:
	from typing.io import TextIO


[docs] def serializedATN(): with StringIO() as buf: buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3B") buf.write("\u00d9\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") buf.write("\4\b\t\b\3\2\3\2\7\2\23\n\2\f\2\16\2\26\13\2\3\2\7\2\31") buf.write("\n\2\f\2\16\2\34\13\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\5\3*\n\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\5\3d\n\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3") buf.write("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\7\3\u009a\n\3\f\3") buf.write("\16\3\u009d\13\3\3\4\3\4\3\4\5\4\u00a2\n\4\7\4\u00a4\n") buf.write("\4\f\4\16\4\u00a7\13\4\3\4\5\4\u00aa\n\4\3\5\3\5\3\5\7") buf.write("\5\u00af\n\5\f\5\16\5\u00b2\13\5\3\6\3\6\3\6\3\6\3\6\3") buf.write("\6\5\6\u00ba\n\6\3\7\3\7\3\7\7\7\u00bf\n\7\f\7\16\7\u00c2") buf.write("\13\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b") buf.write("\3\b\3\b\3\b\3\b\3\b\3\b\3\b\5\b\u00d7\n\b\3\b\2\3\4\t") buf.write("\2\4\6\b\n\f\16\2\13\4\2\3\3AA\3\2\f\r\3\2\7\b\3\2\t\n") buf.write("\3\2\17\20\3\2\21\26\3\2\30\31\3\2\32\33\3\2\35\"\2\u010e") buf.write("\2\32\3\2\2\2\4c\3\2\2\2\6\u00a9\3\2\2\2\b\u00ab\3\2\2") buf.write("\2\n\u00b9\3\2\2\2\f\u00bb\3\2\2\2\16\u00d6\3\2\2\2\20") buf.write("\24\5\4\3\2\21\23\t\2\2\2\22\21\3\2\2\2\23\26\3\2\2\2") buf.write("\24\22\3\2\2\2\24\25\3\2\2\2\25\31\3\2\2\2\26\24\3\2\2") buf.write("\2\27\31\7A\2\2\30\20\3\2\2\2\30\27\3\2\2\2\31\34\3\2") buf.write("\2\2\32\30\3\2\2\2\32\33\3\2\2\2\33\35\3\2\2\2\34\32\3") buf.write("\2\2\2\35\36\7\2\2\3\36\3\3\2\2\2\37 \b\3\1\2 !\t\3\2") buf.write("\2!d\5\4\3&\"#\7\27\2\2#d\5\4\3 $%\7\34\2\2%d\5\4\3\35") buf.write("&\'\7#\2\2\')\7$\2\2(*\5\b\5\2)(\3\2\2\2)*\3\2\2\2*+\3") buf.write("\2\2\2+,\7%\2\2,d\5\4\3\32-.\7&\2\2./\5\6\4\2/\60\7\'") buf.write("\2\2\60d\3\2\2\2\61\62\7(\2\2\62\63\7$\2\2\63\64\5\4\3") buf.write("\2\64\65\7%\2\2\65\66\5\4\3\27\66d\3\2\2\2\678\7(\2\2") buf.write("89\7$\2\29:\5\4\3\2:;\7%\2\2;<\5\4\3\2<=\7)\2\2=>\5\4") buf.write("\3\26>d\3\2\2\2?@\7*\2\2@A\7$\2\2AB\7?\2\2BC\7+\2\2CD") buf.write("\5\4\3\2DE\7%\2\2EF\5\4\3\25Fd\3\2\2\2GH\7,\2\2HI\7$\2") buf.write("\2IJ\5\4\3\2JK\7%\2\2KL\5\4\3\24Ld\3\2\2\2MN\7-\2\2Nd") buf.write("\5\4\3\23OP\7.\2\2Pd\5\4\3\22Qd\7/\2\2Rd\7\60\2\2ST\7") buf.write("$\2\2TU\5\4\3\2UV\7%\2\2Vd\3\2\2\2Wd\7?\2\2Xd\7>\2\2Y") buf.write("d\7:\2\2Zd\7;\2\2[d\7<\2\2\\d\7=\2\2]d\7\61\2\2^d\7\62") buf.write("\2\2_d\7\63\2\2`d\7\64\2\2ad\7\65\2\2bd\7\66\2\2c\37\3") buf.write("\2\2\2c\"\3\2\2\2c$\3\2\2\2c&\3\2\2\2c-\3\2\2\2c\61\3") buf.write("\2\2\2c\67\3\2\2\2c?\3\2\2\2cG\3\2\2\2cM\3\2\2\2cO\3\2") buf.write("\2\2cQ\3\2\2\2cR\3\2\2\2cS\3\2\2\2cW\3\2\2\2cX\3\2\2\2") buf.write("cY\3\2\2\2cZ\3\2\2\2c[\3\2\2\2c\\\3\2\2\2c]\3\2\2\2c^") buf.write("\3\2\2\2c_\3\2\2\2c`\3\2\2\2ca\3\2\2\2cb\3\2\2\2d\u009b") buf.write("\3\2\2\2ef\f)\2\2fg\t\4\2\2g\u009a\5\4\3*hi\f(\2\2ij\t") buf.write("\5\2\2j\u009a\5\4\3)kl\f\'\2\2lm\7\13\2\2m\u009a\5\4\3") buf.write("\'no\f%\2\2op\7\16\2\2p\u009a\5\4\3&qr\f$\2\2rs\7@\2\2") buf.write("s\u009a\5\4\3%tu\f#\2\2uv\t\6\2\2v\u009a\5\4\3$wx\f\"") buf.write("\2\2xy\t\3\2\2y\u009a\5\4\3#z{\f!\2\2{|\t\7\2\2|\u009a") buf.write("\5\4\3\"}~\f\37\2\2~\177\t\b\2\2\177\u009a\5\4\3 \u0080") buf.write("\u0081\f\36\2\2\u0081\u0082\t\t\2\2\u0082\u009a\5\4\3") buf.write("\37\u0083\u0084\f\34\2\2\u0084\u0085\7\34\2\2\u0085\u009a") buf.write("\5\4\3\35\u0086\u0087\f\33\2\2\u0087\u0088\t\n\2\2\u0088") buf.write("\u009a\5\4\3\34\u0089\u008a\f+\2\2\u008a\u008b\7\4\2\2") buf.write("\u008b\u008c\5\f\7\2\u008c\u008d\7\5\2\2\u008d\u008e\7") buf.write("\5\2\2\u008e\u009a\3\2\2\2\u008f\u0090\f*\2\2\u0090\u0091") buf.write("\7\6\2\2\u0091\u0092\5\f\7\2\u0092\u0093\7\5\2\2\u0093") buf.write("\u009a\3\2\2\2\u0094\u0095\f\31\2\2\u0095\u0096\7$\2\2") buf.write("\u0096\u0097\5\f\7\2\u0097\u0098\7%\2\2\u0098\u009a\3") buf.write("\2\2\2\u0099e\3\2\2\2\u0099h\3\2\2\2\u0099k\3\2\2\2\u0099") buf.write("n\3\2\2\2\u0099q\3\2\2\2\u0099t\3\2\2\2\u0099w\3\2\2\2") buf.write("\u0099z\3\2\2\2\u0099}\3\2\2\2\u0099\u0080\3\2\2\2\u0099") buf.write("\u0083\3\2\2\2\u0099\u0086\3\2\2\2\u0099\u0089\3\2\2\2") buf.write("\u0099\u008f\3\2\2\2\u0099\u0094\3\2\2\2\u009a\u009d\3") buf.write("\2\2\2\u009b\u0099\3\2\2\2\u009b\u009c\3\2\2\2\u009c\5") buf.write("\3\2\2\2\u009d\u009b\3\2\2\2\u009e\u00a5\5\4\3\2\u009f") buf.write("\u00a1\t\2\2\2\u00a0\u00a2\5\4\3\2\u00a1\u00a0\3\2\2\2") buf.write("\u00a1\u00a2\3\2\2\2\u00a2\u00a4\3\2\2\2\u00a3\u009f\3") buf.write("\2\2\2\u00a4\u00a7\3\2\2\2\u00a5\u00a3\3\2\2\2\u00a5\u00a6") buf.write("\3\2\2\2\u00a6\u00aa\3\2\2\2\u00a7\u00a5\3\2\2\2\u00a8") buf.write("\u00aa\3\2\2\2\u00a9\u009e\3\2\2\2\u00a9\u00a8\3\2\2\2") buf.write("\u00aa\7\3\2\2\2\u00ab\u00b0\5\n\6\2\u00ac\u00ad\7\67") buf.write("\2\2\u00ad\u00af\5\n\6\2\u00ae\u00ac\3\2\2\2\u00af\u00b2") buf.write("\3\2\2\2\u00b0\u00ae\3\2\2\2\u00b0\u00b1\3\2\2\2\u00b1") buf.write("\t\3\2\2\2\u00b2\u00b0\3\2\2\2\u00b3\u00ba\7?\2\2\u00b4") buf.write("\u00b5\7?\2\2\u00b5\u00b6\7\37\2\2\u00b6\u00ba\5\4\3\2") buf.write("\u00b7\u00ba\78\2\2\u00b8\u00ba\79\2\2\u00b9\u00b3\3\2") buf.write("\2\2\u00b9\u00b4\3\2\2\2\u00b9\u00b7\3\2\2\2\u00b9\u00b8") buf.write("\3\2\2\2\u00ba\13\3\2\2\2\u00bb\u00c0\5\16\b\2\u00bc\u00bd") buf.write("\7\67\2\2\u00bd\u00bf\5\16\b\2\u00be\u00bc\3\2\2\2\u00bf") buf.write("\u00c2\3\2\2\2\u00c0\u00be\3\2\2\2\u00c0\u00c1\3\2\2\2") buf.write("\u00c1\r\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c3\u00d7\5\4\3") buf.write("\2\u00c4\u00c5\7?\2\2\u00c5\u00d7\7\37\2\2\u00c6\u00c7") buf.write("\7?\2\2\u00c7\u00c8\7\37\2\2\u00c8\u00d7\5\4\3\2\u00c9") buf.write("\u00ca\7>\2\2\u00ca\u00d7\7\37\2\2\u00cb\u00cc\7>\2\2") buf.write("\u00cc\u00cd\7\37\2\2\u00cd\u00d7\5\4\3\2\u00ce\u00cf") buf.write("\7\61\2\2\u00cf\u00d7\7\37\2\2\u00d0\u00d1\7\61\2\2\u00d1") buf.write("\u00d2\7\37\2\2\u00d2\u00d7\5\4\3\2\u00d3\u00d7\78\2\2") buf.write("\u00d4\u00d7\79\2\2\u00d5\u00d7\3\2\2\2\u00d6\u00c3\3") buf.write("\2\2\2\u00d6\u00c4\3\2\2\2\u00d6\u00c6\3\2\2\2\u00d6\u00c9") buf.write("\3\2\2\2\u00d6\u00cb\3\2\2\2\u00d6\u00ce\3\2\2\2\u00d6") buf.write("\u00d0\3\2\2\2\u00d6\u00d3\3\2\2\2\u00d6\u00d4\3\2\2\2") buf.write("\u00d6\u00d5\3\2\2\2\u00d7\17\3\2\2\2\20\24\30\32)c\u0099") buf.write("\u009b\u00a1\u00a5\u00a9\u00b0\u00b9\u00c0\u00d6") return buf.getvalue()
[docs] class RParser ( Parser ): grammarFileName = "R.g4" atn = ATNDeserializer().deserialize(serializedATN()) decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] sharedContextCache = PredictionContextCache() literalNames = [ "<INVALID>", "';'", "'[['", "']'", "'['", "'::'", "':::'", "'$'", "'@'", "'^'", "'-'", "'+'", "':'", "'*'", "'/'", "'>'", "'>='", "'<'", "'<='", "'=='", "'!='", "'!'", "'&'", "'&&'", "'|'", "'||'", "'~'", "'<-'", "'<<-'", "'='", "'->'", "'->>'", "':='", "'function'", "'('", "')'", "'{'", "'}'", "'if'", "'else'", "'for'", "'in'", "'while'", "'repeat'", "'?'", "'next'", "'break'", "'NULL'", "'NA'", "'Inf'", "'NaN'", "'TRUE'", "'FALSE'", "','", "'...'", "'.'" ] symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>", "HEX", "INT", "FLOAT", "COMPLEX", "STRING", "ID", "USER_OP", "NL", "WS" ] RULE_prog = 0 RULE_expr = 1 RULE_exprlist = 2 RULE_formlist = 3 RULE_form = 4 RULE_sublist = 5 RULE_sub = 6 ruleNames = [ "prog", "expr", "exprlist", "formlist", "form", "sublist", "sub" ] EOF = Token.EOF T__0=1 T__1=2 T__2=3 T__3=4 T__4=5 T__5=6 T__6=7 T__7=8 T__8=9 T__9=10 T__10=11 T__11=12 T__12=13 T__13=14 T__14=15 T__15=16 T__16=17 T__17=18 T__18=19 T__19=20 T__20=21 T__21=22 T__22=23 T__23=24 T__24=25 T__25=26 T__26=27 T__27=28 T__28=29 T__29=30 T__30=31 T__31=32 T__32=33 T__33=34 T__34=35 T__35=36 T__36=37 T__37=38 T__38=39 T__39=40 T__40=41 T__41=42 T__42=43 T__43=44 T__44=45 T__45=46 T__46=47 T__47=48 T__48=49 T__49=50 T__50=51 T__51=52 T__52=53 T__53=54 T__54=55 HEX=56 INT=57 FLOAT=58 COMPLEX=59 STRING=60 ID=61 USER_OP=62 NL=63 WS=64 def __init__(self, input:TokenStream, output:TextIO = sys.stdout): super().__init__(input, output) self.checkVersion("4.8") self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) self._predicates = None
[docs] class ProgContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def EOF(self): return self.getToken(RParser.EOF, 0)
[docs] def expr(self, i:int=None): if i is None: return self.getTypedRuleContexts(RParser.ExprContext) else: return self.getTypedRuleContext(RParser.ExprContext,i)
[docs] def NL(self, i:int=None): if i is None: return self.getTokens(RParser.NL) else: return self.getToken(RParser.NL, i)
[docs] def getRuleIndex(self): return RParser.RULE_prog
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterProg" ): listener.enterProg(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitProg" ): listener.exitProg(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitProg" ): return visitor.visitProg(self) else: return visitor.visitChildren(self)
[docs] def prog(self): localctx = RParser.ProgContext(self, self._ctx, self.state) self.enterRule(localctx, 0, self.RULE_prog) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 24 self._errHandler.sync(self) _la = self._input.LA(1) while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << RParser.T__9) | (1 << RParser.T__10) | (1 << RParser.T__20) | (1 << RParser.T__25) | (1 << RParser.T__32) | (1 << RParser.T__33) | (1 << RParser.T__35) | (1 << RParser.T__37) | (1 << RParser.T__39) | (1 << RParser.T__41) | (1 << RParser.T__42) | (1 << RParser.T__43) | (1 << RParser.T__44) | (1 << RParser.T__45) | (1 << RParser.T__46) | (1 << RParser.T__47) | (1 << RParser.T__48) | (1 << RParser.T__49) | (1 << RParser.T__50) | (1 << RParser.T__51) | (1 << RParser.HEX) | (1 << RParser.INT) | (1 << RParser.FLOAT) | (1 << RParser.COMPLEX) | (1 << RParser.STRING) | (1 << RParser.ID) | (1 << RParser.NL))) != 0): self.state = 22 self._errHandler.sync(self) token = self._input.LA(1) if token in [RParser.T__9, RParser.T__10, RParser.T__20, RParser.T__25, RParser.T__32, RParser.T__33, RParser.T__35, RParser.T__37, RParser.T__39, RParser.T__41, RParser.T__42, RParser.T__43, RParser.T__44, RParser.T__45, RParser.T__46, RParser.T__47, RParser.T__48, RParser.T__49, RParser.T__50, RParser.T__51, RParser.HEX, RParser.INT, RParser.FLOAT, RParser.COMPLEX, RParser.STRING, RParser.ID]: self.state = 14 self.expr(0) self.state = 18 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,0,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: self.state = 15 _la = self._input.LA(1) if not(_la==RParser.T__0 or _la==RParser.NL): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 20 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,0,self._ctx) pass elif token in [RParser.NL]: self.state = 21 self.match(RParser.NL) pass else: raise NoViableAltException(self) self.state = 26 self._errHandler.sync(self) _la = self._input.LA(1) self.state = 27 self.match(RParser.EOF) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx
[docs] class ExprContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def expr(self, i:int=None): if i is None: return self.getTypedRuleContexts(RParser.ExprContext) else: return self.getTypedRuleContext(RParser.ExprContext,i)
[docs] def formlist(self): return self.getTypedRuleContext(RParser.FormlistContext,0)
[docs] def exprlist(self): return self.getTypedRuleContext(RParser.ExprlistContext,0)
[docs] def ID(self): return self.getToken(RParser.ID, 0)
[docs] def STRING(self): return self.getToken(RParser.STRING, 0)
[docs] def HEX(self): return self.getToken(RParser.HEX, 0)
[docs] def INT(self): return self.getToken(RParser.INT, 0)
[docs] def FLOAT(self): return self.getToken(RParser.FLOAT, 0)
[docs] def COMPLEX(self): return self.getToken(RParser.COMPLEX, 0)
[docs] def USER_OP(self): return self.getToken(RParser.USER_OP, 0)
[docs] def sublist(self): return self.getTypedRuleContext(RParser.SublistContext,0)
[docs] def getRuleIndex(self): return RParser.RULE_expr
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterExpr" ): listener.enterExpr(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitExpr" ): listener.exitExpr(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitExpr" ): return visitor.visitExpr(self) else: return visitor.visitChildren(self)
[docs] def expr(self, _p:int=0): _parentctx = self._ctx _parentState = self.state localctx = RParser.ExprContext(self, self._ctx, _parentState) _prevctx = localctx _startState = 2 self.enterRecursionRule(localctx, 2, self.RULE_expr, _p) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 97 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,4,self._ctx) if la_ == 1: self.state = 30 _la = self._input.LA(1) if not(_la==RParser.T__9 or _la==RParser.T__10): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 31 self.expr(36) pass elif la_ == 2: self.state = 32 self.match(RParser.T__20) self.state = 33 self.expr(30) pass elif la_ == 3: self.state = 34 self.match(RParser.T__25) self.state = 35 self.expr(27) pass elif la_ == 4: self.state = 36 self.match(RParser.T__32) self.state = 37 self.match(RParser.T__33) self.state = 39 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << RParser.T__53) | (1 << RParser.T__54) | (1 << RParser.ID))) != 0): self.state = 38 self.formlist() self.state = 41 self.match(RParser.T__34) self.state = 42 self.expr(24) pass elif la_ == 5: self.state = 43 self.match(RParser.T__35) self.state = 44 self.exprlist() self.state = 45 self.match(RParser.T__36) pass elif la_ == 6: self.state = 47 self.match(RParser.T__37) self.state = 48 self.match(RParser.T__33) self.state = 49 self.expr(0) self.state = 50 self.match(RParser.T__34) self.state = 51 self.expr(21) pass elif la_ == 7: self.state = 53 self.match(RParser.T__37) self.state = 54 self.match(RParser.T__33) self.state = 55 self.expr(0) self.state = 56 self.match(RParser.T__34) self.state = 57 self.expr(0) self.state = 58 self.match(RParser.T__38) self.state = 59 self.expr(20) pass elif la_ == 8: self.state = 61 self.match(RParser.T__39) self.state = 62 self.match(RParser.T__33) self.state = 63 self.match(RParser.ID) self.state = 64 self.match(RParser.T__40) self.state = 65 self.expr(0) self.state = 66 self.match(RParser.T__34) self.state = 67 self.expr(19) pass elif la_ == 9: self.state = 69 self.match(RParser.T__41) self.state = 70 self.match(RParser.T__33) self.state = 71 self.expr(0) self.state = 72 self.match(RParser.T__34) self.state = 73 self.expr(18) pass elif la_ == 10: self.state = 75 self.match(RParser.T__42) self.state = 76 self.expr(17) pass elif la_ == 11: self.state = 77 self.match(RParser.T__43) self.state = 78 self.expr(16) pass elif la_ == 12: self.state = 79 self.match(RParser.T__44) pass elif la_ == 13: self.state = 80 self.match(RParser.T__45) pass elif la_ == 14: self.state = 81 self.match(RParser.T__33) self.state = 82 self.expr(0) self.state = 83 self.match(RParser.T__34) pass elif la_ == 15: self.state = 85 self.match(RParser.ID) pass elif la_ == 16: self.state = 86 self.match(RParser.STRING) pass elif la_ == 17: self.state = 87 self.match(RParser.HEX) pass elif la_ == 18: self.state = 88 self.match(RParser.INT) pass elif la_ == 19: self.state = 89 self.match(RParser.FLOAT) pass elif la_ == 20: self.state = 90 self.match(RParser.COMPLEX) pass elif la_ == 21: self.state = 91 self.match(RParser.T__46) pass elif la_ == 22: self.state = 92 self.match(RParser.T__47) pass elif la_ == 23: self.state = 93 self.match(RParser.T__48) pass elif la_ == 24: self.state = 94 self.match(RParser.T__49) pass elif la_ == 25: self.state = 95 self.match(RParser.T__50) pass elif la_ == 26: self.state = 96 self.match(RParser.T__51) pass self._ctx.stop = self._input.LT(-1) self.state = 153 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,6,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: if self._parseListeners is not None: self.triggerExitRuleEvent() _prevctx = localctx self.state = 151 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,5,self._ctx) if la_ == 1: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 99 if not self.precpred(self._ctx, 39): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 39)") self.state = 100 _la = self._input.LA(1) if not(_la==RParser.T__4 or _la==RParser.T__5): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 101 self.expr(40) pass elif la_ == 2: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 102 if not self.precpred(self._ctx, 38): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 38)") self.state = 103 _la = self._input.LA(1) if not(_la==RParser.T__6 or _la==RParser.T__7): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 104 self.expr(39) pass elif la_ == 3: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 105 if not self.precpred(self._ctx, 37): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 37)") self.state = 106 self.match(RParser.T__8) self.state = 107 self.expr(37) pass elif la_ == 4: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 108 if not self.precpred(self._ctx, 35): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 35)") self.state = 109 self.match(RParser.T__11) self.state = 110 self.expr(36) pass elif la_ == 5: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 111 if not self.precpred(self._ctx, 34): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 34)") self.state = 112 self.match(RParser.USER_OP) self.state = 113 self.expr(35) pass elif la_ == 6: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 114 if not self.precpred(self._ctx, 33): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 33)") self.state = 115 _la = self._input.LA(1) if not(_la==RParser.T__12 or _la==RParser.T__13): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 116 self.expr(34) pass elif la_ == 7: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 117 if not self.precpred(self._ctx, 32): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 32)") self.state = 118 _la = self._input.LA(1) if not(_la==RParser.T__9 or _la==RParser.T__10): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 119 self.expr(33) pass elif la_ == 8: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 120 if not self.precpred(self._ctx, 31): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 31)") self.state = 121 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << RParser.T__14) | (1 << RParser.T__15) | (1 << RParser.T__16) | (1 << RParser.T__17) | (1 << RParser.T__18) | (1 << RParser.T__19))) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 122 self.expr(32) pass elif la_ == 9: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 123 if not self.precpred(self._ctx, 29): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 29)") self.state = 124 _la = self._input.LA(1) if not(_la==RParser.T__21 or _la==RParser.T__22): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 125 self.expr(30) pass elif la_ == 10: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 126 if not self.precpred(self._ctx, 28): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 28)") self.state = 127 _la = self._input.LA(1) if not(_la==RParser.T__23 or _la==RParser.T__24): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 128 self.expr(29) pass elif la_ == 11: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 129 if not self.precpred(self._ctx, 26): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 26)") self.state = 130 self.match(RParser.T__25) self.state = 131 self.expr(27) pass elif la_ == 12: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 132 if not self.precpred(self._ctx, 25): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 25)") self.state = 133 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << RParser.T__26) | (1 << RParser.T__27) | (1 << RParser.T__28) | (1 << RParser.T__29) | (1 << RParser.T__30) | (1 << RParser.T__31))) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 134 self.expr(26) pass elif la_ == 13: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 135 if not self.precpred(self._ctx, 41): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 41)") self.state = 136 self.match(RParser.T__1) self.state = 137 self.sublist() self.state = 138 self.match(RParser.T__2) self.state = 139 self.match(RParser.T__2) pass elif la_ == 14: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 141 if not self.precpred(self._ctx, 40): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 40)") self.state = 142 self.match(RParser.T__3) self.state = 143 self.sublist() self.state = 144 self.match(RParser.T__2) pass elif la_ == 15: localctx = RParser.ExprContext(self, _parentctx, _parentState) self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) self.state = 146 if not self.precpred(self._ctx, 23): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 23)") self.state = 147 self.match(RParser.T__33) self.state = 148 self.sublist() self.state = 149 self.match(RParser.T__34) pass self.state = 155 self._errHandler.sync(self) _alt = self._interp.adaptivePredict(self._input,6,self._ctx) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.unrollRecursionContexts(_parentctx) return localctx
[docs] class ExprlistContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def expr(self, i:int=None): if i is None: return self.getTypedRuleContexts(RParser.ExprContext) else: return self.getTypedRuleContext(RParser.ExprContext,i)
[docs] def NL(self, i:int=None): if i is None: return self.getTokens(RParser.NL) else: return self.getToken(RParser.NL, i)
[docs] def getRuleIndex(self): return RParser.RULE_exprlist
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterExprlist" ): listener.enterExprlist(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitExprlist" ): listener.exitExprlist(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitExprlist" ): return visitor.visitExprlist(self) else: return visitor.visitChildren(self)
[docs] def exprlist(self): localctx = RParser.ExprlistContext(self, self._ctx, self.state) self.enterRule(localctx, 4, self.RULE_exprlist) self._la = 0 # Token type try: self.state = 167 self._errHandler.sync(self) token = self._input.LA(1) if token in [RParser.T__9, RParser.T__10, RParser.T__20, RParser.T__25, RParser.T__32, RParser.T__33, RParser.T__35, RParser.T__37, RParser.T__39, RParser.T__41, RParser.T__42, RParser.T__43, RParser.T__44, RParser.T__45, RParser.T__46, RParser.T__47, RParser.T__48, RParser.T__49, RParser.T__50, RParser.T__51, RParser.HEX, RParser.INT, RParser.FLOAT, RParser.COMPLEX, RParser.STRING, RParser.ID]: self.enterOuterAlt(localctx, 1) self.state = 156 self.expr(0) self.state = 163 self._errHandler.sync(self) _la = self._input.LA(1) while _la==RParser.T__0 or _la==RParser.NL: self.state = 157 _la = self._input.LA(1) if not(_la==RParser.T__0 or _la==RParser.NL): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 159 self._errHandler.sync(self) _la = self._input.LA(1) if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << RParser.T__9) | (1 << RParser.T__10) | (1 << RParser.T__20) | (1 << RParser.T__25) | (1 << RParser.T__32) | (1 << RParser.T__33) | (1 << RParser.T__35) | (1 << RParser.T__37) | (1 << RParser.T__39) | (1 << RParser.T__41) | (1 << RParser.T__42) | (1 << RParser.T__43) | (1 << RParser.T__44) | (1 << RParser.T__45) | (1 << RParser.T__46) | (1 << RParser.T__47) | (1 << RParser.T__48) | (1 << RParser.T__49) | (1 << RParser.T__50) | (1 << RParser.T__51) | (1 << RParser.HEX) | (1 << RParser.INT) | (1 << RParser.FLOAT) | (1 << RParser.COMPLEX) | (1 << RParser.STRING) | (1 << RParser.ID))) != 0): self.state = 158 self.expr(0) self.state = 165 self._errHandler.sync(self) _la = self._input.LA(1) pass elif token in [RParser.T__36]: self.enterOuterAlt(localctx, 2) pass else: raise NoViableAltException(self) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx
[docs] class FormlistContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def form(self, i:int=None): if i is None: return self.getTypedRuleContexts(RParser.FormContext) else: return self.getTypedRuleContext(RParser.FormContext,i)
[docs] def getRuleIndex(self): return RParser.RULE_formlist
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterFormlist" ): listener.enterFormlist(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitFormlist" ): listener.exitFormlist(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitFormlist" ): return visitor.visitFormlist(self) else: return visitor.visitChildren(self)
[docs] def formlist(self): localctx = RParser.FormlistContext(self, self._ctx, self.state) self.enterRule(localctx, 6, self.RULE_formlist) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 169 self.form() self.state = 174 self._errHandler.sync(self) _la = self._input.LA(1) while _la==RParser.T__52: self.state = 170 self.match(RParser.T__52) self.state = 171 self.form() self.state = 176 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx
[docs] class FormContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def ID(self): return self.getToken(RParser.ID, 0)
[docs] def expr(self): return self.getTypedRuleContext(RParser.ExprContext,0)
[docs] def getRuleIndex(self): return RParser.RULE_form
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterForm" ): listener.enterForm(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitForm" ): listener.exitForm(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitForm" ): return visitor.visitForm(self) else: return visitor.visitChildren(self)
[docs] def form(self): localctx = RParser.FormContext(self, self._ctx, self.state) self.enterRule(localctx, 8, self.RULE_form) try: self.state = 183 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,11,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 177 self.match(RParser.ID) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 178 self.match(RParser.ID) self.state = 179 self.match(RParser.T__28) self.state = 180 self.expr(0) pass elif la_ == 3: self.enterOuterAlt(localctx, 3) self.state = 181 self.match(RParser.T__53) pass elif la_ == 4: self.enterOuterAlt(localctx, 4) self.state = 182 self.match(RParser.T__54) pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx
[docs] class SublistContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def sub(self, i:int=None): if i is None: return self.getTypedRuleContexts(RParser.SubContext) else: return self.getTypedRuleContext(RParser.SubContext,i)
[docs] def getRuleIndex(self): return RParser.RULE_sublist
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterSublist" ): listener.enterSublist(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitSublist" ): listener.exitSublist(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitSublist" ): return visitor.visitSublist(self) else: return visitor.visitChildren(self)
[docs] def sublist(self): localctx = RParser.SublistContext(self, self._ctx, self.state) self.enterRule(localctx, 10, self.RULE_sublist) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 185 self.sub() self.state = 190 self._errHandler.sync(self) _la = self._input.LA(1) while _la==RParser.T__52: self.state = 186 self.match(RParser.T__52) self.state = 187 self.sub() self.state = 192 self._errHandler.sync(self) _la = self._input.LA(1) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx
[docs] class SubContext(ParserRuleContext): def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser
[docs] def expr(self): return self.getTypedRuleContext(RParser.ExprContext,0)
[docs] def ID(self): return self.getToken(RParser.ID, 0)
[docs] def STRING(self): return self.getToken(RParser.STRING, 0)
[docs] def getRuleIndex(self): return RParser.RULE_sub
[docs] def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterSub" ): listener.enterSub(self)
[docs] def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitSub" ): listener.exitSub(self)
[docs] def accept(self, visitor:ParseTreeVisitor): if hasattr( visitor, "visitSub" ): return visitor.visitSub(self) else: return visitor.visitChildren(self)
[docs] def sub(self): localctx = RParser.SubContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_sub) try: self.state = 212 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,13,self._ctx) if la_ == 1: self.enterOuterAlt(localctx, 1) self.state = 193 self.expr(0) pass elif la_ == 2: self.enterOuterAlt(localctx, 2) self.state = 194 self.match(RParser.ID) self.state = 195 self.match(RParser.T__28) pass elif la_ == 3: self.enterOuterAlt(localctx, 3) self.state = 196 self.match(RParser.ID) self.state = 197 self.match(RParser.T__28) self.state = 198 self.expr(0) pass elif la_ == 4: self.enterOuterAlt(localctx, 4) self.state = 199 self.match(RParser.STRING) self.state = 200 self.match(RParser.T__28) pass elif la_ == 5: self.enterOuterAlt(localctx, 5) self.state = 201 self.match(RParser.STRING) self.state = 202 self.match(RParser.T__28) self.state = 203 self.expr(0) pass elif la_ == 6: self.enterOuterAlt(localctx, 6) self.state = 204 self.match(RParser.T__46) self.state = 205 self.match(RParser.T__28) pass elif la_ == 7: self.enterOuterAlt(localctx, 7) self.state = 206 self.match(RParser.T__46) self.state = 207 self.match(RParser.T__28) self.state = 208 self.expr(0) pass elif la_ == 8: self.enterOuterAlt(localctx, 8) self.state = 209 self.match(RParser.T__53) pass elif la_ == 9: self.enterOuterAlt(localctx, 9) self.state = 210 self.match(RParser.T__54) pass elif la_ == 10: self.enterOuterAlt(localctx, 10) pass except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx
[docs] def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): if self._predicates == None: self._predicates = dict() self._predicates[1] = self.expr_sempred pred = self._predicates.get(ruleIndex, None) if pred is None: raise Exception("No predicate with index:" + str(ruleIndex)) else: return pred(localctx, predIndex)
[docs] def expr_sempred(self, localctx:ExprContext, predIndex:int): if predIndex == 0: return self.precpred(self._ctx, 39) if predIndex == 1: return self.precpred(self._ctx, 38) if predIndex == 2: return self.precpred(self._ctx, 37) if predIndex == 3: return self.precpred(self._ctx, 35) if predIndex == 4: return self.precpred(self._ctx, 34) if predIndex == 5: return self.precpred(self._ctx, 33) if predIndex == 6: return self.precpred(self._ctx, 32) if predIndex == 7: return self.precpred(self._ctx, 31) if predIndex == 8: return self.precpred(self._ctx, 29) if predIndex == 9: return self.precpred(self._ctx, 28) if predIndex == 10: return self.precpred(self._ctx, 26) if predIndex == 11: return self.precpred(self._ctx, 25) if predIndex == 12: return self.precpred(self._ctx, 41) if predIndex == 13: return self.precpred(self._ctx, 40) if predIndex == 14: return self.precpred(self._ctx, 23)