![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 22.01.2004 Skąd: LDZ Ostrzeżenie: (0%) ![]() ![]() |
Witam! Chcę zrobić paraser (jeszcze nie bardzo wiem w czym ale cos miedzy 'php' a 'c' - nie bardzo wiem w ktorym latwiej)
Ale moze od poczatku. Co mialby robic program?! Mialby sprawdzac czy podane wyrazenie jest tautologia, a wiec : 1) Wpisanie wyrazenia : np. ~(avb) 2) Sprawdzenie warunków : War. 1 - Czy istnieje jeden operator logiczny i jedna litera (v-alternatywa; f-koniunkcja; >-implikacja; = - równość) War. 2 - Czy ilość nawiasów otwieranych jest równa ilośći nawiasów zamykanych War. 3 - Czy nie występuje pusty nawias - () War. 4 - SPrawdzenie niedozwolonego znaku 3) Wykonanie instrukcji parsera Jeżeli powyższe warunki są spełnione na TAK to przechodzimy do analizy zdania i tak, program sprawdza wg podanej gramatki czy po sobie nastepujace zmienne sa zgodne z regulami # Reguly S->'spacja'S S->(S S->~(S1 S->'Z'S2 S->-S5 S1->'spacja'S1 S1->'Z'S2 S1->(S S2->'spacja'S2 S2->'o2'S3 S2->)S4 S2->-S5 S2->$ S3->'spacja'S3 S3->'Z'S2 S3->(S S3->S1 S4->'spacja'S4 S4->'o2'S3 S4->-S5 S4->$ S5->'Z'S2 S5->(S S5->~S1 o2 - operator logiczny z - liczba # Koniec regul Program ma przejsc hmmm mozna to nazwac kazde "miejsce na litere (S)" i sprawdzic czy podana wartosc jest dobra a dalej sprawdzac w zaleznosci od poprzedniego wyrazenia zgodnie z powyzsza tabela 4) Na sam koniec 'ciasteczka' (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czyli czy wyrazenie jest tautologia czy nie Ktos moglby podpowiedziec jak to ugrysc ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Troche chaotycznie to napisales.
Cytat 2) Sprawdzenie warunków : War. 1 - Czy istnieje jeden operator logiczny i jedna litera (v-alternatywa; f-koniunkcja; >-implikacja; = - równość) War. 2 - Czy ilość nawiasów otwieranych jest równa ilośći nawiasów zamykanych War. 3 - Czy nie występuje pusty nawias - () War. 4 - SPrawdzenie niedozwolonego znaku Ad1. (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ad2. To nie wystarcza. Np ')a('. Ilosc ( i ) jest taka sama. Ale takie rzeczy powinien zalatwiac parser (bo jak dalej widze probujesz zbudowac jakas gramatyke). Ad3. Zalatwi to odpowiednia gramatyka. Ad4. To samo. Podana przez ciebie 'gramatyka' jest twojego autorstwa? Wydaje mi sie bardzo zagmatwana. Jesli chcesz oprzez to na gramatyce, parsingu to zainteresuj sie takimi narzedziami jak lex (flex), bison (yacc), sa one dostepne pod C/C++. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 13:53 |