| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | |
| 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.md file. | |
| 4 | |
| 5 library dart_scanner; | |
| 6 | |
| 7 import 'src/token.dart' show | |
| 8 Token; | |
| 9 | |
| 10 import 'src/utf8_bytes_scanner.dart' show | |
| 11 Utf8BytesScanner; | |
| 12 | |
| 13 abstract class Scanner { | |
| 14 List<int> get lineStarts; | |
| 15 Token tokenize(); | |
| 16 } | |
| 17 | |
| 18 class ScannerResult { | |
| 19 final Token tokens; | |
| 20 final List<int> lineStarts; | |
| 21 | |
| 22 ScannerResult(this.tokens, this.lineStarts); | |
| 23 } | |
| 24 | |
| 25 ScannerResult scan(List<int> bytes, {bool includeComments: false}) { | |
| 26 if (bytes.last != 0) { | |
| 27 throw new ArgumentError("[bytes]: the last byte must be null."); | |
| 28 } | |
| 29 Scanner scanner = | |
| 30 new Utf8BytesScanner(bytes, includeComments: includeComments); | |
| 31 return new ScannerResult(scanner.tokenize(), scanner.lineStarts); | |
| 32 } | |
| OLD | NEW |