Chromium Code Reviews| 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); |
| } |