rendered paste bodyprojet.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 */