Use parseString() API instead of internal Parser. (#2010)

diff --git a/tool/parse.dart b/tool/parse.dart
index 1f4d38b..5cc6696 100644
--- a/tool/parse.dart
+++ b/tool/parse.dart
@@ -2,44 +2,11 @@
 // 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:analyzer/dart/analysis/utilities.dart';
 import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/error/error.dart';
-import 'package:analyzer/error/listener.dart';
-import 'package:analyzer/src/generated/parser.dart';
-import 'package:analyzer/src/string_source.dart';
-
-import 'package:analyzer/src/dart/scanner/reader.dart';
-import 'package:analyzer/src/dart/scanner/scanner.dart';
 import 'package:meta/meta.dart';
 
-class _ErrorListener implements AnalysisErrorListener {
-  final errors = <AnalysisError>[];
-
-  @override
-  void onError(AnalysisError error) {
-    errors.add(error);
-  }
-
-  void throwIfErrors() {
-    if (errors.isNotEmpty) {
-      throw Exception(errors);
-    }
-  }
-}
-
 class CompilationUnitParser {
-  CompilationUnit parse({@required String contents, @required String name}) {
-    var reader = CharSequenceReader(contents);
-    var stringSource = StringSource(contents, name);
-    var errorListener = _ErrorListener();
-    var scanner = Scanner(stringSource, reader, errorListener);
-    var startToken = scanner.tokenize();
-    errorListener.throwIfErrors();
-
-    var parser = Parser(stringSource, errorListener, featureSet: null);
-    var cu = parser.parseCompilationUnit(startToken);
-    errorListener.throwIfErrors();
-
-    return cu;
-  }
+  CompilationUnit parse({@required String contents, @required String name}) =>
+      parseString(content: contents, path: name).unit;
 }