Bonjour,

Je fais un programme qui parse du code très similaire au langage C.
Je me demande cependant si c'est pour moi. Alors avant de l'apprendre, j'aimerais m'assurer de quelques trucs.

Essentiellement, je veux parser des expressions comme par exemple
var1.var2.var3[10]->var4 + 8 * *var5_ptr / var8[72]

Cependant, j'ai certaines limitations... enfin je crois.

Tout d'abord, j'utilise ma propre fonction fgetc(), qui elle selon le cas appelle fgetc() ou retourne simplement le caractère provenant d'un tableau d'int.

Deuxièmement, j'utilise une structure qui contient beaucoup d'autres informations, dans toutes les fonctions qui parse le code. Elle se nomme parser_data_t, et bon, c'est elle entre autres qui contient des infos sur les variables déjà déclarées, qui contient le pointeur de fichier ou de la châine de caractère qui constitue la source de données, etc etc.
Je me demande donc si, dans bison/flex, on peut faire passer de tels arguments aux fonctions qui "parsent". Et si ou peut faire en sorte que ces fonctions utilisent les données qu'elles contiennent.

Il faudrait aussi qu'une fois que le parser rencontre un ";", qu'il s'arrête pour que je puisse effectuer du traitement de données. Et de pouvoir reprendre plus loins. Est-ce faisable avec bison/flex?

Autrement dit, est-ce que j'y gagnerais avec bison ou serais-je mieux de tout faire à la main? S'il y a des problèmes, y a-t-il moyen de les contourner?

Merci
ARray