Пример #1
0
 public Universal(string name, PredicateVariable variable) : base(name, variable)
 {
 }
Пример #2
0
 public Quantifier(string name, PredicateVariable variable) : base(name)
 {
     this._subtitution = false;
     this._variable    = variable;
 }
Пример #3
0
 public Existential(string name, PredicateVariable variable) : base(name, variable)
 {
 }
Пример #4
0
        // help with creating binary tree
        private void InsertTreeHelper(ref Node n, string c)
        {
            switch (c)
            {
            case "&":
                n           = new AndOperator(c);
                n.LeftNode  = this._myStack.Pop();
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case "|":
                n           = new OrOperator(c);
                n.LeftNode  = this._myStack.Pop();
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case ">":
                n           = new Implication(c);
                n.LeftNode  = this._myStack.Pop();
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case "~":
                n           = new Negation(c);
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case "=":
                n           = new BiImplication(c);
                n.LeftNode  = this._myStack.Pop();
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case "%":
                n           = new NANDOperator(c);
                n.LeftNode  = this._myStack.Pop();
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case "!":
                n           = new Existential(c, new PredicateVariable(this._myStack.Pop().ToString()));
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            case "@":
                n           = new Universal(c, new PredicateVariable(this._myStack.Pop().ToString()));
                n.RightNode = this._myStack.Pop();
                this._myStack.Push(n);
                break;

            default:
                if (char.IsLower(char.Parse(c)))
                {
                    n = new PredicateVariable(c);
                    this._myStack.Push(n);
                }
                else
                {
                    n = new Variable(c);
                    int total = this._myStack.Count;
                    for (int i = 0; i < total; i++)
                    {
                        if (_myStack.Peek() is PredicateVariable p)
                        {
                            n.AddVariable(p);
                            _myStack.Pop();
                        }
                    }
                    this._myStack.Push(n);
                }
                break;
            }
        }
Пример #5
0
 public override void ChangeVariable(PredicateVariable p)
 {
     this._subtitution = true;
     this._name        = p.ToString();
 }
Пример #6
0
 public virtual void AddVariable(PredicateVariable p)
 {
 }
Пример #7
0
 public virtual void ChangeVariable(PredicateVariable p)
 {
 }