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

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

Issue 9271037: Inserted string validation as separate task in compiler. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed 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
Index: frog/leg/scanner/parser.dart
diff --git a/frog/leg/scanner/parser.dart b/frog/leg/scanner/parser.dart
index e1e581483d512245b0a9c4ec5f970ff0d311c1bf..1e8262d7554c616dbf70c79ceee1d4cf1d652d41 100644
--- a/frog/leg/scanner/parser.dart
+++ b/frog/leg/scanner/parser.dart
@@ -22,7 +22,7 @@ class Parser {
} else if (value === 'typedef') {
token = parseNamedFunctionAlias(token);
} else if (value === '#') {
- token = parseLibraryTags(token);
+ token = parseScriptTags(token);
} else {
token = parseTopLevelMember(token);
}
@@ -233,9 +233,9 @@ class Parser {
}
- Token parseString(Token token) {
+ Token parseStringPart(Token token) {
if (token.kind === STRING_TOKEN) {
- listener.handleLiteralString(token);
+ listener.handleStringPart(token);
return token.next;
} else {
return listener.expected('string', token);
@@ -433,21 +433,21 @@ class Parser {
return token;
}
- Token parseLibraryTags(Token token) {
+ Token parseScriptTags(Token token) {
Token begin = token;
- listener.beginLibraryTag(token);
+ listener.beginScriptTag(token);
token = parseIdentifier(token.next);
token = expect('(', token);
- token = parseString(token);
+ token = parseLiteralString(token);
bool hasPrefix = false;
if (optional(',', token)) {
hasPrefix = true;
token = parseIdentifier(token.next);
token = expect(':', token);
- token = parseString(token);
+ token = parseLiteralString(token);
}
token = expect(')', token);
- listener.endLibraryTag(hasPrefix, begin, token);
+ listener.endScriptTag(hasPrefix, begin, token);
return expectSemicolon(token);
}
@@ -1195,16 +1195,17 @@ class Parser {
}
Token parseLiteralString(Token token) {
- listener.handleLiteralString(token);
+ listener.beginLiteralString(token);
token = token.next;
int interpolationCount = 0;
while (optional('\${', token)) {
- token = parseExpression(token.next);
+ token = token.next;
+ token = parseExpression(token);
token = expect('}', token);
- token = parseString(token);
+ token = parseStringPart(token);
++interpolationCount;
}
- listener.handleStringInterpolationParts(interpolationCount);
+ listener.endLiteralString(interpolationCount);
return token;
}

Powered by Google App Engine
This is Rietveld 408576698