| Index: mojo/public/dart/third_party/yaml/lib/yaml.dart
|
| diff --git a/mojo/public/dart/third_party/yaml/lib/yaml.dart b/mojo/public/dart/third_party/yaml/lib/yaml.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9af329a202eb098850b5ac92c88a433239d8dbf5
|
| --- /dev/null
|
| +++ b/mojo/public/dart/third_party/yaml/lib/yaml.dart
|
| @@ -0,0 +1,112 @@
|
| +// Copyright (c) 2012, 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.
|
| +
|
| +library yaml;
|
| +
|
| +import 'src/loader.dart';
|
| +import 'src/style.dart';
|
| +import 'src/yaml_document.dart';
|
| +import 'src/yaml_exception.dart';
|
| +import 'src/yaml_node.dart';
|
| +
|
| +export 'src/style.dart';
|
| +export 'src/utils.dart' show YamlWarningCallback, yamlWarningCallback;
|
| +export 'src/yaml_document.dart';
|
| +export 'src/yaml_exception.dart';
|
| +export 'src/yaml_node.dart' hide setSpan;
|
| +
|
| +/// Loads a single document from a YAML string.
|
| +///
|
| +/// If the string contains more than one document, this throws a
|
| +/// [YamlException]. In future releases, this will become an [ArgumentError].
|
| +///
|
| +/// The return value is mostly normal Dart objects. However, since YAML mappings
|
| +/// support some key types that the default Dart map implementation doesn't
|
| +/// (NaN, lists, and maps), all maps in the returned document are [YamlMap]s.
|
| +/// These have a few small behavioral differences from the default Map
|
| +/// implementation; for details, see the [YamlMap] class.
|
| +///
|
| +/// In future versions, maps will instead be [HashMap]s with a custom equality
|
| +/// operation.
|
| +///
|
| +/// If [sourceUrl] is passed, it's used as the URL from which the YAML
|
| +/// originated for error reporting. It can be a [String], a [Uri], or `null`.
|
| +loadYaml(String yaml, {sourceUrl}) =>
|
| + loadYamlNode(yaml, sourceUrl: sourceUrl).value;
|
| +
|
| +/// Loads a single document from a YAML string as a [YamlNode].
|
| +///
|
| +/// This is just like [loadYaml], except that where [loadYaml] would return a
|
| +/// normal Dart value this returns a [YamlNode] instead. This allows the caller
|
| +/// to be confident that the return value will always be a [YamlNode].
|
| +YamlNode loadYamlNode(String yaml, {sourceUrl}) =>
|
| + loadYamlDocument(yaml, sourceUrl: sourceUrl).contents;
|
| +
|
| +/// Loads a single document from a YAML string as a [YamlDocument].
|
| +///
|
| +/// This is just like [loadYaml], except that where [loadYaml] would return a
|
| +/// normal Dart value this returns a [YamlDocument] instead. This allows the
|
| +/// caller to access document metadata.
|
| +YamlDocument loadYamlDocument(String yaml, {sourceUrl}) {
|
| + var loader = new Loader(yaml, sourceUrl: sourceUrl);
|
| + var document = loader.load();
|
| + if (document == null) {
|
| + return new YamlDocument.internal(
|
| + new YamlScalar.internal(null, loader.span, ScalarStyle.ANY),
|
| + loader.span, null, const []);
|
| + }
|
| +
|
| + var nextDocument = loader.load();
|
| + if (nextDocument != null) {
|
| + throw new YamlException("Only expected one document.", nextDocument.span);
|
| + }
|
| +
|
| + return document;
|
| +}
|
| +
|
| +/// Loads a stream of documents from a YAML string.
|
| +///
|
| +/// The return value is mostly normal Dart objects. However, since YAML mappings
|
| +/// support some key types that the default Dart map implementation doesn't
|
| +/// (NaN, lists, and maps), all maps in the returned document are [YamlMap]s.
|
| +/// These have a few small behavioral differences from the default Map
|
| +/// implementation; for details, see the [YamlMap] class.
|
| +///
|
| +/// In future versions, maps will instead be [HashMap]s with a custom equality
|
| +/// operation.
|
| +///
|
| +/// If [sourceUrl] is passed, it's used as the URL from which the YAML
|
| +/// originated for error reporting. It can be a [String], a [Uri], or `null`.
|
| +YamlList loadYamlStream(String yaml, {sourceUrl}) {
|
| + var loader = new Loader(yaml, sourceUrl: sourceUrl);
|
| +
|
| + var documents = [];
|
| + var document = loader.load();
|
| + while (document != null) {
|
| + documents.add(document);
|
| + document = loader.load();
|
| + }
|
| +
|
| + return new YamlList.internal(
|
| + documents.map((document) => document.contents).toList(),
|
| + loader.span,
|
| + CollectionStyle.ANY);
|
| +}
|
| +
|
| +/// Loads a stream of documents from a YAML string.
|
| +///
|
| +/// This is like [loadYamlStream], except that it returns [YamlDocument]s with
|
| +/// metadata wrapping the document contents.
|
| +List<YamlDocument> loadYamlDocuments(String yaml, {sourceUrl}) {
|
| + var loader = new Loader(yaml, sourceUrl: sourceUrl);
|
| +
|
| + var documents = [];
|
| + var document = loader.load();
|
| + while (document != null) {
|
| + documents.add(document);
|
| + document = loader.load();
|
| + }
|
| +
|
| + return documents;
|
| +}
|
|
|