EmbASP-CSharp
ASPMapper.cs
2 using it.unical.mat.parsers.asp;
3 using System;
4 using System.Collections.Generic;
5 
7 {
8  public class ASPMapper : Mapper
9  {
10  private static ASPMapper mapper;
11 
12  public static ASPMapper Instance
13  {
14  get
15  {
16  if (ASPMapper.mapper == null)
17  ASPMapper.mapper = new ASPMapper();
18  return ASPMapper.mapper;
19  }
20  }
21 
22  private ASPMapper() : base() { }
23 
24  protected internal override string GetActualString(string predicate, Dictionary<int, object> parametersMap)
25  {
26  if (parametersMap.Count == 0)
27  return predicate;
28 
29  string atom = predicate + "(";
30  for (int i = 0; i < parametersMap.Count; i++)
31  {
32  if (i != 0)
33  atom += ",";
34 
35  object objectTerm = parametersMap[i];
36  if (objectTerm == null)
37  throw new IllegalTermException("Wrong term number of predicate " + predicate);
38 
39  if (objectTerm is int?)
40  atom += objectTerm + "";
41  else if (objectTerm is SymbolicConstant)
42  atom += objectTerm.ToString();
43  else
44  atom += "\"" + objectTerm.ToString() + "\"";
45  }
46  atom += ")";
47  return atom;
48  }
49 
50  protected internal override string GetId(string @string)
51  {
52  int indexOf = @string.IndexOf("(", StringComparison.Ordinal);
53  if (indexOf == -1) // Arity 0
54  return @string;
55  return @string.Substring(0, indexOf);
56 
57  }
58 
59  protected internal override string[] GetParam(string @string)
60  {
61  return ASPParser.Parse(@string).GetParameters();
62  }
63  }
64 }
base
Definition: Callback.cs:1
it.unical.mat.embasp.languages.Mapper
Definition: Mapper.cs:8
EmbASP.it.unical
Definition: SymbolicConstant.cs:1
it.unical
Definition: AnswerSet.cs:5
it.unical.mat.parsers.asp
Definition: ASPParser.cs:6
EmbASP.it.unical.mat.embasp.languages
Definition: SymbolicConstant.cs:1
EmbASP.it.unical.mat
Definition: SymbolicConstant.cs:1
it.unical.mat.embasp.languages.asp.ASPMapper
Definition: ASPMapper.cs:8
it.unical.mat.embasp.languages.asp.IllegalTermException
Definition: IllegalTermException.cs:5
it
Definition: AnswerSet.cs:5
EmbASP.it
Definition: SymbolicConstant.cs:1
EmbASP
Definition: SymbolicConstant.cs:1
it.unical.mat.embasp.languages.asp
Definition: AnswerSet.cs:5
it.unical.mat.parsers
Definition: ASPParser.cs:6
EmbASP.it.unical.mat.embasp.languages.asp.SymbolicConstant
Definition: SymbolicConstant.cs:3
it.unical.mat
Definition: AnswerSet.cs:5
EmbASP.it.unical.mat.embasp
Definition: SymbolicConstant.cs:1
it.unical.mat.parsers.asp.ASPParser
Definition: ASPParser.cs:8
EmbASP.it.unical.mat.embasp.languages.asp
Definition: SymbolicConstant.cs:1