Analyse lexicale / syntaxique

cs_Cartman13 Messages postés 20 Date d'inscription samedi 8 octobre 2005 Statut Membre Dernière intervention 22 janvier 2007 - 27 oct. 2006 à 17:05
oussemastar Messages postés 2 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 11 juin 2008 - 11 juin 2008 à 12:01
Bonjour a tous.

Je bosse actuellement sur un analyseur sémantique en C++.

Concrètement le fichier est le avec ifstream (flux d'entrée) et stocké dans un tableau dynamique.
Je n'ai aucun problème pour parcourir le contenu et repérer la nature des éléments.

Quelles erreurs peut on trouver lors d'une analyse lexicale ?

Comment faut il s'y prendre en C++ pour faire l'analyse syntaxique (structure, ...) ?

Je vous remercie de votre aide et ne vous demande en aucun cas un code complet.

5 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
27 oct. 2006 à 17:24
On trouve peu d'erreurs en général dans l'analyse lexicale (je ne vois qu'une chose: la lecture d'un caractère non autorisé dans le langage).
C'est plutot l'analyseur syntaxique qui trouve des erreurs (item non attendu par exemple).
Ton analyseur syntaxique doit faire appel au lexical dès qu'il veut lire quelque chose
Voila ce que je peux te dire, tes question n'étant pas très précises

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
cs_Cartman13 Messages postés 20 Date d'inscription samedi 8 octobre 2005 Statut Membre Dernière intervention 22 janvier 2007
27 oct. 2006 à 17:48
C'est déjà un morceau de réponse.

Vous pouvez me détailler les différentes étapes de l'analyseur syntaxique et comment vous vous y prendriez pour le construire.
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
27 oct. 2006 à 19:04
Tu peux aussi te renseigner sur la technique des automates avec matrices de transitions (nom pompeux mais simple à utiliser), on construit d'abord un graphe qui constituera les états de l'automate, et à chaque état, une ou plusieurs actions sont prévues.
On a une Matrice **etat et une Matrice **transition, et dans un fichier on lit les lignes et colonnes representant le graphe j'usqu'à un état terminal(nombre négatif) ou un état d'erreur(0). Le fichier de transition peut etre (pour "var++ ou var += chiffre" par exemple):
2  1  0  0
2  3  4  0
0  3  4  0
0  0 -5  6
0  0  0  0
0  0  0 -7 
etat 1 = espace
etat 2 = identificateur (var)
etat 3 = espace
etat 4 = operator +
etat 5 = operator + (terminal)etat 6 operator 
etat 7 = chiffre (ou nombre) (terminal)
Fait une recherche sur automate sur le Web, on peut trouver pas mal de choses interessantes.
0
cs_Cartman13 Messages postés 20 Date d'inscription samedi 8 octobre 2005 Statut Membre Dernière intervention 22 janvier 2007
29 oct. 2006 à 08:41
Ok ... Bon ya plus qu'à ...

Merci beaucoup.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oussemastar Messages postés 2 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 11 juin 2008
11 juin 2008 à 12:01
Nous avons un projet à faire et nous voulons savoir comment créer un analyseur lexical et syntaxique à l'aide de flex et bison permettant d’analyser un fichier de code source. Ainsi, détecter et définir l’utilisation des variables et des instructions au sein des fonctions, des procédures et des  sous programmes faisant partie de ce fichier.
0
Rejoignez-nous