Я создаю DSL с шаблонным редактором, очень похожим на системы правил в Алиса . Пользователи смогут выбирать отношения из списка, а также объекты для применения отношения. Эти два списка должны быть отфильтрованы на основе допустимых типов - например, если отношение «больше чем», то доступные объекты должны иметь тип, для которого реализовано «больше чем».
Точно так же, если выбран объект, который не сопоставим с большим, то это отношение не должно быть в списке потенциальных отношений. Я думаю, что суть этой проблемы - проверка типов, но я не уверен, что это лучший способ использовать этот тип логики в моем приложении. Кто-нибудь знает о существующих библиотеках проверки типов для DSL?
Меня особенно интересуют открытые и кроссплатформенные технологии. Ява, вероятно, язык, который мы в конечном итоге будем использовать, но это не исправлено.