Génération d'un analyseur lexical avec FLEX
CaPoNiTo
Messages postés
4
Statut
Membre
-
CaPoNiTo Messages postés 4 Statut Membre -
CaPoNiTo Messages postés 4 Statut Membre -
Bonjour,
Je vous fournis mon Code ;c'est une génération d'un analyseur lexical avec le langage C utilisant l'outil FLEX
j'ai testé le code sous ubuntu mais il n'est pas valide
j'espère que vous m'aidez au niveau de trois point :
* la lecture des données d'un fichier(un fichier source en langage C),ainsi de corrigé quelque faute
** prière de me donner une idée concernant les option (%option :où on déplace cette instruction)
*** une idée concernant yyrestart(si je peut l'utiliser pour intégrer mon fichier de test)
merci d'avance
Je vous fournis mon Code ;c'est une génération d'un analyseur lexical avec le langage C utilisant l'outil FLEX
j'ai testé le code sous ubuntu mais il n'est pas valide
j'espère que vous m'aidez au niveau de trois point :
* la lecture des données d'un fichier(un fichier source en langage C),ainsi de corrigé quelque faute
** prière de me donner une idée concernant les option (%option :où on déplace cette instruction)
*** une idée concernant yyrestart(si je peut l'utiliser pour intégrer mon fichier de test)
%{
Int noligne=0 ;
%}
Chaine \ "[^\n]\ "
Espace [^\t\040]
Alpha [a-zA-Z]
Chiffre [0-9]
Mot clé [FOR ,IF ,ELSE,WHILE,BREAK,SWITCH,CASE,DO]
Id [int,float,double,bool,char,string,CONST]
nom ({alpha}|{chiffre}|\$)({alpha}|{chiffre}|[_.\-/$])*
num1 [-+]?{chiffre}+\.?([eE][-+]?{chiffre}+)?
num2 [-+]?{chiffre}*\.{chiffre}+([eE][-+]?{chiffre}+)?
nombre {chiffre}+
%%
{espace} /* ne rien faire avec les espaces*/
//recherche des commentaires
"/*" {
int c;
while((c = yyinput()) != 0)
{
if(c == '\n')
++mon_no_ligne;
else if(c == '*')
{
if((c = yyinput()) == '/')
break;
else
unput(c);
}
}
Printf(le contenu du commentaire est "%c ",yytext) ;
}
//recherche des nombres
{nombre} printf("nombre %c",yytext) ;
//calcule du nombre de lignes
\n noligne++;
{nom} printf("nom est %c ",yytext) ;
{chaine} printf("les chaine introduite %c ",yytext) ;
%%
//la fonction main
main()
{
yylex() ;
yyin=fopen(" test.txt", 'r') ;
/* test.txt est un fichier texte qui contient un code en langage C dont il est la source pour analyser */
}
merci d'avance
A voir également:
- Génération d'un analyseur lexical avec FLEX
- Analyseur de spectre audio - Télécharger - Création musicale
- Réinitialiser chromecast 1ere génération - Guide
- Generation ryzen - Guide
- Airpods 3eme generation - Guide
- Comment générer un qr code - Guide