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

Unified Diff: pkg/polymer_expressions/lib/parser.dart

Issue 139903008: List literals in polymer_expressions (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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: pkg/polymer_expressions/lib/parser.dart
diff --git a/pkg/polymer_expressions/lib/parser.dart b/pkg/polymer_expressions/lib/parser.dart
index 176dce76c8d822af019f7ea2832d7fb87fd21b7e..bf8dd66b87071b4ed9a6123fa54d2df9a4c8d312 100644
--- a/pkg/polymer_expressions/lib/parser.dart
+++ b/pkg/polymer_expressions/lib/parser.dart
@@ -30,9 +30,9 @@ class Parser {
}
_advance([int kind, String value]) {
- if ((kind != null && _token.kind != kind)
- || (value != null && _token.value != value)) {
- throw new ParseException("Expected $value: $_token");
+ if ((kind != null && (_token == null || _token.kind != kind))
+ || (value != null && (_token == null || _token.value != value))) {
+ throw new ParseException("Expected kind $kind ($value): $_token");
}
_iterator.moveNext();
}
@@ -160,6 +160,8 @@ class Parser {
return _parseParenthesized();
} else if (_token.value == '{') {
return _parseMapLiteral();
+ } else if (_token.value == '[') {
+ return _parseListLiteral();
}
return null;
case COLON_TOKEN:
@@ -171,6 +173,19 @@ class Parser {
}
}
+ ListLiteral _parseListLiteral() {
+ var items = [];
+ do {
+ _advance();
+ if (_token.kind == GROUPER_TOKEN && _token.value == ']') {
+ break;
+ }
+ items.add(_parseExpression());
+ } while(_token != null && _token.value == ',');
+ _advance(GROUPER_TOKEN, ']');
+ return new ListLiteral(items);
+ }
+
MapLiteral _parseMapLiteral() {
var entries = [];
do {

Powered by Google App Engine
This is Rietveld 408576698