Описание тега treesitter
Tree-sitter - это инструмент генератора парсеров и библиотека инкрементного синтаксического анализа. Используйте этот тег для вопросов о том, как писать или компилировать грамматики и как использовать API Tree-sitter.
1
ответ
сделать treeitter соответствие имени класса
Я использую Treesitter для анализа кода Clojure. В частности, я хотел бы различать символы, имена классов и Java Interop. Это моя грамматика: module.exports = grammar({ name: 'clojure', extras: $ => [/[\s,]/], rules: { program: $ => repeat($._…
10 фев '20 в 11:39
1
ответ
Есть ли способ разбить грамматику treeitter на несколько файлов?
Я разбираю довольно простой язык, но моя грамматика уже становится громоздкой в одном файле. Есть ли способ разбить его на несколько файлов?
30 июн '20 в 18:25
2
ответа
Как мне скомпилировать древовидные парсеры?
Я пытаюсь скомпилировать парсеры машинописного текста, tsx и python для использования с neovim, но когда я запускаюgcc -o parser.so -shared src/parser.c -Os -I./srcв соответствии с инструкциями по отслеживанию сидящего на дереве я получаю: Undefined…
18 май '20 в 14:53
1
ответ
Есть ли стандартная конструкция treeitter для анализа списка произвольной длины?
Один из самых распространенных сценариев синтаксического анализа в языках программирования - это непустой список элементов произвольной длины с разделителем, например: [1, 2, 3, 4, 5] f(a, b, c) Я разбирал это в treeitter следующим образом: list: $ …
30 июн '20 в 19:09
1
ответ
Как вы упаковываете грамматику "сидящего на дереве" для употребления?
Допустим, вы хотите написать программу, использующую написанную вами грамматику tree-sitter, используя пакет node-tree-sitter. Как вы упаковываете написанную грамматику для употребления? Какой минимальный набор файлов должен быть включен в модуль уз…
09 июл '20 в 05:32
1
ответ
Как использовать модуль node-tree-sitter из машинописного текста?
Глядя на запросы на вытягивание и проблемы, я вижу, что в модуле node-tree-sitter есть определения машинописного текста (возможно, в настоящее время устаревшие); как мне получить доступ к этим определениям из машинописного текста, и что было бы экви…
26 июл '20 в 20:05
0
ответов
Visual studio code nodejs версия зависимости расширения
Я разрабатываю собственное расширение vscode, и у меня проблема с зависимостью пакета npm. Каким образом можно установить зависимости vscode при отладке расширения? В Atom у вас есть apm, оболочка npm, которая упаковывает версию Atom nodejs. Activat…
16 май '20 в 20:08
1
ответ
Как получить значения из узлов в tree-sitter?
Если у меня простая грамматика на дереве: rules: { expr: $ => choice( /[0-9]+/, prec.right(seq($.expr, /[+-]/, $.expr)), ) } И вход: 3+4 Я получаю следующий CST: (start [0, 0] - [0, 3] (expr [0, 0] - [0, 3] (expr [0, 0] - [0, 1]) (expr [0, 2] - […
28 авг '20 в 17:10
1
ответ
Скомпилировано для разных NODE_MODULE_VERSION - парсер Tree-sitter, пакет ATOM
Я создал парсер tree-sitter, который разбирает некоторый устаревший язык SAP, который мы используем, чтобы сделать пакет совместимым с ATOM. Я буду очень грамотен в своих действиях, так как не очень уверен, где ошибся. Согласно документации tree-sit…
22 окт '20 в 13:06
0
ответов
Синтаксис тестового файла tree-sitter конфликтует с синтаксисом языка программирования
Синтаксис тестового файла tree-sitter следующий: ========= Test name ========= input --- expected output Однако модули в TLA+ определены следующим образом: ---- MODULE ModuleName ---- ==== Это конфликтует с форматом файла теста tree-sitter. Если я п…
12 мар '21 в 23:30
4
ответа
установка nvim_treesitter на windows
плохой английский (извините). Я пытаюсь заставить nvim_treesitter работать на моем компьютере с Windows, на моем Linux он работал отлично, но теперь, когда я пытаюсь использовать Windows, команда:checkhealth nvim_treesitter дает: здоровье #nvim_tree…
18 мар '21 в 17:07
1
ответ
Как в древовидной грамматике сопоставить строки, кроме зарезервированных ключевых слов в идентификаторах?
Это может быть связано с тем, что я не понимаю функцию извлечения ключевых слов , которая, как видно из документации, позволяет избежать проблемы, когда между ключевым словом и следующим выражением нет пробела. Но скажем, у меня есть довольно станда…
21 мар '21 в 17:36
2
ответа
Как в древовидной грамматике неассоциативно сопоставить список значений без разделителей?
Например, рассмотрим следующую грамматику: source_file: $ => $._expression, _expression: $ => choice( $.identifier, $.operator ), identifier: $ => /\w*[A-Za-z]\w*/, operator: $ => seq( repeat1(seq($._expression, '\\X')), $._expression ) …
24 мар '21 в 17:54
1
ответ
Невозможно закодировать приоритет правила блока над правилом оператора в tree-sitter
Я пытаюсь закодировать простую грамматику, которая охватывает как простые операторы, так и операторы, заключенные в блок. Для блока есть специальное ключевое слово. Я указал приоритет правила блока выше нуля, но tree-sitter по-прежнему не соответств…
18 дек '20 в 14:07
1
ответ
В древовидной грамматике, может ли конфликт приоритета / ассоциативности операторов вызвать сбой синтаксического анализа во время выполнения?
Рассмотрим инфиксный оператор, такой как подмножество (⊂). Оператор подмножества не ассоциативен, потому что его результат (логическое значение) сам по себе не является набором и поэтому не может быть передан в ту или иную сторону оператора подмноже…
03 апр '21 в 17:56
1
ответ
Добавление правила к грамматору Treesitter LR1 изменяет приоритет
Я пытаюсь установить правильный приоритет операторов в грамматике Treesitter. Treesitter - это генератор парсера LR1. У меня простая художественная грамматика, которая частично выглядит так: multiply_expression: $ => prec.left(2, seq( $._expressi…
17 апр '21 в 15:21
0
ответов
Запрос на выбор HTML-тега, не имеющего заданного атрибута
Учитывая следующее дерево: style_element [0, 0] - [1, 8] start_tag [0, 0] - [0, 19] tag_name [0, 1] - [0, 6] attribute [0, 7] - [0, 18] attribute_name [0, 7] - [0, 11] quoted_attribute_value [0, 12] - [0, 18] attribute_value [0, 13] - [0, 17] raw_te…
22 апр '21 в 20:33
1
ответ
Как сделать запрос без учета регистра в tree-sitter
Я пытаюсь создать и использовать древовидную грамматику на языковом сервере, который я реализую, чтобы поддерживать такие функции, как поиск всех ссылок на переменную. Учитывая грамматику, я мог бы написать запрос, чтобы найти все ссылки на переменн…
15 май '21 в 21:50
0
ответов
Как установить C ++ и Tree_sitter в Windows 10? - Требуется Microsoft Visual C++ 14.0 или выше
Мне почему-то не хватает C / C ++ в Windows 10, и я думаю, как установить. Моя конечная цель - установить инструмент dbt в Window 10. Установлен Python 3.9, а также VS2019. Интересно, почему VS2019 не предоставляет необходимых возможностей. Команда:…
10 июн '21 в 12:21
0
ответов
Tree-Sitter.py все пути от листа к листу
Я пытаюсь извлечь весь путь от листа к листу из синтаксического дерева, созданного с помощью tree-sitter, для использования в code2vec, но я не могу понять, как идентифицировать листья, а затем как разработать алгоритм.
28 июн '21 в 16:13