| 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 DartBackend extends Backend { | 5 class DartBackend extends Backend { |
| 6 final List<CompilerTask> tasks; | 6 final List<CompilerTask> tasks; |
| 7 final bool cutDeclarationTypes; | 7 final bool cutDeclarationTypes; |
| 8 // TODO(antonm): make available from command-line options. | 8 // TODO(antonm): make available from command-line options. |
| 9 final bool outputAst = false; | 9 final bool outputAst = false; |
| 10 | 10 |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 } else { | 174 } else { |
| 175 outputElement(topLevel); | 175 outputElement(topLevel); |
| 176 } | 176 } |
| 177 } | 177 } |
| 178 sb.add('</Program>\n'); | 178 sb.add('</Program>\n'); |
| 179 compiler.assembledCode = sb.toString(); | 179 compiler.assembledCode = sb.toString(); |
| 180 return; | 180 return; |
| 181 } | 181 } |
| 182 | 182 |
| 183 final unparser = new Unparser.withRenamer((Node node) => renames[node]); | 183 final unparser = new Unparser.withRenamer((Node node) => renames[node]); |
| 184 compiler.assembledCode = emitCode( | 184 emitCode(compiler, unparser, imports, sortedTopLevels, sortedClassMembers); |
| 185 compiler, unparser, imports, sortedTopLevels, sortedClassMembers); | 185 compiler.assembledCode = unparser.result; |
| 186 } | 186 } |
| 187 | 187 |
| 188 log(String message) => compiler.log('[DartBackend] $message'); | 188 log(String message) => compiler.log('[DartBackend] $message'); |
| 189 } | 189 } |
| 190 | 190 |
| 191 /** | 191 /** |
| 192 * Some elements are not recorded by resolver now, | 192 * Some elements are not recorded by resolver now, |
| 193 * for example, typedefs or classes which are only | 193 * for example, typedefs or classes which are only |
| 194 * used in signatures, as/is operators or in super clauses | 194 * used in signatures, as/is operators or in super clauses |
| 195 * (just to name a few). Retraverse AST to pick those up. | 195 * (just to name a few). Retraverse AST to pick those up. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 } | 246 } |
| 247 | 247 |
| 248 compareElements(e0, e1) { | 248 compareElements(e0, e1) { |
| 249 int result = compareBy((e) => e.getLibrary().uri.toString())(e0, e1); | 249 int result = compareBy((e) => e.getLibrary().uri.toString())(e0, e1); |
| 250 if (result != 0) return result; | 250 if (result != 0) return result; |
| 251 return compareBy((e) => e.position().charOffset)(e0, e1); | 251 return compareBy((e) => e.position().charOffset)(e0, e1); |
| 252 } | 252 } |
| 253 | 253 |
| 254 List<Element> sortElements(Collection<Element> elements) => | 254 List<Element> sortElements(Collection<Element> elements) => |
| 255 sorted(elements, compareElements); | 255 sorted(elements, compareElements); |
| OLD | NEW |