| Index: pkg/analyzer/lib/src/generated/sdk.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/sdk.dart b/pkg/analyzer/lib/src/generated/sdk.dart
|
| index 9697515f483629945f84e61b65520483e9148d48..82d89fb0c00c7648a5ddbb5fcf578405da5e5abd 100644
|
| --- a/pkg/analyzer/lib/src/generated/sdk.dart
|
| +++ b/pkg/analyzer/lib/src/generated/sdk.dart
|
| @@ -8,6 +8,7 @@
|
| library engine.sdk;
|
|
|
| import 'source.dart' show ContentCache, Source, UriKind;
|
| +import 'ast.dart';
|
| import 'engine.dart' show AnalysisContext;
|
|
|
| /**
|
| @@ -194,6 +195,87 @@ class SdkLibraryImpl implements SdkLibrary {
|
| }
|
| }
|
|
|
| +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 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";
|
| +
|
| + /**
|
| + * The library map that is populated by visiting the AST structure parsed from the contents of
|
| + * the libraries file.
|
| + */
|
| + final LibraryMap librariesMap = new LibraryMap();
|
| +
|
| + 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();
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }
|
| + librariesMap.setLibrary(libraryName, library);
|
| + }
|
| + return null;
|
| + }
|
| +}
|
| +
|
| /**
|
| * Instances of the class `LibraryMap` map Dart library URI's to the [SdkLibraryImpl
|
| ].
|
|
|