CodeS-SourceS
Rechercher un code, un tuto, une réponse

Vérification de bon parenthésage

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 690 fois - Téléchargée 4 fois

Contenu du snippet

bonjour ,stp j'ai essayé à ce programme mais ça marche pas pour les parenthéses ;

voila l'énoncé de l'exercice :)

ecrire un programme en LEX qui vérifie le bon parenthésage d'un flot de données sur stdin :

(1) trois types de parenthése :() , [] et {} ;

(2) pas de retour à la ligne dans () ni dans [];

(3) une hiérarchie dans le parenthésage ,ie pas de [] ni {} dans (), et pas de {} dans [] .

et voila le programme en LEX que j'ai fait :)

%{

#include<stdio.h>

#include<assert.h>

int p1=0; /* Variable globale du nb de par ouvrantes */

int p2=0; /*variable globale du nb de entre crochet ouvrante */

int p3=0; /* variable globale du nb d'accolade ouvrante */

%}

%%

"(" {p1++; }

")" {assert(p1);

if (p1>0)

{

p1--;

ECHO;

}

else

printf ("Votre parenthesage est incorrect\n");

}

"[" {assert(!p1);p2++;}

"]" {assert(p2&&!p1);

if (p2>0)

{

p2--;

ECHO;

}

else

printf ("Votre parenthesage est incorrect\n");

}

"{" {assert(!p1&&!p2);p3++;}

"}" {assert(p3&&!p1&&!p2);

if (p3>0)

{

p3--;

ECHO;

}

else

printf ("Votre parenthesage est incorrect\n");

}

\n {assert(!p1&&!p2);}

%%

int main (void) {

yylex();

assert(!p1&&!p2&&!p3);

return 0;

}

A voir également

Ajouter un commentaire

Commentaires

Donnez votre avis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.