/r2d2

Primary LanguageGoOtherNOASSERTION

r2d2

Это черновик парсера встроенного языка платформы 1С, который был транслирован руками из https://github.com/lead-tools/bsparser

Кроме того, пакет включает описание XML выгрузки конфигураций 1С для простого демаршалинга. Описание тоже транслировано руками из репозиториев:

Делалось в 2018 году чисто из любопытства, чтобы сравнить с реализацией на языке 1С по удобству программирования и по эффективности работы.

В итоге реализация на Go почти на 2 порядка быстрее (в однопоточном варианте).

Разбирает в AST около 250k SLOC/s (непустых строк в секунду) на машине i5 8400 + SSD (один поток).
Добавление прогона 1000 простейших диагностик уменьшает скорость до ~180k SLOC/s.
В наивном многопоточном варианте (горутина на каждый файл) скорость увеличивается в ~2-3 раза.

Репозиторий точно сдержит некритичные ошибки, и гипотетически может содержать критичные.
Если вы хотите в каком либо виде использовать код (или часть кода) из данного репозитория, то напишите мне письмо.