Написание 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?


Ответы (0 шт):