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.
|
||||
|
||||
|
||||
# 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