Index: pkg/yaml/lib/src/scanner.dart |
diff --git a/pkg/yaml/lib/src/scanner.dart b/pkg/yaml/lib/src/scanner.dart |
index 00685539ce4e0bf9b6bfd86199363bf35f35d808..a4f25c8bc1351e427be697450084bf73776ae8b0 100644 |
--- a/pkg/yaml/lib/src/scanner.dart |
+++ b/pkg/yaml/lib/src/scanner.dart |
@@ -1084,6 +1084,7 @@ class Scanner { |
/// Scans a block scalar. |
Token _scanBlockScalar({bool literal: false}) { |
+ print("scanning block scalar"); |
Bob Nystrom
2014/12/12 01:47:37
Delete.
|
var start = _scanner.state; |
// Eat the indicator '|' or '>'. |
@@ -1156,6 +1157,7 @@ class Scanner { |
var leadingBreak = ''; |
var leadingBlank = false; |
var trailingBlank = false; |
+ var end = _scanner.position; |
while (_scanner.column == indent && !_scanner.isDone) { |
// Check for a document indicator. libyaml doesn't do this, but the spec |
// mandates it. See example 9.5: |
@@ -1188,6 +1190,7 @@ class Scanner { |
_scanner.readChar(); |
} |
buffer.write(_scanner.substring(startPosition)); |
+ end = _scanner.position; |
// libyaml always reads a line here, but this breaks on block scalars at |
// the end of the document that end without newlines. See example 8.1: |
@@ -1204,7 +1207,7 @@ class Scanner { |
if (chomping != _Chomping.STRIP) buffer.write(leadingBreak); |
if (chomping == _Chomping.KEEP) buffer.write(trailingBreaks); |
- return new ScalarToken(_scanner.spanFrom(start), buffer.toString(), |
+ return new ScalarToken(_scanner.spanFrom(start, end), buffer.toString(), |
literal ? ScalarStyle.LITERAL : ScalarStyle.FOLDED); |
} |
@@ -1430,6 +1433,7 @@ class Scanner { |
/// Scans a plain scalar. |
Token _scanPlainScalar() { |
var start = _scanner.state; |
+ var end = _scanner.state; |
var buffer = new StringBuffer(); |
var leadingBreak = ''; |
var trailingBreaks = ''; |
@@ -1466,6 +1470,7 @@ class Scanner { |
_scanner.readChar(); |
} |
buffer.write(_scanner.substring(startPosition)); |
+ end = _scanner.state; |
// Is it the end? |
if (!_isBlank && !_isBreak) break; |
@@ -1501,7 +1506,7 @@ class Scanner { |
// Allow a simple key after a plain scalar with leading blanks. |
if (leadingBreak.isNotEmpty) _simpleKeyAllowed = true; |
- return new ScalarToken(_scanner.spanFrom(start), buffer.toString(), |
+ return new ScalarToken(_scanner.spanFrom(start, end), buffer.toString(), |
ScalarStyle.PLAIN); |
} |