Ejemplo n.º 1
0
        internal Expression makeSentence(Expression e)
        {
            var r = e;

            while (r.freeVariables.Any())
            {
                r = new BasicQuantifiedExpression(scope, BasicForall.get, r.freeVariables.First(), r, new List <Expression[]>(), null);
            }
            while (r.freeTypeVariables.Any())
            {
                r = new BasicQuantifiedTypeExpression(BasicTypeForall.get, r.freeTypeVariables.First(), r, new Expression[0], null);
            }
            return(r);
        }
Ejemplo n.º 2
0
        public virtual Expression visit(QuantifiedTypeExpression e)
        {
            TypeVariable   newV = visitTypeVariable(e.variable);
            Expression     newE = e.expression.visit(this);
            ExpressionList newT = e.triggers.visit(this);

            Expression result;

            if (!ReferenceEquals(e.variable, newV) || !ReferenceEquals(e.expression, newE) ||
                !ReferenceEquals(e.triggers, newT))
            {
                result = new BasicQuantifiedTypeExpression(e.quantifier, newV, newE, newT, e.attributes);
            }
            else
            {
                result = e;
            }
            return(result);
        }