IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

analyseur lexical en c


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut analyseur lexical en c
    salut
    je suis chargée de faire un analyseur lexical développé en langage C, j'arrive pas à faire
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Et on ne va pas le faire à ta place.

    Où bloques-tu?
    Qu'est-ce que tu ne comprend pas?

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Il y a une fonction de recherche sur le forum, l'as tu testé ?


    http://www.developpez.net/forums/sea...archid=8107678

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    #include <stdio.h>
    #include <ctype.h>
    Int NumLigne = 1;
    Int  Vallex =  RIEN;
     
    Int AnalLex()
    {
        int T;
        While(1);
        {
            T = getchar();
            if (T == ‘ ‘ || T == ‘\t) ;
            else  if (T == ‘\n)
                          NumLigne ++;
                       else  if(isdigit(T))
                  {
                                      Vallex = T-’0’;
                                 T = getchar();
                                 While (isdigit(T))
                                         {
                                                 ValLex = ValLex*10+T-’0’;
                                                 T = getchar();
                                         }
                                         ungetc(T, stdin); return NB;
                                              }
                                              Else
                                         ValLex = RIEN;
                                              Return T;
                                        }
                                 }
    Unilex AnalLex()      /* Unilex est une chaine si Anallex retourne uniquement l’unité lexicale*/
        { 	/* Unilex est un entier si AnalLex retourne l’unité lexicale et chaque unité est définie comme une constante*/
        /* Unilex est un enregistrement si Analex
        retourne l’unité lexicale et un attribut*/
           {
              Switch(etat)
              {
                 case 0: Init(Chaine); car = carsuivant();
                             if(car == ‘ ‘ || car == ‘\t’ || car = ‘\n)
                             {   etat = 0; debutlex ++; }
                             else if( car == ‘<‘) etat = 5;
                             else if (car == ‘=‘) etat  = 9;
                             else if (car == ‘>’) etat = 10;
                             else if (isletter(car)) Ajouter(car, chaine);
              etat = 1;
                             else if(isdigit(car)) Ajouter(car, chaine);
            etat = 3;
                             else if(car == EOF) etat = 13;
                             else Erreur();
     
                  case 1: car = carsuiv();
                       if(isletter(car) || isdigit(car))
                                                   ajouter(car, chaine);;
                                          else etat = 2;
                      break;
                  case 2: Reculer(1); RangerId(); return(UniLexId()); /* cas où l’analyseur lexical retourne uniquement */l’unité lexicale sinon, il faut utiliser un  enregistrement  (symbole)*/
                      ………….
     
     
                  case 3: car = carsuiv();
                                         if(isdigit(car))  ajouter(car, chaine);
                                         else  etat = 4;
                                         break;
                  case 4 : Reculer(1); Return(NB); case 6: Return(Oprel);
                        ……………
                  case 13: Return(EOF);
                  }
              Unilex AnalLex()      /* Unilex est une chaine si AnalLex retourne uniquement l’unité lexicale*/
                  { 		/* Unilex est un entier si AnalLex retourne l’unité lexicale et chaque unité est définie comme une constante*/
     
                  /* Unilex est un enregistrement si AnalLex
                  retourne l’unité lexicale et un attribut*/
                     {
                        Switch(etat)
                        {
                           case 0: Init(Chaine)car = carsuivant();
                                       if(car == ‘ ‘ || car == ‘\t’ || car = ‘\n)
                                       {   etat = 0; debutlex ++; }
                                       else if( car == ‘<‘) etat = 5;
                                       else if (car == ‘=‘) etat  = 9;
                                       else if (car == ‘>’) etat = 10;
                                       else if (isletter(car)) etat = 1;
                                       else if(isdigit(car)) etat = 3;
                                       else if(car == EOF) etat = 13;
                                       else Erreur();
                            case 1: car = carsuiv();
                                 if(isletter(car) || isdigit(car))
                                                             ajouter(car, chaine);;
                                                    else etat = 2;
                                break;
                            case 2: Reculer(1); symbole.att = RangerId(); symbole.UL = UniLexId(); Return(Symbole);
                            ………….
     
                            case 3: car = carsuiv();
                                                   if(isdigit(car))  ajouter(car, chaine);
                                                   else  etat = 4;
                                                   break;
                            case 4 : Reculer(1); symbole.UL=NB; symbole.Att = toupper(chaine)); Return(symbole);
                            case 6: symbole.UL = Oprel; symbole.att = PPE; Return(symbole);	  ……………
                            case 13: symbole.UL = EOF; symbole.att = 0;
                            Return(symbole);}
                           /* On peut retourner des numériques.
    voila se que j'arrive a faire

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Dis nous directement ce qui te bloque ça sera beaucoup plus rapide.

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    je souhaite savoir c'est juste se que j'ai fais ou non

Discussions similaires

  1. petit analyseur lexical
    Par imadin dans le forum Général Java
    Réponses: 9
    Dernier message: 19/02/2008, 17h49
  2. Analyseur lexical en Pascal
    Par acacia dans le forum Langage
    Réponses: 5
    Dernier message: 29/11/2007, 15h43
  3. probléme dans l'analyseur lexical
    Par the sun dans le forum C#
    Réponses: 9
    Dernier message: 29/05/2007, 11h00
  4. Faire un analyseur lexical
    Par sylsau dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 29/03/2007, 12h41
  5. Analyseur lexical a 3 automates
    Par mehdouch dans le forum C
    Réponses: 2
    Dernier message: 29/03/2006, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo