Я делаю приложение, которое будет анализировать команды в Scala. Примером команды будет:
todo get milk for friday
Таким образом, план состоит в том, чтобы довольно умный синтаксический анализатор разбил строку и распознал командную часть и тот факт, что в строке есть ссылка на время.
В общем, мне нужно сделать токенайзер в Scala. Поэтому мне интересно, какие у меня есть варианты для этого. Я знаком с регулярными выражениями, но я планирую также сделать функцию поиска, подобную SQL:
search todo for today with tags shopping
И я чувствую, что регулярные выражения будут негибкими, реализуя команды с большим количеством вариаций. Это заставляет меня задуматься о реализации какой-то грамматики.
Какие у меня варианты в этом отношении в Scala?