Advertisement
Guest User

threeadd.l

a guest
Jun 5th, 2020
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "threeAdd.tab.h"
  4.  
  5. void yyerror(char*);
  6. extern YYSTYPE yylval;
  7. %}
  8. NAME [a-zA-Z]
  9. DIGITS [0-9]
  10. DOUBLE {DIGITS}(\.{DIGITS})?
  11.  
  12. %%
  13. [ \t]+ { }
  14. {DIGITS}+ {//sscanf(yytext,"%s", &yylval.ivar);
  15. strcpy(yylval.ivar,yytext);
  16. }
  17. "+" {
  18. return *yytext;
  19. }
  20. "-" {
  21. return *yytext;
  22. }
  23. "*" {
  24. return *yytext;
  25. }
  26. "/" {
  27. return *yytext;
  28. }
  29. "=" {
  30. return *yytext;
  31. }
  32. "(" {
  33. return *yytext;
  34. }
  35. ")" {
  36. return *yytext;
  37. }
  38. {NAME} {
  39. //sscanf(yytext,"%s", &yylval.ivar);
  40. strcpy(yylval.ivar,yytext);
  41. }
  42. "\n" {
  43. return *yytext;
  44. }
  45. exit {
  46. return 0;
  47. }
  48.  
  49. . {
  50. char msg[25];
  51. sprintf(msg," <%s>","invalid character",yytext);
  52. yyerror(msg);
  53. }
  54.  
  55.  
  56. %%
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement