-
11. Data: 2010-02-22 08:31:06
Temat: Re: gramatyka bylo Re: Ksiazka/tutorial do lekserow
Od: Jacek Czerwinski <...@...z.pl>
Lucjan J.A. Tumim pisze:
> Jacek Czerwinski wrote:
>
>> Lucjan J.A. Tumim pisze:
>>> To ja sie podepne pod watek i zapytam. Ma ktos jakas gotowa gramatyke XML
>>> i ew. jakiegos kawalka jabber-a?
>>>
>> a) dlaczego XML gramatyką?
> Nie XML gramatyką tylko gotową gramatyke XML. Opis składni dowolnego
> dokumentu XML zapisana np. w yacc.
Od gramatyki XML jako takiej (tzn kończącą się na TAG jako taki) po
konkretną gramatykę jabbera droga daleka (tzn poziom apliakacji
sieciowej trzeba napisac)
Parsowanie XML gramatyką i parserem ? Nie jestem teoretykiem i
specjalistą, ale dla mnie jak mieszanie herbaty przynajmniej widelcem.
Czy w Yaccu cokolwiek jest na talerzu? MSZ mocno wątpliwe. Dla mnie ta
biblioteka jest brrrrr. W razie potrzeby parserów uzywam Antlr, jakies
gramatyki na XML/XHML były (nigdy mnie nie kusiło ich użyć).
>
>> b) do jabbera jest multum narzedzi w każdym w zasadzie języku, co chcesz
>> zrobic?
>> Ciezko by bylo klasycznie sparsowac nieskonczony strumien XML :P
> ?
>
> A możesz mi powiedzieć dlaczego?
Wszystkie znane mi podejścia parserowe zakładają skończony strumień.
Wtedy input da się ocenić wóz/przewóz, wtedy jest drzewo itd.
Czy 'twój' ('twój' == nie mój) yacc umie na nieskończonym strumieniu,
nie mam pojęcia.
> Jest narzędzi trochę to prawda, ale nie wszystkie sa rozsadne. Co chce
> zrobic? Napisac klienta jabbera, który by zamiast parserow xml uzywal po
> prostu yacca.
> Zauwaz jak latwo dodajemy nowa funkcjonalnosc. Mamy na talerzu wszystkie te
> dziwaczne kawalki XML. Jest to dla mnie atrakcyjny sposob pisania.
raz w zyciu Jabbero-podobny stumień rozbieralem ręcznym (ręcznym o tyle,
że baze miałem od uznanej bilblioteki XML) kodem, ale to był tryb SAX.
Dośc czytelne to wyglądało
if TAG
akcja
Podstawowy zestaw tagów jabbera jest dośc płaski, do 2-3 poziomów, z tym
że jak wchodzimy w rozszerzenia XMPP zaczynają się schody. Zbudowac
stosik, te sprawy, wynajdywanie koła.
I z nieskończonością strumienia jeszcze jeden problem. Wznawianie po
błędzie. Zaden znany mi parser nie wznawia w pełnowartościowym trybie,
zawsze jest to jakies tam tylko ratowanie. W naturalnych narzędziach XML
jest to prostsze, poczynając od podstawowej zasady 'nie znam tagu to
ignoruję'.
Czyste i pewne zamknięcie 'drivera' yaccowego (np. celem powołania
nowego i wznowienia) opartego na zmiennych globalnych, brrrrr.
-
12. Data: 2010-02-22 13:05:07
Temat: Re: gramatyka bylo Re: Ksiazka/tutorial do lekserow
Od: "Lucjan J.A. Tumim" <L...@a...fm.pl>
Jacek Czerwinski wrote:
> Lucjan J.A. Tumim pisze:
>> Jacek Czerwinski wrote:
>>
>>> Lucjan J.A. Tumim pisze:
>>>> To ja sie podepne pod watek i zapytam. Ma ktos jakas gotowa gramatyke
>>>> XML i ew. jakiegos kawalka jabber-a?
>>>>
>>> a) dlaczego XML gramatyką?
>> Nie XML gramatyką tylko gotową gramatyke XML. Opis składni dowolnego
>> dokumentu XML zapisana np. w yacc.
> Od gramatyki XML jako takiej (tzn kończącą się na TAG jako taki) po
> konkretną gramatykę jabbera droga daleka (tzn poziom apliakacji
> sieciowej trzeba napisac)
> Parsowanie XML gramatyką i parserem ? Nie jestem teoretykiem i
> specjalistą, ale dla mnie jak mieszanie herbaty przynajmniej widelcem.
Będziesz się śmiał, ale tak właśnie piszę swój komunikator. Mam pliki
napisane w swoim języku i generuje z nich aplikację. Tak samo jest ze stosem
jabbera i logiką i kontrolkami. Zreszta AbiWord tez tak robi, ale
bałaganiarsko. Za to uruchomisz to na dowolnej maszynie i systemie jak
chcesz.
> Czy w Yaccu cokolwiek jest na talerzu? MSZ mocno wątpliwe. Dla mnie ta
> biblioteka jest brrrrr. W razie potrzeby parserów uzywam Antlr, jakies
> gramatyki na XML/XHML były (nigdy mnie nie kusiło ich użyć).
Sam napisalem chyba ze 2 proste parsery. Jeden kiedys w Turbo Pascalu.
Generował też pascalowy kod ;)
Po prostu pomyslalem, ze po co mam pisac to od nowa jak pewnie gdzies jest.
Moze ktos wie gdzie takie gramatyki znajdę?
>>> b) do jabbera jest multum narzedzi w każdym w zasadzie języku, co chcesz
>>> zrobic?
>>> Ciezko by bylo klasycznie sparsowac nieskonczony strumien XML :P
>> ?
>>
>> A możesz mi powiedzieć dlaczego?
> Wszystkie znane mi podejścia parserowe zakładają skończony strumień.
> Wtedy input da się ocenić wóz/przewóz, wtedy jest drzewo itd.
> Czy 'twój' ('twój' == nie mój) yacc umie na nieskończonym strumieniu,
> nie mam pojęcia.
Wywoływac yacca można hm.. jak to powiedzieć po kawałku. Nie trzeba mieć
całego strumienia. Właśnie to chcę uzyskać. Jak w leniwych językach
programowania. Robić to co teraz potrzebne.
>> Jest narzędzi trochę to prawda, ale nie wszystkie sa rozsadne. Co chce
>> zrobic? Napisac klienta jabbera, który by zamiast parserow xml uzywal po
>> prostu yacca.
>> Zauwaz jak latwo dodajemy nowa funkcjonalnosc. Mamy na talerzu wszystkie
>> te dziwaczne kawalki XML. Jest to dla mnie atrakcyjny sposob pisania.
> raz w zyciu Jabbero-podobny stumień rozbieralem ręcznym (ręcznym o tyle,
> że baze miałem od uznanej bilblioteki XML) kodem, ale to był tryb SAX.
> Dośc czytelne to wyglądało
Nie dyskutuje. Może faktycznie masz rację.
> Podstawowy zestaw tagów jabbera jest dośc płaski, do 2-3 poziomów, z tym
> że jak wchodzimy w rozszerzenia XMPP zaczynają się schody. Zbudowac
> stosik, te sprawy, wynajdywanie koła.
> I z nieskończonością strumienia jeszcze jeden problem. Wznawianie po
> błędzie. Zaden znany mi parser nie wznawia w pełnowartościowym trybie,
> zawsze jest to jakies tam tylko ratowanie. W naturalnych narzędziach XML
> jest to prostsze, poczynając od podstawowej zasady 'nie znam tagu to
> ignoruję'.
Po to potrzebna gramatyka. Czytam co trzeba reszte pomijam.
> Czyste i pewne zamknięcie 'drivera' yaccowego (np. celem powołania
> nowego i wznowienia) opartego na zmiennych globalnych, brrrrr.
A nie ma znaczenia czy yacc czy altr czy co tam jeszcze. Wazne by było
czytelne i szybkie. Nie musze uzywac yacca jesli akurat bedzie to czytelne.
Dziekuje za luźne mysli. Podobaja mi się.