All pastes #817807 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-12-15 21:53 UTC
rendered paste body
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 */