No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

al.lex 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. %{
  2. #include "as.tab.h"
  3. int yywrap(void){return 1;}
  4. %}
  5. %%
  6. "main" { return tMAIN ;}
  7. "{" { return tOBRACKET;}
  8. "}" { return tCBRACKET; }
  9. "(" { return tOBRACE; }
  10. ")" { return tCBRACE; }
  11. "const" { return tCONST; }
  12. "int" { return tINT; }
  13. "printf" { return tPRINTF; } //Degeu mais à degager
  14. "if" { return tIF; }
  15. "while" { return tWHILE; }
  16. "<" { return tLT; }
  17. ">" { return tGT; }
  18. "==" { return tEQCOND; }
  19. "&&" { return tAND; }
  20. "||" { return tOR; }
  21. "else" { return tELSE;}
  22. [0-9]+ { yylval.nombre = atoi(yytext); return tNB; }
  23. [0-9]+e[0-9]+ { yylval.nombre = -1; return tNBEXP; } //Renvoyer le token tNB et pas tNBEXP
  24. "+" { return tADD; }
  25. "-" { return tSUB; }
  26. "*" { return tMUL; }
  27. "/" { return tDIV; }
  28. "=" { return tEQ; }
  29. ";" { return tPV; }
  30. " " {} //Ne pas les retourner à Yacc
  31. " " {} //Ne pas les retourner à Yacc
  32. "," { return tCOMA; }
  33. "/*"[^(*/)]*"*/" { printf("commentaire\n");}
  34. "\n" {} //Ne pas les retourner à Yacc
  35. [a-zA-Z][a-zA-Z0-9_]* { strcpy(yylval.id, yytext); return tID; }
  36. . { return tERROR; }
  37. %%