Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Returns null if no need to rename a node. | 5 // Returns null if no need to rename a node. |
| 6 typedef String Renamer(Node node); | 6 typedef String Renamer(Node node); |
| 7 | 7 |
| 8 class Unparser implements Visitor { | 8 class Unparser implements Visitor { |
| 9 Renamer rename; | 9 Renamer rename; |
| 10 StringBuffer sb; | 10 StringBuffer sb; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 50 } | 50 } |
| 51 | 51 |
| 52 visitCascade(Cascade node) { | 52 visitCascade(Cascade node) { |
| 53 visit(node.expression); | 53 visit(node.expression); |
| 54 } | 54 } |
| 55 | 55 |
| 56 visitCascadeReceiver(CascadeReceiver node) { | 56 visitCascadeReceiver(CascadeReceiver node) { |
| 57 visit(node.expression); | 57 visit(node.expression); |
| 58 } | 58 } |
| 59 | 59 |
| 60 visitClassNode(ClassNode node) { | 60 emitClassWithBody(ClassNode node, classBodyEmitter) { |
|
Roman
2012/08/31 13:52:15
Can you please specify the full signature for 'cla
Anton Muhin
2012/08/31 14:01:09
If emitClassWithBody(ClassNode node, void classBod
| |
| 61 addToken(node.beginToken); | 61 addToken(node.beginToken); |
| 62 if (node.beginToken.stringValue == 'abstract') { | |
| 63 addToken(node.beginToken.next); | |
| 64 } | |
| 62 visit(node.name); | 65 visit(node.name); |
| 63 if (node.typeParameters !== null) { | 66 if (node.typeParameters !== null) { |
| 64 visit(node.typeParameters); | 67 visit(node.typeParameters); |
| 65 } | 68 } |
| 66 sb.add(' '); | |
| 67 if (node.extendsKeyword !== null) { | 69 if (node.extendsKeyword !== null) { |
| 70 sb.add(' '); | |
| 68 addToken(node.extendsKeyword); | 71 addToken(node.extendsKeyword); |
| 69 visit(node.superclass); | 72 visit(node.superclass); |
| 73 } | |
| 74 if (!node.interfaces.isEmpty()) { | |
| 70 sb.add(' '); | 75 sb.add(' '); |
| 76 visit(node.interfaces); | |
| 71 } | 77 } |
| 72 visit(node.interfaces); | |
| 73 if (node.defaultClause !== null) { | 78 if (node.defaultClause !== null) { |
| 79 sb.add(' default '); | |
| 74 visit(node.defaultClause); | 80 visit(node.defaultClause); |
| 75 sb.add(' '); | |
| 76 } | 81 } |
| 77 sb.add('{\n'); | 82 sb.add('{'); |
| 78 NodeList body = node.body; | 83 classBodyEmitter(); |
| 79 if (body !== null) { | 84 sb.add('}'); |
| 80 Link nodes = body.nodes; | 85 } |
| 81 if (!nodes.isEmpty()) { | 86 |
| 82 sb.add(' '); | 87 visitClassNode(ClassNode node) { |
| 83 nodes.printOn(sb, '\n '); | 88 emitClassWithBody(node, () { |
| 89 NodeList body = node.body; | |
| 90 if (body !== null) { | |
| 84 sb.add('\n'); | 91 sb.add('\n'); |
| 92 Link nodes = body.nodes; | |
| 93 if (!nodes.isEmpty()) { | |
| 94 sb.add(' '); | |
| 95 nodes.printOn(sb, '\n '); | |
| 96 sb.add('\n'); | |
| 97 } | |
| 85 } | 98 } |
| 86 } | 99 }); |
| 87 sb.add('}\n'); | 100 sb.add('\n'); |
| 88 } | 101 } |
| 89 | 102 |
| 90 visitConditional(Conditional node) { | 103 visitConditional(Conditional node) { |
| 91 visit(node.condition); | 104 visit(node.condition); |
| 92 add(node.questionToken.value); | 105 add(node.questionToken.value); |
| 93 visit(node.thenExpression); | 106 visit(node.thenExpression); |
| 94 add(node.colonToken.value); | 107 add(node.colonToken.value); |
| 95 visit(node.elseExpression); | 108 visit(node.elseExpression); |
| 96 } | 109 } |
| 97 | 110 |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 495 sb.add(' '); | 508 sb.add(' '); |
| 496 } | 509 } |
| 497 visit(node.name); | 510 visit(node.name); |
| 498 if (node.typeParameters !== null) { | 511 if (node.typeParameters !== null) { |
| 499 visit(node.typeParameters); | 512 visit(node.typeParameters); |
| 500 } | 513 } |
| 501 visit(node.formals); | 514 visit(node.formals); |
| 502 add(node.endToken.value); | 515 add(node.endToken.value); |
| 503 } | 516 } |
| 504 } | 517 } |
| OLD | NEW |