Esempio n. 1
0
        private Tuple <CUDDNode, List <Tuple <AbstractPredicate, bool> > > GetCondEffect(PlanningParser.CEffectContext context)
        {
            CUDDNode condition;
            var      abstractLiterals = new List <Tuple <AbstractPredicate, bool> >();

            if (context.literalTerm() != null)
            {
                condition = CUDD.ONE;
                var literal = GetAbstractLiteral(context.literalTerm());
                abstractLiterals.Add(literal);
            }
            else
            {
                condition = GetCuddNode(context.gd());
                foreach (var literalTermNode in context.condEffect().literalTerm())
                {
                    var literal = GetAbstractLiteral(literalTermNode);
                    abstractLiterals.Add(literal);
                }
            }

            var result = new Tuple <CUDDNode, List <Tuple <AbstractPredicate, bool> > >(condition, abstractLiterals);

            return(result);
        }
Esempio n. 2
0
 private void GenerateAbstractPredicates(PlanningParser.CEffectContext context, IReadOnlyDictionary <string, Predicate> predDict)
 {
     if (context.WHEN() != null)
     {
         GenerateAbstractPredicates(context.gd(), predDict);
         foreach (var literalTermContext in context.condEffect().literalTerm())
         {
             GenerateAbstractPredicates(literalTermContext, predDict);
         }
     }
     else
     {
         GenerateAbstractPredicates(context.literalTerm(), predDict);
     }
 }