/// <summary>
 ///   Visits the <paramref name="formula." />
 /// </summary>
 public override void VisitUnaryFormula(UnaryFormula formula)
 {
     if (formula.Operator == UnaryOperator.All || formula.Operator == UnaryOperator.Exists)
     {
         _containsInvalidOperators = true;
     }
     else
     {
         Visit(formula.Operand);
     }
 }
        /// <summary>
        ///   Visits the <paramref name="formula." />
        /// </summary>
        public override void VisitUnaryFormula(UnaryFormula formula)
        {
            switch (formula.Operator)
            {
            case UnaryOperator.Not:
                Visit(formula.Operand);
                _expression = Expression.Not(_expression);
                break;

            default:
                throw new InvalidOperationException("Only state formulas can be evaluated.");
            }
        }
        public bool IsCompilable;         //information propagated from children to parents

        /// <summary>
        ///   Visits the <paramref name="formula." />
        /// </summary>
        public override void VisitUnaryFormula(UnaryFormula formula)
        {
            switch (formula.Operator)
            {
            case UnaryOperator.Not:
                Visit(formula.Operand);
                break;

            default:
                // formula itself is not compilable, so add child if possible
                Visit(formula.Operand);
                if (IsCompilable)
                {
                    MaximalCompilableFormulas.Add(formula.Operand);
                }
                IsCompilable = false;
                break;
            }
        }
Esempio n. 4
0
        /// <summary>
        ///   Visits the <paramref name="formula." />
        /// </summary>
        public override void VisitUnaryFormula(UnaryFormula formula)
        {
            _builder.Append("(");

            switch (formula.Operator)
            {
            case UnaryOperator.Next:
                _builder.Append(" X ");
                break;

            case UnaryOperator.Finally:
                _builder.Append(" F ");
                break;

            case UnaryOperator.Globally:
                _builder.Append(" G ");
                break;

            case UnaryOperator.Not:
                _builder.Append(" ! ");
                break;

            case UnaryOperator.All:
                _builder.Append(" A ");
                break;

            case UnaryOperator.Exists:
                _builder.Append(" E ");
                break;

            case UnaryOperator.Once:
                _builder.Append(" Once ");
                break;

            default:
                Assert.NotReached($"Unknown or unsupported unary operator '{formula.Operator}'.");
                break;
            }

            Visit(formula.Operand);
            _builder.Append(")");
        }
Esempio n. 5
0
        /// <summary>
        ///   Visits the <paramref name="formula." />
        /// </summary>
        public override void VisitUnaryFormula(UnaryFormula formula)
        {
            var referenceFormula = _referenceFormula as UnaryFormula;

            if (referenceFormula == null)
            {
                IsEqual = false;
            }
            else
            {
                if (formula.Operator != referenceFormula.Operator)
                {
                    IsEqual = false;
                }
                else
                {
                    _referenceFormula = referenceFormula.Operand;
                    Visit(formula.Operand);
                }
            }
        }
 /// <summary>
 ///   Visits the <paramref name="formula." />
 /// </summary>
 public override void VisitUnaryFormula(UnaryFormula formula)
 {
     IsFormulaReturningBoolValue = true;
 }
 /// <summary>
 ///   Visits the <paramref name="formula." />
 /// </summary>
 public override void VisitUnaryFormula(UnaryFormula formula)
 {
     Visit(formula.Operand);
 }
 /// <summary>
 ///   Visits the <paramref name="formula." />
 /// </summary>
 public override void VisitUnaryFormula(UnaryFormula formula)
 {
     IsReturningRewardResult = false;
 }
 /// <summary>
 ///   Visits the <paramref name="formula." />
 /// </summary>
 public override void VisitUnaryFormula(UnaryFormula formula)
 {
     Visit(formula.Operand);
     CurrentFormula = new UnaryFormula(CurrentFormula, formula.Operator);
 }