#include #include #include #include "arbin.h" #define AVANCER {jeton=getchar();numcar++;} #define TEST_AVANCE(prevu) {if (jeton==(prevu)) AVANCER else ERREUR_SYNTAXE} #define ERREUR_SYNTAXE {printf("\nMot non reconnu; erreur de syntaxe \ au caractère numéro %d \n",numcar); exit(1);} Arbin S();Arbin X(Arbin);Arbin E();Arbin R(Arbin);Arbin T();Arbin Y(Arbin);Arbin F(); int jeton; /* caractère courant du flot d'entrée */ int numcar=0; /* numero du caractère courant (jeton) */ Arbin S(){ // S->EX //TODO } Arbin X(Arbin g){ // X->'|'EX|epsilon //TODO } Arbin E(){ // E-> TR //TODO } Arbin R(Arbin g){ // R->TR|epsilon // pour décider si on est dans le cas TR ou le cas epsilon, on regarde premiers(T)=premiers(F)={(,minuscule,@,0} //TODO } Arbin T(){ //T-> FY //TODO } Arbin Y(Arbin g){ // Y->*Y|epsilon //TODO } Arbin F(){ // F->(S)|@|0|a-z //TODO } int main(){ Arbin r; printf("entrer une exp reg : \n"); AVANCER; r=S();//axiome if (jeton=='\n'){ printf("mot reconnu dont l'arbre absrait est : \n"); ab_afficher(r); } else{ ERREUR_SYNTAXE; } return 0; }