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

Unified Diff: pkg/compiler/lib/src/parser/partial_elements.dart

Issue 2644843006: Use packages dart_parser, dart_scanner, and compiler_util. (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/parser/partial_elements.dart
diff --git a/pkg/compiler/lib/src/parser/partial_elements.dart b/pkg/compiler/lib/src/parser/partial_elements.dart
index c68e5e4521f55e18d10d44ec21a193e003256f66..948e9a16029a6e49e1ef2dcf2411bcebe5c4e487 100644
--- a/pkg/compiler/lib/src/parser/partial_elements.dart
+++ b/pkg/compiler/lib/src/parser/partial_elements.dart
@@ -31,14 +31,13 @@ import '../elements/modelx.dart'
TypedefElementX,
VariableList;
import '../elements/visitor.dart' show ElementVisitor;
-import '../tokens/token.dart' show Token;
-import '../tokens/token_constants.dart' as Tokens show EOF_TOKEN;
+import 'package:dart_scanner/dart_scanner.dart' show Token;
+import 'package:dart_scanner/dart_scanner.dart' as Tokens show EOF_TOKEN;
import '../tree/tree.dart';
-import 'class_element_parser.dart' show ClassElementParser;
-import 'listener.dart' show ParserError;
+import 'package:dart_parser/dart_parser.dart'
+ show ClassMemberParser, Parser, ParserError;
import 'member_listener.dart' show MemberListener;
import 'node_listener.dart' show NodeListener;
-import 'parser.dart' show Parser;
abstract class PartialElement implements DeclarationSite {
Token beginToken;
@@ -374,13 +373,14 @@ class PartialClassElement extends ClassElementX with PartialElement {
parsing.measure(() {
MemberListener listener = new MemberListener(
parsing.getScannerOptionsFor(this), reporter, this);
- Parser parser = new ClassElementParser(listener);
+ Parser parser = new ClassMemberParser(listener);
try {
Token token = parser.parseTopLevelDeclaration(beginToken);
assert(identical(token, endToken.next));
cachedNode = listener.popNode();
- assert(invariant(beginToken, listener.nodes.isEmpty,
- message: "Non-empty listener stack: ${listener.nodes}"));
+ assert(invariant(reporter.spanFromToken(beginToken),
+ listener.nodes.isEmpty,
+ message: "Non-empty listener stack: ${listener.nodes}"));
} on ParserError {
// TODO(ahe): Often, a ParserError is thrown while parsing the class
// body. This means that the stack actually contains most of the
@@ -443,7 +443,7 @@ Node parse(ParsingContext parsing, ElementX element, PartialElement partial,
doParse(new Parser(listener));
} on ParserError catch (e) {
partial.hasParseError = true;
- return new ErrorNode(element.position, e.reason);
+ return new ErrorNode(element.position, e.kind, e.arguments);
}
Node node = listener.popNode();
assert(listener.nodes.isEmpty);

Powered by Google App Engine
This is Rietveld 408576698