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); }
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); }
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()); } } }
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); } } } }
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)); }
public override void EnterActionDefine(PlanningParser.ActionDefineContext context) { Action action = Action.FromContext(Domain.CurrentCuddIndex, context, Domain.PredicateDict); Domain.AddToActionDict(action); }
/// <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) { }
public Action(PlanningParser.ActionDefineContext context, IReadOnlyDictionary <string, Event> eventDict, string[] constArray, StringDictionary assignment) : base(constArray) { Name = context.actionSymbol().GetText(); GenerateResponses(context.responseDefine(), eventDict, assignment); }