| Index: frog/leg/scanner/parser_bench.dart
|
| ===================================================================
|
| --- frog/leg/scanner/parser_bench.dart (revision 5925)
|
| +++ frog/leg/scanner/parser_bench.dart (working copy)
|
| @@ -1,114 +0,0 @@
|
| -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -// 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.
|
| -
|
| -/**
|
| - * A benchmark for the Dart parser.
|
| - */
|
| -class ParserBench extends BaseParserBench {
|
| - int charCount = 0;
|
| - double score = 0.0;
|
| -
|
| - Token scanFileNamed(String filename) {
|
| - Token token;
|
| - getBytes(filename, (bytes) {
|
| - Scanner scanner = makeScanner(bytes);
|
| - try {
|
| - token = scanner.tokenize();
|
| - printTokens(token);
|
| - charCount += scanner.charOffset;
|
| - } catch (MalformedInputException e) {
|
| - print("${filename}: ${e}");
|
| - }
|
| - });
|
| - return token;
|
| - }
|
| -
|
| - void timedParseAll(List<String> arguments) {
|
| - charCount = 0;
|
| - Stopwatch timer = new Stopwatch();
|
| - timer.start();
|
| - BenchListener listener = parseAll(arguments);
|
| - timer.stop();
|
| - print("Parsing (${listener.libraryTagCount} tags, "
|
| - "${listener.classCount} classes, "
|
| - "${listener.interfaceCount} interfaces, "
|
| - "${listener.aliasCount} typedefs, "
|
| - "${listener.topLevelMemberCount} top-level members) "
|
| - "took ${timer.elapsedInMs()}ms");
|
| - }
|
| -
|
| - BenchListener parseAll(List<String> arguments) {
|
| - charCount = 0;
|
| - Stopwatch timer = new Stopwatch();
|
| - timer.start();
|
| - BenchListener listener = new BenchListener();
|
| - for (String argument in arguments) {
|
| - parseFileNamed(argument, listener);
|
| - }
|
| - timer.stop();
|
| - score = charCount / timer.elapsedInMs();
|
| - return listener;
|
| - }
|
| -
|
| - void parseFileNamed(String argument, Listener listener) {
|
| - bool failed = true;
|
| - try {
|
| - PartialParser parser = new PartialParser(listener);
|
| - parser.parseUnit(scanFileNamed(argument));
|
| - failed = false;
|
| - } finally {
|
| - if (failed) print('Error in ${argument}');
|
| - }
|
| - }
|
| -
|
| - void main(List<String> arguments) {
|
| - for (int i = 0; i < 10; i++) {
|
| - timedParseAll(arguments);
|
| - }
|
| - final int iterations = 500;
|
| - VerboseProgressBar bar = new VerboseProgressBar(iterations);
|
| - bar.begin();
|
| - for (int i = 0; i < iterations; i++) {
|
| - bar.tick();
|
| - parseAll(arguments);
|
| - bar.recordScore(score);
|
| - }
|
| - bar.end();
|
| - for (int i = 0; i < 10; i++) {
|
| - timedParseAll(arguments);
|
| - }
|
| - }
|
| -}
|
| -
|
| -main() {
|
| - new ParserBench().main(argv);
|
| -}
|
| -
|
| -class BenchListener extends Listener {
|
| - int aliasCount = 0;
|
| - int classCount = 0;
|
| - int interfaceCount = 0;
|
| - int libraryTagCount = 0;
|
| - int topLevelMemberCount = 0;
|
| -
|
| - void beginTopLevelMember(Token token) {
|
| - topLevelMemberCount++;
|
| - }
|
| -
|
| - void beginLibraryTag(Token token) {
|
| - libraryTagCount++;
|
| - }
|
| -
|
| - void beginInterface(Token token) {
|
| - interfaceCount++;
|
| - }
|
| -
|
| - void beginClass(Token token) {
|
| - classCount++;
|
| - }
|
| -
|
| - void beginFunctionTypeAlias(Token token) {
|
| - aliasCount++;
|
| - }
|
| -}
|
|
|