| OLD | NEW |
| 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 analyzer.src.dart.scanner.scanner; | 5 library analyzer.src.dart.scanner.scanner; |
| 6 | 6 |
| 7 import 'package:analyzer/error/error.dart'; | 7 import 'package:analyzer/error/error.dart'; |
| 8 import 'package:analyzer/error/listener.dart'; | 8 import 'package:analyzer/error/listener.dart'; |
| 9 import 'package:analyzer/src/dart/error/syntactic_errors.dart'; | 9 import 'package:analyzer/src/dart/error/syntactic_errors.dart'; |
| 10 import 'package:analyzer/src/dart/scanner/reader.dart'; | 10 import 'package:analyzer/src/dart/scanner/reader.dart'; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 Token get tail { | 152 Token get tail { |
| 153 throw 'unsupported operation'; | 153 throw 'unsupported operation'; |
| 154 } | 154 } |
| 155 | 155 |
| 156 @override | 156 @override |
| 157 Token tokenize() { | 157 Token tokenize() { |
| 158 fasta.ScannerResult result = fasta.scanString(_contents, | 158 fasta.ScannerResult result = fasta.scanString(_contents, |
| 159 includeComments: _preserveComments, | 159 includeComments: _preserveComments, |
| 160 scanGenericMethodComments: scanGenericMethodComments, | 160 scanGenericMethodComments: scanGenericMethodComments, |
| 161 scanLazyAssignmentOperators: scanLazyAssignmentOperators); | 161 scanLazyAssignmentOperators: scanLazyAssignmentOperators); |
| 162 |
| 162 // fasta pretends there is an additional line at EOF | 163 // fasta pretends there is an additional line at EOF |
| 163 lineStarts | 164 result.lineStarts.removeLast(); |
| 164 .addAll(result.lineStarts.sublist(1, result.lineStarts.length - 1)); | 165 |
| 166 lineStarts.addAll(result.lineStarts); |
| 165 fasta.Token token = result.tokens; | 167 fasta.Token token = result.tokens; |
| 166 // The default recovery strategy used by scanString | 168 // The default recovery strategy used by scanString |
| 167 // places all error tokens at the head of the stream. | 169 // places all error tokens at the head of the stream. |
| 168 while (token.type == TokenType.BAD_INPUT) { | 170 while (token.type == TokenType.BAD_INPUT) { |
| 169 translateErrorToken(token, reportError); | 171 translateErrorToken(token, reportError); |
| 170 token = token.next; | 172 token = token.next; |
| 171 } | 173 } |
| 172 firstToken = token; | 174 firstToken = token; |
| 173 // Update all token offsets based upon the reader's starting offset | 175 // Update all token offsets based upon the reader's starting offset |
| 174 if (_readerOffset != -1) { | 176 if (_readerOffset != -1) { |
| 175 final int delta = _readerOffset + 1; | 177 final int delta = _readerOffset + 1; |
| 176 do { | 178 do { |
| 177 token.offset += delta; | 179 token.offset += delta; |
| 178 token = token.next; | 180 token = token.next; |
| 179 } while (!token.isEof); | 181 } while (!token.isEof); |
| 180 } | 182 } |
| 181 return firstToken; | 183 return firstToken; |
| 182 } | 184 } |
| 183 | 185 |
| 184 @override | 186 @override |
| 185 set preserveComments(bool preserveComments) { | 187 set preserveComments(bool preserveComments) { |
| 186 this._preserveComments = preserveComments; | 188 this._preserveComments = preserveComments; |
| 187 } | 189 } |
| 188 } | 190 } |
| OLD | NEW |