1 package it.unical.mat.parsers.asp;
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;
16 private ArrayList <String> parameters =
new ArrayList <> ();
22 public static final ASPParser parse(
final String atom) {
23 final CommonTokenStream tokens =
new CommonTokenStream(
new ASPGrammarLexer(CharStreams.fromString(atom)));
27 parser.getInterpreter().setPredictionMode(PredictionMode.SLL);
28 parser.removeErrorListeners();
29 parser.setErrorHandler(
new BailErrorStrategy());
32 visitor.visit(parser.output());
33 }
catch (
final RuntimeException exception) {
34 if(exception.getClass() == RuntimeException.class && exception.getCause() instanceof RecognitionException) {
36 parser.addErrorListener(ConsoleErrorListener.INSTANCE);
37 parser.setErrorHandler(
new DefaultErrorStrategy());
38 parser.getInterpreter().setPredictionMode(PredictionMode.LL);
39 visitor.visit(parser.output());
46 public String [] getParameters() {
47 return parameters.toArray(
new String [0]);
52 parameters.add(ctx.getText());