Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] yacc, bison, pccts? - generowanie prostych parserów
msulik
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 31.03.2002
Skąd: Toruń

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


Czy istnieją jakieś nakładki, moduły lub cokolwiek, co umożliwia generowanie prostych parserów w php? Mówiąc "prostych", mam na myśli na przykład parser wyrażeń arytmetycznych z czterema działaniami i nawiasami lub parser wyrażeń logicznych z operatorami logicznymi i nawiasami. A może jest jakiś inny, być może mniej wyrafinowany sposób na rozwiązanie tego zagadnienia?

O co chodzi.. Ano o to, że mam sobie wyrażenie
Kod
1*(2+3)
i zapuszczam na nim jakąś funkcję, która sprawdza, czy to wyrażenie jest poprawne w zdefiniowanej przeze mnie gramatyce (w tym przypadku jest to wyrażenie arytmetyczne), a jeśli tak, to funkcja coś tam wykonuje z tym cudem, na przykład oblicza to wyrażenie albo zamienia (kompiluje) z notacji infiksowej na notację prefiksową, czyli np. na takie coś:
Kod
pomnóż(1,dodaj(2,3))


A może ktoś się orientuje, jak to jest rozwiązane w wyszukiwarkach, że np. podaję takie cudo:
Kod
NOT (ala AND kot) OR (pies XOR chomik)
i wyszukiwarka rozpozna to tak, jak chcę.. W niektórych wyszukiwarkach jest to o tyle ciekawie rozwiązane, że jak na przykład źle rozstawię nawiasy, to i tak dostanę jakiś wynik (być może nie ten zamierzony, ale zawsze jakiś).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kurtz
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


Cytat
Czy istnieją jakieś nakładki, moduły lub cokolwiek, co umożliwia generowanie prostych parserów w php? Mówiąc "prostych", mam na myśli na przykład parser wyrażeń arytmetycznych z czterema działaniami i nawiasami lub parser wyrażeń logicznych z operatorami logicznymi i nawiasami. A może jest jakiś inny, być może mniej wyrafinowany sposób na rozwiązanie tego zagadnienia?
O co chodzi.. Ano o to, że mam sobie wyrażenie
Kod
1*(2+3)
i zapuszczam na nim jakąś funkcję, która sprawdza, czy to wyrażenie jest poprawne w zdefiniowanej przeze mnie gramatyce (w tym przypadku jest to wyrażenie arytmetyczne), a jeśli tak, to funkcja coś tam wykonuje z tym cudem, na przykład oblicza to wyrażenie albo zamienia (kompiluje) z notacji infiksowej na notację prefiksową, czyli np. na takie coś:
Kod
pomnóż(1,dodaj(2,3))
hmm poki co nie zetknalem sie z gotowym mehcniazemm niestety. wyglada na to ze czeka ciebie skontruowanie prostego automatu skonczego - jesli gramatyka nie wychodzi poza podstawowe dzialnia to nie ma specjalnie problemu, ba pregami to zalatwisz. ;)
Cytat
A może ktoś się orientuje, jak to jest rozwiązane w wyszukiwarkach, że np. podaję takie cudo:
Kod
NOT (ala AND kot) OR (pies XOR chomik)
i wyszukiwarka rozpozna to tak, jak chcę.. W niektórych wyszukiwarkach jest to o tyle ciekawie rozwiązane, że jak na przykład źle rozstawię nawiasy, to i tak dostanę jakiś wynik (być może nie ten zamierzony, ale zawsze jakiś).
hm tutaj znow podstawowy lekser by sie przydal. gotowca nie widzialem (ale nie dalbym siostrze uciac reki ze sie nie da ;)
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: 16.09.2025 - 12:50