public AExpression(BaseKnowledge left, string op, BaseKnowledge right)
 {
     if (left != null)
     {
         var l = left as AExpression;
         Left = l ?? new ExpressionLeaf(left);
     }
     Operator = op;
     if (right != null)
     {
         var r = right as AExpression;
         Right = r ?? new ExpressionLeaf(right);
     }
 }
 public bool Exists(BaseKnowledge node)
 {
     if (node is KnowledgeAttribute)
     {
         return(ExistsInternal(node as KnowledgeAttribute));
     }
     if (node is KnowledgeRelation)
     {
         return(ExistsInternal(node as KnowledgeRelation));
     }
     if (node is KnowledgeImplication)
     {
         return(ExistsInternal(node as KnowledgeImplication));
     }
     if (node is KnowledgeNon)
     {
         return(true);
     }
     return(false);
 }
 public ExpressionIs(BaseKnowledge val)
     : base(KnowledgeNon.Value, "", val)
 {
 }
 public ExpressionXor(BaseKnowledge left, BaseKnowledge right)
     : base(left, "Xor", right)
 {
 }
Beispiel #5
0
 public ExpressionAnd(BaseKnowledge left, BaseKnowledge right)
     : base(left, "And", right)
 {
 }
 public ExpressionNot(BaseKnowledge val)
     : base(KnowledgeNon.Value, "!", val)
 {
 }
 public ExpressionLeaf(BaseKnowledge leaf) : base(null, "leaf", null)
 {
     Leaf = leaf;
 }