f92af61b5d40e495511694ca3763d9cbcf63b1e9
[ccc.git] / scan.l
1 %option noinput
2 %option nounput
3 %{
4
5 #include <stdio.h>
6 #include "ast.h"
7 #define YYSTYPE struct ast *
8 #include "y.tab.h"
9 extern YYSTYPE yylval;
10
11 %}
12
13 %%
14
15 [0-9]+ { yylval = ast_int(atoi(yytext)); return INTEGER; }
16 ! return INVERSE;
17 \|\| return BINOR;
18 && return BINAND;
19 == return EQ;
20 != return NEQ;
21 \<= return GEQ;
22 \< return GE;
23 >= return LEQ;
24 > return LE;
25 : return CONS;
26 \+ return PLUS;
27 - return MINUS;
28 \* return TIMES;
29 \/ return DIVIDE;
30 % return MODULO;
31 \^ return POWER;
32 \( return BOPEN;
33 \) return BCLOSE;
34 \; return SEMICOLON;
35 [ \n\t] ;
36
37 %%