OVH Cloud OVH Cloud

Parser de fichiers

4 réponses
Avatar
Korchkidu
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.

4 réponses

Avatar
Loïc Joly
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

Avatar
Fred
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.

Fred

Avatar
Korchkidu

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.


Avatar
Korchkidu

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 ra jouter
de phase de génération est un grand plus!). La manière dont il util ise
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.