# HG changeset patch # User aziz # Date 1188071222 0 # Node ID 4ea6759300cfbb205a3d03684986f6be1833b16f # Parent a0711c57c1dbf9f21fa7290518f48f9fa05d2044 - Fixed unittests in module Lexer. diff -r a0711c57c1db -r 4ea6759300cf trunk/src/dil/Lexer.d --- a/trunk/src/dil/Lexer.d Sat Aug 25 11:13:01 2007 +0000 +++ b/trunk/src/dil/Lexer.d Sat Aug 25 19:47:02 2007 +0000 @@ -1639,15 +1639,15 @@ string sourceText = "unittest { }"; auto lx = new Lexer(sourceText, null); - Token next; + Token* next = lx.head; lx.peek(next); - assert(next == TOK.Unittest); + assert(next.type == TOK.Unittest); lx.peek(next); - assert(next == TOK.LBrace); + assert(next.type == TOK.LBrace); lx.peek(next); - assert(next == TOK.RBrace); + assert(next.type == TOK.RBrace); lx.peek(next); - assert(next == TOK.EOF); + assert(next.type == TOK.EOF); writefln("end of peek() unittest"); } @@ -1709,6 +1709,7 @@ unittest { + writefln("Testing Lexer."); string[] toks = [ ">", ">=", ">>", ">>=", ">>>", ">>>=", "<", "<=", "<>", "<>=", "<<", "<<=", "!", "!<", "!>", "!<=", "!>=", "!<>", @@ -1724,14 +1725,18 @@ src ~= op ~ " "; auto lx = new Lexer(src, ""); - auto tokens = lx.getTokens(); - - tokens = tokens[0..$-1]; // exclude TOK.EOF + auto token = lx.getTokens(); - assert(tokens.length == toks.length ); - - foreach (i, t; tokens) - assert(t.srcText == toks[i], std.string.format("Lexed '%s' but expected '%s'", t.srcText, toks[i])); + uint i; + assert(token == lx.head); + token = token.next; + do + { + assert(i < toks.length); + assert(token.srcText == toks[i], std.string.format("Scanned '%s' but expected '%s'", token.srcText, toks[i])); + ++i; + token = token.next; + } while (token.type != TOK.EOF) } unittest