Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parser - tautologii, w czym to napisac
AdamT
post
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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Radarek
post
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++.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 13:53