projet.l /* specifications des tokens */ %{ #include "y.tab.h" #include "types.h" extern int yylval; %} %% "{" {return(DA);} "}" {return(FA);} "," {return(VIR);} "=" {return(EQ);} ";" {return(PV);} "(" {return(DP);} ")" {return(FP);} "+" {return(PLUS);} "-" {return(MOINS);} "*" {return(STAR);} "/" {return(DIV);} "if" {return(IF);} "while" {return(WHILE);} "do" {return(DO);} "repeat" {return(REPEAT);} "until" {return(UNTIL);} "then" {return(THEN);} "else" {return(ELSE);} "|" {return(OR);} "&" {return(AND);} "false" {yylval = insererTabConstantes(yytext, BOOL); return(FALSE);} "true" {yylval = insererTabConstantes(yytext, BOOL); return(TRUE);} "!" {return(NOT);} "<" {return(LOW);} ">" {return(GRT);} "==" {return(EQL);} "!=" {return(NEQ);} "int" {return(INT);} "float" {return(FLOAT);} "bool" {return(BOOL);} [a-zA-Z][a-zA-Z0-9]* {yylval = insererTabNoms(yytext); return(ID);} [0-9]+ {yylval = insererTabConstantes(yytext, INT); return(NUMI);} [0-9]+(".")[0-9]* {yylval = insererTabConstantes(yytext, FLOAT); return(NUMF);} types.h define TYPES_H typedef enum { INT, FLOAT, BOOL, INCORRECT } Type; void mettreTypeCourant(Type type); Type obtenirTypeCourant(); char * obtenirNomType(Type type); int verifierTypeAffectation(Type type1, Type type2); int verifierTypeBool(Type type1, Type type2); int verifierTypeOperation(Type type1, Type type2); #endif /* TYPES_H */