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

Unified Diff: dart/frog/leg/tree/unparser.dart

Issue 9599013: Complete AST nodes for switch statement. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 10 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: dart/frog/leg/tree/unparser.dart
diff --git a/dart/frog/leg/tree/unparser.dart b/dart/frog/leg/tree/unparser.dart
index 7b208bf61378a7181615b06db342535edbe755b7..480ef657477986710d13e28b340d49f09e210c0f 100644
--- a/dart/frog/leg/tree/unparser.dart
+++ b/dart/frog/leg/tree/unparser.dart
@@ -324,8 +324,30 @@ class Unparser implements Visitor {
add(node.switchKeyword.value);
sb.add(' ');
visit(node.parenthesizedExpression);
- sb.add(' { /* NOT IMPLEMENTED YET */ }');
- // TODO(ahe): More to come...
+ sb.add(' ');
+ visit(node.cases);
+ }
+
+ visitSwitchCase(SwitchCase node) {
+ if (node.label !== null) {
+ visit(node.label);
+ sb.add(': ');
+ }
+ node.caseKeyword.value.printOn(sb);
+ sb.add(' ');
+ visit(node.expression);
+ sb.add(': ');
+ visit(node.statements);
+ }
+
+ visitDefaultCase(DefaultCase node) {
+ if (node.label !== null) {
+ visit(node.label);
+ sb.add(': ');
+ }
+ node.defaultKeyword.value.printOn(sb);
+ sb.add(': ');
+ visit(node.statements);
}
visitScriptTag(ScriptTag node) {

Powered by Google App Engine
This is Rietveld 408576698