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

Unified Diff: sdk/lib/_internal/compiler/samples/darttags/darttags.dart

Issue 694353007: Move dart2js from sdk/lib/_internal/compiler to pkg/compiler (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month 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: sdk/lib/_internal/compiler/samples/darttags/darttags.dart
diff --git a/sdk/lib/_internal/compiler/samples/darttags/darttags.dart b/sdk/lib/_internal/compiler/samples/darttags/darttags.dart
deleted file mode 100644
index 744abb6a7562d8327711f2d79fa247947f1ed430..0000000000000000000000000000000000000000
--- a/sdk/lib/_internal/compiler/samples/darttags/darttags.dart
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Usage: Add the following to your .gclient file (found in the parent
-// of the "dart" in a gclient checkout of the Dart repositor).
-//
-// hooks = [
-// {
-// "pattern": ".",
-// "action": [
-// "dart/sdk/bin/dart",
-// "dart/sdk/lib/_internal/compiler/samples/darttags/darttags.dart",
-// "dart/TAGS"
-// ],
-// },
-// ]
-//
-// Modify .emacs to contain:
-//
-// (setq tags-table-list
-// '("DART_LOCATION/dart"))
-//
-// Where DART_LOCATION is the gclient directory where you found .gclient.
-
-import 'dart:io';
-
-import 'dart:mirrors';
-
-import '../../../libraries.dart'
- show LIBRARIES, LibraryInfo;
-
-import '../../implementation/mirrors/analyze.dart'
- show analyze;
-import '../../implementation/mirrors/dart2js_mirrors.dart'
- show BackDoor;
-import '../../implementation/mirrors/mirrors_util.dart' show nameOf;
-
-import '../../implementation/filenames.dart';
-import '../../implementation/source_file.dart';
-import '../../implementation/source_file_provider.dart';
-import '../../implementation/util/uri_extras.dart';
-
-const DART2JS = '../../implementation/dart2js.dart';
-const DART2JS_MIRROR = '../../implementation/mirrors/dart2js_mirrors.dart';
-const SDK_ROOT = '../../../../../';
-
-bool isPublicDart2jsLibrary(String name) {
- return !name.startsWith('_') && LIBRARIES[name].isDart2jsLibrary;
-}
-
-var handler;
-RandomAccessFile output;
-Uri outputUri;
-
-main(List<String> arguments) {
- handler = new FormattingDiagnosticHandler()
- ..throwOnError = true;
-
- outputUri =
- handler.provider.cwd.resolve(nativeToUriPath(arguments.first));
- output = new File(arguments.first).openSync(mode: FileMode.WRITE);
-
- Uri myLocation =
- handler.provider.cwd.resolveUri(Platform.script);
-
- // Get the names of public dart2js libraries.
- Iterable<String> names = LIBRARIES.keys.where(isPublicDart2jsLibrary);
-
- // Prepend "dart:" to the names.
- List<Uri> uris = names.map((String name) => Uri.parse('dart:$name')).toList();
-
- // Append dart2js itself.
- uris.add(myLocation.resolve(DART2JS));
- uris.add(myLocation.resolve(DART2JS_MIRROR));
-
- analyze(uris, myLocation.resolve(SDK_ROOT), null, handler.provider, handler)
- .then(processMirrors);
-}
-
-processMirrors(MirrorSystem mirrors) {
- mirrors.libraries.forEach((_, LibraryMirror library) {
- BackDoor.compilationUnitsOf(library).forEach(emitTagsForCompilationUnit);
- });
-
- output.closeSync();
-}
-
-/**
- * From http://en.wikipedia.org/wiki/Ctags#Etags_2
- *
- * A section starts with a two line header, one line containing a
- * single <\x0c> character, followed by a line which consists of:
- *
- * {src_file},{size_of_tag_definition_data_in_bytes}
- *
- * The header is followed by tag definitions, one definition per line,
- * with the format:
- *
- * {tag_definition_text}<\x7f>{tagname}<\x01>{line_number},{byte_offset}
- */
-emitTagsForCompilationUnit(compilationUnit) {
- // Certain variables in this method do not follow Dart naming
- // conventions. This is because the format as written on Wikipedia
- // looks very similar to Dart string interpolation that the author
- // felt it would make sense to keep the names.
- Uri uri = compilationUnit.uri;
- var buffer = new StringBuffer();
- SourceFile file = handler.provider.sourceFiles['$uri'];
- String src_file = relativize(outputUri, uri, false);
-
- compilationUnit.declarations.forEach((_, DeclarationMirror mirror) {
- Definition definition = new Definition.from(mirror, file);
- String name = nameOf(mirror);
- definition.writeOn(buffer, name);
-
- if (mirror is ClassMirror) {
- emitTagsForClass(mirror, file, buffer);
- }
- });
-
- var tag_definition_data = '$buffer';
- var size_of_tag_definition_data_in_bytes = tag_definition_data.length;
-
- // The header.
- output.writeStringSync(
- '\x0c\n${src_file},${size_of_tag_definition_data_in_bytes}\n');
- output.writeStringSync(tag_definition_data);
-}
-
-void emitTagsForClass(ClassMirror cls, SourceFile file, StringBuffer buffer) {
- String className = nameOf(cls);
-
- cls.declarations.forEach((_, DeclarationMirror mirror) {
- Definition definition = new Definition.from(mirror, file);
- String name = nameOf(mirror);
- if (mirror is MethodMirror && mirror.isConstructor) {
- if (name == '') {
- name = className;
- definition.writeOn(buffer, 'new $className');
- } else {
- definition.writeOn(buffer, 'new $className.$name');
- }
- } else {
- definition.writeOn(buffer, '$className.$name');
- }
- definition.writeOn(buffer, name);
- });
-}
-
-class Definition {
- final int byte_offset;
- final int line_number;
- final String tag_definition_text;
-
- Definition(this.byte_offset, this.line_number, this.tag_definition_text);
-
- factory Definition.from(DeclarationMirror mirror, SourceFile file) {
- var location = mirror.location;
- int byte_offset = location.offset;
- int line_number = file.getLine(byte_offset) + 1;
-
- int lineStart = file.lineStarts[line_number - 1];
-
- int lineEnd = file.lineStarts.length > line_number
- // Subract 1 to remove trailing newline.
- ? file.lineStarts[line_number] - 1
- : null;
- String tag_definition_text = file.slowText().substring(lineStart, lineEnd);
-
- return new Definition(byte_offset, line_number, tag_definition_text);
- }
-
- void writeOn(StringBuffer buffer, String tagname) {
- buffer.write(
- '${tag_definition_text}\x7f${tagname}'
- '\x01${line_number},${byte_offset}\n');
- }
-}

Powered by Google App Engine
This is Rietveld 408576698