Advertisement
Madeyedexter_ZHCET

Parser.lex

Nov 14th, 2013
1,411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. %{
  2. #define YYSTYPE char*
  3. #include "parser.tab.h"
  4. #include "stdlib.h"
  5.  
  6. int lineno=1;
  7. %}
  8.  
  9. white [ \t]+
  10. letter [A-Za-z]
  11. digit [0-9]
  12. id {letter}({letter}|{digit})*
  13. number {digit}+
  14. relop >=|<=|>|<|==|!=
  15.  
  16.  
  17. %%
  18.  
  19. {white} { }
  20.  
  21. {number} {yylval=strdup(yytext); return NUMBER;}
  22. <<EOF>> {return E_O_F;}
  23. if {yylval=strdup(yytext); return IF;}
  24. int {yylval=strdup(yytext); return INT;}
  25. float {yylval=strdup(yytext); return FLOAT;}
  26. else {yylval=strdup(yytext); return ELSE;}
  27. while {yylval=strdup(yytext); return WHILE;}
  28. true {yylval=strdup(yytext); return TRUE;}
  29. false {yylval=strdup(yytext); return FALSE;}
  30. {id} { yylval=strdup(yytext); return ID;}
  31. "+" {yylval=strdup(yytext); return PLUS;}
  32. "-" {yylval=strdup(yytext);return MINUS;}
  33. "*" {yylval=strdup(yytext);return TIMES;}
  34. "/" {yylval=strdup(yytext);return DIVIDE;}
  35. "," {yylval=strdup(yytext);return COMMA; }
  36. "=" {yylval=strdup(yytext);return ASSIGN;}
  37. "||" {yylval=strdup(yytext);return OR;}
  38. "&&" {yylval=strdup(yytext);return AND;}
  39. "!" {yylval=strdup(yytext);return NOT;}
  40. "(" {yylval=strdup(yytext);return LP;}
  41. ")" {yylval=strdup(yytext);return RP;}
  42. {relop} { yylval=strdup(yytext); return RELOP;}
  43. "{" {yylval=strdup(yytext);return LB;}
  44. "}" {yylval=strdup(yytext);return RB;}
  45. ";" {yylval=strdup(yytext);return DELIMITOR;}
  46. "\n" {lineno++;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement