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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. tAPPERSAND "&"
  38. DIGIT [0-9]
  39. VARIABLE [A-Za-z0-9_]+
  40. CONST "const"
  41. DECIMAL {DIGIT}+
  42. EXPONENTIEL {DIGIT}+"e"{DIGIT}+
  43. ENTIER {DECIMAL}
  44. ENTIEREXP {EXPONENTIEL}
  45. OPERATION {ADD}|{SUB}|{MUL}|{DIV}
  46. COMPARATEUR {EGAL}|{LT}|{GT}
  47. SEPARATOR {SPACE}|{TAB}
  48. %%
  49. {ADD} {return tADD ;}
  50. {SUB} {return tSUB ;}
  51. {MUL} {return tMUL ;}
  52. {DIV} {return tDIV ;}
  53. {tPO} {return tPO ;}
  54. {tPF} {return tPF ;}
  55. {tAO} {return tAO ;}
  56. {tAF} {return tAF ;}
  57. {EOI} {return tPV ;}
  58. {SEPARATOR} {}
  59. {EOL} {}
  60. {VIRGULE} {return tVIRGULE ;}
  61. {AFFECTATION} {return tAFFECTATION ;}
  62. {EQUAL} {return tEGAL ;}
  63. {tDIFF} {return tDIFF ;}
  64. {LT} {return tLT ;}
  65. {GT} {return tGT ;}
  66. {LTE} {return tLTE ;}
  67. {GTE} {return tGTE ;}
  68. {tNOT} {return tNOT ;}
  69. {tMAIN} {return tMAIN ;}
  70. {tINT} {return tINT ;}
  71. {tPRINT} {return tPRINT ;}
  72. {tRETURN} {return tRETURN ;}
  73. {tOR} {return tOR ;}
  74. {tAND} {return tAND ;}
  75. {tIF} {return tIF ;}
  76. {tELSE} {return tELSE ;}
  77. {tWHILE} {return tWHILE ;}
  78. {tAPPERSAND} {return tAPPERSAND;}
  79. {CONST} {return tCONST ;}
  80. {ENTIER} {yylval.nombre = atoi(yytext); return tENTIER ;}
  81. {ENTIEREXP} {yylval.nombre = -1; return tENTIEREXP;}
  82. {VARIABLE} {strcpy(yylval.id, yytext); return tVAR ;}
  83. %%
  84. //int main(void){
  85. // yylex();
  86. //}