EmbASP-CSharp
DLVParserBaseVisitorImplementation.cs
1 using System;
2 using Antlr4.Runtime;
3 using Antlr4.Runtime.Atn;
4 
6 {
8  {
9  private readonly IASPDataCollection answerSets;
10 
12  {
13  this.answerSets = answerSets;
14  }
15 
16  public override object VisitSimpleModel(DLVParser.SimpleModelContext context)
17  {
18  answerSets.AddAnswerSet();
19 
20  return VisitChildren(context);
21  }
22 
23  public override object VisitWeightedModel(DLVParser.WeightedModelContext context)
24  {
25  answerSets.AddAnswerSet();
26 
27  return VisitChildren(context);
28  }
29 
30  public override object VisitWitness(DLVParser.WitnessContext context)
31  {
32  answerSets.AddAnswerSet();
33 
34  return VisitChildren(context);
35  }
36 
37  public override object VisitCost_level(DLVParser.Cost_levelContext context)
38  {
39  answerSets.StoreCost(Int32.Parse(context.INTEGER_CONSTANT()[1].GetText()), Int32.Parse(context.INTEGER_CONSTANT()[0].GetText()));
40 
41  return null;
42  }
43 
44  public override object VisitPredicate(DLVParser.PredicateContext context)
45  {
46  answerSets.StoreAtom(context.GetText());
47 
48  return null;
49  }
50 
51  public static void Parse(IASPDataCollection answerSets, string atomsList, bool two_stageParsing)
52  {
53  CommonTokenStream tokens = new CommonTokenStream(new DLVLexer(CharStreams.fromstring(atomsList)));
54  DLVParser parser = new DLVParser(tokens);
56 
57  if (!two_stageParsing)
58  {
59  visitor.Visit(parser.output());
60 
61  return;
62  }
63 
64  parser.Interpreter.PredictionMode = PredictionMode.SLL;
65 
66  parser.RemoveErrorListeners();
67 
68  parser.ErrorHandler = new BailErrorStrategy();
69 
70  try
71  {
72  visitor.Visit(parser.output());
73  }
74  catch (SystemException exception)
75  {
76  if (exception.GetBaseException() is RecognitionException)
77  {
78  tokens.Seek(0);
79  parser.AddErrorListener(ConsoleErrorListener<object>.Instance);
80 
81  parser.ErrorHandler = new DefaultErrorStrategy();
82  parser.Interpreter.PredictionMode = PredictionMode.LL;
83 
84  visitor.Visit(parser.output());
85  }
86  }
87  }
88  }
89 }
it.unical.mat.parsers.asp.dlv
Definition: DLVParserBaseVisitorImplementation.cs:5
DLVParserBaseVisitor
This class provides an empty implementation of IDLVParserVisitor<Result>, which can be extended to cr...
Definition: DLVParserBaseVisitor.cs:35
it.unical.mat.parsers.asp.dlv.DLVParserBaseVisitorImplementation.VisitSimpleModel
override object VisitSimpleModel(DLVParser.SimpleModelContext context)
Visit a parse tree produced by the SimpleModel labeled alternative in DLVParser.answer_set.
Definition: DLVParserBaseVisitorImplementation.cs:16
it.unical.mat.parsers.asp.dlv.DLVParserBaseVisitorImplementation.VisitWeightedModel
override object VisitWeightedModel(DLVParser.WeightedModelContext context)
Visit a parse tree produced by the WeightedModel labeled alternative in DLVParser....
Definition: DLVParserBaseVisitorImplementation.cs:23
it.unical.mat.parsers.asp.dlv.DLVParserBaseVisitorImplementation.VisitCost_level
override object VisitCost_level(DLVParser.Cost_levelContext context)
Visit a parse tree produced by DLVParser.cost_level.
Definition: DLVParserBaseVisitorImplementation.cs:37
it.unical.mat.parsers.asp.dlv.DLVParserBaseVisitorImplementation.VisitPredicate
override object VisitPredicate(DLVParser.PredicateContext context)
Visit a parse tree produced by DLVParser.predicate.
Definition: DLVParserBaseVisitorImplementation.cs:44
it.unical.mat.parsers.asp.dlv.DLVParserBaseVisitorImplementation
Definition: DLVParserBaseVisitorImplementation.cs:7
it.unical.mat.parsers.asp.dlv.DLVParserBaseVisitorImplementation.VisitWitness
override object VisitWitness(DLVParser.WitnessContext context)
Visit a parse tree produced by DLVParser.witness.
Definition: DLVParserBaseVisitorImplementation.cs:30
it.unical.mat.parsers.asp.IASPDataCollection
Definition: IASPDataCollection.cs:3