view src/sdl/expr.l @ 135:eb6ba88088d3

Wrote a more efficient input-number-assembly program; 91 oc -> 60 oc.
author Dylan Holmes <ocsenave@gmail.com>
date Sun, 18 Mar 2012 05:13:19 -0500
parents f9f4f1b99eed
children
line wrap: on
line source
1 %{
2 #include "expr.cpp.h"
4 #ifndef __GNUC__
5 #include <io.h>
6 #define isatty _isatty
7 #endif
9 char *exprString;
10 int exprCol;
12 #define YY_INPUT(buf,result,max_size) \
13 { \
14 int c = *exprString++; \
15 exprCol++;\
16 result = (c == 0) ? YY_NULL : (buf[0] = c, 1); \
17 }
18 %}
20 %option nomain
21 %option noyywrap
23 SIZEOF "sizeof"
24 ID [a-zA-Z_][a-zA-Z0-9_]*
25 NUM [0-9]+
26 DOT "."
27 ARROW "->"
28 STAR "*"
29 ADDR "&"
31 %%
33 {SIZEOF} {
34 return TOKEN_SIZEOF;
35 }
37 {ID} {
38 return TOKEN_IDENTIFIER;
39 }
41 {NUM} {
42 return TOKEN_NUMBER;
43 }
45 {DOT} {
46 return TOKEN_DOT;
47 }
49 {ARROW} {
50 return TOKEN_ARROW;
51 }
53 {ADDR} {
54 return TOKEN_ADDR;
55 }
57 {STAR} {
58 return TOKEN_STAR;
59 }
61 [ \t\n]+
63 . return *yytext;
65 %%
67 void exprCleanBuffer()
68 {
69 yy_delete_buffer(yy_current_buffer);
70 yy_init = 1;
71 }