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 |