Я сейчас создаю парсер, используя Scala комбинаторы парсеров. Парсер должен принимать логические выражения, которые на данный момент я проверяю и оцениваю вручную. Однако я хочу расширить эту особенность и иметь возможность принимать более сложные логические выражения, которые потребуют больше ручной работы. Мне было интересно, можно ли выполнить проверку типов, используя непосредственно компилятор Scala, которому я передам конкретное выражение, которое я хочу проверять, и типы каждой конкретной переменной. Ниже приведен пример того, что я имею в виду:
Предположим, у меня есть логическое выражение: age > 18
. Вместе с отображением, зная, что переменная age
имеет тип Int
. Я хочу иметь возможность передавать (в любом формате) age > 18
и сопоставления типов в компилятор Scala, и он будет возвращать, проверяет ли он проверку типов в логическом выражении или нет.