Описание тега grammar-kit
Плагин JetBrains IntelliJ IDEA, который добавляет грамматики BNF (Backus-Naur Form) и поддержку редактирования файлов JFlex, включая генератор кода парсера /PSI
1
ответ
Как генерировать автозаполнение через структуру грамматики?
Я настроил грамматику структурированного языка и теперь хочу кодировать поведение автозаполнения. Есть ли способ генерировать это на основе грамматики, которая определена следующим образом? RootObject ::= ROOT ( NameAttr | TitleAttr )* END private N…
11 апр '17 в 21:54
1
ответ
Как изменить путь, по которому генерируется сгенерированный Java-файл Grammar-Kit?
Как изменить путь, по которому генерируется сгенерированный Java-файл JFlex lexer Grammar-Kit? Я спросил о системе отслеживания проблем Грамматики, но ответа не получил. Я устал от того, что лексер не будет помещен в мой каталог сгенерированных файл…
23 мар '16 в 08:32
1
ответ
Идея грамматического комплекта восстановления, когда кеширует парсер на первом элементе в списке
У меня есть грамматика BNF: { tokens = [ COLON = ":" space=' ' word = 'regexp:[^\r\n\s\t@\$\{\}\(\)\|\#:<>]+' nl = 'regexp:\r|\n|(\r\n)' ] } root ::= nlsp book_keyword COLON [space] book_title sections book_keyword ::= 'Journal Book' | 'Fictio…
19 ноя '18 в 04:28
1
ответ
Закрепить и восстановить в.bnf (разбор)
Я искал в Интернете повсюду (по крайней мере, полдня), и я не могу найти необходимые ответы. В настоящее время я пытаюсь создать .bnf-file для IntelliJ-плагин с поддержкой пользовательских языков. В нескольких уроках упоминается о существовании {pin…
09 фев '18 в 08:22
1
ответ
Существует ли что-то вроде идентификатора ASTNode в IntelliJ?
Я пишу плагин для IntelliJ Idea, и теперь мне нужно что-то вроде идентификатора ASTNode, оно должно быть уникальным для каждого узла в AST. Что я должен использовать?
13 ноя '13 в 14:53
1
ответ
Переписать грамматику выражения синтаксического анализа (PEG) без рекурсии слева
Используя https://github.com/JetBrains/Grammar-Kit как переписать грамматику без левой рекурсии? grammar ::= exprs exprs::= (sum_expr (';')?)* private sum_expr::= sum_expr_infix | sum_expr_prefix sum_expr_infix ::= number sum_expr_prefix left sum_ex…
11 июл '14 в 00:41
1
ответ
Подсветка синтаксиса правил BNF для пользовательского языка
Я пытаюсь разработать собственный языковой плагин для IntelliJ, используя плагин Grammar-Kit. Я легко могу предоставить подсветку синтаксиса для определенных токенов, но не могу понять, как выделить на уровне элемента или родительского токена. Вот б…
03 янв '14 в 05:29
0
ответов
Как исключить оператор запятой из выражения в Grammar-Kit?
Я пишу плагин языка IntelliJ для языка, производного от C, который включает оператор запятой. Я использую Grammar-Kit для генерации парсера. Там, где в формальной грамматике много вложенных выражений, я переписал их с помощью разбора выражений на ос…
04 апр '14 в 12:45
2
ответа
Избегание левой рекурсии при разборе определений объектов LiveScript
Я работаю над парсером для языка LiveScript, и у меня возникают проблемы с анализом обеих форм определения свойств объекта - key: value а также (+|-)key - все вместе. Например: prop: "val" +boolProp -boolProp prop2: val2 у меня есть key: value Форма…
01 мар '15 в 19:57
1
ответ
IntelliJ: Grammar-Kit / BNF: как восстановиться после ошибок?
Я пишу плагин Custom Language для IntelliJ. Вот упрощенный пример языка. Обратите внимание, что структура является рекурсивной: Я успешно реализовал файлы FLEX и BNF, но я не уверен, как добавить восстановление после ошибок. Я читал о RecoverWhile и…
05 мар '16 в 21:58
1
ответ
Несбалансированное дерево. Скорее всего, вызвано несбалансированными маркерами
Я работаю над плагином IntelliJ, который добавит поддержку пользовательского языка. В настоящее время я все еще пытаюсь привыкнуть к грамматическому набору и как работает разработка плагинов. С этой целью я начал работать с парсером для основных выр…
03 авг '18 в 20:46
1
ответ
Как определить структурированные типы данных в Grammar-Kit?
Я хочу определить домен-специфический язык (DSL), который является структурой / каскадно, как это ROOT NAME "my dsl" TODO DESC "foo" END TODO DESC "bar" END END Для моего понимания нужны следующие правила: Объекты ROOT и TODO должны начинаться с их …
31 мар '17 в 14:08
1
ответ
Лексинг VHDL ' (галочка) Жетон
В VHDL это символ 'может использоваться для инкапсуляции символьного токена ie '.' или это может быть в качестве разделителя атрибутов (аналогично CPP's:: token) ie string'("hello"), Проблема возникает при разборе имени атрибута, содержащего символ …
01 апр '17 в 17:33
0
ответов
Конвертируйте мои.g4 в.flex и.bnf для подсветки синтаксиса IDEA
Я никогда не использовал JFlex раньше, и я понятия не имею, как это работает. По сути, я построил среду выполнения для языка esque схемы в Java, и анализатор, который у меня есть, был сгенерирован с использованием Antlr 4, поэтому у меня есть файл.g…
30 апр '16 в 04:44
0
ответов
Разбор выражений в регистре Elm конфликтует с вызовом функции
Я разрабатываю плагин Intellij для языка Elm, используя JFlex и Grammar Kit. У меня минимальный опыт написания парсеров. Я не могу разобрать выражения регистра, потому что они конфликтуют с вызовами функций. Спецификация BNF выглядит следующим образ…
29 окт '15 в 20:09
1
ответ
Как составить правила BNF с помощью Grammar-Kit
Я пытаюсь преобразовать файл EBNF в рабочий BNF для IntelliJ Grammar-kit. В EBNF есть правила как таковые: BinOpChar ::= "~" | "!" | "@" | "#" | "$" | "%" | "^" | "&" | "*" | "-" BinOp ::= BinOpChar, {BinOpChar} Как я могу создать такие правила,…
19 янв '16 в 04:05
1
ответ
Отрицательные взгляды в Грамматике
Есть ли способ сделать негативный взгляд в Грамматике? Пример: у меня есть два токена, определенных A и B, и я хотел бы определить правило a, которое соответствует A, если за ним не следует B. Я пытался найти это в этой грамматике, но я не в состоян…
26 авг '17 в 08:23
1
ответ
Grammar-Kit: как обращаться с токенами комментариев
Из документации, предоставленной для набора грамматики, я не могу понять, как я должен правильно обрабатывать что-то вроде комментариев. Мой лексер в настоящее время возвращается TokenType.WHITE_SPACE для любых блоков комментариев, но тогда нет уник…
19 май '17 в 06:26
1
ответ
Как решить проблему с ключевыми словами в качестве идентификаторов в грамматическом наборе
Я пытался написать грамматику языка graphql для grammarkit, и я довольно долго застрял в проблеме неоднозначности. Ключевые слова в graphql (такие как: type, implements, scalar) также могут быть именами типов или полей. IE type type implements type …
19 янв '19 в 23:53
1
ответ
Как выразить строчную букву с последующим символом в любом случае, используя BNF?
Я пытаюсь узнать, как IntelliJ Grammar Kit работает для создания БНФ Как я могу определить идентификатор, который помечается значком "v", а затем иметь любой регистр. например, vModule. Вот моя попытка: identifier ::= "v"id Но тогда вместо vModule о…
18 янв '16 в 03:47