comparison src/dil/lexer/Lexer.d @ 826:d659f7aa055c

Fixed Lexer unittest.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Sat, 07 Jun 2008 14:05:28 +0200
parents 372fa4fbbb1d
children 55c463c57d3a
comparison
equal deleted inserted replaced
825:51edcd435b30 826:d659f7aa055c
2849 src ~= pair.tokenText; 2849 src ~= pair.tokenText;
2850 } 2850 }
2851 else 2851 else
2852 src ~= pair.tokenText ~ " "; 2852 src ~= pair.tokenText ~ " ";
2853 2853
2854 // Lex the constructed source text.
2854 auto lx = new Lexer(new SourceText("", src)); 2855 auto lx = new Lexer(new SourceText("", src));
2855 auto token = lx.getTokens(); 2856 lx.scanAll();
2856 2857
2857 uint i; 2858 auto token = lx.firstToken();
2858 assert(token == lx.head); 2859
2859 assert(token.next.kind == TOK.Newline); 2860 for (uint i; i < pairs.length && token.kind != TOK.EOF;
2860 token = token.next.next; 2861 ++i, (token = token.next))
2861 do 2862 if (token.srcText != pairs[i].tokenText)
2862 { 2863 assert(0, Format("Scanned '{0}' but expected '{1}'",
2863 assert(i < pairs.length); 2864 token.srcText, pairs[i].tokenText));
2864 assert(token.srcText == pairs[i].tokenText, Format("Scanned '{0}' but expected '{1}'", token.srcText, pairs[i].tokenText));
2865 ++i;
2866 token = token.next;
2867 } while (token.kind != TOK.EOF)
2868 } 2865 }
2869 2866
2870 /// Tests the Lexer's peek() method. 2867 /// Tests the Lexer's peek() method.
2871 unittest 2868 unittest
2872 { 2869 {