# HG changeset patch
# User aziz
# Date 1182607861 0
# Node ID c70c028e47dd4dcd73d70413c0798b9827b1cb1c
# Parent cdf788d8bdaf045fe5ca5ae7e990f04d45a8b79a
- Started implementation of lexing numbers.
diff -r cdf788d8bdaf -r c70c028e47dd trunk/src/Lexer.d
--- a/trunk/src/Lexer.d Sat Jun 23 13:14:05 2007 +0000
+++ b/trunk/src/Lexer.d Sat Jun 23 14:11:01 2007 +0000
@@ -122,6 +122,9 @@
return;
}
+ if (isdigit(c))
+ return scanNumber(t);
+
if (c == '/')
{
c = *++p;
@@ -215,6 +218,13 @@
}
}
+ void scanNumber(ref Token t)
+ {
+ while (isdigit(*++p)) {}
+ t.type = TOK.Number;
+ t.end = p;
+ }
+
uint decodeUTF()
{
assert(*p & 128);
diff -r cdf788d8bdaf -r c70c028e47dd trunk/src/Token.d
--- a/trunk/src/Token.d Sat Jun 23 13:14:05 2007 +0000
+++ b/trunk/src/Token.d Sat Jun 23 14:11:01 2007 +0000
@@ -18,6 +18,7 @@
String,
Character,
DivisionAssign,
+ Number,
EOF
}
diff -r cdf788d8bdaf -r c70c028e47dd trunk/src/main.d
--- a/trunk/src/main.d Sat Jun 23 13:14:05 2007 +0000
+++ b/trunk/src/main.d Sat Jun 23 14:11:01 2007 +0000
@@ -58,6 +58,9 @@
case TOK.DivisionAssign:
writef("%s", span);
break;
+ case TOK.Number:
+ writef("%s", span);
+ break;
default:
}
end = token.end;