Q:Regex синтаксис для поддержки ц/к/KDB + комментарий с помощью JLexer
Что мне нужно с помощью моего лексического анализатора логики? Только регулярное выражение или, может быть, специальные функции lexer?
Где ошибка в моем синтаксисе для q многокоммерческого?
Детали:
Я пытаюсь написать IntelliJ IDEA плагин для к/д/KDB + (wiki, q/kdb+), и мой плагин основан на другом k language idea plugin.
Для начала я пытаюсь написать lexer с помощью JLexer (это стандартный способ для плагина идеи). Мне нужна поддержка q lang comments. И у меня проблемы с многострочными комментариями.
Мой прогибается файл (этот синтаксис работает неустойчиво):
LINE_WS=[\ \t\f]
WHITE_SPACE={LINE_WS}+
NEWLINE=\r|\n|\r\n
MULTY_COMMENT={NEWLINE} \/ {WHITE_SPACE}* {NEWLINE} (([^\r\n\\][^\r\n]* {NEWLINE})|{NEWLINE})* \\
// ...
<YYINITIAL> {
{WHITE_SPACE} { return com.intellij.psi.TokenType.WHITE_SPACE; }
{MULTY_COMMENT} { return COMMENT; }
// ...
Синтаксис д языка комментарии (see more):
Правильные комментарии:
/ this is comment
x: 1;/after '/' we see comment, spaces are important
/ this is a comment \
/ after single "/" - all lines are comment if we don't find: NEW_LINE + "\"
недопустимые комментарии:
/ this is't a comment, break line is important \
x: 1;/ this is't a comment, spaces are important
\ this is't a comment /
Ссылки:
- Flex file from k idea plugin (don't support multi-line comment)
- Vim extention for k lang
- Lexer for qkdt editor for k and q
Спасибо Райан Гамильтон. Но это не то, что мне нужно. Beacause этот xml для выделения не поддерживает многострочные комментарии. –
Чтобы быть честным, я бы избегал многострочных комментариев, так как они могут легко ошибиться и привести к тому, что разделы кода не будут работать. Однако, если вы получите комментарии, сообщите мне, и я добавлю ссылку на эту статью. –