anchor.diff:    @override
     Token scanWithListener(String source, ErrorListener listener,
         {bool lazyAssignmentOperators: false}) {
  -    var scanner = new fasta.StringScanner(source, includeComments: true);
  -    var firstToken = scanner.tokenize();
  -    Token token = new Token.eof(-1)..setNext(firstToken);
  +    var result = scanString(source, includeComments: true);
  +    var token = result.tokens;
   
       // Translate error tokens
  -    if (scanner.hasErrors) {
  -      Token next = firstToken;
  -      while (!next.isEof) {
  -        if (next.type.kind == BAD_INPUT_TOKEN) {
  -          translateErrorToken(next,
  -              (ScannerErrorCode errorCode, int offset, List<Object> arguments) {
  -            listener.errors.add(new TestError(offset, errorCode, arguments));
  -          });
  -          token.setNext(next.next);
  -        } else {
  -          token = next;
  -        }
  -        next = token.next;
  +    if (result.hasErrors) {
  +      while (token is ErrorToken) {
  +        translateErrorToken(token,
  +            (ScannerErrorCode errorCode, int offset, List<Object> arguments) {
  +          listener.errors.add(new TestError(offset, errorCode, arguments));
  +        });
  +        token = token.next;
         }
       }
  -    return firstToken;
  +
  +    new Token.eof(-1)..setNext(token);
  +    return token;
     }
   
     void test_comments() {
  
positive.code:     expect(openBracket.endToken, same(closeBracket));
      expect(openParen.endToken, same(closeParen));
      listener.assertErrors([
        new TestError(2, ScannerErrorCode.EXPECTED_TOKEN, ['}']),
        new TestError(3, ScannerErrorCode.EXPECTED_TOKEN, [']']),
        new TestError(3, ScannerErrorCode.EXPECTED_TOKEN, [')']),
      ]);
  
negative.code:     token = token.next;
      expectToken(token, TokenType.OPEN_SQUARE_BRACKET, 14, 1);
      BeginToken openSquareBracket = token;
      expect(openSquareBracketErrorToken.begin, same(openSquareBracket));
  
      token = token.next;
      expectToken(token, TokenType.CLOSE_SQUARE_BRACKET, 15, 0,
  