/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(AndDaGdAstNode astNode) { AndDurativeExpression andExpression = new AndDurativeExpression(); astNode.Arguments.ForEach(arg => andExpression.Arguments.Add(MasterExporter.ToDurativeExpression(arg))); ExpressionData = andExpression; }
/// <summary> /// Convert the given da-GD into durative conditions. A root AND-expression is split into a list of condition expressions. /// </summary> /// <param name="daGdAstNode">AST node.</param> /// <returns>Converted durative conditions.</returns> public static DurativeConditions ToDurativeConditions(DaGdAstNode daGdAstNode) { DurativeConditions conditions = new DurativeConditions(); DurativeExpression expression = ToDurativeExpression(daGdAstNode); var andExpression = expression as AndDurativeExpression; if (andExpression != null) { conditions.AddRange(andExpression.Arguments); } else if (expression != null) { conditions.Add(expression); } return(conditions); }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(PreferenceDaGdAstNode astNode) { ExpressionData = new PreferencedTimedExpression(astNode.Name, (TimedExpression)MasterExporter.ToDurativeExpression(astNode.Argument)); }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(OverTimedDaGdAstNode astNode) { ExpressionData = new OverTimedExpression(astNode.IntervalSpecifier, MasterExporter.ToExpression(astNode.Argument)); }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(AtTimedDaGdAstNode astNode) { ExpressionData = new AtTimedExpression(astNode.TimeSpecifier, MasterExporter.ToExpression(astNode.Argument)); }
/// <summary> /// Handles the AST node visit. /// </summary> /// <param name="astNode">AST node.</param> public override void Visit(ForallDaGdAstNode astNode) { ExpressionData = new ForallDurativeExpression(MasterExporter.ToParameters(astNode.Parameters), MasterExporter.ToDurativeExpression(astNode.Expression)); }