44 lines
1.1 KiB
Text
44 lines
1.1 KiB
Text
%{
|
|
#include "as.tab.h"
|
|
int yywrap(void){return 1;}
|
|
%}
|
|
|
|
%%
|
|
|
|
"main" { return tMAIN ;}
|
|
"{" { return tOBRACKET;}
|
|
"}" { return tCBRACKET; }
|
|
"(" { return tOBRACE; }
|
|
")" { return tCBRACE; }
|
|
"const" { return tCONST; }
|
|
"int" { return tINT; }
|
|
"printf" { return tPRINTF; } //Degeu mais à degager
|
|
"if" { return tIF; }
|
|
"while" { return tWHILE; }
|
|
"<" { return tLT; }
|
|
">" { return tGT; }
|
|
"==" { return tEQCOND; }
|
|
"&&" { return tAND; }
|
|
"||" { return tOR; }
|
|
"else" { return tELSE;}
|
|
|
|
|
|
[0-9]+ { yylval.nombre = atoi(yytext); return tNB; }
|
|
[0-9]+e[0-9]+ { yylval.nombre = -1; return tNBEXP; } //Renvoyer le token tNB et pas tNBEXP
|
|
"+" { return tADD; }
|
|
"-" { return tSUB; }
|
|
"*" { return tMUL; }
|
|
"/" { return tDIV; }
|
|
"=" { return tEQ; }
|
|
";" { return tPV; }
|
|
" " {} //Ne pas les retourner à Yacc
|
|
" " {} //Ne pas les retourner à Yacc
|
|
"," { return tCOMA; }
|
|
"/*"[^(*/)]*"*/" { printf("commentaire\n");}
|
|
"\n" {} //Ne pas les retourner à Yacc
|
|
[a-zA-Z][a-zA-Z0-9_]* { strcpy(yylval.id, yytext); return tID; }
|
|
. { return tERROR; }
|
|
|
|
%%
|
|
|
|
|