Releases: lead-tools/bsparser
iron sword
Особенности релиза:
- разбирает все синтаксические конструкции языка включая директивы
- разбирает все инструкции препроцессора в ограниченном варианте, покрывающем 99% случаев
- сохраняет в AST комментарии с указанием номеров строк
- сохраняет в AST информацию о строках и их частях (вид части строки, положение в коде, etc)
- сохраняет в AST программный интерфейс модуля
- сохраняет в AST позицию элемента, длину элемента и номер исходной строки синтаксического элемента (узла)
- реализован обобщенный визитер AST с подписками для плагинов
Чего еще нет (планируется к версии 1.0-beta):
- документации по структуре AST
- документации по написанию плагинов
- парсер ничего не знает о встроенных функциях и глобальных перечислениях
- парсер ничего не знает о расширениях
Прочее
Парсит ERP 2.4.1.189 (12000 модулей) за 40 минут (включая чтение модулей с диска, вычисление хэшей, собственно парсинг и сохранение AST в базе)
ноут y500 (без SSD): https://i.imgur.com/5Xg1SLr.png
платформа: 8.3.11.2528 32x
субд: MS SQL 2016 DE
пиковая нагрузка: https://i.imgur.com/iuauYRe.png
скрин из Radar по окончании парсинга: https://i.imgur.com/JT1v9DT.png
AST большого модуля (CommonModules.МенеджерОбменаЧерезУниверсальныйФормат)
в формате JSON UTF-8 занимает 68.9МБ
ошибки разбора:
erp_errors.txt
"Method already declared" - это реальная ошибка в ERP и в платформе
stone axe
Парсит ERP 2.2.3.144 за 40 минут (включая чтение модулей с диска, вычисление хэшей, собственно парсинг и сохранение AST в базе)
ноут y500 (без SSD): http://i.imgur.com/Wj1ahCH.png
платформа: 8.3.11.2528 32x
субд: MS SQL 2016 DE
ошибки:
Парсинг примерно 50 модулей гикнулся по разным причинам