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.2KB

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