| 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 library fasta.scanner.array_based_scanner; | 5 library fasta.scanner.array_based_scanner; |
| 6 | 6 |
| 7 import 'error_token.dart' show ErrorToken, UnmatchedToken; | 7 import 'error_token.dart' show ErrorToken, UnmatchedToken; |
| 8 | 8 |
| 9 import '../../scanner/token.dart' | 9 import '../../scanner/token.dart' |
| 10 show | 10 show |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 } | 255 } |
| 256 | 256 |
| 257 @override | 257 @override |
| 258 void appendSubstringToken(TokenType type, int start, bool asciiOnly, | 258 void appendSubstringToken(TokenType type, int start, bool asciiOnly, |
| 259 [int extraOffset = 0]) { | 259 [int extraOffset = 0]) { |
| 260 appendToken(createSubstringToken(type, start, asciiOnly, extraOffset)); | 260 appendToken(createSubstringToken(type, start, asciiOnly, extraOffset)); |
| 261 } | 261 } |
| 262 | 262 |
| 263 @override | 263 @override |
| 264 void appendSyntheticSubstringToken( | 264 void appendSyntheticSubstringToken( |
| 265 TokenType type, int start, bool asciiOnly, String closingQuotes) { | 265 TokenType type, int start, bool asciiOnly, String syntheticChars) { |
| 266 appendToken( | 266 appendToken( |
| 267 createSyntheticSubstringToken(type, start, asciiOnly, closingQuotes)); | 267 createSyntheticSubstringToken(type, start, asciiOnly, syntheticChars)); |
| 268 } | 268 } |
| 269 | 269 |
| 270 /** | 270 /** |
| 271 * Returns a new substring from the scan offset [start] to the current | 271 * Returns a new substring from the scan offset [start] to the current |
| 272 * [scanOffset] plus the [extraOffset]. For example, if the current | 272 * [scanOffset] plus the [extraOffset]. For example, if the current |
| 273 * scanOffset is 10, then [appendSubstringToken(5, -1)] will append the | 273 * scanOffset is 10, then [appendSubstringToken(5, -1)] will append the |
| 274 * substring string [5,9). | 274 * substring string [5,9). |
| 275 * | 275 * |
| 276 * Note that [extraOffset] can only be used if the covered character(s) are | 276 * Note that [extraOffset] can only be used if the covered character(s) are |
| 277 * known to be ASCII. | 277 * known to be ASCII. |
| 278 */ | 278 */ |
| 279 analyzer.StringToken createSubstringToken( | 279 analyzer.StringToken createSubstringToken( |
| 280 TokenType type, int start, bool asciiOnly, | 280 TokenType type, int start, bool asciiOnly, |
| 281 [int extraOffset = 0]); | 281 [int extraOffset = 0]); |
| 282 | 282 |
| 283 /** | 283 /** |
| 284 * Returns a new synthetic substring from the scan offset [start] | 284 * Returns a new synthetic substring from the scan offset [start] |
| 285 * to the current [scanOffset] plus the [closingQuotes]. | 285 * to the current [scanOffset] plus the [syntheticChars]. |
| 286 * The [closingQuotes] are appended to the unterminated string | 286 * The [syntheticChars] are appended to the unterminated string |
| 287 * literal's lexeme but the returned token's length will *not* include | 287 * literal's lexeme but the returned token's length will *not* include |
| 288 * those closing quotes so as to be true to the original source. | 288 * those additional characters so as to be true to the original source. |
| 289 */ | 289 */ |
| 290 analyzer.StringToken createSyntheticSubstringToken( | 290 analyzer.StringToken createSyntheticSubstringToken( |
| 291 TokenType type, int start, bool asciiOnly, String closingQuotes); | 291 TokenType type, int start, bool asciiOnly, String syntheticChars); |
| 292 | 292 |
| 293 /** | 293 /** |
| 294 * This method is called to discard '<' from the "grouping" stack. | 294 * This method is called to discard '<' from the "grouping" stack. |
| 295 * | 295 * |
| 296 * [PartialParser.skipExpression] relies on the fact that we do not | 296 * [PartialParser.skipExpression] relies on the fact that we do not |
| 297 * create groups for stuff like: | 297 * create groups for stuff like: |
| 298 * [:a = b < c, d = e > f:]. | 298 * [:a = b < c, d = e > f:]. |
| 299 * | 299 * |
| 300 * In other words, this method is called when the scanner recognizes | 300 * In other words, this method is called when the scanner recognizes |
| 301 * something which cannot possibly be part of a type parameter/argument | 301 * something which cannot possibly be part of a type parameter/argument |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 // | | 367 // | |
| 368 // next | 368 // next |
| 369 // v | 369 // v |
| 370 // EOF | 370 // EOF |
| 371 TokenType type = closeBraceInfoFor(begin); | 371 TokenType type = closeBraceInfoFor(begin); |
| 372 appendToken(new SyntheticToken(type, tokenStart)); | 372 appendToken(new SyntheticToken(type, tokenStart)); |
| 373 begin.endGroup = tail; | 373 begin.endGroup = tail; |
| 374 appendErrorToken(new UnmatchedToken(begin)); | 374 appendErrorToken(new UnmatchedToken(begin)); |
| 375 } | 375 } |
| 376 } | 376 } |
| OLD | NEW |