def compileTreePattern(self, pattern: str, patternRuleIndex: int): tokenList = self.tokenize(pattern) tokenSrc = ListTokenSource(tokenList) tokens = CommonTokenStream(tokenSrc) from antlr4.ParserInterpreter import ParserInterpreter parserInterp = ParserInterpreter(self.parser.grammarFileName, self.parser.tokenNames, self.parser.ruleNames, self.parser.getATNWithBypassAlts(), tokens) tree = None try: parserInterp.setErrorHandler(BailErrorStrategy()) tree = parserInterp.parse(patternRuleIndex) except ParseCancellationException as e: raise e.cause except RecognitionException as e: raise e except Exception as e: raise CannotInvokeStartRule(e) # Make sure tree pattern compilation checks for a complete parse if tokens.LA(1) != Token.EOF: raise StartRuleDoesNotConsumeFullPattern() from antlr4.tree.ParseTreePattern import ParseTreePattern return ParseTreePattern(self, pattern, patternRuleIndex, tree)
def compileTreePattern(self, pattern: str, patternRuleIndex: int): tokenList = self.tokenize(pattern) tokenSrc = ListTokenSource(tokenList) tokens = CommonTokenStream(tokenSrc) from antlr4.ParserInterpreter import ParserInterpreter parserInterp = ParserInterpreter( self.parser.grammarFileName, self.parser.tokenNames, self.parser.ruleNames, self.parser.getATNWithBypassAlts(), tokens, ) tree = None try: parserInterp.setErrorHandler(BailErrorStrategy()) tree = parserInterp.parse(patternRuleIndex) except ParseCancellationException as e: raise e.cause except RecognitionException as e: raise e except Exception as e: raise CannotInvokeStartRule(e) # Make sure tree pattern compilation checks for a complete parse if tokens.LA(1) != Token.EOF: raise StartRuleDoesNotConsumeFullPattern() from antlr4.tree.ParseTreePattern import ParseTreePattern return ParseTreePattern(self, pattern, patternRuleIndex, tree)