Chromium Code Reviews| Index: pkg/yaml/lib/src/yaml_document.dart |
| diff --git a/pkg/yaml/lib/src/yaml_document.dart b/pkg/yaml/lib/src/yaml_document.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4c249a0c1fa8827eae57e3cb81fc978b98204550 |
| --- /dev/null |
| +++ b/pkg/yaml/lib/src/yaml_document.dart |
| @@ -0,0 +1,67 @@ |
| +// 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. |
| + |
| +library yaml.yaml_document; |
| + |
| +import 'dart:collection'; |
| + |
| +import 'package:source_span/source_span.dart'; |
| + |
| +import 'yaml_node.dart'; |
| + |
| +/// A YAML document, complete with metadata. |
| +class YamlDocument { |
| + /// The contents of the document. |
| + final YamlNode contents; |
| + |
| + /// The span covering the entire document. |
| + final SourceSpan span; |
| + |
| + /// The version directive for the document, if any. |
| + final VersionDirective versionDirective; |
| + |
| + /// The tag directives for the document. |
| + final List<TagDirective> tagDirectives; |
|
Bob Nystrom
2014/10/31 20:03:29
Maybe just "tags"? Are there non-directive tags?
nweiz
2014/11/04 22:19:38
Yes; the things that are attached to actual YAML v
|
| + |
| + /// Whether the beginning of the document was implicit (versus explicit via |
| + /// `===`). |
| + final bool startImplicit; |
| + |
| + /// Whether the end of the document was implicit (versus explicit via `...`). |
| + final bool endImplicit; |
| + |
| + /// Users of the library should not use this constructor. |
| + YamlDocument.internal(this.contents, this.span, this.versionDirective, |
| + List<TagDirective> tagDirectives, {this.startImplicit: false, |
| + this.endImplicit: false}) |
| + : tagDirectives = new UnmodifiableListView(tagDirectives); |
| + |
| + String toString() => contents.toString(); |
| +} |
| + |
| +/// A directive indicating which version of YAML a document was written to. |
| +class VersionDirective { |
| + /// The major version number. |
| + final int major; |
| + |
| + /// The minor version number. |
| + final int minor; |
| + |
| + VersionDirective(this.major, this.minor); |
| + |
| + String toString() => "%YAML $major.$minor"; |
| +} |
| + |
| +/// A directive describing a custom tag handle. |
| +class TagDirective { |
| + /// The handle for use in the document. |
| + final String handle; |
| + |
| + /// The prefix that the handle maps to. |
| + final String prefix; |
| + |
| + TagDirective(this.handle, this.prefix); |
| + |
| + String toString() => "%TAG $handle $prefix"; |
| +} |