예제 #1
0
        /// <summary>
        /// Converts the given problem goal AST into a goal structure. A root AND-expression is split into a list of goal expressions.
        /// </summary>
        /// <param name="goalAstNode">AST node.</param>
        /// <returns>Converted goal.</returns>
        public static Goal ToGoal(ProblemGoalAstNode goalAstNode)
        {
            Goal goal = new Goal();

            Expression expression = ToExpression(goalAstNode.Condition);

            var andExpression = expression as AndExpression;

            if (andExpression != null)
            {
                goal.AddRange(andExpression.Arguments);
            }
            else if (expression != null)
            {
                goal.Add(expression);
            }

            return(goal);
        }
예제 #2
0
 /// <summary>
 /// Handles the AST node visit.
 /// </summary>
 /// <param name="astNode">AST node.</param>
 public override void Visit(ProblemGoalAstNode astNode)
 {
     ProblemData.Goal = MasterExporter.ToGoal(astNode);
 }
예제 #3
0
 public virtual void Visit(ProblemGoalAstNode node)
 {
 }