Opis składni HTML: komentarze. O co uzupełnić?

0

Tutaj jest opis składni HTML ograniczony do potrzeb wyciągania wartości atrybutów href i src znaczników link i img. Jednak jest w nim błąd wynikający z obecnie niemożliwości zapisu składni. Ten błąd to definicja:

znacznik komentarza
    "<!--"
    /[^>]*/
    "-->"

Błąd polega na tym, że zawartość znacznika komentarza może zawierać znak >, a nie może zawierać tekstu -->. Dlatego chciałbym uzupełnić język opisu składni o element, który pozwoli zdefiniować, że zawartość nie może zawierać podanego tekstu.

Przyszyły mi na myśl dwa rozwiązania:

  1. Dodać element typu gwiazdka, który zbierałby jak najmniej tekstu przed wystąpieniem w tekście kolejnego elementu:
znacznik komentarza
    "<!--"
    *
    "-->"
  1. Dodać element typu zanegowany tekst bądź zanegowane wyrażenie regularne, który zbierałby jak najmniej tekstu przed wystąpieniem podanego tekstu lub wyrażenia regularnego, ale tego podanego tekstu lub wyrażenia regularnego nie zbierał:
znacznik komentarza
    "<!--"
    !"-->"
    "-->"

bądź

znacznik komentarza
    "<!--"
    !/-->/
    "-->"

A może jest jeszcze lepsze rozwiązanie?

0
overcq napisał(a):

Tutaj jest opis składni HTML ograniczony do potrzeb wyciągania wartości atrybutów href i src znaczników link i img. Jednak jest w nim błąd wynikający z obecnie niemożliwości zapisu składni. Ten błąd to definicja:

Ale wiesz, że w HTML można osadzać SGML?

I żeby osadzić SGML używa się zapisu <! oraz > (tak samo się robi np <!DOCTYPE html>), a w SMGL znaki -- to jest komentarz (podobnie jak w SQL). Więc to nie jest tak że zapis <!-- to jest 100% HTML.

Polecam przeczytać sekcję 3.2.4: https://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4

0

@Patryk27: Wątpię, że tak jest. Jakbyś zajrzał do kodu, to zobaczyłbyś, że parsuje w postaci drzewa. Ale nawet ja mam problem ze zrozumieniem całości kodu, jak on jest napisany. ;)

@Riddle: Możliwe. To jest kwestia dopisania kolejnej definicji zamiast prostego wykluczania, ale w tej definicji nadal będzie potrzeba definiować niewystąpienie znacznika zamykającego.

0
overcq napisał(a):

@Riddle: Możliwe. To jest kwestia dopisania kolejnej definicji zamiast prostego wykluczania, ale w tej definicji nadal będzie potrzeba definiować niewystąpienie znacznika zamykającego.

Jeśli byś przeczytał link który wstawiłem, to wiedziałbyś że w SGML'u nie może wystąpić drugi raz --, a więc siłą rzeczy nie może wystąpić --> wewnątrz.

0

Oczywiście. Na zdefiniowanie pełnej składni HTML będzie odpowiednia pora w przyszłości, ale problemy będą te same. A pytam tutaj o problem opisu składni.

Ale poprawię wstępnie definicję komentarza:

znacznik komentarza
    "<!--"
    *
    "--"
    odstępy ?
    ">"

1 użytkowników online, w tym zalogowanych: 0, gości: 1