Index: packages/petitparser/lib/src/debug/profile.dart |
diff --git a/packages/petitparser/lib/src/debug/profile.dart b/packages/petitparser/lib/src/debug/profile.dart |
deleted file mode 100644 |
index b4e442479eea2c5b0a7b7da6cb5926c44f1b7953..0000000000000000000000000000000000000000 |
--- a/packages/petitparser/lib/src/debug/profile.dart |
+++ /dev/null |
@@ -1,47 +0,0 @@ |
-part of petitparser.debug; |
- |
-/// Returns a transformed [parser] that when being used measures |
-/// the activation count and total time of each parser. |
-/// |
-/// For example, the snippet |
-/// |
-/// var parser = letter() & word().star(); |
-/// profile(parser).parse('f1234567890'); |
-/// |
-/// produces the following output: |
-/// |
-/// 1 2006 Instance of 'SequenceParser' |
-/// 1 697 Instance of 'PossessiveRepeatingParser'[0..*] |
-/// 11 406 Instance of 'CharacterParser'[letter or digit expected] |
-/// 1 947 Instance of 'CharacterParser'[letter expected] |
-/// |
-/// The first number refers to the number of activations of each parser, and |
-/// the second number is the microseconds spent in this parser and all its |
-/// children. |
-Parser profile(Parser root, [OutputHandler output = print]) { |
- var count = new Map(); |
- var watch = new Map(); |
- var parsers = new List(); |
- return new ContinuationParser(transformParser(root, (parser) { |
- parsers.add(parser); |
- return new ContinuationParser(parser, (continuation, context) { |
- count[parser]++; |
- watch[parser].start(); |
- var result = continuation(context); |
- watch[parser].stop(); |
- return result; |
- }); |
- }), (continuation, context) { |
- parsers.forEach((parser) { |
- count[parser] = 0; |
- watch[parser] = new Stopwatch(); |
- }); |
- var result = continuation(context); |
- parsers.forEach((parser) { |
- output('${count[parser]}\t' |
- '${watch[parser].elapsedMicroseconds}\t' |
- '$parser'); |
- }); |
- return result; |
- }); |
-} |