/*
 * Programme qui lit une chaîne (expression) de caractères et 
 * et vérifie si elle est bien parenthèsée (ex "(a+(c)-d)" )
 * Usage d'une pile
 */

#include <stdio.h> 
#include <stdlib.h>
#include "pile.h"
#define MAX 20 
main(){ 
    int curChar=0; 
    char c; int b=0;
    PILE   p; // car t[MAX]
    
    p = create ();
    /* On lit et empile (resp. depile) les parenthèses 
       ouvrantes (resp. fermantes) */ 
    while ((c=getchar())!='\n') { 
        if (c=='(') empiler (p, c);
        else if (c==')')
            if(estVide(p)) b=1;
            else if (sommet(p) != '(') b=1;
                 else depiler (p);
        else;
        if(curChar==MAX) break;
    } 
    
    /* On si la pile est vide et b==0 */
    
    if (estVide(p) && b==0)
        printf ("bien Parenthèsée :-)");
    else printf ("Mal Parenthèsée :-(");
    
    printf("\n\nThat's all folks\n"); 
 }
