Привет, ЛОР.
Хочу, чтобы ты подсказал мне проект, суть такова. Есть необходимость встроить в приложение (на JS, но это не слишком важно) некий язык выражений.
Важно, чтобы он удовлетворял следующим свойствам:
- Декларативность
- Возможность средствами статического анализа на 100% определить корректность выражения, в т.ч. с т.з. семантики (как я понимаю, отсюда следует сильная типизация)
- Возможность прокинуть в контекст выполнения выражения произвольные объекты из приложения и операции над ними
- Результатом работы выражений должно быть булево значение (либо, в идеале, произвольный объект)
- Чем проще синтаксис – тем лучше. Если это будет просто AST в виде JSON-объекта/S-выражения – уже здорово. Полноценный язык не нужен, сложная логика должна выноситься в отдельные операции, описанные на стороне приложения
- Лицензия, позволяющая модификацию и использование в коммерческих проектах (если такое понятие вообще применимо к языку, а не реализации)
Интересует прежде всего язык, даже если нет готовой реализации под JS, но язык простой – я могу написать её.
Лично я себе это представляю как примерный аналог ElasticSearch Query DSL (решает схожую задачу) или чего-то подобного.