Всем привет.
Хочется облегчить себе жизнь путем уменьшения количества тупого кодинга. Для этого хочется поиметь инструмент, который позволил бы разворачивать конструкции очень простого диалекта собственной разработки в целевой код, на котором ведется разработка. Собственный диалект - по сути несложная штука декларативного характера, без сложных синтаксических и семантических конструкций и т.п. По диагонали посмотрел в сторону lex-ов yacc-ов - похоже, что в моем случае это тяжелая артиллерия. Возникло ощущение, что по сути мне нужен препроцессор/макропроцессор. Навскидку видится несколько вариантов:
1. По быстрому с нуля накидать простую утилиту, которая будет уметь выполнять задачи, которые мне требуются здесь и сейчас. Если возникнет желание/необходимость эту штуку развивать в дальнейшем, есть опасность обрастания костылями-заплатками и в итоге упирания в необходимость полной переработки с нуля. Плюс - решит мою задачу в краткосрочной перспективе. Минусы - неясно, что будет дальше (если будет).
2. Взять какой-нибудь конструктор макропроцессоров если таковые существуют. Примеров не знаю, но предполагаю, что специализированное решение в данном случае лучше, чем быстро-наколеночное. Плюс - потенциально большая возможность и потолок "дешевой" расширяемости. Минус - необходимость заниматься выбором из возможных вариантов и вникать в новый инструмент.
3. Морокаться по полной и попытаться использовать тяжелую артиллерию.
Не исключаю возможности того, что подход понравится, и в дальнейшем диалект захочется развить, но перспектива неясна. Т.е. я не уверен, что имеет смысл инвестировать усилия в серьезное создание суперуниверсальной тулзы прямо сейчас. Я не против потратить день на то, чтобы потом долететь за 5 минут, но не уверен, что лететь придется в принципе ;)
Буду весьма пизнателен за комментарии и-или советы по проблеме в целом и возможным перечисленным вариантам.