Назад
Разработка ПО и open source

Как я перенёс сборку лексера в compile-time

Habr
Advertisement468 × 90
Как я перенёс сборку лексера в compile-time

Автор статьи делится опытом оптимизации процесса разработки лексера для HydraScript с помощью source generators в .NET. Ранее процесс требовал ручного копирования регулярных выражений, что было неудобно и подвержено ошибкам. Основная сложность заключалась в необходимости передачи результата работы одного генератора в другой, использующий атрибут [GeneratedRegex]. Для решения этой задачи автор глубоко изучил механизм работы Roslyn, чтобы правильно настроить порядок выполнения генераторов кода. В результате удалось полностью автоматизировать процесс сборки лексера, перенеся его на этап компиляции. Это позволило описывать токены один раз и исключить необходимость ручного обновления кода. Статья будет полезна разработчикам, работающим с Roslyn и кодогенерацией в .NET, так как она раскрывает нюансы взаимодействия нескольких генераторов в рамках одного проекта.

This is a summary. Read the full article at the original source:

Habr
Advertisement468 × 90
Share
Разработка ПО и open source

Похожие

Модернизация мейнфреймов остается сложной задачей из-за десятилетий накопленной бизнес-логики, встроенной в код COBOL. В то время как генеративный ИИ…

Dev.to
Advertisement970 × 250