Analyseur lexical en C - C - Programmation
Marsh Posté le 23-04-2005 à 17:38:24
un analyseur lexical est qqch de compliqué. Donc sincerement je ne te conseil vraiment pas d'essayé de le faire toi même comme ça. Cherche plutot l'algorithme sur le net afin de te faciliter la vie. Moi je l'ai vu cette année à mon cours d'algo, et je t'assure que c'est vraiment quelque chose de compliquer à faire. Donc bonne chance...
Pour les symboles, commences par les stockés dans un vecteur, les accès fichiers sont trop lent.
Marsh Posté le 23-04-2005 à 17:46:57
merci pour ta reponse
enfin ce n'est pa si compilqué que ca!!!
il fau juste lire caractere par caractere et faire des switch (ou des if )pour identifier les symboles genre :
switch (c)
{
case '<' : return OPINF ;
break;
}
de toute facon je dois lire d'un fichier parceque le code source se trouve là.
mais le probleme comment stocker tout ca !!!!!!!!!!!!!!
Marsh Posté le 23-04-2005 à 18:09:06
Pour faire ça j'utiliserais un arbre, mais j'ai la flemme d'aller chercher "LA" méthode pour vérifier si c'est ce qu'il y a de mieux.
Marsh Posté le 23-04-2005 à 18:13:37
mehdi_tn a écrit : merci pour ta reponse |
ca va etre infernal. A ta place j'utiliserais flex pour l'analyse lexicale couplé a bison pour la syntaxique et pas untruc fait main (qui devient rapidement ingérable)
Marsh Posté le 23-04-2005 à 18:15:52
je sais le C m'est imposé
je veux juste savoir sous quelle forme doit se presentée le resultat de l'analyse lexicale pour la donner a Bison pour qu'il fasse l'analyse syntaxique
Marsh Posté le 23-04-2005 à 18:29:43
de mémoire, un entier representant le token (flex, c'et comme bison, hein, c'est un truc qui genere du C)
Marsh Posté le 23-04-2005 à 18:33:08
bin je sais pu, hein, fo que tu regardes la doc de yacc, y doit appeler une fonction genre int yylex() et y bosser avec le resultat
Marsh Posté le 23-04-2005 à 18:36:51
mais je ne travaille pas avec flex
Ce que je vais commencer par faire :
mettre les unités lexicales dans un tableau avec un identifiant ( c'est une etape que je suis sure qu'il faut passer par ) ensuite on verra !!!!
Marsh Posté le 23-04-2005 à 18:39:23
oué, mais bison appelle une fonction nommé yylex() pour savoir quel est le prochain token. (de cette definition tu deduiras qu'il l'appelle un certain nbre de fois). Que cette fonction soit celle de flex ou la tienne, cela importe peu
Marsh Posté le 23-04-2005 à 19:38:01
mehdi_tn => http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
Je pense que de toute facon si tu te sert de Bison par la suite t'aura qu'a en faire une de fonction yylex, ca va pas etre evident mais bon ...
Marsh Posté le 23-04-2005 à 17:20:20
Salut tout le monde
Jeu veux creer un analyseur lexical en C
Le resultat de cet analyseur de etre passé à l'analyseur symentique
Si j'ai bien compri je dois creer à la fin de l'analyse la table de symbole des differntes unités lexicales de mon langage.
Donc je dois lire caractere par caractere le fichier source, mais j'ai quelques questions qui ne me permettent pas de savoir comment aborder cette analyse.
1) la table de symbole de etre sotocké sous quelle structure ( tableau, fichier .......)
2) est-ce que je dois stoquer expressions logiques (a < b) et d'affectation ( a=5) ? Si oui sur quelle forme !!!
Merci d'avance
Message édité par mehdi_tn le 23-04-2005 à 17:27:08