Ejemplo n.º 1
0
 public override void FromContext(int initialCuddIndex, PlanningParser.ActionDefineContext context, IReadOnlyDictionary <string, Predicate> predDict)
 {
     CurrentCuddIndex = initialCuddIndex;
     Name             = context.actionSymbol().GetText();
     GenerateVariableList(context.listVariable());
     GenerateAbstractPredicates(context.actionDefBody(), predDict);
     GeneratePrecondition(context, predDict);
     GenerateEffect(context, predDict);
 }
Ejemplo n.º 2
0
        public static Action FromContext(int initialCuddIndex, PlanningParser.ActionDefineContext context, IReadOnlyDictionary <string, Predicate> predDict)
        {
            Action result = new Action(initialCuddIndex);

            result.Name = context.actionSymbol().GetText();
            result.GenerateVariableList(context.listVariable());
            result.GenerateAbstractPredicates(context.actionDefBody(), predDict);
            result.GeneratePrecondition(context, predDict);
            result.GenerateEffect(context, predDict);
            return(result);
        }
Ejemplo n.º 3
0
        private void GeneratePrecondition(PlanningParser.ActionDefineContext context, IReadOnlyDictionary <string, Predicate> predDict)
        {
            Precondition = CUDD.ONE;

            if (context.actionDefBody().emptyOrPreGD() != null)
            {
                if (context.actionDefBody().emptyOrPreGD().gd() != null)
                {
                    Precondition = GetCuddNode(context.actionDefBody().emptyOrPreGD().gd());
                }
            }
        }
Ejemplo n.º 4
0
 private void GenerateEffect(PlanningParser.ActionDefineContext context, IReadOnlyDictionary <string, Predicate> predDict)
 {
     PlanningParser.EmptyOrEffectContext emptyOrEffectContext = context.actionDefBody().emptyOrEffect();
     if (emptyOrEffectContext != null)
     {
         PlanningParser.EffectContext effectContext = emptyOrEffectContext.effect();
         if (effectContext != null)
         {
             foreach (var cEffectContext in effectContext.cEffect())
             {
                 var condEffect = GetCondEffect(cEffectContext);
                 _effect.Add(condEffect);
             }
         }
     }
 }
Ejemplo n.º 5
0
        public static string GetFullName(PlanningParser.ActionDefineContext context)
        {
            string        name     = context.actionSymbol().GetText();
            List <string> termList = new List <string>();

            PlanningParser.ListVariableContext listVariableContext = context.listVariable();
            do
            {
                if (listVariableContext.VAR().Count != 0)
                {
                    foreach (var varNode in listVariableContext.VAR())
                    {
                        termList.Add(varNode.GetText());
                    }
                }
                listVariableContext = listVariableContext.listVariable();
            } while (listVariableContext != null);
            return(GetFullName(name, termList));
        }
Ejemplo n.º 6
0
        public override void EnterActionDefine(PlanningParser.ActionDefineContext context)
        {
            Action action = Action.FromContext(Domain.CurrentCuddIndex, context, Domain.PredicateDict);

            Domain.AddToActionDict(action);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="PlanningParser.actionDefine"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitActionDefine([NotNull] PlanningParser.ActionDefineContext context)
 {
 }
Ejemplo n.º 8
0
 public Action(PlanningParser.ActionDefineContext context, IReadOnlyDictionary <string, Event> eventDict, string[] constArray, StringDictionary assignment)
     : base(constArray)
 {
     Name = context.actionSymbol().GetText();
     GenerateResponses(context.responseDefine(), eventDict, assignment);
 }