# HG changeset patch # User aziz # Date 1182608581 0 # Node ID 476e8e55c1d482fd0462e28c0330bf843f5112f6 # Parent c70c028e47dd4dcd73d70413c0798b9827b1cb1c - Added Whitespace to the character properties table. diff -r c70c028e47dd -r 476e8e55c1d4 trunk/src/Lexer.d --- a/trunk/src/Lexer.d Sat Jun 23 14:11:01 2007 +0000 +++ b/trunk/src/Lexer.d Sat Jun 23 14:23:01 2007 +0000 @@ -10,9 +10,9 @@ /// ASCII character properties table. static const int ptable[256] = [ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,32, 0,32,32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,12,12, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0,16, @@ -35,6 +35,7 @@ Hex = 1<<2, Alpha = 1<<3, Underscore = 1<<4, + Whitespace = 1<<5 } private alias CProperty CP; @@ -45,6 +46,7 @@ int isalnum(char c) { return ptable[c] & (CP.Alpha | CP.Digit); } int isidbeg(char c) { return ptable[c] & (CP.Alpha | CP.Underscore); } int isident(char c) { return ptable[c] & (CP.Alpha | CP.Underscore | CP.Digit); } +int isspace(char c) { return ptable[c] & CP.Whitespace; } version(gen_ptable) static this() @@ -63,6 +65,8 @@ ptable[i] |= CP.Alpha; if (i == '_') ptable[i] |= CP.Underscore; + if (i == ' ' || i == '\t' || i == '\v'|| i == '\f') + ptable[i] |= CP.Whitespace; } // Print a formatted array literal. char[] array = "[\n"; @@ -104,6 +108,7 @@ while(1) { t.start = p; + if (c == 0) { t.type = TOK.EOF;