�crire �a simplement, si ce n'est en analysant la cha�ne de caract�res.
Quitte � l'analyser, autant construire l'arbre des op�rations (tu as bien des
op�rateurs binaires - ou, et, ==, ...- et unaires - not). Peu importe
que ce soit des additions, multiplications... ou des op�rateurs bool�ens,
le m�canisme est le m�me.
Je suppose que tu voudrais que la ligne soit directement interpr�t�e par java. Ce n'est pas possible � moins de g�n�rer une classe (dans un fichier .java), d'appeler le compilateur java (soit par un System.exec, soit en appelant une classe qui sait compiler du code java, je crois que celui de Sun est quelquepart dans tools.jar, mais tu peux aussi en utiliser un autre, par exemple KJC). Ensuite, tu pourras instancier cette nouvelle classe. Mais le m�canisme reste suffisamment lourd pour qu'il soit plus simple de mettre en oeuvre un algorithme "propre" (en gros, celui qui est d�crit ci-dessus).
Autre solution, utiliser un package qui propose un interpr�teur d'un langage quelconque, et faire interpr�ter ta cha�ne de caract�res par ce langage, mais cette solution ne te satisfait pas.
St�phan BERNARD
Aurelien Mazurie a �crit:
Arrg, je pense ne pas avoir su expliquer ce que je voulais, je m'en excuse; le but est d'analyser des cha�nes de caract�res rentr�es dynamiquement par l'utilisateur; il va rentrer par exemple "A == B", et moi, qui connais la valeur bool�enne de A et de B, va lui renvoyer le r�sultat. Il me faut donc une proc�dure pour �valuer la cha�ne de caract�re "A == B". Bien s�r, je peux utiliser des interpr�teurs, voir des librairies sp�cialis�es (comme JEP), mais je n'ai besoin que de la portion congrue de cette classe d'algorithmes, afin:
- d'avoir juste quelques proc�dures � ajouter � la classe qui a besoin de ce traitement
- de n'avoir juste � g�rer que les expressions bool�ennes (donc, pas de "calculs" de sommes, produits, etc.)
Aur�lien
