OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** | 5 /** |
6 * A class for holding onto the data for a date so that it can be built | 6 * A class for holding onto the data for a date so that it can be built |
7 * up incrementally. | 7 * up incrementally. |
8 */ | 8 */ |
9 class _DateBuilder { | 9 class _DateBuilder { |
10 int year = 0, | 10 int year = 0, |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 80 |
81 /** | 81 /** |
82 * Return the next [howMany] items, or as many as there are remaining. | 82 * Return the next [howMany] items, or as many as there are remaining. |
83 * Does not modify the stream position. | 83 * Does not modify the stream position. |
84 */ | 84 */ |
85 peek([howMany = 1]) { | 85 peek([howMany = 1]) { |
86 var result; | 86 var result; |
87 if (contents is String) { | 87 if (contents is String) { |
88 result = contents.substring( | 88 result = contents.substring( |
89 index, | 89 index, |
90 Math.min(index + howMany, contents.length)); | 90 min(index + howMany, contents.length)); |
91 } else { | 91 } else { |
92 // Assume List | 92 // Assume List |
93 result = contents.getRange(index, howMany); | 93 result = contents.getRange(index, howMany); |
94 } | 94 } |
95 return result; | 95 return result; |
96 } | 96 } |
97 | 97 |
98 /** Return the remaining contents of the stream */ | 98 /** Return the remaining contents of the stream */ |
99 rest() => peek(contents.length - index); | 99 rest() => peek(contents.length - index); |
100 | 100 |
(...skipping 22 matching lines...) Expand all Loading... |
123 | 123 |
124 /** | 124 /** |
125 * Assuming that the contents are characters, read as many digits as we | 125 * Assuming that the contents are characters, read as many digits as we |
126 * can see and then return the corresponding integer. Advance the stream. | 126 * can see and then return the corresponding integer. Advance the stream. |
127 */ | 127 */ |
128 var digitMatcher = const RegExp(@'\d+'); | 128 var digitMatcher = const RegExp(@'\d+'); |
129 int nextInteger() { | 129 int nextInteger() { |
130 var string = digitMatcher.stringMatch(rest()); | 130 var string = digitMatcher.stringMatch(rest()); |
131 if (string == null || string.isEmpty()) return null; | 131 if (string == null || string.isEmpty()) return null; |
132 read(string.length); | 132 read(string.length); |
133 return Math.parseInt(string); | 133 return parseInt(string); |
134 } | 134 } |
135 } | 135 } |
OLD | NEW |