Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tworzenie gramatyki
Forum PHP.pl > Forum > PHP
jarmiar
zastanawiam się jak ugryźc tworzenie nowej gramatyki w php dla stringów
tzn chciałbym jakoś efektywnie zrobić parsowanie warunków logicznych w zapytaniach sql (piszę system pseudobazodanowy dla plikow txt )
Crozin
Napisać "typowy" parser dla tego typu języka, tj.: ciąg wejściowy -> rozbicie na poszczególne tokeny -> zbudowanie drzewa AST na ich podstawie -> wykonywanie poszczególnych węzłów z drzewa. Oczywiście zamiast pisać całość od podstaw możesz skorzystać z gotowych narzędzi do generowania parserów.

Przede wszystkim zacznij od http://en.wikipedia.org/wiki/Lexical_analysis
irmidjusz
Może Flat-File SQL http://fsql.sourceforge.net/ wystarczy i nic nie będziesz musiał pisać.
jarmiar
@irmidjusz: Masz może gdzieś na dysku tą bibliotekę, bo nie działa download u nich na stronie ?
redeemer
A nie lepiej http://www.sqlite.org/index.html ?
jarmiar
nie lepiej bo klient sobie zażyczył pliki tekstowe
redeemer
Dziwne podejście klienta smile.gif http://sourceforge.net/projects/fsql/files/latest/download
jarmiar
Znacie może inne tego typu biblioteki, bo powyższa nie działa na php 5.3x ?
erix
http://www.tehuber.com/article.php?story=20081016164856267

Ogólnie po frazie sql tokenizer sporo znajdziesz.

Chyba że chce Ci się pisać definicje do Bisona, ale to już nie PHP.
lukaskolista
a moze JSON?
jarmiar
na jsonie opieram swój silnik do bazy, jednak potrzebuję móc tworzyć gramatyke sqla tzn chodzi mi o warunki logiczne w zapytaniu (na razie obsługuje tylko te połączone spójnikiem AND ), albo jakas gotowa biblioteka do tego



a czy jak ustawie w pdo dns sqllite i ustawie, że dane mają być trzymane w pamięci, to czy istnieje jakieś ustawienie serwera, które może zablokować takie działania? chodzi mi o to, czy na wirtualnych współdzielonych serwerach np home.pl będzie działać
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.