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

Opis składni HTML: komentarze. O co uzupełnić?
overcq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 403
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:

Kopiuj
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:
Kopiuj
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ł:
Kopiuj
znacznik komentarza
    "<!--"
    !"-->"
    "-->"

bądź

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

A może jest jeszcze lepsze rozwiązanie?

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10236
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

overcq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 403
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.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10236
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.

overcq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 403
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:

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.