Add an additional optional argument to SpanScanner.spanFrom.
R=rnystrom@google.com
Review URL: https://codereview.chromium.org//795343003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/string_scanner@42305 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkgs/string_scanner/CHANGELOG.md b/pkgs/string_scanner/CHANGELOG.md
index d273748..9c03874 100644
--- a/pkgs/string_scanner/CHANGELOG.md
+++ b/pkgs/string_scanner/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.1.3
+
+* Add an optional `endState` argument to `SpanScanner.spanFrom`.
+
## 0.1.2
* Add `StringScanner.substring`, which returns a substring of the source string.
diff --git a/pkgs/string_scanner/lib/src/span_scanner.dart b/pkgs/string_scanner/lib/src/span_scanner.dart
index a70d5fd..2a78b5b 100644
--- a/pkgs/string_scanner/lib/src/span_scanner.dart
+++ b/pkgs/string_scanner/lib/src/span_scanner.dart
@@ -58,8 +58,10 @@
/// Creates a [FileSpan] representing the source range between [startState]
/// and the current position.
- FileSpan spanFrom(LineScannerState startState) =>
- _sourceFile.span(startState.position, position);
+ FileSpan spanFrom(LineScannerState startState, [LineScannerState endState]) {
+ var endPosition = endState == null ? position : endState.position;
+ return _sourceFile.span(startState.position, endPosition);
+ }
bool matches(Pattern pattern) {
if (!super.matches(pattern)) {
diff --git a/pkgs/string_scanner/pubspec.yaml b/pkgs/string_scanner/pubspec.yaml
index d14a43e..da93ead 100644
--- a/pkgs/string_scanner/pubspec.yaml
+++ b/pkgs/string_scanner/pubspec.yaml
@@ -1,5 +1,5 @@
name: string_scanner
-version: 0.1.2
+version: 0.1.3
author: "Dart Team <misc@dartlang.org>"
homepage: http://www.dartlang.org
description: >