Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(478)

Side by Side Diff: pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart

Issue 2709983002: fasta: Use more efficient Uint16List/Uint32List for line offset information, use hints for length (Closed)
Patch Set: addressed comment Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 7 import 'error_token.dart' show
8 ErrorToken; 8 ErrorToken;
9 9
10 import 'keyword.dart' show 10 import 'keyword.dart' show
(...skipping 21 matching lines...) Expand all
32 32
33 import 'abstract_scanner.dart' show 33 import 'abstract_scanner.dart' show
34 AbstractScanner; 34 AbstractScanner;
35 35
36 import 'package:front_end/src/fasta/util/link.dart' show 36 import 'package:front_end/src/fasta/util/link.dart' show
37 Link; 37 Link;
38 38
39 abstract class ArrayBasedScanner extends AbstractScanner { 39 abstract class ArrayBasedScanner extends AbstractScanner {
40 bool hasErrors = false; 40 bool hasErrors = false;
41 41
42 ArrayBasedScanner(bool includeComments) 42 ArrayBasedScanner(bool includeComments, {int numberOfBytesHint})
43 : super(includeComments); 43 : super(includeComments, numberOfBytesHint: numberOfBytesHint);
44 44
45 /** 45 /**
46 * The stack of open groups, e.g [: { ... ( .. :] 46 * The stack of open groups, e.g [: { ... ( .. :]
47 * Each BeginGroupToken has a pointer to the token where the group 47 * Each BeginGroupToken has a pointer to the token where the group
48 * ends. This field is set when scanning the end group token. 48 * ends. This field is set when scanning the end group token.
49 */ 49 */
50 Link<BeginGroupToken> groupingStack = const Link<BeginGroupToken>(); 50 Link<BeginGroupToken> groupingStack = const Link<BeginGroupToken>();
51 51
52 /** 52 /**
53 * Appends a fixed token whose kind and content is determined by [info]. 53 * Appends a fixed token whose kind and content is determined by [info].
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 * something which cannot possibly be part of a type parameter/argument 244 * something which cannot possibly be part of a type parameter/argument
245 * list, like the '=' in the above example. 245 * list, like the '=' in the above example.
246 */ 246 */
247 void discardOpenLt() { 247 void discardOpenLt() {
248 while (!groupingStack.isEmpty && 248 while (!groupingStack.isEmpty &&
249 identical(groupingStack.head.kind, LT_TOKEN)) { 249 identical(groupingStack.head.kind, LT_TOKEN)) {
250 groupingStack = groupingStack.tail; 250 groupingStack = groupingStack.tail;
251 } 251 }
252 } 252 }
253 } 253 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/scanner/abstract_scanner.dart ('k') | pkg/front_end/lib/src/fasta/scanner/utf8_bytes_scanner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698