Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : analyseur lexical et syntaxique [ Linux / Autre ] (talzou)

mardi 18 mars 2008 à 20:22:05 | analyseur lexical et syntaxique

talzou

salut
si vous pouvez m'aider j'ai besoins d'un code source pour un analyseur lexical de langage pascal programmer en c ou c++
merci

mercredi 19 mars 2008 à 10:21:43 | Re : analyseur lexical et syntaxique

DeAtHCrAsH

Salut,

Regarde du coté de FLEX et BISON, flex est un analyseur lexical qui se base sur des regexp, et bison et un compilateur de compilateur.
Jette un oeil sur google tu trouveras pas mal de doc la dessus.

Shell

lundi 24 mars 2008 à 12:04:51 | Re : analyseur lexical et syntaxique

talzou



salut
je cherche le code source pour l'analyseur lexical et syntaxique complé  qui decrit un programme pascal (table d'identificateur , de separateur, des mots clés opperateur )si vous pouvez  pour le samedi prochain parce que c'est le TP annuel vraiment j'ai besoins de votre aide
merci

dimanche 1 juin 2008 à 16:42:28 | Re : analyseur lexical et syntaxique

mkac

analyseur lexical en turbo pascal
program automate;

uses wincrt;                                              

const
     G= ['a'..'z','A'..'Z'];
     F= ['a'..'z','A'..'Z','0'..'9'];
     blan=' ';
var

   mot,motval:string;
   n,rang,long,maxi:integer;
   longmax,sortis,blancs,vide,appG,appF:boolean;
   choix:char;

(********************************* fonction espace*********************************************)

function espace(a:char):boolean;
         begin
          espace:=(a=blan);
         end;

(*********************************procedure etat2 *********************************************)

procedure etat2(mot:string;L:integer;var rang:integer;var vide:boolean;
          var appG:boolean);
    begin
         while (rang<=L)and(espace(mot[rang]))do
               rang:= rang+1;
               vide:=(rang>L);
         if not vide then
         appG:=(mot[rang]in G) ;
    end;
(********************************* procedure etat3 ********************************************)

procedure etat3(mot:string;n:integer;max:integer;var rang:integer;
          var long:integer;var tropc:boolean;var blanc:boolean;
          var sortie:boolean;appF:boolean);
begin
     while (rang<=n)and(long<=max)and(mot[rang]in F) do
           begin
                 rang:= rang+1;
                long:=long+1;
           end;
           sortie:=(rang>n);
           if not sortie then
              begin
                   tropc:=(long>max);
                   blanc:= (espace(mot[rang])) ;
                   appF:=mot[rang]in F
              end;
end;


{********************************* PROGRAMME  PRINCIPAL***************************************}
BEGIN
   
        repeat
        clrscr;

          
       write('Donnez le nombre maximale de caractères significatifs:   ');
       readln(maxi);    
       write('Donnez la chaine à analyser : ');

       readln(mot);
       n:=length(mot);
       rang:=1;

     
       if not espace(mot[rang])  then
          writeln('votre 1ere lettre doit etre un vide: erreur1 ')      
       else
          begin
             rang:=rang+1;
             vide:=false; appG:=false;
             etat2(mot,n,rang,vide,appG);
             if (vide) then
                begin
                  writeln;
                  writeln('!!!votre mot est vide!!!: erreur2 ');                           
                end
             else
                if not appG then                
                    writeln('le 1er caractere significatif n''est pas une lettre alphabetique: erreur3 ')
                else
                    begin
                         long:=1;
                         motval:=mot[rang];
                         rang:=rang+1;
                         longmax:=false;
                         blancs:=false;
                         sortis:=false;
                         appF:=false;

            etat3(mot,n,maxi,rang,long,longmax,blancs,sortis,appF);

                  if sortis then
                      writeln('votre mot doit se terminer par Espace: erreur4 ')
                      else
                        if  longmax then                                     
                            writeln('Vous avez exceder la longueur maximale autorisée : erreur5 ')
                         else
                          if not blancs then
                              begin
                              writeln(' Votre mot contient un caractere non autorisé : erreur6');
                              writeln(' le caractère est : ',mot[rang]);
                              end             
                          else
                              writeln('le mot est valide ');
                        
                      end;
          end;
      write(' Voulez-vous continuer (o/n):   ');

      read(choix);
      until (choix='n') or (choix='N');
      clrscr;
      gotoxy(35,13);
      write('aurevoir');
      readln;
END.



Cette discussion est classé dans : analyseur, syntaxique, lexical


Répondre à ce message

Sujets en rapport avec ce message

analyseur lexical et syntaxique pour un langage pascal programmer en c++ [ par talzou ] j'ai besoins d'un analyseur lexical et syntaxique de langage pascal programmer en devc++merci analyseur lexical &syntaxique en c [ par amfa ] salut ,je cherche le code source de lanalyseur lexical & syntaxique en langage c,si vous avez qlq chose sur ce sujet ,aidez moi,merci davance un analyseur lexical de turbo pascal en c [ par linkolen ] slt j un tp de compilation je ne sais pas koa faire j besoin d'un program en c qui fait l'analyse lexical et syntaxique d'un pgm pascal (lex et yacc d analyseur lexical pascal en c [ par linkolen ] j'ai besoin d'un analyseur lexical du pascal programmé en c merci traceur de graphe en C [ par domain ] Bonjour,Je dois réaliser un traceur de graphe en C avec:- analyseur lexical- analyseur sémantique- évaluateur- afficheurje pense avoir assez bien comp analyseur d'expression [ par loicus ] Voila, je cherche une fonction, qui pourrait transformer une expression (suite de char) en une ligne de code qui sera utiliser par le programmeex : ma Analyseur de code C/C++ avec Lex ou flex [ par magic_Nono ] G un projet Lex à rendre rapidement (2 semaines)qui doit analyser le corps de fonction C/C++ pour déterminer les variables & leur types(les repérer, r coloration syntaxique VC++ [ par baniway ] Bonjour,J'ai plusieurs fichiers en C++ dont l'extension (.txx) n'est pas reconnu par VC comme etant du C++. Quelqu'un saurait-il comment indiquer a vc analyseur de references croisées [ par pititeflo83 ] jsusi une débutant en c++ et je dois creer un analyseur de references croisées. cad en gros pouvoir lister tt les variables d'un fichier .cpp avec les Dialogue rs232 entre analyseur de spectre et PC [ par mumuportos ] Bonjour à tous,J'aurai de renseingnement pour réaliser un programme en C, visant à faire communiquer un analyseur de spectre (de marque HP) avec un PC


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.