mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 23:51:23 +00:00
switch perf tool to use scanner in front_end
R=paulberry@google.com Review URL: https://codereview.chromium.org/2507093003 .
This commit is contained in:
parent
226e47a127
commit
618cbad43a
|
@ -9,15 +9,12 @@ import 'dart:async';
|
|||
import 'dart:io' show exit, stderr;
|
||||
|
||||
import 'package:analyzer/dart/ast/ast.dart';
|
||||
import 'package:analyzer/dart/ast/token.dart';
|
||||
import 'package:analyzer/error/listener.dart';
|
||||
import 'package:analyzer/file_system/file_system.dart' show ResourceUriResolver;
|
||||
import 'package:analyzer/file_system/physical_file_system.dart'
|
||||
show PhysicalResourceProvider;
|
||||
import 'package:analyzer/source/package_map_resolver.dart';
|
||||
import 'package:analyzer/src/context/builder.dart';
|
||||
import 'package:analyzer/src/dart/scanner/reader.dart';
|
||||
import 'package:analyzer/src/dart/scanner/scanner.dart';
|
||||
import 'package:analyzer/src/dart/sdk/sdk.dart' show FolderBasedDartSdk;
|
||||
import 'package:analyzer/src/generated/parser.dart';
|
||||
import 'package:analyzer/src/generated/source.dart';
|
||||
|
@ -26,6 +23,10 @@ import 'package:kernel/analyzer/loader.dart';
|
|||
import 'package:kernel/kernel.dart';
|
||||
import 'package:package_config/discovery.dart';
|
||||
|
||||
import 'package:front_end/src/scanner/reader.dart';
|
||||
import 'package:front_end/src/scanner/scanner.dart';
|
||||
import 'package:front_end/src/scanner/token.dart';
|
||||
|
||||
/// Cumulative total number of chars scanned.
|
||||
int scanTotalChars = 0;
|
||||
|
||||
|
@ -205,13 +206,23 @@ Token tokenize(Source source) {
|
|||
scanTotalChars += contents.length;
|
||||
// TODO(sigmund): is there a way to scan from a random-access-file without
|
||||
// first converting to String?
|
||||
var scanner = new Scanner(source, new CharSequenceReader(contents),
|
||||
AnalysisErrorListener.NULL_LISTENER)..preserveComments = false;
|
||||
var scanner = new _Scanner(contents);
|
||||
var token = scanner.tokenize();
|
||||
scanTimer.stop();
|
||||
return token;
|
||||
}
|
||||
|
||||
class _Scanner extends Scanner {
|
||||
_Scanner(String contents) : super(new CharSequenceReader(contents)) {
|
||||
preserveComments = false;
|
||||
}
|
||||
|
||||
@override
|
||||
void reportError(errorCode, int offset, List<Object> arguments) {
|
||||
// ignore errors.
|
||||
}
|
||||
}
|
||||
|
||||
/// Report that metric [name] took [time] micro-seconds to process
|
||||
/// [scanTotalChars] characters.
|
||||
void report(String name, int time) {
|
||||
|
|
Loading…
Reference in a new issue