Zagnieżdżone komentarze



Widzisz wersję archiwalną tematu "Zagnieżdżone komentarze" z forum pl.comp.programming





Borneq - 22 Lis 2007, 16:53

We FreePascalu można natknąć się na zagnieżdzone komentarze. Jak analizować
taki kod? Normalnie mamy analizę leksykograficzną która dopuszcza wyrażenia
regularne (ale nie zlicza ilości otwieranych i zamykanych komentarzy) i daje
na wyjściu tokeny do algorytmu parsowania. Natomiast w Delphi mamy jeszcze
inną ciekawą rzecz - takie słowa jak index,readczy write w definicji
property są słowami kluczowymi a poza tym mogą być użyte jako
identyfikatory - w jaki sposób ma działać analzia leksykograficzna?


Marcin ‘Qrczak’ Kowalczyk - 22 Lis 2007, 17:23


We FreePascalu można natknąć się na zagnieżdzone komentarze. Jak analizować
taki kod?



W zależności od tego, jak implementowany jest lekser, można albo wołać
analizę komentarza rekurekcyjnie napotkawszy rozpoczęcie komentarza
w komentarzu, albo zliczać zagnieżdżenia i kończyć kiedy licznik wróci
do 0.

Natomiast w Delphi mamy jeszcze
inną ciekawą rzecz - takie słowa jak index,readczy write w definicji
property są słowami kluczowymi a poza tym mogą być użyte jako
identyfikatory - w jaki sposób ma działać analzia leksykograficzna?



Znowu szczegóły zależą od technicznych aspektów leksera i parsera.
Oraz od gramatyki Delphi.

Można albo potraktować je jako identyfikatory, a parserowi kazać
w pewnych sytuacjach reagować na to, który to jest identyfikator;
albo potraktować je jako słowa kluczowe, a tam, gdzie dopuszczalne
są identyfikatory, dopuścić również je (poza kontekstami, w których
pełnią rolę słów kluczowych); albo wreszcie komunikować informację
z parsera do leksera, jeśli zawczasu wiadomo, jaki mamy kontekst,
żeby lekser zwrócił różne rodzaje tokenów.


TiGeR - 24 Lis 2007, 12:05

O ile dobrze rozumiem opisany przez Ciebie cel wyrazen regularnych
to chyba nie jest on tu wlasciwym rozwiazaniem. Zamiast tego
zastosowany powinien byc jezyk bezkontekstowy, a nie automat
skonczony. Tu zniknie problem ze zliczaniem nawiasow.

Problem identyfikatorow jest jeszcze do przemyslenia, ale raczej
powinien i na to pomoc.

Pozdrawiam.


Piotr Dembiński - 2 Gru 2007, 15:04


[ciap]

w pewnych sytuacjach reagowaţ˙   na to, ktţ˙
albo potraktowaţ˙   je jako sţ˙ Bowa kluczowe, a tam, gdzie dopuszczalne



Po co parserowi?  To siţ˙   robi na etapie analizy leksykalnej, przez
uţ˙ |ycie kontekstu.



Piotr Dembiński - 2 Gru 2007, 15:07


[ciap]

| Natomiast w Delphi mamy jeszcze inną ciekawą rzecz - takie słowa
| jak index,readczy write w definicji property są słowami kluczowymi
| a poza tym mogą być użyte jako identyfikatory - w jaki sposób ma
| działać analzia leksykograficzna?

Znowu szczegóły zależą od technicznych aspektów leksera i parsera.



Jak Lex, to można zastosować kontekstową analizę leksykalną.

Pogromcy Algorytmów - komentarz
Co sie stalo?
jak dziala hosts.deny na Linux-ie
Problem
  • marcowiatka 2009 i mamusie 1080
  • 74 ile to miesiEAcy
  • komputery gry amiga
  • starych domow
  • patrol 3 4 lipca
  • agencja nieruchomoB6ci Grodzisk mazowiecki
  • forum scorpio
  • prosba o napisanie programu w c
  • czeslaw niemen 2222dziwny jest ten swiat2222 text
  • Katalog wypowiedzi z for internetowych ^^ Strona Główna