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

Unified Diff: compiler/java/com/google/dart/compiler/parser/DartParser.java

Issue 10919266: Add built-in identifiers 'library', 'import', 'export' and 'part' (issue 5120) (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 3 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 | « no previous file | compiler/javatests/com/google/dart/compiler/end2end/inc/IncrementalCompilation2Test.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: compiler/java/com/google/dart/compiler/parser/DartParser.java
===================================================================
--- compiler/java/com/google/dart/compiler/parser/DartParser.java (revision 12333)
+++ compiler/java/com/google/dart/compiler/parser/DartParser.java (working copy)
@@ -170,14 +170,15 @@
AS_KEYWORD,
ASSERT_KEYWORD,
DYNAMIC_KEYWORD,
- EQUALS_KEYWORD,
+ EXPORT_KEYWORD,
EXTERNAL_KEYWORD,
FACTORY_KEYWORD,
GETTER_KEYWORD,
IMPLEMENTS_KEYWORD,
- INTERFACE_KEYWORD,
- NEGATE_KEYWORD,
+ IMPORT_KEYWORD,
+ LIBRARY_KEYWORD,
OPERATOR_KEYWORD,
+ PART_KEYWORD,
SETTER_KEYWORD,
STATIC_KEYWORD,
TYPEDEF_KEYWORD
@@ -328,7 +329,7 @@
isParsingInterface = true;
node = done(parseClass());
} else if (peekPseudoKeyword(0, TYPEDEF_KEYWORD)
- && (peek(1).equals(Token.IDENTIFIER) || peek(1).equals(Token.VOID))) {
+ && (peek(1).equals(Token.IDENTIFIER) || peek(1).equals(Token.VOID) || peek(1).equals(Token.AS))) {
consume(Token.IDENTIFIER);
node = done(parseFunctionTypeAlias());
} else if (looksLikeDirective()) {
@@ -1031,10 +1032,10 @@
private boolean isFunctionTypeAliasName() {
beginFunctionTypeInterface();
try {
- if (peek(0) == Token.IDENTIFIER && peek(1) == Token.LPAREN) {
+ if ((peek(0) == Token.IDENTIFIER || peek(0) == Token.AS) && peek(1) == Token.LPAREN) {
return true;
}
- if (peek(0) == Token.IDENTIFIER && peek(1) == Token.LT) {
+ if ((peek(0) == Token.IDENTIFIER || peek(0) == Token.AS) && peek(1) == Token.LT) {
consume(Token.IDENTIFIER);
// isTypeParameter leaves the position advanced if it matches
if (isTypeParameter() && peek(0) == Token.LPAREN) {
@@ -4175,6 +4176,7 @@
}
break;
+ case AS:
case IDENTIFIER:
// We have already eliminated function declarations earlier, so check for:
// a) variable declarations;
@@ -5112,7 +5114,7 @@
}
private DartTypeNode tryTypeAnnotation() {
- if (peek(0) != Token.IDENTIFIER) {
+ if (peek(0) != Token.IDENTIFIER && peek(0) != Token.AS) {
return null;
}
List<DartTypeNode> typeArguments = new ArrayList<DartTypeNode>();
@@ -5121,7 +5123,7 @@
DartNode qualified = parseQualified(false);
if (optional(Token.LT)) {
- if (peek(0) != Token.IDENTIFIER) {
+ if (peek(0) != Token.IDENTIFIER && peek(0) != Token.AS) {
rollback();
return null;
}
« no previous file with comments | « no previous file | compiler/javatests/com/google/dart/compiler/end2end/inc/IncrementalCompilation2Test.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698