anchor.diff:    }
   }
   
  -@reflectiveTest
  -class KeywordStateTest {
  -  void test_KeywordState() {
  -    //
  -    // Generate the test data to be scanned.
  -    //
  -    List<Keyword> keywords = Keyword.values;
  -    int keywordCount = keywords.length;
  -    List<String> textToTest = new List<String>(keywordCount * 3);
  -    for (int i = 0; i < keywordCount; i++) {
  -      String syntax = keywords[i].lexeme;
  -      textToTest[i] = syntax;
  -      textToTest[i + keywordCount] = "${syntax}x";
  -      textToTest[i + keywordCount * 2] = syntax.substring(0, syntax.length - 1);
  -    }
  -    //
  -    // Scan each of the identifiers.
  -    //
  -    KeywordState firstState = KeywordState.KEYWORD_STATE;
  -    for (int i = 0; i < textToTest.length; i++) {
  -      String text = textToTest[i];
  -      int index = 0;
  -      int length = text.length;
  -      KeywordState state = firstState;
  -      while (index < length && state != null) {
  -        state = state.next(text.codeUnitAt(index));
  -        index++;
  -      }
  -      if (i < keywordCount) {
  -        // keyword
  -        expect(state, isNotNull);
  -        expect(state.keyword(), isNotNull);
  -        expect(state.keyword(), keywords[i]);
  -      } else if (i < keywordCount * 2) {
  -        // keyword + "x"
  -        expect(state, isNull);
  -      } else {
  -        // keyword.substring(0, keyword.length() - 1)
  -        expect(state, isNotNull);
  -      }
  -    }
  -  }
  -}
  -
  -@reflectiveTest
  -class ScannerTest extends ScannerTestBase {
  -  @override
  -  Token scanWithListener(String source, ErrorListener listener,
  -      {bool genericMethodComments: false,
  -      bool lazyAssignmentOperators: false}) {
  -    Scanner scanner =
  -        new _TestScanner(new CharSequenceReader(source), listener);
  -    scanner.scanGenericMethodComments = genericMethodComments;
  -    scanner.scanLazyAssignmentOperators = lazyAssignmentOperators;
  -    return scanner.tokenize();
  -  }
  -}
  -
   abstract class ScannerTestBase {
     bool usingFasta = false;
   
  
positive.code: 
    void test_semicolon() {
      _assertToken(TokenType.SEMICOLON, ";");
    }
  
    void test_setSourceStart() {
      int offsetDelta = 42;
      ErrorListener listener = new ErrorListener();
      Scanner scanner =
          new _TestScanner(new SubSequenceReader("a", offsetDelta), listener);
      scanner.setSourceStart(3, 9);
      scanner.tokenize();
      List<int> lineStarts = scanner.lineStarts;
      expect(lineStarts, isNotNull);
      expect(lineStarts.length, 3);
      expect(lineStarts[2], 33);
    }
  
    void test_slash() {
  
negative.code:     show AbstractScanner;
  import 'package:front_end/src/scanner/errors.dart';
  import 'package:front_end/src/scanner/reader.dart';
  import 'package:front_end/src/scanner/token.dart';
  import 'package:test/test.dart';
  import 'package:test_reflective_loader/test_reflective_loader.dart';
  