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

Unified Diff: dart/sdk/lib/_internal/compiler/implementation/scanner/scanner.dart

Issue 27524003: Generate tear-off closures dynamically. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 1 month 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: dart/sdk/lib/_internal/compiler/implementation/scanner/scanner.dart
diff --git a/dart/sdk/lib/_internal/compiler/implementation/scanner/scanner.dart b/dart/sdk/lib/_internal/compiler/implementation/scanner/scanner.dart
index 8659eadef771a064a9d722556c46d2f6b8b5a5ba..45e2210751d5e4b995e0561c0a19c6d14ee02eeb 100644
--- a/dart/sdk/lib/_internal/compiler/implementation/scanner/scanner.dart
+++ b/dart/sdk/lib/_internal/compiler/implementation/scanner/scanner.dart
@@ -376,7 +376,7 @@ abstract class AbstractScanner implements Scanner {
return $EOF;
}
if (next < 0x1f) {
- return error("unexpected character $next");
+ return error("unexpected character $next", next);
}
next = currentAsUnicode(next);
@@ -388,7 +388,7 @@ abstract class AbstractScanner implements Scanner {
return advance();
}
- return error("unexpected unicode character $next");
+ return error("unexpected unicode character $next", next);
}
int tokenizeTag(int next) {
@@ -618,7 +618,7 @@ abstract class AbstractScanner implements Scanner {
hasDigits = true;
} else {
if (!hasDigits) {
- return error("hex digit expected");
+ return error("hex digit expected", next);
}
appendSubstringToken(HEXADECIMAL_INFO, start, true);
return next;
@@ -682,7 +682,7 @@ abstract class AbstractScanner implements Scanner {
hasDigits = true;
} else {
if (!hasDigits) {
- return error("digit expected");
+ return error("digit expected", next);
}
return next;
}
@@ -818,7 +818,7 @@ abstract class AbstractScanner implements Scanner {
} else {
// Identifier ends here.
if (start == scanOffset) {
- return error("expected identifier");
+ return error("expected identifier", next);
} else {
appendSubstringToken(IDENTIFIER_INFO, start, true);
}
@@ -882,7 +882,7 @@ abstract class AbstractScanner implements Scanner {
identical(next, $CR) ||
identical(next, $EOF))) {
if (!asciiOnly) handleUnicode(start);
- return error("unterminated string literal");
+ return error("unterminated string literal", next);
}
if (next > 127) asciiOnly = false;
next = advance();
@@ -937,14 +937,14 @@ abstract class AbstractScanner implements Scanner {
return next;
} else if (identical(next, $LF) || identical(next, $CR)) {
if (!asciiOnly) handleUnicode(start);
- return error("unterminated string literal");
+ return error("unterminated string literal", next);
} else if (next > 127) {
asciiOnly = false;
}
next = advance();
}
if (!asciiOnly) handleUnicode(start);
- return error("unterminated string literal");
+ return error("unterminated string literal", next);
}
int tokenizeMultiLineRawString(int quoteChar, int start) {
@@ -981,7 +981,7 @@ abstract class AbstractScanner implements Scanner {
}
}
if (!asciiOnlyLine) handleUnicode(unicodeStart);
- return error("unterminated string literal");
+ return error("unterminated string literal", next);
}
int tokenizeMultiLineString(int quoteChar, int start, bool raw) {
@@ -1032,11 +1032,12 @@ abstract class AbstractScanner implements Scanner {
next = advance();
}
if (!asciiOnlyLine) handleUnicode(unicodeStart);
- return error("unterminated string literal");
+ return error("unterminated string literal", next);
}
- int error(String message) {
+ int error(String message, next) {
appendStringToken(BAD_INPUT_INFO, message);
+ if (next == 0) return 0;
return advance(); // Ensure progress.
}

Powered by Google App Engine
This is Rietveld 408576698