| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 part of scanner; | 5 part of scanner; |
| 6 | 6 |
| 7 const int EOF_TOKEN = 0; | 7 const int EOF_TOKEN = 0; |
| 8 | 8 |
| 9 const int KEYWORD_TOKEN = $k; | 9 const int KEYWORD_TOKEN = $k; |
| 10 const int IDENTIFIER_TOKEN = $a; | 10 const int IDENTIFIER_TOKEN = $a; |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 : this.fromSource(info, new SourceString(value), charOffset); | 178 : this.fromSource(info, new SourceString(value), charOffset); |
| 179 | 179 |
| 180 StringToken.fromSource(PrecedenceInfo info, this.value, int charOffset) | 180 StringToken.fromSource(PrecedenceInfo info, this.value, int charOffset) |
| 181 : super(info, charOffset); | 181 : super(info, charOffset); |
| 182 | 182 |
| 183 String toString() => "StringToken(${value.slowToString()})"; | 183 String toString() => "StringToken(${value.slowToString()})"; |
| 184 | 184 |
| 185 String slowToString() => value.slowToString(); | 185 String slowToString() => value.slowToString(); |
| 186 } | 186 } |
| 187 | 187 |
| 188 abstract class SourceString extends Iterable<int> { | 188 abstract class SourceString extends IterableBase<int> { |
| 189 const factory SourceString(String string) = StringWrapper; | 189 const factory SourceString(String string) = StringWrapper; |
| 190 | 190 |
| 191 void printOn(StringBuffer sb); | 191 void printOn(StringBuffer sb); |
| 192 | 192 |
| 193 /** Gives a [SourceString] that is not including the [initial] first and | 193 /** Gives a [SourceString] that is not including the [initial] first and |
| 194 * [terminal] last characters. This is only intended to be used to remove | 194 * [terminal] last characters. This is only intended to be used to remove |
| 195 * quotes from string literals (including an initial '@' for raw strings). | 195 * quotes from string literals (including an initial '@' for raw strings). |
| 196 */ | 196 */ |
| 197 SourceString copyWithoutQuotes(int initial, int terminal); | 197 SourceString copyWithoutQuotes(int initial, int terminal); |
| 198 | 198 |
| 199 String get stringValue; | 199 String get stringValue; |
| 200 | 200 |
| 201 String slowToString(); | 201 String slowToString(); |
| 202 | 202 |
| 203 bool get isEmpty; | 203 bool get isEmpty; |
| 204 | 204 |
| 205 bool isPrivate(); | 205 bool isPrivate(); |
| 206 } | 206 } |
| 207 | 207 |
| 208 class StringWrapper extends Iterable<int> implements SourceString { | 208 class StringWrapper extends IterableBase<int> implements SourceString { |
| 209 final String stringValue; | 209 final String stringValue; |
| 210 | 210 |
| 211 const StringWrapper(String this.stringValue); | 211 const StringWrapper(String this.stringValue); |
| 212 | 212 |
| 213 int get hashCode => stringValue.hashCode; | 213 int get hashCode => stringValue.hashCode; |
| 214 | 214 |
| 215 bool operator ==(other) { | 215 bool operator ==(other) { |
| 216 return other is SourceString && toString() == other.slowToString(); | 216 return other is SourceString && toString() == other.slowToString(); |
| 217 } | 217 } |
| 218 | 218 |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 | 521 |
| 522 const PrecedenceInfo HEXADECIMAL_INFO = | 522 const PrecedenceInfo HEXADECIMAL_INFO = |
| 523 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); | 523 const PrecedenceInfo(const SourceString('hexadecimal'), 0, HEXADECIMAL_TOKEN); |
| 524 | 524 |
| 525 const PrecedenceInfo COMMENT_INFO = | 525 const PrecedenceInfo COMMENT_INFO = |
| 526 const PrecedenceInfo(const SourceString('comment'), 0, COMMENT_TOKEN); | 526 const PrecedenceInfo(const SourceString('comment'), 0, COMMENT_TOKEN); |
| 527 | 527 |
| 528 // For reporting lexical errors. | 528 // For reporting lexical errors. |
| 529 const PrecedenceInfo ERROR_INFO = | 529 const PrecedenceInfo ERROR_INFO = |
| 530 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); | 530 const PrecedenceInfo(const SourceString('?'), 0, UNKNOWN_TOKEN); |
| OLD | NEW |