Tokenization de texte

Bonjour les choubidous !

Je cherche à “tokenizer” (c’est à dire découper en petits morceaux, en gros) un texte qui contient des commandes à exécuter. Comme ça me semble bien correspondre à une sorte de langage simplifié, je me suis dit que de faire un peu comme un compilateur pour au moins vérifier la syntaxe des commandes, ça serait pas trop idiot :slight_smile:

Par contre, je n’arrive pas à trouver une lib ou autre qui te permet de donner ton “langage” et qiu fait la découpe comme une grande.

Alors, je cherche mal ou je suis aveugle ?

Merci !

https://docs.python.org/fr/3/library/re.html#writing-a-tokenizer

2 « J'aime »

Je vais faire ça, merci (je savais bien qu’il y avait un truc, mais je tombais sur le “tokenize” de python pour du python)

Si jamais tu connais déjà l’ensemble des commandes que tu souhaites supporter et les différents arguments acceptable. Il est possible de se définir une grammaire a l’aide de :

3 « J'aime »

Super ! Ca a l’air bien, va juste falloir un peu se pencher sur la partie “grammar” :slight_smile:

Maince, GitHub - LionelAuroux/pyrser: A PEG Parsing Tool n’a plus l’air maintenu, c’triste :frowning:

Bon, ben Lark fait exactement ce que je veux, c’est le super pied ! Merci @Usui22750 <3

Bon, j’ai un souci sur les erreurs. Je gère donc des commandes à exécuter fournies au programme.
Lorsque les commandes sont ok, tout va bien.

Exemple :

REGISTER password

La commande est reconnue, et le paramètre est passé à la méthode qui gère cette commande, c’est nickel.

Mais si j’ai :

REGISTR password
ou
REGISTER

Là, le parser me lève des exceptions et je dois chercher ce qui ne va pas. Cette partie là est beaucoup plus compliquée. Dans le premier cas, je ne reconnais tout simplement pas la commande, c’est limite impossible de dire quelque chose (sauf, peut-être, que je n’ai trouvé aucune commande). Dans le second cas, il faudrait pouvoir signaler que le paramètre de la commande est manquant… J’y travaille, mais s’pas simple :confused: