Releases: lead-tools/bsparser
Lightsaber
May the fourth be with you
Разбирает (должен) любой валидный код на встроенном языке платформы 1С:Предприятие 8.3.16 за исключением двух редких случаев:
- Инструкция препроцессора встречается внутри выражения.
- Инструкция препроцессора встречается перед объявлениями переменных в методе.
В некоторых редких случаях может разобрать невалидный код. Например, если директива встречается после объявлений процедур и функций, она будет проигнорирована. Еще, к примеру, не контролируется парность инструкций препроцессора.
Кроме того, известно два особых случая разбора:
- Если в модуле формы объявлено две переменные с одним и тем же названием, но разными директивами, то поведение парсера будет следующим:
- если Парсер.СтрогийРежим = Истина, то будет выдано исключение "Повторное объявление идентификатора"
- если Парсер.СтрогийРежим = Ложь, то модуль будет разобран и в местах использования переменной будет подвязано последнее по порядку объявление.
- Если в модуле формы объявлено два метода с одинаковым именем (платформа допускает такое для методов с директивой
НаКлиентеНаСервереБезКонтекста
), то поведение парсера будет следующим:- если Парсер.СтрогийРежим = Истина, то будет выдано исключение "Повторное объявление метода"
- если Парсер.СтрогийРежим = Ложь, то модуль будет разобран и в местах использования метода будет подвязано последнее по порядку объявление.
release candidate 5
Основное:
- Документация
release candidate 4
Основное:
- Переименования
- Мелкие улучшения
release candidate 3
Основное:
- Поддержка аннотаций
- Книга Джедая
release candidate 2
Основное:
- Механизм замен
- Мелкие улучшения
release candidate 1
Основное:
- Таблица токенов
- Работа с окружениями
- Работа с параметрами плагинов
russian sword
основное:
- миграция на русский
- компилятор в байткод идентичный платформенному
- разбор операторов ДобавитьОбработчик/УдалитьОбработчик.
glowing sword
фикс критичного бага и другие поправки
Во вложении демо-конфигурация для запуска группового парсинга (8 фоновых заданий) модулей в указанной папке: https://i.imgur.com/GjjMaBr.png
flaming sword
Багфикс и изменения в AST
Во вложении демо-конфигурация для запуска группового парсинга (8 фоновых заданий) модулей в указанной папке: https://i.imgur.com/GjjMaBr.png
steel katana
Парсит ERP 2.4.1.189 (12000 модулей) за 12.5 минут (8 фоновых заданий на платформе 8.3.11.3133 x64).
Это время включает чтение модуля из базы, собственно парсинг и сохранение AST в базе.
Машина: i7-3630QM 2.4Ghz, 8Gb, SSD 860 EVO, Windows10, MS SQL 2016 DE
Разбирает полностью весь синтаксис кроме инструкций препроцессора внутри выражений и операторов ДобавитьОбработчик/УдалитьОбработчик.
Аннотации расширений не поддерживаются.
Документация доступна онлайн: https://lead-bullets.github.io/BSL-Parser/
Предполагается что с этого момента до релиза 1.0 будет только багфикс и улучшения не меняющие функционала (будут изменения AST).