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' smile.gif Czyli czy wyrazenie jest tautologia czy nie

Ktos moglby podpowiedziec jak to ugrysc ?


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
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. questionmark.gifquestionmark.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
NuLL
post
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


[OT]Pisane parsera to nie jest zabawa dla początkujących programistów[/OT]


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
AdamT
post
Post #4





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

Ostrzeżenie: (0%)
-----


Cytat(Radarek)
Ad1. questionmark.gifquestionmark.gif

Czy istnieje minimum jeden operator logiczny i jedna litera w ten sposób teoretyznie wyrażenie może mieć sens

Cytat(Radarek)
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).


No wlasnie czyli zauwazyles ze na pierwszym miejscu moze stac :
Cytat
S->'spacja'S
S->(S
S->~(S1
S->'Z'S2
S->-S5

Nigdzie nie ma ze na pierwszym miejscu moze stac nawias ')' zamykający...


Cytat(Radarek)
Podana przez ciebie 'gramatyka' jest twojego autorstwa? Wydaje mi sie bardzo zagmatwana.

To jest gramatyka podana przez mojego nauczyciela :/. Nie moja wina :-)

Cytat(NuLL)
Pisane parsera to nie jest zabawa dla początkujących programistów

Niby tak ale to jest program na 4 zawsze mogłem sobiue wybrać kompletny progrm na 5 logika Gentzena smile.gif Ten to dopiero jest zakręcony

Więc jak widzicie rozpaczliwie poszukuję pomocy (przedmiot jakoś muszę zaliczyć :/)


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Temat był zamknięty przez jakiś czas, ale od teraz otwieram ponownie.

Ten post ma też na celu "podbicia tematu", w związku z tym że pozostawał zamknięty. Z mojego powodu.

W związku z tym że tamat jest za "dobry" na php Pocz. przenoszę go poziom wyżej.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 21:58