| 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 class Unparser implements Visitor { | 5 class Unparser implements Visitor { |
| 6 final Renamer renamer; | 6 final Renamer renamer; |
| 7 StringBuffer sb; | 7 StringBuffer sb; |
| 8 | 8 |
| 9 Unparser([this.renamer = const Renamer()]); | 9 Unparser([this.renamer = const Renamer()]); |
| 10 | 10 |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 add(node.beginToken.value); | 218 add(node.beginToken.value); |
| 219 if (node.hasExpression) { | 219 if (node.hasExpression) { |
| 220 sb.add(' '); | 220 sb.add(' '); |
| 221 visit(node.expression); | 221 visit(node.expression); |
| 222 } | 222 } |
| 223 if (node.endToken !== null) add(node.endToken.value); | 223 if (node.endToken !== null) add(node.endToken.value); |
| 224 } | 224 } |
| 225 | 225 |
| 226 unparseSendPart(Send node) { | 226 unparseSendPart(Send node) { |
| 227 Operator op = node.selector.asOperator(); | 227 Operator op = node.selector.asOperator(); |
| 228 bool isCheck = op !== null && op.source.stringValue === 'is'; | 228 bool spacesNeeded = op !== null && |
| 229 (op.source.stringValue === 'is' || op.source.stringValue == 'as'); |
| 229 | 230 |
| 230 if (node.isPrefix) { | 231 if (node.isPrefix) { |
| 231 visit(node.selector); | 232 visit(node.selector); |
| 232 } | 233 } |
| 233 if (node.receiver !== null) { | 234 if (node.receiver !== null) { |
| 234 visit(node.receiver); | 235 visit(node.receiver); |
| 235 CascadeReceiver asCascadeReceiver = node.receiver.asCascadeReceiver(); | 236 CascadeReceiver asCascadeReceiver = node.receiver.asCascadeReceiver(); |
| 236 if (asCascadeReceiver !== null) { | 237 if (asCascadeReceiver !== null) { |
| 237 add(asCascadeReceiver.cascadeOperator.value); | 238 add(asCascadeReceiver.cascadeOperator.value); |
| 238 } else if (op === null) { | 239 } else if (op === null) { |
| 239 sb.add('.'); | 240 sb.add('.'); |
| 240 } else if (isCheck) { | 241 } else if (spacesNeeded) { |
| 241 sb.add(' '); | 242 sb.add(' '); |
| 242 } | 243 } |
| 243 } | 244 } |
| 244 if (!node.isPrefix && !node.isIndex) { | 245 if (!node.isPrefix && !node.isIndex) { |
| 245 visit(node.selector); | 246 visit(node.selector); |
| 246 } | 247 } |
| 247 if (isCheck) { | 248 if (spacesNeeded) { |
| 248 sb.add(' '); | 249 sb.add(' '); |
| 249 } | 250 } |
| 250 } | 251 } |
| 251 | 252 |
| 252 unparseSend(Send node) { | 253 unparseSend(Send node) { |
| 253 unparseSendPart(node); | 254 unparseSendPart(node); |
| 254 visit(node.argumentsNode); | 255 visit(node.argumentsNode); |
| 255 } | 256 } |
| 256 | 257 |
| 257 visitSend(Send node) { | 258 visitSend(Send node) { |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 sb.add(' '); | 513 sb.add(' '); |
| 513 } | 514 } |
| 514 visit(node.name); | 515 visit(node.name); |
| 515 if (node.typeParameters !== null) { | 516 if (node.typeParameters !== null) { |
| 516 visit(node.typeParameters); | 517 visit(node.typeParameters); |
| 517 } | 518 } |
| 518 visit(node.formals); | 519 visit(node.formals); |
| 519 add(node.endToken.value); | 520 add(node.endToken.value); |
| 520 } | 521 } |
| 521 } | 522 } |
| OLD | NEW |