readme update
This commit is contained in:
parent
1a7d79723f
commit
bb2ce58c31
22
readme.md
22
readme.md
@ -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.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user