le compilateur super performant
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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. %{
  2. #include "as.tab.h"
  3. %}
  4. D [0-9]
  5. %%
  6. {D}+(e{D}+)? {
  7. yylval.nombre = atoi(yytext);
  8. return tNB;
  9. }
  10. "+" { return tADD; }
  11. "-" { return tSUB; }
  12. "*" { return tMUL; }
  13. "/" { return tDIV; }
  14. "=" { return tEQ; }
  15. "(" { return tPO; }
  16. ")" { return tPF; }
  17. ";" { return tPV; }
  18. "," { return tVIRG; }
  19. "{" { return tAO; }
  20. "}" { return tAF; }
  21. "!" { return tNOT; }
  22. "==" { return tEQ2; }
  23. "!=" { return tNOTEQ; }
  24. "<" { return tINF; }
  25. "<=" { return tINFEQ; }
  26. ">" { return tSUP; }
  27. ">=" { return tSUPEQ; }
  28. "&&" { return tAND; }
  29. "||" { return tOR; }
  30. [ \t\n]+ { }
  31. "int" { return tINT; }
  32. "const" { return tCONST; }
  33. "main" { return tMAIN; }
  34. "if" { return tIF; }
  35. "else" { return tELSE; }
  36. "elsif" { return tELSIF; }
  37. "while" { return tWHILE; }
  38. "printf" { return tPRINTF; }
  39. [a-zA-Z][a-zA-Z0-9_]* {
  40. yylval.symbol_name = malloc(sizeof(yytext));
  41. strcpy(yylval.symbol_name, yytext);
  42. return tID;
  43. }
  44. %%
  45. int yywrap() {
  46. return 1;
  47. }
  48. // int main () {
  49. // yylex();
  50. // return 1;
  51. // }