Bonjour
J'ai un problème à résoudre et je ne sais quelle approche choisir.
J'ai des expressions textuelles dont la syntaxe est
constituée de [] pour dire que le contenu est optionnel et ${... pour substituer une valeur
say ${hello} [${name}[ ${firstname}]]
le but est de remplacer les ${...} par leur valeur.
par exemple
si
hello = bonjour, name= foo, fristname=barr -> "say bonjour foo bar"
hello = bonjour, name= foo, fristname=NULL -> "say bonjour foo" (car firstname est optionnel notez que l'espace est aussi dans le [])
hello = bonjour, name= NULL, fristname=barr -> "say bonjour" (car name est optionnel notez que [ ${firstname}] est dans le [])
etc.
pour les optionnel si un des ${...} présent directement dans le [] est NULL alors le bloc n'est pas produit
La difficulté est donc de gérer les imbrications de [] (pour le ${} une regexp ou ongl fait le taf)
la question est donc quelle approche choisir ? un parsing avec tokenizer ? des regexps ? quelque chose de spécifique ? une lib qui fait déjà ce genre de chose ?
merci à tous.
JYT
Partager