Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Side by Side Diff: packages/yaml/lib/src/scanner.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « packages/yaml/lib/src/parser.dart ('k') | packages/yaml/lib/src/style.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library yaml.scanner;
6
7 import 'package:collection/collection.dart'; 5 import 'package:collection/collection.dart';
8 import 'package:string_scanner/string_scanner.dart'; 6 import 'package:string_scanner/string_scanner.dart';
9 import 'package:source_span/source_span.dart'; 7 import 'package:source_span/source_span.dart';
10 8
11 import 'style.dart'; 9 import 'style.dart';
12 import 'token.dart'; 10 import 'token.dart';
13 import 'utils.dart'; 11 import 'utils.dart';
14 import 'yaml_exception.dart'; 12 import 'yaml_exception.dart';
15 13
16 /// A scanner that reads a string of Unicode characters and emits [Token]s. 14 /// A scanner that reads a string of Unicode characters and emits [Token]s.
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 if (!_tokenAvailable) _fetchMoreTokens(); 317 if (!_tokenAvailable) _fetchMoreTokens();
320 return _tokens.first; 318 return _tokens.first;
321 } 319 }
322 320
323 /// Ensures that [_tokens] contains at least one token which can be returned. 321 /// Ensures that [_tokens] contains at least one token which can be returned.
324 void _fetchMoreTokens() { 322 void _fetchMoreTokens() {
325 while (true) { 323 while (true) {
326 if (_tokens.isNotEmpty) { 324 if (_tokens.isNotEmpty) {
327 _staleSimpleKeys(); 325 _staleSimpleKeys();
328 326
327 // If there are no more tokens to fetch, break.
328 if (_tokens.last.type == TokenType.STREAM_END) break;
329
329 // If the current token could be a simple key, we need to scan more 330 // If the current token could be a simple key, we need to scan more
330 // tokens until we determine whether it is or not. Otherwise we might 331 // tokens until we determine whether it is or not. Otherwise we might
331 // not emit the `KEY` token before we emit the value of the key. 332 // not emit the `KEY` token before we emit the value of the key.
332 if (!_simpleKeys.any((key) => 333 if (!_simpleKeys.any((key) =>
333 key != null && key.tokenNumber == _tokensParsed)) { 334 key != null && key.tokenNumber == _tokensParsed)) {
334 break; 335 break;
335 } 336 }
336 } 337 }
337 338
338 _fetchNextToken(); 339 _fetchNextToken();
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 } else { 456 } else {
456 _fetchValue(); 457 _fetchValue();
457 } 458 }
458 return; 459 return;
459 default: 460 default:
460 if (!_isNonBreak) _invalidScalarCharacter(); 461 if (!_isNonBreak) _invalidScalarCharacter();
461 462
462 _fetchPlainScalar(); 463 _fetchPlainScalar();
463 return; 464 return;
464 } 465 }
465
466 throw 'Inaccessible';
467 } 466 }
468 467
469 /// Throws an error about a disallowed character. 468 /// Throws an error about a disallowed character.
470 void _invalidScalarCharacter() => 469 void _invalidScalarCharacter() =>
471 _scanner.error("Unexpected character.", length: 1); 470 _scanner.error("Unexpected character.", length: 1);
472 471
473 /// Checks the list of potential simple keys and remove the positions that 472 /// Checks the list of potential simple keys and remove the positions that
474 /// cannot contain simple keys anymore. 473 /// cannot contain simple keys anymore.
475 void _staleSimpleKeys() { 474 void _staleSimpleKeys() {
476 for (var i = 0; i < _simpleKeys.length; i++) { 475 for (var i = 0; i < _simpleKeys.length; i++) {
(...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1675 1674
1676 /// All trailing whitespace is preserved. 1675 /// All trailing whitespace is preserved.
1677 static const KEEP = const _Chomping("KEEP"); 1676 static const KEEP = const _Chomping("KEEP");
1678 1677
1679 final String name; 1678 final String name;
1680 1679
1681 const _Chomping(this.name); 1680 const _Chomping(this.name);
1682 1681
1683 String toString() => name; 1682 String toString() => name;
1684 } 1683 }
OLDNEW
« no previous file with comments | « packages/yaml/lib/src/parser.dart ('k') | packages/yaml/lib/src/style.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698