J'utilise des analyseurs (abus) pour effectuer une transformation de chaîne, par ex. normalizeWS :: Parser String
supprime les espaces dupliqués et normalizeCase
met en correspondance des chaînes spécifiques avec des minuscules. J'utilise des analyseurs syntaxiques parce que les données d'entrée ont une certaine structure, par exemple, les chaînes alphabétisées doivent être laissées non transformées. Existe-t-il un moyen élégant d'alimenter la sortie d'un analyseur en entrée et de former ainsi un pipeline de transformation? Quelque chose dans la veine de normalizeWS . normalizeCase
(qui bien sûr ne fonctionne pas)?parsec: envoi de la sortie d'un parseur à un autre
Merci beaucoup d'avance!
Je ne pense pas que vous puissiez composer 'Parser's de cette façon, car ils liraient tous les deux du flux sous-jacent. Je pense que vous pouvez mieux définir chacun comme 'String -> String', et quand vous avez un' Parser String' que vous aimeriez normaliser vous pourriez 'fmap (normalizeWS. NormalizeCase)'. – ryachza