main:
public class Main {
boolean x = true;
/* stworzylam klasy Stala i Pusta bo x, true, i false
* musze wpisywac do wyrazen, ktore przyjmuja w konstruktorach tylko inne wyrazenia */
Puste X = new Puste(x);
Stala T = new Stala(true);
Stala F = new Stala(false);
And w1 = new And(X,T);
Xor w2 = new Xor(F,T);
Or w3 = new Or(w1, w2);
Negacja w4 = new Negacja(w3);
Or wyr = new Or(w4, X);
wyr.wypisz();
}
klasa or:
package logic;
public class Or extends DwuArg {
public Or(Wyrazenie w1, Wyrazenie w2){
super(w1, w2);
}
public void wypisz(){
lewe.wypisz();
System.out.print(" v ");
prawe.wypisz();
}
}
dwuargumentowe (nadklasa or):
abstract public class DwuArg extends Wyrazenie {
Wyrazenie lewe;
Wyrazenie prawe;
public DwuArg(Wyrazenie w1, Wyrazenie w2){
super();
this.lewe = w1;
this.prawe = w2;
}
}
wyrażenie (nadklasa wuarg):
abstract public class Wyrazenie {
abstract void wypisz();
}