BNF грамматика psrsing не работает плагин комплекта грамматики - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь создать плагин IDEA для формата RDF Turtle, поэтому я проверяю учебник по плагину IDEA, загружаю плагин грамматического комплекта и проверяю грамматику для Turtle здесь https://www.w3.org/TR/turtle/#grammar-production-HEX Затем я создал файл .bnf и протестировал его с помощьюГрамматический набор и PsiViewer, и проблемы начались, вот часть моего .bnf файла:

turtleFile ::= statement*
statement   ::= directive | triples '.'
directive   ::= prefixID | base | sparqlPrefix | sparqlBase
prefixID    ::= '@prefix' PN_PREFIX? IRIREF '.'

PN_CHARS_BASE   ::= [A-Z] | [a-z] 
PN_CHARS_U  ::= PN_CHARS_BASE | '_'
PN_CHARS    ::= PN_CHARS_U | '-' | [0-9] 
PN_PREFIX   ::= PN_CHARS_BASE ((PN_CHARS | '.')* PN_CHARS)?

Для тестирования я использовал эту простую строку

@prefix dadfgf: <http://test.ts#>

И есть ошибка: [error[1]

Почему это происходит?Мой PN_PREFIX должен начинаться с символа, а затем иметь несколько символов PN_CHARS_BASE ((PN_CHARS | '.') * PN_CHARS)?Но он не работает, он сказал, что ожидается "az", а буква d точно соответствует диапазону az, я не смог найти источник проблемы, это плагин или мой bnf?

...