summaryrefslogtreecommitdiff
path: root/tools/d2c/bits/tokens.l
diff options
context:
space:
mode:
Diffstat (limited to 'tools/d2c/bits/tokens.l')
-rw-r--r--tools/d2c/bits/tokens.l33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/d2c/bits/tokens.l b/tools/d2c/bits/tokens.l
new file mode 100644
index 0000000..99fb96d
--- /dev/null
+++ b/tools/d2c/bits/tokens.l
@@ -0,0 +1,33 @@
+
+%top {
+
+#include "grammar.h"
+
+}
+
+
+%option noyywrap
+%option nounput
+%option noinput
+%option yylineno
+%option stack
+%option noyy_top_state
+
+%x bsize
+
+
+%%
+
+
+" " { }
+
+[A-Za-z_][A-Za-z0-9_]* { yylvalp->string = strdup(yytext); return NAME; }
+
+"(" { yy_push_state(bsize); }
+<bsize>[0-9]+ { yylvalp->integer = atoi(yytext); return SIZE; }
+<bsize>")" { yy_pop_state(); }
+
+[01] { yylvalp->integer = atoi(yytext); return BIT; }
+
+
+%%