-
Data: 2011-02-07 20:23:26
Temat: parsowanie
Od: Zbigniew Malec <a...@i...invalid> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Witam,
mam takie pytanie ze swiata parserów.
Piszę sobie taki mały parser i dla wygody podzieliłem go na dwie części:
Tokenizer i Parser.
W mojej składni występuje znaczek nawiasu klamrowego { i teraz, jeżeli jest
on po dolarze $, to znaczy, że jest to początek nazwy zmiennej, natomiast
jeżeli nie jest po dolarze, to jest po prostu elementem tekstu,
przykładowo:
abra { cos ${zmienna}
Pierwszy nawias to tekst, a kolejne, to już elementy zmiennej.
I teraz tak się zastanawiam (czysto koncepcyjnie), czy w tym przypadku
tokenami powinny być:
LITERAŁ: abra { coś
ZNACZNIK ZMIENNEJ
POCZĄTEK ZMIENNEJ
LITERAŁ: zmienna
KONIEC ZMIENNEJ
czy raczej
LITERAŁ: abra
NAWIAS
LITERAŁ: coś
ZNACZNIK ZMIENNEJ
NAWIAS OTWIERAJĄCY
LITERAŁ: zmienna
NAWIAS ZAMYKAJĄCY
i dopiero w parserze to sklejać dalej.
Rozwiązanie 1 ma taką zaletę, że od razu otrzymujemy sensowne tokeny (i jak
tak patrzę na dokumentację różnych parserów do C++ np. to wygląda, że tak
właśnie jest to robione), jednak trzeba pamiętać jeszcze kontekst, np. że
do tej pory nie było dolara $, więc to jest nawias, a nie początek
zmiennej, a to się może szybko przekształcić w bałagan nie do utrzymania.
Rorwiązanie 2 ma natomiast taką wadę, że na parserze spoczywa obowiązek
łączenia tokenów w większe tokeny (np. LITERAŁ: abra, NAWIAS, LITERAŁ: coś
w LITERAŁ: abra { coś), jednakże łatwiej jest tutaj zarządzać stanem
poprzez odpowiednie zchodzenie w dół drzewa z accept i expect.
Więc jakbyście wy to zrobili?
Ps. Chciałbym zaznaczyć, że wiem, że istnieją setki gotowych bibliotek i
tak dalej, jednak ja się pytam dla wiedzy, a nie dla praktycznego
rozwiązania.
Ps. Na internecie jest sporo na ten temat, jednakże poruszane są tylko
przykłady łatwe, w których takie dylematy nie występują :] Ale jakby gdzieś
ktoś miał linka, to też się nie obrażę.
--
Pozdrawiam
Zbyszek Malec
Następne wpisy z tego wątku
- 07.02.11 20:50 Wojciech Muła
- 07.02.11 22:30 Wojciech \"Spook\" Sura
- 08.02.11 23:47 Zbigniew Malec
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-13 Warszawa => Recruiter 360 <=
- 2026-01-13 Katowice => Key Account Manager <=
- 2026-01-13 Warszawa => Senior Backend Java Developer <=
- 2026-01-13 Wrocław => ERP Implementation Consultant <=
- 2026-01-13 Elektryk a otwieranie drzwi :-)
- 2026-01-12 Schemat automatyki
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.
- 2026-01-12 Teoretyczne zagadnienie - ogrzewanie budynku
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Polska Grupa Zbrojeniowa (85% udziałów) Likwiduje Stomil-Poznań - Zakład Działał Od 1928r.
- 2026-01-12 Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- 2026-01-12 Usunięcie zdjęcia zamordowanej kobiety: Policja 3 dni nie zawracała sądowi dupy i załatwiła bez sądu [TVN donosi na kogoś]
- 2026-01-12 Policjant (poza służbą) agresywny wobec kobiety 2 [Szczecin, Sylwester]




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]