Exemplo n.º 1
0
        private AbstractPredicate GetAbstractPredicate(PlanningParser.AtomicFormulaTermContext context)
        {
            string            abstractPredName = GetFullName(context);
            AbstractPredicate result           = _abstractPredDict[abstractPredName];

            return(result);
        }
Exemplo n.º 2
0
        protected override CUDDNode GetCuddNode(PlanningParser.AtomicFormulaTermContext context)
        {
            ServerAbstractPredicate abstractPredicate = GetAbstractPredicate(context);
            int      index  = abstractPredicate.CuddIndex;
            CUDDNode result = CUDD.Var(index);

            return(result);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 /// <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)
 {
 }