EmbASP-Java
ASPParser.java
1 package it.unical.mat.parsers.asp;
2 
3 import it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarBaseVisitor;
4 import it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarLexer;
5 import it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarParser;
6 import java.util.ArrayList;
7 import org.antlr.v4.runtime.BailErrorStrategy;
8 import org.antlr.v4.runtime.CharStreams;
9 import org.antlr.v4.runtime.CommonTokenStream;
10 import org.antlr.v4.runtime.ConsoleErrorListener;
11 import org.antlr.v4.runtime.DefaultErrorStrategy;
12 import org.antlr.v4.runtime.RecognitionException;
13 import org.antlr.v4.runtime.atn.PredictionMode;
14 
15 public class ASPParser extends ASPGrammarBaseVisitor <Void> {
16  private ArrayList <String> parameters = new ArrayList <> ();
17 
18  private ASPParser() {
19 
20  }
21 
22  public static final ASPParser parse(final String atom) {
23  final CommonTokenStream tokens = new CommonTokenStream(new ASPGrammarLexer(CharStreams.fromString(atom)));
24  final ASPGrammarParser parser = new ASPGrammarParser(tokens);
25  final ASPParser visitor = new ASPParser();
26 
27  parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
28  parser.removeErrorListeners();
29  parser.setErrorHandler(new BailErrorStrategy());
30 
31  try {
32  visitor.visit(parser.output());
33  } catch (final RuntimeException exception) {
34  if(exception.getClass() == RuntimeException.class && exception.getCause() instanceof RecognitionException) {
35  tokens.seek(0);
36  parser.addErrorListener(ConsoleErrorListener.INSTANCE);
37  parser.setErrorHandler(new DefaultErrorStrategy());
38  parser.getInterpreter().setPredictionMode(PredictionMode.LL);
39  visitor.visit(parser.output());
40  }
41  }
42 
43  return visitor;
44  }
45 
46  public String [] getParameters() {
47  return parameters.toArray(new String [0]);
48  }
49 
50  @Override
52  parameters.add(ctx.getText());
53 
54  return null;
55  }
56 }
it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarLexer
Definition: ASPGrammarLexer.java:14
it.unical.mat.parsers.asp.ASPParser.visitTerm
Void visitTerm(ASPGrammarParser.TermContext ctx)
Definition: ASPParser.java:51
it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarBaseVisitor
Definition: ASPGrammarBaseVisitor.java:14
it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarParser
Definition: ASPGrammarParser.java:14
it.unical.mat.parsers.asp.asp_parser_base.ASPGrammarParser.TermContext
Definition: ASPGrammarParser.java:208
it.unical.mat.parsers.asp.ASPParser
Definition: ASPParser.java:15