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

Unified Diff: dart/frog/leg/scanner/listener.dart

Issue 9283031: Build script tags. (Closed) Base URL: ssh://aaricia.aar/home/ahe/Dart/all/dart.googlecode.com.git@script
Patch Set: Address review comments Created 8 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
« no previous file with comments | « dart/frog/leg/scanner/class_element_parser.dart ('k') | dart/frog/leg/scanner/scanner_task.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/frog/leg/scanner/listener.dart
diff --git a/dart/frog/leg/scanner/listener.dart b/dart/frog/leg/scanner/listener.dart
index 41563d300d5efc94af0bfc58fa650ab6aa2f31ad..55904511798dcff819328d9f996d109b052f7ef2 100644
--- a/dart/frog/leg/scanner/listener.dart
+++ b/dart/frog/leg/scanner/listener.dart
@@ -456,13 +456,22 @@ class ElementListener extends Listener {
final CompilationUnitElement compilationUnitElement;
Link<Node> nodes = const EmptyLink<Node>();
- Link<Element> topLevelElements = const EmptyLink<Element>();
ElementListener(Canceler this.canceler,
CompilationUnitElement this.compilationUnitElement);
void endLibraryTag(bool hasPrefix, Token beginToken, Token endToken) {
- canceler.cancel("library tags are not implemented", token: beginToken);
+ LiteralString prefix = null;
+ Identifier argumentName = null;
+ if (hasPrefix) {
+ prefix = popNode();
+ argumentName = popNode();
+ }
+ LiteralString firstArgument = popNode();
+ Identifier tag = popNode();
+ compilationUnitElement.addTag(new ScriptTag(tag, firstArgument,
+ argumentName, prefix,
+ beginToken, endToken));
}
void endClassDeclaration(int interfacesCount, Token beginToken,
@@ -623,7 +632,7 @@ class ElementListener extends Listener {
}
void pushElement(Element element) {
- topLevelElements = topLevelElements.prepend(element);
+ compilationUnitElement.addMember(element, canceler);
}
void pushNode(Node node) {
@@ -662,6 +671,10 @@ class ElementListener extends Listener {
(delimiter === null) ? null : new SourceString(delimiter);
return new NodeList(beginToken, nodes, endToken, sourceDelimiter);
}
+
+ void handleLiteralString(Token token) {
+ pushNode(new LiteralString(token));
+ }
}
class NodeListener extends ElementListener {
@@ -691,19 +704,6 @@ class NodeListener extends ElementListener {
typedefKeyword, endToken));
}
- void endLibraryTag(bool hasPrefix, Token beginToken, Token endToken) {
- LiteralString prefix = null;
- Identifier argumentName = null;
- if (hasPrefix) {
- prefix = popNode();
- argumentName = popNode();
- }
- LiteralString firstArgument = popNode();
- Identifier tag = popNode();
- pushNode(new ScriptTag(tag, firstArgument, argumentName, prefix,
- beginToken, endToken));
- }
-
void endInterface(int supertypeCount, Token interfaceKeyword,
Token extendsKeyword, Token endToken) {
NodeList body = popNode();
@@ -788,10 +788,6 @@ class NodeListener extends ElementListener {
pushNode(new LiteralBool(token, (t, e) => handleOnError(t, e)));
}
- void handleLiteralString(Token token) {
- pushNode(new LiteralString(token));
- }
-
void handleLiteralNull(Token token) {
pushNode(new LiteralNull(token));
}
« no previous file with comments | « dart/frog/leg/scanner/class_element_parser.dart ('k') | dart/frog/leg/scanner/scanner_task.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698