# 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;