Analyseur lexical avec le langage C

Signaler
Messages postés
7
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
26 décembre 2014
-
 bigrb -
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100430-analyseur-lexical-avec-le-langage-c

Salutation ,Mr cptpingu
j'ai réaliser ce modeste code dans le cadre d'un TP du module compilation en Mai 2003,je l'est trouver sur une vieille disquette et je l'est partager ,si tu n'aime pas , tu peut le supprimer
Salam
Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
124
Bonjour.

À quoi sert ton code ? Tu copies-colles celui-ci sans commentaires, sans explications, rien ! Où le côté pédagogique ? L'intérêt de cette démarche ?
Où est la description ?

Pour ceux qui se posent la question, j'ai du décortiquer le code pour comprendre le fonctionnement:
- Il lit à partir d'un fichier donné, tous les caractères.
- Si un caractère est un symbole il le dit (du genre <, >, etc...)
- Si c'est une variable, il le dit aussi, et vérifie que celle-ci n'excède pas un certain nombre de caractères, et ne commence pas par un chiffre.
- Idem si c'est une constante.
- Le langage lu par le programme ne semble pas être du C.
- Le programme affiche les symboles rencontrés à la fin.

Au niveau technique: c'est une horreur !
- Il manque le type de retour de la plupart des fonctions. Où sont passés les "void" ?
- La fonction "main" s'écrit "int main(void)", et prend un return 0 à la fin !
- Le code n'a pas été vérifié, c'est bourré de warning
- Le code plante à la fin ! ( stack_chk_fail: "stack smashing detected").
- Il y a des else vides inutiles !
- Au lieu d'inverser des conditions, il utilise un if vide, suivi d'un else !
- Inclusion de <conio.h> qui n'a aucun intérêt ici (si ce n'est casser la portabilité).
- Le pire: le programme se permet de modifier le fichier donné en entrée pour ajouter un \n ! À chaque fois qu'on l'exécute, un saut de ligne apparaît. (Dix essaies, dix sauts de lignes en plus...)

Code à éviter absolument... (J'hésite à le supprimer, j'attends la réponse de l'auteur à ce sujet avant).