Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Forum d'aide sur Flex et bison

4 réponses
Avatar
Pascal
Bonjour,

Je voudrais savoir quel ng peut m'aider sur les outils flex et bison?

--
Pascal

4 réponses

Avatar
Blackmouse
Pascal wrote:
Bonjour,

Je voudrais savoir quel ng peut m'aider sur les outils flex et bison?

Si c'est pas trop dur, j'ai eu quelques cours sur ces outils... Pose tjr

ta question

Blackmouse

Avatar
Thomas Labourdette
Pascal a écrit le jeudi 25 Novembre 2004 08:50 :

Je voudrais savoir quel ng peut m'aider sur les outils flex et bison?


fr.comp.developpement ?

[copie et suivi dessus]

@+
--
Rémi SION (signature aléatoire)
Sur mon bulletin scolaire :
"L'apathie a un visage."

Avatar
AG
Pascal wrote:
Bonjour,

Je voudrais savoir quel ng peut m'aider sur les outils flex et bison?


Il y a déjà les deux manuels, qui sont normalement trés bien faits.
Ensuite il y a une mailing list (cf le manuel) et sinon tu as
comp.compiler.* mais je ne pense pas que ça soit exactement le sujet.

AG.

Avatar
Pascal
Blackmouse wrote:
Pascal wrote:

Bonjour,

Je voudrais savoir quel ng peut m'aider sur les outils flex et bison?

Si c'est pas trop dur, j'ai eu quelques cours sur ces outils... Pose tjr

ta question

Blackmouse



C'est sympa. C'est surtout un pb de grammaire que de flex et bison... Je
dois écrire un parser/lexer pour un fichier qui est de ce type :
Table INDIVIDU
PERSONNE(NB) NOM(STRING) NBNOMBRE(NB) PERSONNE(STRING)
11 DUPONT 515 DAUGPHIN04ff
11 DUPONT 515.4 DAUGPHIN04ff
EOT

Les types des données sont entre parenthèses et cela ne peut être que NB
ou String. EOT signifie End of Table.

Le lexer marche très bien, mais pas bison. C'est visiblement un pb de
grammaire. Le voici :

backn : 'n' {printf("cpt _line %dn", cpt_line++);}
| tab 'n' {printf("cpt _line %dn", cpt_line++);}
;

tab : TABLE ID backn attribut
;

attribut : ID LPARENT typedata RPARENT {printf("{attribut}");}
| ID LPARENT typedata backn champs {printf("{attributFin}");}
| ID LPARENT typedata RPARENT attribut {printf("{attributList}");}
;

champs : typedata {printf("{champs}");}
| typedata champs {printf("{champsList}");}
| typedata backn champs {printf("{champsSuite}");}
| typedata backn EOT {printf("{champsFin}");}
;

typedata : NB {printf("{typeN}");}
| STRING {printf("{typeS}");}
;
En gros si mon fichier ne respecte pas cette norme, je dois donner
l'erreur, et surtout la ligne de l'erreur. Ce que je n'arrive pas à faire.
--
Pascal