 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Korchkidu Guest
|
Posted: Sun Aug 06, 2006 3:18 pm Post subject: Parser de fichiers |
|
|
Salut a tous !
Disons que je souhaite ecrire une appli qui puisse prendre en entree
des fichiers de parametres avec des structures differentes. Ca
supposerait de developper un parser different pour chaque type de
fichier.
Je connais deja Lex, Yacc, etc. Mais j'aimerais savoir si vous
connaissez d'autres programmes de ce genre (et qui genere du C/C++).
Merci,
K. |
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Sun Aug 06, 2006 4:09 pm Post subject: Re: Parser de fichiers |
|
|
Korchkidu a écrit :
| Quote: | Salut a tous !
Disons que je souhaite ecrire une appli qui puisse prendre en entree
des fichiers de parametres avec des structures differentes. Ca
supposerait de developper un parser different pour chaque type de
fichier.
Je connais deja Lex, Yacc, etc. Mais j'aimerais savoir si vous
connaissez d'autres programmes de ce genre (et qui genere du C/C++).
|
Je connais mais sans jamais les avoir utilisés :
- ANTLR : http://www.antlr.org/
- Boost::spirit : http://www.boost.org/libs/spirit/index.html
Ce dernier a la particularité de permettre de décrire un parseur
directement dans le code C++, mais je crois qu'il est limité à des
parseurs de taille raisonnable.
--
Loïc |
|
| Back to top |
|
 |
Fred Guest
|
Posted: Sun Aug 06, 2006 4:50 pm Post subject: Re: Parser de fichiers |
|
|
Loïc Joly wrote:
J'ai utilisé Boost::spirit dans un cadre professionnel, il est complet,
bien documenté, et très agréable à utiliser (le fait de ne pas rajouter
de phase de génération est un grand plus!). La manière dont il utilise
les templates est plus qu'intéressante, et il n'y a pas trop d'influence
sur le temps de compilation, du moins pour les petits parseurs.
Le seul problème, c'est lorsque le parseur contient une erreur: les
messages d'erreur sont particulièrement cryptiques (templates oblige!),
et il faut parfois tâtonner pour trouver l'erreur.
Fred |
|
| Back to top |
|
 |
Korchkidu Guest
|
Posted: Mon Aug 07, 2006 9:11 am Post subject: Re: Parser de fichiers |
|
|
Loïc Joly a écrit :
| Quote: | Korchkidu a écrit :
Salut a tous !
Disons que je souhaite ecrire une appli qui puisse prendre en entree
des fichiers de parametres avec des structures differentes. Ca
supposerait de developper un parser different pour chaque type de
fichier.
Je connais deja Lex, Yacc, etc. Mais j'aimerais savoir si vous
connaissez d'autres programmes de ce genre (et qui genere du C/C++).
Je connais mais sans jamais les avoir utilisés :
- ANTLR : http://www.antlr.org/
- Boost::spirit : http://www.boost.org/libs/spirit/index.html
Ce dernier a la particularité de permettre de décrire un parseur
directement dans le code C++, mais je crois qu'il est limité à des
parseurs de taille raisonnable.
|
Merci pour tes liens. Je vais regarder ca de plus pres...
A+,
K. |
|
| Back to top |
|
 |
Korchkidu Guest
|
Posted: Mon Aug 07, 2006 9:11 am Post subject: Re: Parser de fichiers |
|
|
Fred a écrit :
| Quote: | Loïc Joly wrote:
- Boost::spirit : http://www.boost.org/libs/spirit/index.html
J'ai utilisé Boost::spirit dans un cadre professionnel, il est complet,
bien documenté, et très agréable à utiliser (le fait de ne pas rajouter
de phase de génération est un grand plus!). La manière dont il utilise
les templates est plus qu'intéressante, et il n'y a pas trop d'influence
sur le temps de compilation, du moins pour les petits parseurs.
Le seul problème, c'est lorsque le parseur contient une erreur: les
messages d'erreur sont particulièrement cryptiques (templates oblige!),
et il faut parfois tâtonner pour trouver l'erreur.
|
Ca a l'air plutot pas mal! De toute facon, les fichiers que je dois
parser sont simples donc je ne pense pas avoir trop de problemes de ce
cote... enfin, j'espere...;)
Merci!
K. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|