Je recherche une méthode C++ propre pour analyser une chaîne contenant des expressions enveloppées dans $ {} et générer une chaîne de résultat à partir de l'évaluation par programmation expressions.
Exemple: "Salut $ {user} de $ {host}" sera évalué à "Salut foo bar" si j'exécuter le programme de laisser "utilisateur" d'évaluer à "foo", etc.
L'approche actuelle à laquelle je pense consiste en une machine d'état qui mange un caractère à la fois à partir de la chaîne et évalue l'expression après avoir atteint '}'. Des conseils ou d'autres suggestions?
Note: boost :: est le bienvenu! :-)
Mise à jour Merci pour les trois premières suggestions! Malheureusement, j'ai rendu l'exemple trop simple! Je dois pouvoir examiner le contenu dans $ {} afin que ce ne soit pas une simple recherche et un remplacement. Peut-être dira-t-il $ {majuscule: foo} et ensuite je devrais utiliser "foo" comme une clé dans un hashmap et ensuite le convertir en majuscule, mais j'ai essayé d'éviter les détails intérieurs de $ {} ... :-)
Pourquoi 'm_char <= m_length' et non' m_char
Ce code ne fonctionne pas sur cpp.sh. Nécessite les changements suivants: commenter '#include' et '_getch();', changer 'Token :: E Token() const' en' Token :: E Token_() const' et 'exp.Token()' 'exp.Token _()' –