дают фичи для написания кастомных рефакторингов на уровне cst/ast? чтобы не на уровне компиляции код трансформировать как в макросах, а отдельными проходами по репозиторию исходников
Python, Java... C# maybe?
все зависит от требуемоего качества удобства любой язык, где есть компилятор написанный на этом же языке и поставляется как либа ghc например, но там уже проверенно exactprint очень геморный
В дотнете есть Roslyn Analyzers и Roslyn Code Generators, возможно это близкое к тому что вы хотите
ну вот хочется поудобнее чем брать сорцы компилятора и пытаться делать что-то там потому что если структуры ast не задуманы под сериализацию то добавлять такое поверху будет очень больно
я возился с ghc-exactprint несколько дней, так и не понял как им пользоваться и на вопросы мои на дискурсе никто так и не ответил так что с моей тз уровень юзабельности там низкий очень
у джавы в стандартной поставке можно было процессорами аннотаций код парсить и плагинами для джавадока в последний раз когда я на нее смотрел, в обоих случаях прямо писать преобразования так как хочется делать в рефакторингах не было там для процессоров аннотаций была даже либа специальная чтобы код генерировать не конкатенацией строчек от Jake Wharton (кажется), не думаю что она поддерживает кейс именно модификации существующих исходников а не генерацию с нуля
это правда, в команде hls то же мнение
> прямо писать преобразования так как хочется делать в рефакторингах Это как? Что значит "прямо"?
C Intermediate Language
пока не очень понятно что за зверь такой в частности на гитхабе сломана ссылка на туториал
значит что если я захочу написать что-то простое (допустим, фолдинг констант на уровне сорцов) то для этого нужно будет писать кучу кода
Его изучают на некоторых курсах. На его основе сделаны FRAMA-C, CCured и Continuation Passing C
Так нужно или не нужно писать кучу кода? Вы спрашивали про "мейнстримные" императивные языки — как Вы себе представляете нужный код на таком языке?
вообще не упоминал императивные языки
А, это в другом треде было, извините...
Обсуждают сегодня