Analyseur lexical avec le langage C

bigrb Messages postés 7 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 26 décembre 2014 - 28 févr. 2014 à 22:23
 bigrb - 3 mars 2014 à 22:24
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
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
Modifié par cptpingu le 3/03/2014 à 20:40
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).
Rejoignez-nous