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

Unified Diff: observatory_pub_packages/analyzer/src/generated/sdk.dart

Issue 816693004: Add observatory_pub_packages snapshot to third_party (Closed) Base URL: http://dart.googlecode.com/svn/third_party/
Patch Set: Created 6 years 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: observatory_pub_packages/analyzer/src/generated/sdk.dart
===================================================================
--- observatory_pub_packages/analyzer/src/generated/sdk.dart (revision 0)
+++ observatory_pub_packages/analyzer/src/generated/sdk.dart (working copy)
@@ -0,0 +1,446 @@
+// Copyright (c) 2014, 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.
+
+// This code was auto-generated, is not intended to be edited, and is subject to
+// significant change. Please see the README file for more information.
+
+library engine.sdk;
+
+import 'dart:collection';
+import 'source.dart' show ContentCache, Source, UriKind;
+import 'ast.dart';
+import 'engine.dart' show AnalysisContext;
+
+/**
+ * Instances of the class `DartSdk` represent a Dart SDK installed in a specified location.
+ */
+abstract class DartSdk {
+ /**
+ * The short name of the dart SDK async library.
+ */
+ static final String DART_ASYNC = "dart:async";
+
+ /**
+ * The short name of the dart SDK core library.
+ */
+ static final String DART_CORE = "dart:core";
+
+ /**
+ * The short name of the dart SDK html library.
+ */
+ static final String DART_HTML = "dart:html";
+
+ /**
+ * The version number that is returned when the real version number could not be determined.
+ */
+ static final String DEFAULT_VERSION = "0";
+
+ /**
+ * Return a source representing the given file: URI if the file is in this SDK, or `null` if
+ * the file is not in this SDK.
+ *
+ * @param uri the file URI for which a source is to be returned
+ * @return the source representing the given URI
+ * @throws
+ */
+ Source fromFileUri(Uri uri);
+
+ /**
+ * Return the [AnalysisContext] used for all of the sources in this [DartSdk].
+ *
+ * @return the [AnalysisContext] used for all of the sources in this [DartSdk]
+ */
+ AnalysisContext get context;
+
+ /**
+ * Return an array containing all of the libraries defined in this SDK.
+ *
+ * @return the libraries defined in this SDK
+ */
+ List<SdkLibrary> get sdkLibraries;
+
+ /**
+ * Return the library representing the library with the given `dart:` URI, or `null`
+ * if the given URI does not denote a library in this SDK.
+ *
+ * @param dartUri the URI of the library to be returned
+ * @return the SDK library object
+ */
+ SdkLibrary getSdkLibrary(String dartUri);
+
+ /**
+ * Return the revision number of this SDK, or `"0"` if the revision number cannot be
+ * discovered.
+ *
+ * @return the revision number of this SDK
+ */
+ String get sdkVersion;
+
+ /**
+ * Return an array containing the library URI's for the libraries defined in this SDK.
+ *
+ * @return the library URI's for the libraries defined in this SDK
+ */
+ List<String> get uris;
+
+ /**
+ * Return the source representing the library with the given `dart:` URI, or `null` if
+ * the given URI does not denote a library in this SDK.
+ *
+ * @param dartUri the URI of the library to be returned
+ * @return the source representing the specified library
+ */
+ Source mapDartUri(String dartUri);
+}
+
+/**
+ * Instances of the class `LibraryMap` map Dart library URI's to the [SdkLibraryImpl
+ ].
+ */
+class LibraryMap {
+ /**
+ * A table mapping Dart library URI's to the library.
+ */
+ HashMap<String, SdkLibraryImpl> _libraryMap = new HashMap<String, SdkLibraryImpl>();
+
+ /**
+ * Return the library with the given URI, or `null` if the URI does not map to a library.
+ *
+ * @param dartUri the URI of the library to be returned
+ * @return the library with the given URI
+ */
+ SdkLibrary getLibrary(String dartUri) => _libraryMap[dartUri];
+
+ /**
+ * Return an array containing all the sdk libraries [SdkLibraryImpl] in the mapping
+ *
+ * @return the sdk libraries in the mapping
+ */
+ List<SdkLibrary> get sdkLibraries => new List.from(_libraryMap.values);
+
+ /**
+ * Return an array containing the library URI's for which a mapping is available.
+ *
+ * @return the library URI's for which a mapping is available
+ */
+ List<String> get uris => new List.from(_libraryMap.keys.toSet());
+
+ /**
+ * Return the library with the given URI, or `null` if the URI does not map to a library.
+ *
+ * @param dartUri the URI of the library to be returned
+ * @param library the library with the given URI
+ */
+ void setLibrary(String dartUri, SdkLibraryImpl library) {
+ _libraryMap[dartUri] = library;
+ }
+
+ /**
+ * Return the number of library URI's for which a mapping is available.
+ *
+ * @return the number of library URI's for which a mapping is available
+ */
+ int size() => _libraryMap.length;
+}
+
+class SdkLibrariesReader_LibraryBuilder extends RecursiveAstVisitor<Object> {
+ /**
+ * The prefix added to the name of a library to form the URI used in code to reference the
+ * library.
+ */
+ static String _LIBRARY_PREFIX = "dart:";
+
+ /**
+ * The name of the optional parameter used to indicate whether the library is an implementation
+ * library.
+ */
+ static String _IMPLEMENTATION = "implementation";
+
+ /**
+ * The name of the optional parameter used to specify the path used when compiling for dart2js.
+ */
+ static String _DART2JS_PATH = "dart2jsPath";
+
+ /**
+ * The name of the optional parameter used to indicate whether the library is documented.
+ */
+ static String _DOCUMENTED = "documented";
+
+ /**
+ * The name of the optional parameter used to specify the category of the library.
+ */
+ static String _CATEGORY = "category";
+
+ /**
+ * The name of the optional parameter used to specify the platforms on which the library can be
+ * used.
+ */
+ static String _PLATFORMS = "platforms";
+
+ /**
+ * The value of the [PLATFORMS] parameter used to specify that the library can
+ * be used on the VM.
+ */
+ static String _VM_PLATFORM = "VM_PLATFORM";
+
+ /**
+ * A flag indicating whether the dart2js path should be used when it is available.
+ */
+ final bool _useDart2jsPaths;
+
+ /**
+ * The library map that is populated by visiting the AST structure parsed from the contents of
+ * the libraries file.
+ */
+ LibraryMap _librariesMap = new LibraryMap();
+
+ /**
+ * Initialize a newly created library builder to use the dart2js path if the given value is
+ * `true`.
+ *
+ * @param useDart2jsPaths `true` if the dart2js path should be used when it is available
+ */
+ SdkLibrariesReader_LibraryBuilder(this._useDart2jsPaths);
+
+ /**
+ * Return the library map that was populated by visiting the AST structure parsed from the
+ * contents of the libraries file.
+ *
+ * @return the library map describing the contents of the SDK
+ */
+ LibraryMap get librariesMap => _librariesMap;
+
+ @override
+ Object visitMapLiteralEntry(MapLiteralEntry node) {
+ String libraryName = null;
+ Expression key = node.key;
+ if (key is SimpleStringLiteral) {
+ libraryName = "${_LIBRARY_PREFIX}${key.value}";
+ }
+ Expression value = node.value;
+ if (value is InstanceCreationExpression) {
+ SdkLibraryImpl library = new SdkLibraryImpl(libraryName);
+ List<Expression> arguments = value.argumentList.arguments;
+ for (Expression argument in arguments) {
+ if (argument is SimpleStringLiteral) {
+ library.path = argument.value;
+ } else if (argument is NamedExpression) {
+ String name = argument.name.label.name;
+ Expression expression = argument.expression;
+ if (name == _CATEGORY) {
+ library.category = (expression as SimpleStringLiteral).value;
+ } else if (name == _IMPLEMENTATION) {
+ library.implementation = (expression as BooleanLiteral).value;
+ } else if (name == _DOCUMENTED) {
+ library.documented = (expression as BooleanLiteral).value;
+ } else if (name == _PLATFORMS) {
+ if (expression is SimpleIdentifier) {
+ String identifier = expression.name;
+ if (identifier == _VM_PLATFORM) {
+ library.setVmLibrary();
+ } else {
+ library.setDart2JsLibrary();
+ }
+ }
+ } else if (_useDart2jsPaths && name == _DART2JS_PATH) {
+ if (expression is SimpleStringLiteral) {
+ library.path = expression.value;
+ }
+ }
+ }
+ }
+ _librariesMap.setLibrary(libraryName, library);
+ }
+ return null;
+ }
+}
+
+/**
+ * Represents a single library in the SDK
+ */
+abstract class SdkLibrary {
+ /**
+ * Return the name of the category containing the library.
+ *
+ * @return the name of the category containing the library
+ */
+ String get category;
+
+ /**
+ * Return the path to the file defining the library. The path is relative to the `lib`
+ * directory within the SDK.
+ *
+ * @return the path to the file defining the library
+ */
+ String get path;
+
+ /**
+ * Return the short name of the library. This is the name used after `dart:` in a URI.
+ *
+ * @return the short name of the library
+ */
+ String get shortName;
+
+ /**
+ * Return `true` if this library can be compiled to JavaScript by dart2js.
+ *
+ * @return `true` if this library can be compiled to JavaScript by dart2js
+ */
+ bool get isDart2JsLibrary;
+
+ /**
+ * Return `true` if the library is documented.
+ *
+ * @return `true` if the library is documented
+ */
+ bool get isDocumented;
+
+ /**
+ * Return `true` if the library is an implementation library.
+ *
+ * @return `true` if the library is an implementation library
+ */
+ bool get isImplementation;
+
+ /**
+ * Return `true` if library is internal can be used only by other SDK libraries.
+ *
+ * @return `true` if library is internal can be used only by other SDK libraries
+ */
+ bool get isInternal;
+
+ /**
+ * Return `true` if library can be used for both client and server.
+ *
+ * @return `true` if this library can be used for both client and server.
+ */
+ bool get isShared;
+
+ /**
+ * Return `true` if this library can be run on the VM.
+ *
+ * @return `true` if this library can be run on the VM
+ */
+ bool get isVmLibrary;
+}
+
+/**
+ * Instances of the class `SdkLibrary` represent the information known about a single library
+ * within the SDK.
+ */
+class SdkLibraryImpl implements SdkLibrary {
+ /**
+ * The short name of the library. This is the name used after `dart:` in a URI.
+ */
+ String _shortName = null;
+
+ /**
+ * The path to the file defining the library. The path is relative to the `lib` directory
+ * within the SDK.
+ */
+ String path = null;
+
+ /**
+ * The name of the category containing the library. Unless otherwise specified in the libraries
+ * file all libraries are assumed to be shared between server and client.
+ */
+ String category = "Shared";
+
+ /**
+ * A flag indicating whether the library is documented.
+ */
+ bool _documented = true;
+
+ /**
+ * A flag indicating whether the library is an implementation library.
+ */
+ bool _implementation = false;
+
+ /**
+ * An encoding of which platforms this library is intended to work on.
+ */
+ int _platforms = 0;
+
+ /**
+ * The bit mask used to access the bit representing the flag indicating whether a library is
+ * intended to work on the dart2js platform.
+ */
+ static int DART2JS_PLATFORM = 1;
+
+ /**
+ * The bit mask used to access the bit representing the flag indicating whether a library is
+ * intended to work on the VM platform.
+ */
+ static int VM_PLATFORM = 2;
+
+ /**
+ * Initialize a newly created library to represent the library with the given name.
+ *
+ * @param name the short name of the library
+ */
+ SdkLibraryImpl(String name) {
+ this._shortName = name;
+ }
+
+ @override
+ String get shortName => _shortName;
+
+ @override
+ bool get isDart2JsLibrary => (_platforms & DART2JS_PLATFORM) != 0;
+
+ @override
+ bool get isDocumented => _documented;
+
+ @override
+ bool get isImplementation => _implementation;
+
+ @override
+ bool get isInternal => "Internal" == category;
+
+ /**
+ * Return `true` if library can be used for both client and server
+ */
+ @override
+ bool get isShared => category == "Shared";
+
+ /**
+ * Return `true` if this library can be run on the VM.
+ *
+ * @return `true` if this library can be run on the VM
+ */
+ @override
+ bool get isVmLibrary => (_platforms & VM_PLATFORM) != 0;
+
+ /**
+ * Record that this library can be compiled to JavaScript by dart2js.
+ */
+ void setDart2JsLibrary() {
+ _platforms |= DART2JS_PLATFORM;
+ }
+
+ /**
+ * Set whether the library is documented to match the given value.
+ *
+ * @param documented `true` if the library is documented
+ */
+ void set documented(bool documented) {
+ this._documented = documented;
+ }
+
+ /**
+ * Set whether the library is an implementation library to match the given value.
+ *
+ * @param implementation `true` if the library is an implementation library
+ */
+ void set implementation(bool implementation) {
+ this._implementation = implementation;
+ }
+
+ /**
+ * Record that this library can be run on the VM.
+ */
+ void setVmLibrary() {
+ _platforms |= VM_PLATFORM;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698