// The real work happens here in the literal's FixRange internal override DomainBoolExpr VisitTerm(DomainTermExpr expression) { BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); DomainBoolExpr result = literal.FixRange(expression.Identifier.Range, m_memberDomainMap); return(result); }
internal override StringBuilder VisitTerm(DomainTermExpr expression) { BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); literal.ToCompactString(m_builder); return(m_builder); }
// The real work happends here - the slots are obtained from the literal internal override DomainBoolExpr VisitTerm(DomainTermExpr expression) { BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); literal.GetRequiredSlots(m_projectedSlotMap, m_requiredSlots); return(expression); }
// The real work happens here in the literal's RemapBool internal override DomainBoolExpr VisitTerm(DomainTermExpr expression) { BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); BoolLiteral newLiteral = literal.RemapBool(m_remap); return(newLiteral.GetDomainBoolExpression(m_memberDomainMap)); }
// Check if the oneOfConst is complete or not internal override bool VisitTerm(DomainTermExpr expression) { BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); MemberRestriction restriction = literal as MemberRestriction; bool result = restriction == null || restriction.IsComplete == true; return(result); }
internal override T_Return VisitTerm(DomainTermExpr expression) { // If m_skipIsNotNull is true at this point, it means that no ancestor of this // node is OR or NOT BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); return(BooleanLiteralAsCql(literal, m_skipIsNotNull)); }
internal BoolExpression RemapLiterals(Dictionary <BoolLiteral, BoolLiteral> remap) { var rewriter = new BooleanExpressionTermRewriter <BoolDomainConstraint, BoolDomainConstraint>( // term => remap[BoolExpression.GetBoolLiteral(term)].GetDomainBoolExpression(m_memberDomainMap)); delegate(DomainTermExpr term) { BoolLiteral newLiteral; return(remap.TryGetValue(BoolExpression.GetBoolLiteral(term), out newLiteral) ? newLiteral.GetDomainBoolExpression(m_memberDomainMap) : term); }); return(new BoolExpression(m_tree.Accept(rewriter), m_memberDomainMap)); }
internal override StringBuilder VisitTerm(DomainTermExpr expression) { // If m_skipIsNotNull is true at this point, it means that no ancestor of this // node is OR or NOT BoolLiteral literal = BoolExpression.GetBoolLiteral(expression); if (literal is ScalarRestriction || literal is TypeRestriction) { return(literal.AsUserString(m_builder, Strings.ViewGen_EntityInstanceToken, m_skipIsNotNull)); } return(literal.AsUserString(m_builder, m_blockAlias, m_skipIsNotNull)); }
internal override StringBuilder VisitNot(DomainNotExpr expression) { m_skipIsNotNull = false; // Cannot skip in NOTs DomainTermExpr termExpr = expression.Child as DomainTermExpr; if (termExpr != null) { BoolLiteral literal = BoolExpression.GetBoolLiteral(termExpr); return(literal.AsNegatedUserString(m_builder, m_blockAlias, m_skipIsNotNull)); } else { m_builder.Append("NOT("); // We do not need the returned StringBuilder -- it is the same as m_builder expression.Child.Accept(this); m_builder.Append(")"); } return(m_builder); }