ANALYSEUR SYNTAXIQUE PASCAL (YACC)

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 4 avril 2007 à 20:33
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010 - 5 juin 2007 à 20:36
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/42086-analyseur-syntaxique-pascal-yacc

Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
5 juin 2007 à 20:36
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
5 juin 2007 à 20:33
hahahahah t'es trop drole forman
tu as resolu le probleme de kadje84 bravo pour le tuto

voila le lien :
http://dinosaur.compilertools.net/
cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
5 juin 2007 à 20:23
1/ Se connecter au site www.Google.fr
2/ Taper "download flex bison" (sans les guillemets) dans la zone de saisie
3/ Cliquer sur le bouton "Recherche Google"
4/ Cliquer sur le premier résultat, appelé "The LEX & YACC Page"
5/ Télécharger les 2 programmes aux endroits indiqués

Youpi, je viens de faire mon premier tutorial sur l'utilisation de Google
^^
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
5 juin 2007 à 20:17
Oui c'est possible de les telecharger gratuitement .
pour faire un analyseur lexical tu as seulement besoin du flex.
donc tu dois telecharger la bibliotheque lexlib

tu peux la trouver dans ma source , mais moi j'ai utilisé lex et non pas le flex le lex genere en pascal et le flex genere en c
mais tu peux jeter un coup do'eil sur la sourcec sa pourra t'aider
kadje84 Messages postés 28 Date d'inscription vendredi 19 août 2005 Statut Membre Dernière intervention 29 octobre 2008
5 juin 2007 à 20:00
Salut, je suis étudiant en informatique et j'ai pour TP de réaliser un e calculatrice.j'aurais besoin de flex et bison pour programmer un analyseur lexical.s'il vous plait est-il possible de les télécharger gratuitement?
Merçi
oussama_41nf Messages postés 1 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 6 mai 2007
6 mai 2007 à 19:11
salut, je suis un etudiant en informatique aussi.
je voudrai avoir un coup de main concernant le travail que tu vient de remmettre.
la version que tu a mis en telechargement est endommagée ,veuiller renouvler cette version svp.
veuiller me contacter le plus tot possible merci....
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
5 avril 2007 à 17:16
bain j'ai utilisé les version habituelles qu'on utilise pour generer des fichirs .pas , j'ai transformé ses fichiers en unités et j'ai fait appel dans mon program , j'ai aussi apporter quelques modification dans la librerie yacclib c'est tout .
et t'as raison pour le caractere '_' j'ai pas fait attention .
merci pour tes remarques.
cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
5 avril 2007 à 14:39
OK je viens de vérifier ça fonctionne ;-)
Ceci dit, je crois que les identificateurs contenant un "underscore" (caractère '_') sont valides, non? Quand je donne un nom par exemple avec ce caractère dans le nom du programme ça me donne une syntax error
Exemple:

> program nom_prog;
syntax error: at character # 14

Quelle version de lex/yacc as-tu utilisée? Je ne savais pas qu'il en existait pour Delphi...
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
5 avril 2007 à 13:18
oui t'as raison FORMAN il ne sagit pas du pascal objet il sagit du pascal normal avec la syntaxe
program nom_prog;
const
/////
type
////
var
////
bloc des procecdures et fonctions
////
program principal
////
end.
voila essai cette syntaxe et tu verras le resultat.
cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
5 avril 2007 à 09:45
Ce que Japee voulait te dire c'est qu'en fait il n'a pas de lecteur "E:" donc que ça ne risque pas de fonctionner chez lui (regarde la 4° ligne de Project1.dpr).

Quand on applique ton programme à ses propres sources, ça ne fonctionne pas:

syntax error: at character # 6
unit Unit1

J'ai essayé avec Unit1.pas et Unit2.pas, rien ne marche (même erreur à chaque fois).
Avec Project1.dpr idem (mais erreur différente). A un moment j'ai même eu une I/O error (je pense dûe au procédé du char feeder utilisé).

Peut-être que j'ai mal compris et qu'en fait il ne s'agit pas de pascal objet?
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
5 avril 2007 à 00:20
Oui je vois tres bien ce que vous voulez dire mais je crois que sahier j'ai corrigé le code ça doit marcher maintenant quand aux fonctions du menu ouvrir et enregistrer bain ils sont faciles à faire je les ai juste oublier , je sais que le travail est incomplet mais il est juste et il analyse bien , j'esserai de le completer d'aventage merci
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
5 avril 2007 à 00:09
Dans le fichier dpr :
"Unit1 in 'E:\Unit1.pas'"
Non, chez nous, Unit1.pas ne se trouve pas sur E:\, ça commence mal...
Sur Unit1 :
- "uses main" : où est main.pas ou main.dcu ?
- ligne 427 : "yyinput_text := memo2.Text;" déclenche une erreur de compil puisque memo2 n'existe pas.

Bon, une fois corrigé, ça compile.

Première impression :
Les menus ne sont pas tous fonctionnels.
En particulier, Open ne charge rien dans le memo.
Avec un copier-coller, on peut se faire une idée du résultat, mais ça n'encourage pas à aller plus loin.

Dommage, on voit que tu as bossé, mais le produit ne semble pas fini...
Ali_usto Messages postés 131 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 11 octobre 2010
4 avril 2007 à 21:31
comment ça il est incompilable moi j'arive à le compiler normalment
et identificateur non déclaré 'memo2' je n'ai utilisé qu'un seul mémo
et un richedit
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
4 avril 2007 à 20:33
Ce code est INCOMPILABLE !

Entre autres, et sans analyser plus :

"Unit1 in 'E:\Unit1.pas' {Form1}," <- ça risque pas !
"identificateur non déclaré : 'memo2'
etc...

A revoir très très vite.

japee - admin cs
Rejoignez-nous