private AbstractPredicate GetAbstractPredicate(PlanningParser.AtomicFormulaTermContext context) { string abstractPredName = GetFullName(context); AbstractPredicate result = _abstractPredDict[abstractPredName]; return(result); }
protected override CUDDNode GetCuddNode(PlanningParser.AtomicFormulaTermContext context) { ServerAbstractPredicate abstractPredicate = GetAbstractPredicate(context); int index = abstractPredicate.CuddIndex; CUDDNode result = CUDD.Var(index); return(result); }
protected override void GenerateAbstractPredicates(PlanningParser.AtomicFormulaTermContext context, IReadOnlyDictionary <string, Predicate> predDict) { var abstractPredicate = CreateAbstractPredicate(context, predDict); if (!_abstractPredDict.ContainsKey(abstractPredicate.ToString())) { abstractPredicate.CuddIndex = CurrentCuddIndex; CurrentCuddIndex++; _abstractPredDict.Add(abstractPredicate.ToString(), abstractPredicate); } }
public static string GetFullName(PlanningParser.AtomicFormulaTermContext context) { string name = context.predicate().GetText(); List <string> termList = new List <string>(); foreach (var termContext in context.term()) { termList.Add(termContext.GetText()); } return(GetFullName(name, termList)); }
private AbstractPredicate CreateAbstractPredicate(PlanningParser.AtomicFormulaTermContext context, IReadOnlyDictionary <string, Predicate> predDict) { List <string> constantList = new List <string>(); for (int i = 0; i < context.term().Count; i++) { constantList.Add(context.term()[i].GetText()); } AbstractPredicate abstractPredicate = new AbstractPredicate(constantList); abstractPredicate.Predicate = predDict[context.predicate().GetText()]; return(abstractPredicate); }
/// <summary> /// Exit a parse tree produced by <see cref="PlanningParser.atomicFormulaTerm"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitAtomicFormulaTerm([NotNull] PlanningParser.AtomicFormulaTermContext context) { }