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

Side by Side Diff: lib/src/codegen/dart_codegen.dart

Issue 967933005: rename ddc -> dev_compiler, fixes #84 (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
« no previous file with comments | « lib/src/codegen/code_generator.dart ('k') | lib/src/codegen/html_codegen.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 library ddc.src.codegen.dart_codegen; 5 library dev_compiler.src.codegen.dart_codegen;
6 6
7 import 'dart:io' show File; 7 import 'dart:io' show File;
8 8
9 import 'package:analyzer/analyzer.dart' as analyzer; 9 import 'package:analyzer/analyzer.dart' as analyzer;
10 import 'package:analyzer/src/generated/ast.dart'; 10 import 'package:analyzer/src/generated/ast.dart';
11 import 'package:analyzer/src/generated/element.dart'; 11 import 'package:analyzer/src/generated/element.dart';
12 import 'package:analyzer/src/generated/java_core.dart' as java_core; 12 import 'package:analyzer/src/generated/java_core.dart' as java_core;
13 import 'package:analyzer/src/generated/scanner.dart' show Token; 13 import 'package:analyzer/src/generated/scanner.dart' show Token;
14 import 'package:dart_style/dart_style.dart'; 14 import 'package:dart_style/dart_style.dart';
15 import 'package:logging/logging.dart' as logger; 15 import 'package:logging/logging.dart' as logger;
16 import 'package:path/path.dart' as path; 16 import 'package:path/path.dart' as path;
17 17
18 import 'package:dev_compiler/src/info.dart'; 18 import 'package:dev_compiler/src/info.dart';
19 import 'package:dev_compiler/src/checker/rules.dart'; 19 import 'package:dev_compiler/src/checker/rules.dart';
20 import 'package:dev_compiler/src/options.dart'; 20 import 'package:dev_compiler/src/options.dart';
21 import 'package:dev_compiler/src/report.dart'; 21 import 'package:dev_compiler/src/report.dart';
22 import 'package:dev_compiler/src/utils.dart' as utils; 22 import 'package:dev_compiler/src/utils.dart' as utils;
23 import 'ast_builder.dart'; 23 import 'ast_builder.dart';
24 import 'code_generator.dart' as codegenerator; 24 import 'code_generator.dart' as codegenerator;
25 import 'reify_coercions.dart' as reifier; 25 import 'reify_coercions.dart' as reifier;
26 26
27 final _log = new logger.Logger('ddc.dartgenerator'); 27 final _log = new logger.Logger('dev_compiler.dart_codegen');
28 28
29 class DdcRuntime { 29 class DevCompilerRuntime {
30 Identifier _ddcRuntimeId = AstBuilder.identifierFromString("DDC\$RT"); 30 Identifier _runtimeId = AstBuilder.identifierFromString("DEVC\$RT");
31 31
32 Identifier _castId; 32 Identifier _castId;
33 Identifier _typeToTypeId; 33 Identifier _typeToTypeId;
34 Identifier _wrapId; 34 Identifier _wrapId;
35 35
36 DdcRuntime() { 36 DevCompilerRuntime() {
37 _castId = _prefixId(AstBuilder.identifierFromString("cast")); 37 _castId = _prefixId(AstBuilder.identifierFromString("cast"));
38 _typeToTypeId = _prefixId(AstBuilder.identifierFromString("type")); 38 _typeToTypeId = _prefixId(AstBuilder.identifierFromString("type"));
39 _wrapId = _prefixId(AstBuilder.identifierFromString("wrap")); 39 _wrapId = _prefixId(AstBuilder.identifierFromString("wrap"));
40 } 40 }
41 41
42 String get importString { 42 String get importString {
43 var name = _ddcRuntimeId; 43 var name = _runtimeId;
44 var uri = "package:dev_compiler/runtime/dart_logging_runtime.dart"; 44 var uri = "package:dev_compiler/runtime/dart_logging_runtime.dart";
45 return "import '$uri' as $name;"; 45 return "import '$uri' as $name;";
46 } 46 }
47 47
48 Identifier _prefixId(Identifier id) => 48 Identifier _prefixId(Identifier id) =>
49 AstBuilder.prefixedIdentifier(_ddcRuntimeId, id); 49 AstBuilder.prefixedIdentifier(_runtimeId, id);
50 50
51 Identifier runtimeId(RuntimeOperation oper) { 51 Identifier runtimeId(RuntimeOperation oper) {
52 if (oper.operation == "cast") return _castId; 52 if (oper.operation == "cast") return _castId;
53 if (oper.operation == "wrap") return _wrapId; 53 if (oper.operation == "wrap") return _wrapId;
54 if (oper.operation == "type") return _typeToTypeId; 54 if (oper.operation == "type") return _typeToTypeId;
55 assert(false); 55 assert(false);
56 return null; 56 return null;
57 } 57 }
58 58
59 Expression runtimeOperation(RuntimeOperation oper) { 59 Expression runtimeOperation(RuntimeOperation oper) {
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 } 269 }
270 } 270 }
271 271
272 // TODO(leafp) Not sure if this is the right way to generate 272 // TODO(leafp) Not sure if this is the right way to generate
273 // Dart source going forward, but it's a quick way to get started. 273 // Dart source going forward, but it's a quick way to get started.
274 class UnitGenerator extends UnitGeneratorCommon with ConversionVisitor<Object> { 274 class UnitGenerator extends UnitGeneratorCommon with ConversionVisitor<Object> {
275 CompilationUnit unit; 275 CompilationUnit unit;
276 final java_core.PrintWriter _out; 276 final java_core.PrintWriter _out;
277 final String outDir; 277 final String outDir;
278 Set<LibraryElement> _extraImports; 278 Set<LibraryElement> _extraImports;
279 final ddc = new DdcRuntime(); 279 final _runtime = new DevCompilerRuntime();
280 LibraryElement _currentLibrary; 280 LibraryElement _currentLibrary;
281 bool _qualifyNames = true; 281 bool _qualifyNames = true;
282 Set<Identifier> _newIdentifiers; 282 Set<Identifier> _newIdentifiers;
283 283
284 UnitGenerator(this.unit, java_core.PrintWriter out, String this.outDir, 284 UnitGenerator(this.unit, java_core.PrintWriter out, String this.outDir,
285 this._extraImports, this._newIdentifiers) 285 this._extraImports, this._newIdentifiers)
286 : _out = out, 286 : _out = out,
287 super(out) { 287 super(out) {
288 _currentLibrary = unit.element.enclosingElement; 288 _currentLibrary = unit.element.enclosingElement;
289 final UnitImportResolver r = new UnitImportResolver( 289 final UnitImportResolver r = new UnitImportResolver(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 330
331 // Rewrite the import directives with additional library imports 331 // Rewrite the import directives with additional library imports
332 // covering the inferred types added in as part of this pass. 332 // covering the inferred types added in as part of this pass.
333 void _visitDirectives(String prefix, List<Directive> directives) { 333 void _visitDirectives(String prefix, List<Directive> directives) {
334 _qualifyNames = false; 334 _qualifyNames = false;
335 var ds = splitDirectives(directives); 335 var ds = splitDirectives(directives);
336 visitListWithSeparatorAndPrefix(prefix, ds['library'], " "); 336 visitListWithSeparatorAndPrefix(prefix, ds['library'], " ");
337 if (ds['library'].length != 0) { 337 if (ds['library'].length != 0) {
338 assert(ds['partof'].length == 0); 338 assert(ds['partof'].length == 0);
339 var es = buildExtraImportDirectives(); 339 var es = buildExtraImportDirectives();
340 es.add(ddc.importString); 340 es.add(_runtime.importString);
341 es.forEach(outputln); 341 es.forEach(outputln);
342 } 342 }
343 visitListWithSeparatorAndPrefix(prefix, ds['partof'], " "); 343 visitListWithSeparatorAndPrefix(prefix, ds['partof'], " ");
344 visitListWithSeparatorAndPrefix(prefix, ds['import'], " "); 344 visitListWithSeparatorAndPrefix(prefix, ds['import'], " ");
345 visitListWithSeparatorAndPrefix(prefix, ds['export'], " "); 345 visitListWithSeparatorAndPrefix(prefix, ds['export'], " ");
346 visitListWithSeparatorAndPrefix(prefix, ds['part'], " "); 346 visitListWithSeparatorAndPrefix(prefix, ds['part'], " ");
347 _qualifyNames = true; 347 _qualifyNames = true;
348 } 348 }
349 349
350 @override 350 @override
351 Object visitNode(AstNode node) { 351 Object visitNode(AstNode node) {
352 if (node != null) { 352 if (node != null) {
353 node.visitChildren(this); 353 node.visitChildren(this);
354 } 354 }
355 return null; 355 return null;
356 } 356 }
357 357
358 @override 358 @override
359 Object visitRuntimeOperation(RuntimeOperation oper) { 359 Object visitRuntimeOperation(RuntimeOperation oper) {
360 var e = ddc.runtimeOperation(oper); 360 var e = _runtime.runtimeOperation(oper);
361 e.accept(this); 361 e.accept(this);
362 return null; 362 return null;
363 } 363 }
364 364
365 @override 365 @override
366 Object visitAsExpression(AsExpression node) { 366 Object visitAsExpression(AsExpression node) {
367 _log.severe("Unlowered as expression"); 367 _log.severe("Unlowered as expression");
368 assert(false); 368 assert(false);
369 return null; 369 return null;
370 } 370 }
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 void generateUnit(CompilationUnit unit, LibraryInfo info, String libraryDir) { 488 void generateUnit(CompilationUnit unit, LibraryInfo info, String libraryDir) {
489 var uri = unit.element.source.uri; 489 var uri = unit.element.source.uri;
490 _log.fine("Emitting original unit " + uri.toString()); 490 _log.fine("Emitting original unit " + uri.toString());
491 FileWriter out = new FileWriter( 491 FileWriter out = new FileWriter(
492 options, path.join(libraryDir, '${uri.pathSegments.last}')); 492 options, path.join(libraryDir, '${uri.pathSegments.last}'));
493 var unitGen = new EmptyUnitGenerator(unit, out); 493 var unitGen = new EmptyUnitGenerator(unit, out);
494 unitGen.generate(); 494 unitGen.generate();
495 out.finalize(); 495 out.finalize();
496 } 496 }
497 } 497 }
OLDNEW
« no previous file with comments | « lib/src/codegen/code_generator.dart ('k') | lib/src/codegen/html_codegen.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698