salut!
il faut que je fasse un mini parser d'expressions, car je fais actuellement une application web, dans laquelle on peut définir des prérequis (si telle truc a été vue, alors on a le droit à tel autre truc, ....etc....)
et donc je dois définir un mini langage de conditions ... j'ai quelques fonctions génériques qui gèrenet les états ... par exemple:
wasviewed = a été vue
isdone = est réussie
xget = fonction générique retournant des valeurs
en gros, il faut que je puisse dire:
"done[refA,refC,refPOUET] || (viewed[refDEVERROUILLAGE] && xget[refEXOFINAL])"
etc... ce genre d'expressions dans lesquelles je peux passer une liste de references...
voila, je sais pas trop comment proceder pour effectuer ce parser;
l'idéal serait les expressions régulières, mais je ne vois pas trop comment faire; si vous aviez un conseil .. ?
l'idéal serait qu'à la fin je me retrouve avec une simple expression de ce style:
"true || (false && true)"
histoire de pouvoir faire un eval dessus,
donc ya pas vraiment de mystere, je cherche pas a faire une calculette ou truc trop poussé pour le parsing, je cherche simplement a pouvoir remplacer des blocs du style
methode[references,referencesbis]
par le resultat de l'appel de la methode, iterativement s'il faut, sachant qu'elle renverra peut etre un booleen, ou peut etre une valeeur a analyser (du style 0,1, ou un chiffre ou autre)
voila, j'espere que vous voyez ce que je veux dire ! ca a l'air tordu donc je sais pas trop par ou commencer ...
de plus, si c t possible de bosser avec des regexp tout simplement (du style appliquer une regexp qui est capable d'extraire des trucs generiques a[b] etc... ce sera un plus
Message édité par k666 le 10-06-2003 à 13:23:27