Atualizado docs. Implementado ops logicos.
[myPerl.git] / scanner.lex
blob718f4543e5f8cbf78419b04a339eea8fd5b130f3
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 "shift" { return SHFT; }
20 "==" { return EQL; }
21 "!=" { return NE; }
22 ">=" { return GEQL; }
23 "<=" { return LEQL; }
24 ">"  { return GT; }
25 "<"  { return LT; }
26 "||" { return OR; }
27 "&&" { return AND; }
28 "!"  { return NOT; }
30 [a-zA-Z_][a-zA-Z0-9_]* {
31   yylval.fun.id = strdup(yytext);
32   return IDENTIFIER;
34 [$][a-zA-Z_][a-zA-Z0-9_]* {
35   yylval.var.id = strdup(yytext);
36   return VARIABLE;
38 [0-9]+ {
39   yylval.ival = atoi(yytext);
40   return INTEGER;
42   /*[#].* { } */
43 . { return yytext[0]; }