blob: ee65817c2fe116bf3964717db495555a4f28cc06 [file] [log] [blame]
// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library dart2js.parser.diet.task;
import '../common/tasks.dart' show
CompilerTask;
import '../compiler.dart' show
Compiler;
import '../elements/elements.dart' show
CompilationUnitElement;
import '../diagnostics/invariant.dart' show
invariant;
import '../tokens/token.dart' show
Token;
import 'listener.dart' show
ParserError;
import 'element_listener.dart' show
ElementListener;
import 'partial_parser.dart' show
PartialParser;
class DietParserTask extends CompilerTask {
DietParserTask(Compiler compiler) : super(compiler);
final String name = 'Diet Parser';
dietParse(CompilationUnitElement compilationUnit, Token tokens) {
measure(() {
Function idGenerator = compiler.getNextFreeClassId;
ElementListener listener =
new ElementListener(compiler.reporter, compilationUnit, idGenerator);
PartialParser parser = new PartialParser(listener);
try {
parser.parseUnit(tokens);
} on ParserError catch(_) {
assert(invariant(compilationUnit, compiler.compilationFailed));
}
});
}
}