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

Side by Side Diff: pkg/string_scanner/lib/src/string_scanner.dart

Issue 689513002: Rewrite the pkg/yaml parser. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « pkg/string_scanner/CHANGELOG.md ('k') | pkg/string_scanner/pubspec.yaml » ('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 string_scanner.string_scanner; 5 library string_scanner.string_scanner;
6 6
7 import 'package:source_span/source_span.dart'; 7 import 'package:source_span/source_span.dart';
8 8
9 import 'exception.dart'; 9 import 'exception.dart';
10 import 'utils.dart'; 10 import 'utils.dart';
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 124
125 /// Returns whether or not [pattern] matches at the current position of the 125 /// Returns whether or not [pattern] matches at the current position of the
126 /// string. 126 /// string.
127 /// 127 ///
128 /// This doesn't move the scan pointer forward. 128 /// This doesn't move the scan pointer forward.
129 bool matches(Pattern pattern) { 129 bool matches(Pattern pattern) {
130 _lastMatch = pattern.matchAsPrefix(string, position); 130 _lastMatch = pattern.matchAsPrefix(string, position);
131 return _lastMatch != null; 131 return _lastMatch != null;
132 } 132 }
133 133
134 /// Returns the substring of [string] between [start] and [end].
135 ///
136 /// Unlike [String.substring], [end] defaults to [position] rather than the
137 /// end of the string.
138 String substring(int start, [int end]) {
139 if (end == null) end = position;
140 return string.substring(start, end);
141 }
142
134 /// Throws a [FormatException] with [message] as well as a detailed 143 /// Throws a [FormatException] with [message] as well as a detailed
135 /// description of the location of the error in the string. 144 /// description of the location of the error in the string.
136 /// 145 ///
137 /// [match] is the match information for the span of the string with which the 146 /// [match] is the match information for the span of the string with which the
138 /// error is associated. This should be a match returned by this scanner's 147 /// error is associated. This should be a match returned by this scanner's
139 /// [lastMatch] property. By default, the error is associated with the last 148 /// [lastMatch] property. By default, the error is associated with the last
140 /// match. 149 /// match.
141 /// 150 ///
142 /// If [position] and/or [length] are passed, they are used as the error span 151 /// If [position] and/or [length] are passed, they are used as the error span
143 /// instead. If only [length] is passed, [position] defaults to the current 152 /// instead. If only [length] is passed, [position] defaults to the current
(...skipping 14 matching lines...) Expand all
158 throw new StringScannerException(message, span, string); 167 throw new StringScannerException(message, span, string);
159 } 168 }
160 169
161 // TODO(nweiz): Make this handle long lines more gracefully. 170 // TODO(nweiz): Make this handle long lines more gracefully.
162 /// Throws a [FormatException] describing that [name] is expected at the 171 /// Throws a [FormatException] describing that [name] is expected at the
163 /// current position in the string. 172 /// current position in the string.
164 void _fail(String name) { 173 void _fail(String name) {
165 error("expected $name.", position: this.position, length: 0); 174 error("expected $name.", position: this.position, length: 0);
166 } 175 }
167 } 176 }
OLDNEW
« no previous file with comments | « pkg/string_scanner/CHANGELOG.md ('k') | pkg/string_scanner/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698