Skip to content

Releases: lead-tools/bsparser

iron sword

12 Sep 20:16
Compare
Choose a tag to compare
iron sword Pre-release
Pre-release

Особенности релиза:

  • разбирает все синтаксические конструкции языка включая директивы
  • разбирает все инструкции препроцессора в ограниченном варианте, покрывающем 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

28 Aug 20:19
Compare
Choose a tag to compare
stone axe Pre-release
Pre-release

Парсит 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 модулей гикнулся по разным причинам