# 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]
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]
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)