2015-02-13 7 views
0

Может ли кто-нибудь объяснить мне, почему невозможно определить XML-подобный элемент, используя контекстно-свободную грамматику (диаграммы Chomsky, EBNF или синтаксиса)?Почему невозможно определить элемент, похожий на XML, с использованием контекстной свободной грамматики?

ответ

1

This thread говорит:

XML является языком определяется SGML, который является ограниченной формой контекстно-свободной грамматики (по существу язык Дейк со многими типами parentesis)

0

Собственно, XML является контекстно-свободным языком, который может быть проанализирован с помощью чего-либо, способного анализировать CFL. CFL - это Хомский уровень 2.

Это на самом деле уже сделано. W3 использует EBNF обозначения для "полного описания" (или определить) XML:

symbol ::= expression

Подмножество XML, известный как терминалы ("листьев" дерева,) можно для синтаксического анализа простых регулярных выражений. Я даже не говорю о современных регулярных выражениях (например, в Perl, PCRE и даже Java).

Символы пишутся с заглавной буквой, если они являются начало символом регулярного языка, в противном случае с начальной буквой в нижнем регистре.

Существует также website, который использует BNF для разбора XML. (BNF немного запутаннее читать, особенно при работе с XML, потому что его синтаксис также использует угловые скобки.)