cleanup StringScanner references

Change-Id: Ic75305c7a76860c5b96032d4f8c8fff695006f22
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106004
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
diff --git a/pkg/analyzer/tool/summary/generate.dart b/pkg/analyzer/tool/summary/generate.dart
index d27a4d8..2e0a224 100644
--- a/pkg/analyzer/tool/summary/generate.dart
+++ b/pkg/analyzer/tool/summary/generate.dart
@@ -19,7 +19,7 @@
 import 'dart:io';
 
 import 'package:analysis_tool/tools.dart';
-import 'package:front_end/src/fasta/scanner/string_scanner.dart';
+import 'package:front_end/src/fasta/scanner.dart';
 import 'package:front_end/src/scanner/token.dart' show Token;
 
 import 'idl_model.dart' as idlModel;
@@ -648,8 +648,7 @@
     String idlText =
         idlFile.readAsStringSync().replaceAll(new RegExp('\r\n?'), '\n');
     // Extract a description of the IDL and make sure it is valid.
-    var scanner = new StringScanner(idlText, includeComments: true);
-    var startingToken = scanner.tokenize();
+    var startingToken = scanString(idlText, includeComments: true).tokens;
     var listener = new MiniAstBuilder();
     var parser = new MiniAstParser(listener);
     parser.parseUnit(startingToken);
diff --git a/pkg/front_end/test/precedence_info_test.dart b/pkg/front_end/test/precedence_info_test.dart
index 169f67c..80fd8a4 100644
--- a/pkg/front_end/test/precedence_info_test.dart
+++ b/pkg/front_end/test/precedence_info_test.dart
@@ -2,9 +2,9 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
+import 'package:front_end/src/fasta/scanner.dart';
 import 'package:front_end/src/fasta/scanner/abstract_scanner.dart'
     show AbstractScanner;
-import 'package:front_end/src/fasta/scanner/string_scanner.dart';
 import 'package:front_end/src/fasta/scanner/token.dart' as fasta;
 import 'package:front_end/src/scanner/token.dart';
 import 'package:test/test.dart';
@@ -22,8 +22,10 @@
   void assertInfo(check(String source, Token token)) {
     void assertLexeme(String source) {
       if (source == null || source.isEmpty) return;
-      var scanner = new StringScanner(source, includeComments: true);
-      var token = scanner.tokenize();
+      var token = scanString(source, includeComments: true).tokens;
+      while (token is ErrorToken) {
+        token = token.next;
+      }
       check(source, token);
     }
 
@@ -288,9 +290,8 @@
   void test_name() {
     void assertName(String source, String name, {int offset: 0}) {
       if (source == null || source.isEmpty) return;
-      var scanner = new StringScanner(source, includeComments: true);
-      var token = scanner.tokenize();
-      while (token.offset < offset) {
+      var token = scanString(source, includeComments: true).tokens;
+      while (token is ErrorToken || token.offset < offset) {
         token = token.next;
       }
       expect(token.type.name, name,
@@ -388,8 +389,10 @@
     };
     precedenceTable.forEach((precedence, lexemes) {
       for (String source in lexemes) {
-        var scanner = new StringScanner(source, includeComments: true);
-        var token = scanner.tokenize();
+        var token = scanString(source, includeComments: true).tokens;
+        while (token is ErrorToken) {
+          token = token.next;
+        }
         expect(token.type.precedence, precedence, reason: source);
       }
     });
@@ -397,8 +400,7 @@
 
   void test_type() {
     void assertLexeme(String source, TokenType tt) {
-      var scanner = new StringScanner(source, includeComments: true);
-      var token = scanner.tokenize();
+      var token = scanString(source, includeComments: true).tokens;
       expect(token.type, same(tt), reason: source);
     }
 
diff --git a/pkg/front_end/test/token_test.dart b/pkg/front_end/test/token_test.dart
index fa62c06..dda8af0 100644
--- a/pkg/front_end/test/token_test.dart
+++ b/pkg/front_end/test/token_test.dart
@@ -2,8 +2,8 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'package:front_end/src/fasta/scanner.dart' show ScannerConfiguration;
-import 'package:front_end/src/fasta/scanner/string_scanner.dart';
+import 'package:front_end/src/fasta/scanner.dart'
+    show ScannerConfiguration, scanString;
 import 'package:front_end/src/scanner/token.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -32,8 +32,7 @@
   }
 }
 ''';
-    var scanner = new StringScanner(source, includeComments: true);
-    Token token = scanner.tokenize();
+    Token token = scanString(source, includeComments: true).tokens;
 
     Token nextComment() {
       while (!token.isEof) {
@@ -66,8 +65,7 @@
   }
 
   void test_isSynthetic() {
-    var scanner = new StringScanner('/* 1 */ foo', includeComments: true);
-    var token = scanner.tokenize();
+    var token = scanString('/* 1 */ foo', includeComments: true).tokens;
     expect(token.isSynthetic, false);
     expect(token.precedingComments.isSynthetic, false);
     expect(token.previous.isSynthetic, true);
@@ -76,8 +74,7 @@
   }
 
   void test_matchesAny() {
-    var scanner = new StringScanner('true', includeComments: true);
-    var token = scanner.tokenize();
+    var token = scanString('true', includeComments: true).tokens;
     expect(token.matchesAny([Keyword.TRUE]), true);
     expect(token.matchesAny([TokenType.AMPERSAND, Keyword.TRUE]), true);
     expect(token.matchesAny([TokenType.AMPERSAND]), false);
@@ -127,10 +124,10 @@
     ]);
     for (Keyword keyword in Keyword.values) {
       var isModifier = modifierKeywords.contains(keyword);
-      var scanner = new StringScanner(keyword.lexeme,
-          configuration: ScannerConfiguration.nonNullable,
-          includeComments: true);
-      Token token = scanner.tokenize();
+      Token token = scanString(keyword.lexeme,
+              configuration: ScannerConfiguration.nonNullable,
+              includeComments: true)
+          .tokens;
       expect(token.isModifier, isModifier, reason: keyword.name);
       if (isModifier) {
         expect(token.isTopLevelKeyword, isFalse, reason: keyword.name);
@@ -152,8 +149,7 @@
     ]);
     for (Keyword keyword in Keyword.values) {
       var isTopLevelKeyword = topLevelKeywords.contains(keyword);
-      var scanner = new StringScanner(keyword.lexeme, includeComments: true);
-      Token token = scanner.tokenize();
+      Token token = scanString(keyword.lexeme, includeComments: true).tokens;
       expect(token.isTopLevelKeyword, isTopLevelKeyword, reason: keyword.name);
       if (isTopLevelKeyword) {
         expect(token.isModifier, isFalse, reason: keyword.name);
@@ -191,8 +187,7 @@
   }
 
   void test_value() {
-    var scanner = new StringScanner('true & "home"', includeComments: true);
-    var token = scanner.tokenize();
+    var token = scanString('true & "home"', includeComments: true).tokens;
     // Keywords
     expect(token.lexeme, 'true');
     expect(token.value(), Keyword.TRUE);