[Haskell-fr] Re: [Parsec] Analyser de l'UTF-8 ?
Stephane Bortzmeyer
stephane+haskell-fr at bortzmeyer.org
Fri Feb 9 10:28:45 EST 2007
On Wed, Jan 10, 2007 at 10:30:28PM +0100,
Stephane Bortzmeyer <stephane+haskell-fr at bortzmeyer.org> wrote
a message of 22 lines which said:
> J'ai un programme (http://www.cosmogol.fr/shadok.html) qui utilise
> Parsec pour l'analyse syntaxique. Le langage qu'il analyse est en
> ASCII pur. Maintenant, des utilisateurs réclament de l'Unicode
> (encodé en UTF-8).
Bon, finalement, Parsec a l'air de très bien se débrouiller, c'étaient
les E/S en UTF-8 (pour lesquelles il n'y a rien de standard en
Haskell) qui étaient (sont toujours) le plus dur.
Donc, avec l'aide de Eric Kow, voici une solution qui marche :
1) Récupérer le code UTF-8 de darcs :
http://abridgegame.org/repos/darcs/UTF8.lhs
2) Avoir un module d'E/S UTF-8 (UTF8_IO.hs, attaché, très copié du
code d'Eric Kow en http://www.haskell.org/haskellwiki/UTF-8)
3) Le code Parsec s'écrit comme d'habitude. Par exemple, si on met :
word = many1 letter
"letter" désignera bien toutes les lettres Unicode, pas juste celles
de l'ASCII (je n'ai pas trouvé lesquelles il acceptait ; cela ne
semble pas documenté et je soupçonne qu'il utilise simplement ce que
lui renvoie isAlpha).
Si on veut choisir soi-même les caractères Unicode acceptés, pour
mettre en oeuvre une liste comme
http://www.w3.org/TR/REC-xml/#NT-Letter, satisfy est bien pratique
(voir exemple attaché).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: UTF8_IO.hs
Type: text/x-haskell
Size: 1258 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/haskell-fr/attachments/20070209/bed4dcda/UTF8_IO.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: words.hs
Type: text/x-haskell
Size: 1237 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/haskell-fr/attachments/20070209/bed4dcda/words.bin
More information about the Haskell-fr
mailing list