# Generated from ./week3.g4 by ANTLR 4.13.2 # 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 def serializedATN(): return [ 4,1,5,11,2,0,7,0,2,1,7,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,0,0,2,0,2,0, 1,1,0,2,3,8,0,4,1,0,0,0,2,7,1,0,0,0,4,5,5,1,0,0,5,6,5,4,0,0,6,1, 1,0,0,0,7,8,7,0,0,0,8,9,5,4,0,0,9,3,1,0,0,0,0 ] class week3Parser ( Parser ): grammarFileName = "week3.g4" atn = ATNDeserializer().deserialize(serializedATN()) decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] sharedContextCache = PredictionContextCache() literalNames = [ "", "'minimal'", "'bye'", "'goodbye'" ] symbolicNames = [ "", "", "", "", "ID", "WS" ] RULE_start = 0 RULE_bye = 1 ruleNames = [ "start", "bye" ] EOF = Token.EOF T__0=1 T__1=2 T__2=3 ID=4 WS=5 def __init__(self, input:TokenStream, output:TextIO = sys.stdout): super().__init__(input, output) self.checkVersion("4.13.2") self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) self._predicates = None class StartContext(ParserRuleContext): __slots__ = 'parser' def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser def ID(self): return self.getToken(week3Parser.ID, 0) def getRuleIndex(self): return week3Parser.RULE_start def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterStart" ): listener.enterStart(self) def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitStart" ): listener.exitStart(self) def start(self): localctx = week3Parser.StartContext(self, self._ctx, self.state) self.enterRule(localctx, 0, self.RULE_start) try: self.enterOuterAlt(localctx, 1) self.state = 4 self.match(week3Parser.T__0) self.state = 5 self.match(week3Parser.ID) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx class ByeContext(ParserRuleContext): __slots__ = 'parser' def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): super().__init__(parent, invokingState) self.parser = parser def ID(self): return self.getToken(week3Parser.ID, 0) def getRuleIndex(self): return week3Parser.RULE_bye def enterRule(self, listener:ParseTreeListener): if hasattr( listener, "enterBye" ): listener.enterBye(self) def exitRule(self, listener:ParseTreeListener): if hasattr( listener, "exitBye" ): listener.exitBye(self) def bye(self): localctx = week3Parser.ByeContext(self, self._ctx, self.state) self.enterRule(localctx, 2, self.RULE_bye) self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) self.state = 7 _la = self._input.LA(1) if not(_la==2 or _la==3): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() self.state = 8 self.match(week3Parser.ID) except RecognitionException as re: localctx.exception = re self._errHandler.reportError(self, re) self._errHandler.recover(self, re) finally: self.exitRule() return localctx