Analyse lexicale / syntaxique

Signaler
Messages postés
20
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
22 janvier 2007
-
Messages postés
2
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
11 juin 2008
-
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

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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
Messages postés
20
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
22 janvier 2007

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.
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
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.
Messages postés
20
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
22 janvier 2007

Ok ... Bon ya plus qu'à ...

Merci beaucoup.
Messages postés
2
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
11 juin 2008

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.