예제 #1
0
 public void ChangeVarHelperUni(Node n, PredicateVariable p)
 {
     if (n != null)
     {
         if (n is Variable v)
         {
             v.ChangeVariable(p);
         }
         this.ChangeVarHelperUni(n.RightNode, p);
         this.ChangeVarHelperUni(n.LeftNode, p);
     }
 }
예제 #2
0
 public void ChangeVarHelperExist(Node n, PredicateVariable p, string oldVar)
 {
     if (n != null)
     {
         if (n is Variable v)
         {
             v.ChangePredicateVariable(p, oldVar);
         }
         this.ChangeVarHelperExist(n.RightNode, p, oldVar);
         this.ChangeVarHelperExist(n.LeftNode, p, oldVar);
     }
 }
예제 #3
0
 public void AddActiveVariable()
 {
     if (this._activeVariables.Count != 0)
     {
         PredicateVariable lastVar    = this._activeVariables[this._activeVariables.Count - 1];
         string            nextLetter = Convert.ToString((char)(lastVar.ToString()[0] + 1));
         this._activeVariables.Add(new PredicateVariable(nextLetter));
     }
     else
     {
         this._activeVariables.Add(new PredicateVariable("a"));
     }
 }
예제 #4
0
 public override void ChangeVariable(PredicateVariable p)
 {
     foreach (PredicateVariable v in _variables)
     {
         if (v.ToString() != p.ToString())
         {
             if (!v.IsSubtituted())
             {
                 v.ChangeVariable(p);
                 break;
             }
         }
     }
 }
예제 #5
0
 public void ChangePredicateVariable(PredicateVariable p, string oldVar)
 {
     foreach (PredicateVariable v in _variables)
     {
         if (!v.IsSubtituted())
         {
             if (v.ToString() == oldVar)
             {
                 v.ChangeVariable(p);
                 break;
             }
         }
     }
 }
예제 #6
0
 public override void AddVariable(PredicateVariable variable)
 {
     this._variables.Add(variable);
 }