Написание bnf для IntelliJ Idea
Пытаюсь написать плагин с подсветкой синтаксиса для просто типа файлов.
STRING 1
// possible comment
{
Multi
line
text
}
STRING 2
...
Получилось как-то так.
{
parserClass="org.intellij.sdk.language.parser.WtsParser"
extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
psiClassPrefix="Wts"
psiImplClassSuffix="Impl"
psiPackage="org.intellij.sdk.language.wts.psi"
psiImplPackage="org.intellij.sdk.language.wts.psi.impl"
elementTypeHolderClass="org.intellij.sdk.language.wts.psi.WtsTypes"
elementTypeClass="org.intellij.sdk.language.wts.psi.WtsElementType"
tokenTypeClass="org.intellij.sdk.language.wts.psi.WtsTokenType"
tokens = [
t_lbrace = '{'
t_rbrace = '}'
t_string = "STRING"
t_line_comment="regexp://.*"
t_number='regexp:[1-9]\d*'
t_whitespace = 'regexp:[^\S\r\n]'
t_newline = 'regexp:\n|\r\n'
t_block = 'regexp:\{[\s\S]*?}'
]
}
string_num ::= t_string t_whitespace* t_number t_whitespace* t_newline
block ::= t_block
Как правильно организовать bnf?