![]() |
![]() ![]() |
![]() |
![]()
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ś).
-------------------- misiu | chór
"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku" Allen Holub |
|
|
![]()
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?
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. ;)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)) Cytat A może ktoś się orientuje, jak to jest rozwiązane w wyszukiwarkach, że np. podaję takie cudo: hm tutaj znow podstawowy lekser by sie przydal. gotowca nie widzialem (ale nie dalbym siostrze uciac reki ze sie nie da ;)
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ś).-------------------- .. make web your home ..
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 12.05.2002 Skąd: skoczów Ostrzeżenie: (0%) ![]() ![]() |
hej
ja pisalem lexer i parser do wyrazen arytmetycznych . Zbudowanie tych automatow nie jest trudne.... jezeli chcesz to podesle moje programy w Delphi, ktore mozna przerobic na php. Sluze pomoca azaghal@box43.pl |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 02:43 |