Adicionado operadores relacionais.
[myPerl.git] / scanner.lex
blobe9d55b147b82102bff8613f993e9b34b20800eba
1 %{
2 #include "parser.h"
3 %}
5 %%
7  /* Quoting all string in order to facilitate for
8     emacs's C module :-) */
9 [ \t\n] ;                       /* skip ws */
10 "if" { return IF; }
11 "elsif" { return ELSIF; }
12 "else" { return ELSE; }
13 "while" { return WHILE; }
14 "my" { return MY; }
15 "write_int" { return WRT_INT; }
16 "break" { return BREAK; }
17 "next" { return NEXT; }
18 "return" { return RETURN; }
19 "==" { return EQL; }
20 "!=" { return NE; }
21 ">=" { return GEQL; }
22 "<=" { return LEQL; }
23 ">"  { return GT; }
24 "<"  { return LT; }
26 [a-zA-Z_][a-zA-Z0-9_]* {
27   yylval.fun.id = strdup(yytext);
28   return IDENTIFIER;
30 [$][a-zA-Z_][a-zA-Z0-9_]* {
31   yylval.var.id = strdup(yytext);
32   return VARIABLE;
34 [0-9]+ {
35   yylval.ival = atoi(yytext);
36   return INTEGER;
38 . { return yytext[0]; }