Ich mache eine Anwendung, die Befehle in Scala parsen wird. Ein Beispiel für einen Befehl wäre:
todo get milk for friday
Der Plan ist also, einen ziemlich intelligenten Parser zu haben, der die Zeile auseinander bricht und den Befehlsteil und die Tatsache erkennt, dass es einen Verweis auf die Zeit in der Zeichenkette gibt.
Im Allgemeinen muss ich einen Tokenizer in Scala zu machen. Also ich frage mich, was meine Optionen für diese sind. Ich bin vertraut mit regulären Ausdrücken, aber ich plane auf eine SQL-ähnliche Suchfunktion auch machen:
search todo for today with tags shopping
Und ich habe das Gefühl, dass reguläre Ausdrücke bei der Implementierung von Befehlen mit vielen Variationen unflexibel sein werden. Dies führt mich zu denken, der Umsetzung eine Art von Grammatik.
Welche Möglichkeiten habe ich in dieser Hinsicht in Scala?