![]() |
![]() |
![]()
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' ![]() 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> |
|
|
![]() |
![]()
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. ![]() ![]() 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++. |
|
|
![]()
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 :)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 22.01.2004 Skąd: LDZ Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Radarek) Ad1. ![]() ![]() 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 ![]() 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> |
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 21:58 |