Mercurial > projects > dil
changeset 350:4ea6759300cf
- Fixed unittests in module Lexer.
author | aziz |
---|---|
date | Sat, 25 Aug 2007 19:47:02 +0000 |
parents | a0711c57c1db |
children | 97a9a2d7d46d |
files | trunk/src/dil/Lexer.d |
diffstat | 1 files changed, 17 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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