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.

analyse_lexicale.lex 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. %{
  2. #include "analyse_syntaxique.tab.h"
  3. int yywrap(void){
  4. return 1;
  5. }
  6. %}
  7. ADD "+"
  8. SUB "-"
  9. MUL "*"
  10. DIV "/"
  11. tPO "("
  12. tPF ")"
  13. tAO "{"
  14. tAF "}"
  15. EOL "\n"
  16. EOI ";"
  17. SPACE " "
  18. TAB "\t"
  19. VIRGULE ","
  20. AFFECTATION "="
  21. EQUAL "=="
  22. LT "<"
  23. GT ">"
  24. LTE "<="
  25. GTE ">="
  26. tINT "int"
  27. tMAIN "main"
  28. tPRINT "printf"
  29. tRETURN "return"
  30. tIF "if"
  31. tELSE "else"
  32. tWHILE "while"
  33. tNOT "!"
  34. tAND "&&"
  35. tOR "||"
  36. tDIFF "!="
  37. DIGIT [0-9]
  38. VARIABLE [A-Za-z0-9_]+
  39. CONST "const"
  40. DECIMAL {DIGIT}+
  41. EXPONENTIEL {DIGIT}+"e"{DIGIT}+
  42. ENTIER {DECIMAL}
  43. ENTIEREXP {EXPONENTIEL}
  44. OPERATION {ADD}|{SUB}|{MUL}|{DIV}
  45. COMPARATEUR {EGAL}|{LT}|{GT}
  46. SEPARATOR {SPACE}|{TAB}
  47. %%
  48. {ADD} {return tADD ;}
  49. {SUB} {return tSUB ;}
  50. {MUL} {return tMUL ;}
  51. {DIV} {return tDIV ;}
  52. {tPO} {return tPO ;}
  53. {tPF} {return tPF ;}
  54. {tAO} {return tAO ;}
  55. {tAF} {return tAF ;}
  56. {EOI} {return tPV ;}
  57. {SEPARATOR} {}
  58. {EOL} {}
  59. {VIRGULE} {return tVIRGULE ;}
  60. {AFFECTATION} {return tAFFECTATION ;}
  61. {EQUAL} {return tEGAL ;}
  62. {tDIFF} {return tDIFF ;}
  63. {LT} {return tLT ;}
  64. {GT} {return tGT ;}
  65. {LTE} {return tLTE ;}
  66. {GTE} {return tGTE ;}
  67. {tNOT} {return tNOT ;}
  68. {tMAIN} {return tMAIN ;}
  69. {tINT} {return tINT ;}
  70. {tPRINT} {return tPRINT ;}
  71. {tRETURN} {return tRETURN ;}
  72. {tOR} {return tOR ;}
  73. {tAND} {return tAND ;}
  74. {tIF} {return tIF ;}
  75. {tELSE} {return tELSE ;}
  76. {tWHILE} {return tWHILE ;}
  77. {CONST} {return tCONST ;}
  78. {ENTIER} {yylval.nombre = atoi(yytext); return tENTIER ;}
  79. {ENTIEREXP} {yylval.nombre = -1; return tENTIEREXP;}
  80. {VARIABLE} {strcpy(yylval.id, yytext); return tVAR ;}
  81. %%
  82. //int main(void){
  83. // yylex();
  84. //}