EmbASP-Python
asp_parser.py
1 from .asp_parser_base.ASPGrammarLexer import ASPGrammarLexer
2 from .asp_parser_base.ASPGrammarParser import ASPGrammarParser
3 from .asp_parser_base.ASPGrammarVisitor import ASPGrammarVisitor
4 from antlr4 import PredictionMode
5 from antlr4.CommonTokenStream import CommonTokenStream
6 from antlr4.error.ErrorListener import ConsoleErrorListener
7 from antlr4.error.Errors import RecognitionException
8 from antlr4.error.ErrorStrategy import BailErrorStrategy, DefaultErrorStrategy
9 from antlr4.InputStream import InputStream
10 
11 
13  def __init__(self):
14  self._parameters = []
15 
16  @staticmethod
17  def parse(atom):
18  tokens = CommonTokenStream(ASPGrammarLexer(InputStream(atom)))
19  parser = ASPGrammarParser(tokens)
20  visitor = ASPParser()
21  parser._interp.predictionMode = PredictionMode.SLL
22 
23  parser.removeErrorListeners()
24 
25  parser._errHandler = BailErrorStrategy()
26 
27  try:
28  visitor.visit(parser.output())
29  except RuntimeError as exception:
30  if isinstance(exception, RecognitionException):
31  tokens.seek(0)
32  parser.addErrorListener(ConsoleErrorListener.INSTANCE)
33 
34  parser._errHandler = DefaultErrorStrategy()
35  parser._interp.predictionMode = PredictionMode.LL
36 
37  visitor.visit(parser.output())
38 
39  return visitor
40 
41  def get_parameters(self):
42  return self._parameters
43 
44  def visitTerm(self, ctx):
45  self._parameters.append(ctx.getText())
46 
47  return None
parsers.asp.asp_parser.ASPParser
Definition: asp_parser.py:12
parsers.asp.asp_parser_base.ASPGrammarLexer.ASPGrammarLexer
Definition: ASPGrammarLexer.py:37
parsers.asp.asp_parser_base.ASPGrammarParser.ASPGrammarParser
Definition: ASPGrammarParser.py:31
parsers.asp.asp_parser_base.ASPGrammarVisitor.ASPGrammarVisitor
Definition: ASPGrammarVisitor.py:6
parsers.asp.asp_parser.ASPParser._parameters
_parameters
Definition: asp_parser.py:14