| 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 dart2js.scanner.string_scanner; | 5 library dart2js.scanner.string_scanner; |
| 6 | 6 |
| 7 import '../../scanner/token.dart' show TokenType; | 7 import '../../scanner/token.dart' show SyntheticStringToken, TokenType; |
| 8 |
| 9 import '../../scanner/token.dart' as analyzer show StringToken; |
| 8 | 10 |
| 9 import 'array_based_scanner.dart' show ArrayBasedScanner; | 11 import 'array_based_scanner.dart' show ArrayBasedScanner; |
| 10 | 12 |
| 11 import 'token.dart' show CommentToken, DartDocToken, StringToken; | 13 import 'token.dart' show CommentToken, DartDocToken, StringToken; |
| 12 | 14 |
| 13 /** | 15 /** |
| 14 * Scanner that reads from a String and creates tokens that points to | 16 * Scanner that reads from a String and creates tokens that points to |
| 15 * substrings. | 17 * substrings. |
| 16 */ | 18 */ |
| 17 class StringScanner extends ArrayBasedScanner { | 19 class StringScanner extends ArrayBasedScanner { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 38 int advance() => string.codeUnitAt(++scanOffset); | 40 int advance() => string.codeUnitAt(++scanOffset); |
| 39 int peek() => string.codeUnitAt(scanOffset + 1); | 41 int peek() => string.codeUnitAt(scanOffset + 1); |
| 40 | 42 |
| 41 int get stringOffset => scanOffset; | 43 int get stringOffset => scanOffset; |
| 42 | 44 |
| 43 int currentAsUnicode(int next) => next; | 45 int currentAsUnicode(int next) => next; |
| 44 | 46 |
| 45 void handleUnicode(int startScanOffset) {} | 47 void handleUnicode(int startScanOffset) {} |
| 46 | 48 |
| 47 @override | 49 @override |
| 48 StringToken createSubstringToken(TokenType type, int start, bool asciiOnly, | 50 analyzer.StringToken createSubstringToken( |
| 51 TokenType type, int start, bool asciiOnly, |
| 49 [int extraOffset = 0]) { | 52 [int extraOffset = 0]) { |
| 50 return new StringToken.fromSubstring( | 53 return new StringToken.fromSubstring( |
| 51 type, string, start, scanOffset + extraOffset, tokenStart, | 54 type, string, start, scanOffset + extraOffset, tokenStart, |
| 52 canonicalize: true, precedingComments: comments); | 55 canonicalize: true, precedingComments: comments); |
| 53 } | 56 } |
| 54 | 57 |
| 55 @override | 58 @override |
| 59 analyzer.StringToken createSyntheticSubstringToken( |
| 60 TokenType type, int start, bool asciiOnly, String closingQuotes) { |
| 61 String source = string.substring(start, scanOffset); |
| 62 return new SyntheticStringToken( |
| 63 type, source + closingQuotes, start, source.length); |
| 64 } |
| 65 |
| 66 @override |
| 56 CommentToken createCommentToken(TokenType type, int start, bool asciiOnly, | 67 CommentToken createCommentToken(TokenType type, int start, bool asciiOnly, |
| 57 [int extraOffset = 0]) { | 68 [int extraOffset = 0]) { |
| 58 return new CommentToken.fromSubstring( | 69 return new CommentToken.fromSubstring( |
| 59 type, string, start, scanOffset + extraOffset, tokenStart, | 70 type, string, start, scanOffset + extraOffset, tokenStart, |
| 60 canonicalize: true); | 71 canonicalize: true); |
| 61 } | 72 } |
| 62 | 73 |
| 63 @override | 74 @override |
| 64 DartDocToken createDartDocToken(TokenType type, int start, bool asciiOnly, | 75 DartDocToken createDartDocToken(TokenType type, int start, bool asciiOnly, |
| 65 [int extraOffset = 0]) { | 76 [int extraOffset = 0]) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 80 | 91 |
| 81 SubStringScanner(this.baseOffset, String string, | 92 SubStringScanner(this.baseOffset, String string, |
| 82 {bool includeComments: false}) | 93 {bool includeComments: false}) |
| 83 : super(string, includeComments: includeComments); | 94 : super(string, includeComments: includeComments); |
| 84 | 95 |
| 85 @override | 96 @override |
| 86 void beginToken() { | 97 void beginToken() { |
| 87 tokenStart = baseOffset + stringOffset; | 98 tokenStart = baseOffset + stringOffset; |
| 88 } | 99 } |
| 89 } | 100 } |
| OLD | NEW |