parser d'expression dans un logiciel - C++ - Programmation
Marsh Posté le 13-12-2006 à 20:18:51
flex/bison ou outil similaire
Marsh Posté le 13-12-2006 à 20:48:49
0x90 a écrit : flex/bison ou outil similaire |
Ouep, j'étais tombé sur ce genre d'outils, mais j'ai un doute.
L'impression rapide que me laissent les pages de manuels de ces outils, c'est que ça génère un code source à recompiler etc...
Ce que je souhaite, c'est, effectivement, un "truc" qui fasse l'analyse lexicale de ce que je tape dans la fenetre du programme qui tourne déjà, et que ça se comporte comme un "if premier_mot regarde deuxième mot, pointe sur la fonction machin et exécute"
Ca fait bien ça, ce que tu dis?
Marsh Posté le 13-12-2006 à 20:51:43
Ces outils lisent une définition de ton langage, et produisent le code source d'un interpréteur pour celui-ci. Tu n'as "plus qu'à" ajouter ce code à ton projet et il te fournit des fonctions du style parser_puis_executer("crate vector 1000" ); qui font le job que tu demande.
Autant te prévenir, y'a quand même une bonne dose de travail si tu n'a jamais touché à tout ce qui concerne les langages et leur interprétation.
Marsh Posté le 13-12-2006 à 20:56:48
Mais le code source, il est généré une fois pour toutes ou est-ce qu'il doit être re généré et recompilé pour chaque expression entrée? Si c'est la dernière solution, ça ne colle pas.
edit ok c'est bon t'as répondu à la question :-)
Marsh Posté le 13-12-2006 à 20:58:09
première solution, sinon ce serait totalement inutile.
Marsh Posté le 13-12-2006 à 21:12:42
0x90 a écrit : première solution, sinon ce serait totalement inutile. |
J'ai toujours peur avec l'utilisation de librairies que les logiciels au final se retrouvent tous avec des performances absolument identiques, et qu'il n'y en ait plus un seul qui sorte du lot. Mais au point où j'en suis je pense que je vais utiliser cette solution. J'ai un peu de temps libre, et le langage à interpréter va comporter très peu de vocabulaire.
Ok merci.
Marsh Posté le 13-12-2006 à 21:52:40
Reply
Marsh Posté le 13-12-2006 à 19:49:52
Hello !
Je suis en train d'envisager de faire un petit parser dans un logiciel. En gros, par exemple, il faudrait rentrer des expressions genre "create vector 1000" pour que ça fasse un vector<double> tmp; tmp.assign(1000,0);
L'idée intuitive c'est de faire une analyse mot à mot, mais ça ne me parait pas propre, et si les mots sont collés, c'est la galère.
Vous feriez ça comment, vous les informaticiens? des librairies? quoi donc?
merci