readme update

This commit is contained in:
emilekm2142 2019-06-01 19:01:50 +02:00
parent 1a7d79723f
commit bb2ce58c31

View File

@ -49,3 +49,25 @@ Dla każdej z powyższych reguł można sformułować odpowiednie wyrażenie, kt
Taki sposób jest o wiele wolniejszy i mniej ciekawy niż poprzedni, ale też działa. Do tego, wyrażenia KRZ nie są regularne, więc używanie narzędzia zupełnie do tego nieprzeznaczonego wydało się nam ciekawe do zaprezentowania. Taki sposób jest o wiele wolniejszy i mniej ciekawy niż poprzedni, ale też działa. Do tego, wyrażenia KRZ nie są regularne, więc używanie narzędzia zupełnie do tego nieprzeznaczonego wydało się nam ciekawe do zaprezentowania.
# Opis struktury programu
`class Formula` reprezentuje formułę. Konstruktor przyjmuje `string` formula i obiekt interpretera. Interpreter to dowolny obiekt z metodą `isValid(f:Formula)->bool`.
## AbstractInterpreter
Klasa pomocnicza, klasy abstrakcyjne nie istnieją w Pythonie, ale warto zrobić jakąś bazę.
## SimpleInterpreter
Klasa definiująca interpreter, który sprawdza, czy formuła bez zagnieżdzeń jest poprawnie zapisana. Opiera się na sztywnym zbiorze reguł
## ProperInterpreter
Klasa definiująca interpreter sprawdzający czy złożona formuła jest poprawna. Rozbija rekurencyjnie na mniejsze formuły aż do momentu, kiedy można je sprawdzić przez `SimpleInterpreter`
## RegexInterpreter
Klasa definiująca interpreter, który swoje działanie opiera na wyrażeniach regularnych i programie `grep`. Działa tylko, gdy ten program jest zainstalowany (czyli głównie na linuksie).
Szuka niepoprawnych ciągów i sprawdza czy nawiasy są prawidłowo pozamykane.