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

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

Issue 9004025: Parse field modifiers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Cleaned up for commit Created 9 years 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/listener.dart ('k') | dart/frog/leg/tree/nodes.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/frog/leg/scanner/parser.dart
diff --git a/dart/frog/leg/scanner/parser.dart b/dart/frog/leg/scanner/parser.dart
index bf704b2f014ad78e5721159b6ad4ba6082741726..5c55187cc7564d780038d29278961f3e45991ace 100644
--- a/dart/frog/leg/scanner/parser.dart
+++ b/dart/frog/leg/scanner/parser.dart
@@ -94,12 +94,9 @@ class Parser {
Token parseFormalParameter(Token token) {
listener.beginFormalParameter(token);
- if (optional('void', token)) {
- // TODO(ahe): Validate that there are formal parameters.
- token = parseReturnTypeOpt(token);
- } else {
- token = parseFinalVarOrTypeOpt(token);
- }
+ token = parseModifiers(token);
+ // TODO(ahe): Validate that there are formal parameters if void.
+ token = parseReturnTypeOpt(token);
Token thisKeyword = null;
if (optional('this', token)) {
thisKeyword = token;
@@ -277,9 +274,6 @@ class Parser {
token = parseIdentifier(token.next);
++identifierCount;
}
- } else if (optional('var', token)) {
- listener.handleVarKeyword(token);
- return token.next;
} else {
token = listener.expectedType(token);
}
@@ -1179,7 +1173,8 @@ class Parser {
Token parseVariablesDeclarationNoSemicolon(Token token) {
int count = 1;
listener.beginVariablesDeclaration(token);
- token = parseFinalVarOrType(token);
+ token = parseModifiers(token);
+ token = parseTypeOpt(token);
token = parseOptionallyInitializedIdentifier(token);
while (optional(',', token)) {
token = parseOptionallyInitializedIdentifier(token.next);
@@ -1197,25 +1192,6 @@ class Parser {
return token;
}
- Token parseFinalVarOrType(Token token) {
- if ('final' === token.stringValue) {
- listener.handleFinalKeyword(token);
- return parseTypeOpt(token.next);
- } else {
- return parseType(token);
- }
- }
-
- Token parseFinalVarOrTypeOpt(Token token) {
- final String value = token.stringValue;
- if ('final' === value) {
- listener.handleFinalKeyword(token);
- return parseTypeOpt(token.next);
- } else {
- return parseTypeOpt(token);
- }
- }
-
Token parseIfStatement(Token token) {
Token ifToken = token;
listener.beginIfStatement(ifToken);
« no previous file with comments | « dart/frog/leg/scanner/listener.dart ('k') | dart/frog/leg/tree/nodes.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698