NotsosmartChicken a écrit 2 commentaires

  • # possible raison et nouvelle problématique

    Posté par  . En réponse au message Problème analyseur lexical flex. Évalué à 1.

    Merci pour votre réponse,
    Votre piste me parait intéressante, J'ai défini dans les règles de flex yytext avec %array, pour que cette variable ne soit plus un pointeur sur char mais un tableau de char. Je n'ai pas encore résolu mon problème, mais maintenant au lieu d'obtenir au final le header complet dans chaque espace mémoire de fonctions j'ai le résultat suivant dans le terminal :

    valeur defaut fonction[0]:fctname
    valeur defaut fonction[1]:fctname
    valeur defaut fonction[2]:fctname
    valeur defaut fonction[3]:fctname
    valeur defaut fonction[4]:fctname
    word :ifndef
    word :HELLOWORLD
    word :FLEX
    word :define
    word :HELLOWORLD
    word :FLEX
    word :extern
    extern found
    word :int
    valeur data : int
    mot a stocker : int
    result : fonctions[1]=int
    rappel : fonctions[2]=fctname
    word :main
    valeur data : main
    mot a stocker : main
    result : fonctions[2]=main
    rappel : fonctions[2]=main
    word :extern
    extern found
    word :int
    valeur data : int
    mot a stocker : int
    result : fonctions[4]=int
    rappel : fonctions[2]=int
    word :calc
    valeur data : calc
    mot a stocker : calc
    result : fonctions[5]=calc
    rappel : fonctions[2]=calc
    word :int
    word :nombre
    word :extern
    extern found
    word :float
    valeur data : float
    mot a stocker : float
    result : fonctions[7]=float
    rappel : fonctions[2]=float
    word :testerpresent
    valeur data : testerpresent
    mot a stocker : testerpresent
    result : fonctions[8]=testerpresent
    rappel : fonctions[2]=testerpresent
    word :endif
    end of first parsing
    
    
    fonction[0]:fctname
    fonction[1]:
    fonction[2]:
    fonction[3]:fctname
    fonction[4]:
    fonction[5]:
    fonction[6]:fctname
    fonction[7]:
    fonction[8]:
    

    J'ai donc bien l'impression que toutes les cases où je mets data pointent vers la même chose et sont réactualisées à chaque changement de yytext.

    Il faut donc que je trouve comment récupérer la valeur de yytext en évitant de pointer dessus par la suite. Sachant que yytext est maintenant un tableau et non un pointeur de char mais que allocationfonctions récupère toujours un char* en vue de compléter fonctions.

    J'ai conscience que mon tableau fonctions est un tableau de pointeur, mais je n'ai pas vu d'autres façons de déclarer un tableau alloué dynamiquement et c'est un critère que je ne peux pas écarter en vue de parser n'importe quel fichier…

    Des idées pour arriver à joindre ces conditions ?

  • [^] # Re: balise de texte vs balise de code

    Posté par  . En réponse au message Problème analyseur lexical flex. Évalué à 1.

    OK merci. Je ne savais pas avec quel outil afficher le texte issu d'un terminal.
    Et par rapport à mon problème, pas de piste ?