111 lines
2.7 KiB
Python
111 lines
2.7 KiB
Python
# Generated from Arit.g4 by ANTLR 4.9.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
|
|
|
|
|
|
# header - mettre les d??clarations globales
|
|
import sys
|
|
idTab = {};
|
|
|
|
class UnknownIdentifier(Exception):
|
|
pass
|
|
|
|
class DivByZero(Exception):
|
|
pass
|
|
|
|
|
|
|
|
def serializedATN():
|
|
with StringIO() as buf:
|
|
buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\6")
|
|
buf.write("\b\4\2\t\2\3\2\3\2\3\2\3\2\2\2\3\2\2\2\2\6\2\4\3\2\2\2")
|
|
buf.write("\4\5\7\4\2\2\5\6\b\2\1\2\6\3\3\2\2\2\2")
|
|
return buf.getvalue()
|
|
|
|
|
|
class AritParser ( Parser ):
|
|
|
|
grammarFileName = "Arit.g4"
|
|
|
|
atn = ATNDeserializer().deserialize(serializedATN())
|
|
|
|
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
|
|
|
|
sharedContextCache = PredictionContextCache()
|
|
|
|
literalNames = [ ]
|
|
|
|
symbolicNames = [ "<INVALID>", "COMMENT", "ID", "INT", "WS" ]
|
|
|
|
RULE_prog = 0
|
|
|
|
ruleNames = [ "prog" ]
|
|
|
|
EOF = Token.EOF
|
|
COMMENT=1
|
|
ID=2
|
|
INT=3
|
|
WS=4
|
|
|
|
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
|
|
super().__init__(input, output)
|
|
self.checkVersion("4.9.2")
|
|
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
|
|
self._predicates = None
|
|
|
|
|
|
|
|
|
|
class ProgContext(ParserRuleContext):
|
|
__slots__ = 'parser'
|
|
|
|
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
|
|
super().__init__(parent, invokingState)
|
|
self.parser = parser
|
|
self._ID = None # Token
|
|
|
|
def ID(self):
|
|
return self.getToken(AritParser.ID, 0)
|
|
|
|
def getRuleIndex(self):
|
|
return AritParser.RULE_prog
|
|
|
|
def enterRule(self, listener:ParseTreeListener):
|
|
if hasattr( listener, "enterProg" ):
|
|
listener.enterProg(self)
|
|
|
|
def exitRule(self, listener:ParseTreeListener):
|
|
if hasattr( listener, "exitProg" ):
|
|
listener.exitProg(self)
|
|
|
|
|
|
|
|
|
|
def prog(self):
|
|
|
|
localctx = AritParser.ProgContext(self, self._ctx, self.state)
|
|
self.enterRule(localctx, 0, self.RULE_prog)
|
|
try:
|
|
self.enterOuterAlt(localctx, 1)
|
|
self.state = 2
|
|
localctx._ID = self.match(AritParser.ID)
|
|
print("prog = "+str((None if localctx._ID is None else localctx._ID.text)));
|
|
except RecognitionException as re:
|
|
localctx.exception = re
|
|
self._errHandler.reportError(self, re)
|
|
self._errHandler.recover(self, re)
|
|
finally:
|
|
self.exitRule()
|
|
return localctx
|
|
|
|
|
|
|
|
|
|
|