Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
 /// <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));
 }
Esempio n. 5
0
 /// <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));
 }
Esempio n. 6
0
 /// <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));
 }