Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5314 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Analyseur lexical en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Analyseur lexical en C

n°1057867
mehdi_tn
Posté le 23-04-2005 à 17:20:20  profilanswer
 

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
mood
Publicité
Posté le 23-04-2005 à 17:20:20  profilanswer
 

n°1057880
moi23372
Posté le 23-04-2005 à 17:38:24  profilanswer
 

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.

n°1057883
mehdi_tn
Posté le 23-04-2005 à 17:46:57  profilanswer
 

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 !!!!!!!!!!!!!!

n°1057893
Elmoricq
Modérateur
Posté le 23-04-2005 à 18:09:06  profilanswer
 

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.

n°1057896
chrisbk
-
Posté le 23-04-2005 à 18:13:37  profilanswer
 

mehdi_tn a écrit :

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 !!!!!!!!!!!!!!


 
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)


---------------
NP: HTTP Error 764 Stupid coder found
n°1057897
mehdi_tn
Posté le 23-04-2005 à 18:15:52  profilanswer
 

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

n°1057903
chrisbk
-
Posté le 23-04-2005 à 18:29:43  profilanswer
 

de mémoire, un entier representant le token (flex, c'et comme bison, hein, c'est un truc qui genere du C)


---------------
NP: HTTP Error 764 Stupid coder found
n°1057904
mehdi_tn
Posté le 23-04-2005 à 18:31:05  profilanswer
 

merci pour ta reponse mais tu m'aides pa tro ^^

n°1057906
chrisbk
-
Posté le 23-04-2005 à 18:33:08  profilanswer
 

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 :o


---------------
NP: HTTP Error 764 Stupid coder found
n°1057911
mehdi_tn
Posté le 23-04-2005 à 18:36:51  profilanswer
 

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 !!!!  :whistle:


Message édité par mehdi_tn le 23-04-2005 à 18:37:50
mood
Publicité
Posté le 23-04-2005 à 18:36:51  profilanswer
 

n°1057915
chrisbk
-
Posté le 23-04-2005 à 18:39:23  profilanswer
 

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


Message édité par chrisbk le 23-04-2005 à 18:39:47

---------------
NP: HTTP Error 764 Stupid coder found
n°1057962
Chronoklaz​m
Posté le 23-04-2005 à 19:38:01  profilanswer
 

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


Message édité par Chronoklazm le 23-04-2005 à 19:39:08

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Analyseur lexical en C

 

Sujets relatifs
[ANTLR] Lexical non-determinismAnalyseur de code DELPHI
cherche analyseur de log !Analyseur lexical / syntaxique
Analyseur Synatxique Java pour Javacherche un "analyseur de classes" pour JAVA
Un analyseur de traffic entre 2 routeurs Wi fianalyseur syntaxique
Plus de sujets relatifs à : Analyseur lexical en C


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)