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

Side by Side Diff: pkg/yaml/lib/yaml.dart

Issue 14103026: Restructure the yaml package. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/yaml/lib/visitor.dart ('k') | pkg/yaml/lib/yaml_map.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// A parser for [YAML](http://www.yaml.org/). 5 /// A parser for [YAML](http://www.yaml.org/).
6 /// 6 ///
7 /// Use [loadYaml] to load a single document, or [loadYamlStream] to load a 7 /// Use [loadYaml] to load a single document, or [loadYamlStream] to load a
8 /// stream of documents. For example: 8 /// stream of documents. For example:
9 /// 9 ///
10 /// import 'package:yaml/yaml.dart'; 10 /// import 'package:yaml/yaml.dart';
11 /// main() { 11 /// main() {
12 /// var doc = loadYaml("YAML: YAML Ain't Markup Language"); 12 /// var doc = loadYaml("YAML: YAML Ain't Markup Language");
13 /// print(doc['YAML']); 13 /// print(doc['YAML']);
14 /// } 14 /// }
15 /// 15 ///
16 /// This library currently doesn't support dumping to YAML. You should use 16 /// This library currently doesn't support dumping to YAML. You should use
17 /// `stringify` from `dart:json` instead: 17 /// `stringify` from `dart:json` instead:
18 /// 18 ///
19 /// import 'dart:json' as json; 19 /// import 'dart:json' as json;
20 /// import 'package:yaml/yaml.dart'; 20 /// import 'package:yaml/yaml.dart';
21 /// main() { 21 /// main() {
22 /// var doc = loadYaml("YAML: YAML Ain't Markup Language"); 22 /// var doc = loadYaml("YAML: YAML Ain't Markup Language");
23 /// print(json.stringify(doc)); 23 /// print(json.stringify(doc));
24 /// } 24 /// }
25 library yaml; 25 library yaml;
26 26
27 import 'dart:math' as Math; 27 import 'src/composer.dart';
28 import 'dart:collection' show Queue; 28 import 'src/constructor.dart';
29 import 'src/parser.dart';
30 import 'src/yaml_exception.dart';
29 31
30 import 'deep_equals.dart'; 32 export 'src/yaml_exception.dart';
31 33 export 'src/yaml_map.dart';
32 part 'yaml_map.dart';
33 part 'model.dart';
34 part 'parser.dart';
35 part 'visitor.dart';
36 part 'composer.dart';
37 part 'constructor.dart';
38 34
39 /// Loads a single document from a YAML string. If the string contains more than 35 /// Loads a single document from a YAML string. If the string contains more than
40 /// one document, this throws an error. 36 /// one document, this throws an error.
41 /// 37 ///
42 /// The return value is mostly normal Dart objects. However, since YAML mappings 38 /// The return value is mostly normal Dart objects. However, since YAML mappings
43 /// support some key types that the default Dart map implementation doesn't 39 /// support some key types that the default Dart map implementation doesn't
44 /// (null, NaN, booleans, lists, and maps), all maps in the returned document 40 /// (null, NaN, booleans, lists, and maps), all maps in the returned document
45 /// are YamlMaps. These have a few small behavioral differences from the default 41 /// are [YamlMap]s. These have a few small behavioral differences from the
46 /// Map implementation; for details, see the YamlMap class. 42 /// default Map implementation; for details, see the [YamlMap] class.
47 loadYaml(String yaml) { 43 loadYaml(String yaml) {
48 var stream = loadYamlStream(yaml); 44 var stream = loadYamlStream(yaml);
49 if (stream.length != 1) { 45 if (stream.length != 1) {
50 throw new YamlException("Expected 1 document, were ${stream.length}"); 46 throw new YamlException("Expected 1 document, were ${stream.length}");
51 } 47 }
52 return stream[0]; 48 return stream[0];
53 } 49 }
54 50
55 /// Loads a stream of documents from a YAML string. 51 /// Loads a stream of documents from a YAML string.
56 /// 52 ///
57 /// The return value is mostly normal Dart objects. However, since YAML mappings 53 /// The return value is mostly normal Dart objects. However, since YAML mappings
58 /// support some key types that the default Dart map implementation doesn't 54 /// support some key types that the default Dart map implementation doesn't
59 /// (null, NaN, booleans, lists, and maps), all maps in the returned document 55 /// (null, NaN, booleans, lists, and maps), all maps in the returned document
60 /// are YamlMaps. These have a few small behavioral differences from the default 56 /// are [YamlMap]s. These have a few small behavioral differences from the
61 /// Map implementation; for details, see the YamlMap class. 57 /// default Map implementation; for details, see the [YamlMap] class.
62 List loadYamlStream(String yaml) { 58 List loadYamlStream(String yaml) {
63 return new _Parser(yaml).l_yamlStream() 59 return new Parser(yaml).l_yamlStream()
64 .map((doc) => new _Constructor(new _Composer(doc).compose()).construct()) 60 .map((doc) => new Constructor(new Composer(doc).compose()).construct())
65 .toList(); 61 .toList();
66 } 62 }
67
68 /// An error thrown by the YAML processor.
69 class YamlException implements Exception {
70 String msg;
71
72 YamlException(this.msg);
73
74 String toString() => msg;
75 }
OLDNEW
« no previous file with comments | « pkg/yaml/lib/visitor.dart ('k') | pkg/yaml/lib/yaml_map.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698