| |
| |
| |
| |
|
|
| |
| Token = None |
| Lexer = None |
| Parser = None |
| TokenStream = None |
| ATNConfigSet = None |
| ParserRulecontext = None |
| PredicateTransition = None |
| BufferedTokenStream = None |
|
|
| class UnsupportedOperationException(Exception): |
|
|
| def __init__(self, msg:str): |
| super().__init__(msg) |
|
|
| class IllegalStateException(Exception): |
|
|
| def __init__(self, msg:str): |
| super().__init__(msg) |
|
|
| class CancellationException(IllegalStateException): |
|
|
| def __init__(self, msg:str): |
| super().__init__(msg) |
|
|
| |
| |
| |
| |
| |
|
|
| from antlr4.InputStream import InputStream |
| from antlr4.ParserRuleContext import ParserRuleContext |
| from antlr4.Recognizer import Recognizer |
|
|
| class RecognitionException(Exception): |
|
|
|
|
| def __init__(self, message:str=None, recognizer:Recognizer=None, input:InputStream=None, ctx:ParserRulecontext=None): |
| super().__init__(message) |
| self.message = message |
| self.recognizer = recognizer |
| self.input = input |
| self.ctx = ctx |
| |
| |
| |
| self.offendingToken = None |
| |
| |
| |
| |
| |
| self.offendingState = -1 |
| if recognizer is not None: |
| self.offendingState = recognizer.state |
|
|
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| def getExpectedTokens(self): |
| if self.recognizer is not None: |
| return self.recognizer.atn.getExpectedTokens(self.offendingState, self.ctx) |
| else: |
| return None |
|
|
|
|
| class LexerNoViableAltException(RecognitionException): |
|
|
| def __init__(self, lexer:Lexer, input:InputStream, startIndex:int, deadEndConfigs:ATNConfigSet): |
| super().__init__(message=None, recognizer=lexer, input=input, ctx=None) |
| self.startIndex = startIndex |
| self.deadEndConfigs = deadEndConfigs |
|
|
| def __str__(self): |
| symbol = "" |
| if self.startIndex >= 0 and self.startIndex < self.input.size: |
| symbol = self.input.getText(self.startIndex, self.startIndex) |
| |
| return "LexerNoViableAltException('" + symbol + "')" |
|
|
| |
| |
| |
| |
| |
| class NoViableAltException(RecognitionException): |
|
|
| def __init__(self, recognizer:Parser, input:TokenStream=None, startToken:Token=None, |
| offendingToken:Token=None, deadEndConfigs:ATNConfigSet=None, ctx:ParserRuleContext=None): |
| if ctx is None: |
| ctx = recognizer._ctx |
| if offendingToken is None: |
| offendingToken = recognizer.getCurrentToken() |
| if startToken is None: |
| startToken = recognizer.getCurrentToken() |
| if input is None: |
| input = recognizer.getInputStream() |
| super().__init__(recognizer=recognizer, input=input, ctx=ctx) |
| |
| self.deadEndConfigs = deadEndConfigs |
| |
| |
| |
| |
| self.startToken = startToken |
| self.offendingToken = offendingToken |
|
|
| |
| |
| |
| class InputMismatchException(RecognitionException): |
|
|
| def __init__(self, recognizer:Parser): |
| super().__init__(recognizer=recognizer, input=recognizer.getInputStream(), ctx=recognizer._ctx) |
| self.offendingToken = recognizer.getCurrentToken() |
|
|
|
|
| |
| |
| |
| |
|
|
| class FailedPredicateException(RecognitionException): |
|
|
| def __init__(self, recognizer:Parser, predicate:str=None, message:str=None): |
| super().__init__(message=self.formatMessage(predicate,message), recognizer=recognizer, |
| input=recognizer.getInputStream(), ctx=recognizer._ctx) |
| s = recognizer._interp.atn.states[recognizer.state] |
| trans = s.transitions[0] |
| from antlr4.atn.Transition import PredicateTransition |
| if isinstance(trans, PredicateTransition): |
| self.ruleIndex = trans.ruleIndex |
| self.predicateIndex = trans.predIndex |
| else: |
| self.ruleIndex = 0 |
| self.predicateIndex = 0 |
| self.predicate = predicate |
| self.offendingToken = recognizer.getCurrentToken() |
|
|
| def formatMessage(self, predicate:str, message:str): |
| if message is not None: |
| return message |
| else: |
| return "failed predicate: {" + predicate + "}?" |
|
|
| class ParseCancellationException(CancellationException): |
|
|
| pass |
|
|
| del Token |
| del Lexer |
| del Parser |
| del TokenStream |
| del ATNConfigSet |
| del ParserRulecontext |
| del PredicateTransition |
| del BufferedTokenStream |
|
|