2009-11-18 6 views
2

Je crée une application qui va analyser les commandes dans Scala. Un exemple d'une commande serait:Approche de l'analyse de texte dans Scala

todo get milk for friday 

Donc, le plan est d'avoir un analyseur assez intelligent briser la ligne et de reconnaître la partie de commande et le fait qu'il ya une référence à temps dans la chaîne.

En général, j'ai besoin de faire un tokenizer dans Scala. Je me demande donc quelles sont mes options pour cela. Je connais des expressions régulières, mais je prévois de faire une requête SQL comme fonction de recherche aussi:

search todo for today with tags shopping 

Et je pense que les expressions régulières seront inflexibles commandes de mise en œuvre avec beaucoup de variation. Cela m'amène à penser à mettre en place une sorte de grammaire.

Quelles sont mes options à cet égard dans Scala?

Répondre

1

Scala possède une bibliothèque d'analyseurs (scala.util.parsing.combinator) qui permet d'écrire un analyseur directement à partir de sa spécification EBNF. Si vous avez un EBNF pour votre langue, il devrait être facile d'écrire l'analyseur Scala. Sinon, vous feriez mieux d'essayer d'abord de définir votre langue de manière formelle.

Questions connexes