internal/third_party/yaml: parse into CUE ast
Also:
- remove support for parsing into Go-structs
- remove support for encoding
- add comment parsing
- port non-standard test harness to standard go
- add testdata
- fix some bugs related to merging
Change-Id: I7fbd2bed6f76bb5da8a309f8d3fb3fb6228048ab
diff --git a/internal/third_party/yaml/testdata/merge.out b/internal/third_party/yaml/testdata/merge.out
new file mode 100644
index 0000000..e3edf5a
--- /dev/null
+++ b/internal/third_party/yaml/testdata/merge.out
@@ -0,0 +1,69 @@
+// From http://yaml.org/type/merge.html
+// Test
+anchors list: [{
+ x: 1
+ y: 2
+}, {
+ x: 0
+ y: 2
+}, {
+ r: 10
+}, {
+ r: 1
+}]
+// All the following maps are equal:
+plain: {
+ // Explicit keys
+ x: 1
+ y: 2
+ r: 10
+ label: "center/big"
+}
+mergeOne: {
+ x: 1
+ y: 2
+ // Merge one map
+ r: 10
+ label: "center/big"
+}
+mergeMultiple: {
+ r: 10
+ x: 1
+ y: 2
+ // Merge multiple maps
+ label: "center/big"
+}
+override: {
+ r: 10
+ x: 1
+ y: 2
+ label: "center/big"
+}
+shortTag: {
+ r: 10
+ x: 1
+ y: 2
+ // Explicit short merge tag
+ label: "center/big"
+}
+longTag: {
+ r: 10
+ x: 1
+ y: 2
+ // Explicit merge long tag
+ label: "center/big"
+}
+inlineMap: {
+ // Inlined map
+ x: 1
+ y: 2
+ r: 10
+ label: "center/big"
+}
+inlineSequenceMap: {
+ // Inlined map in sequence
+ r: 10
+ x: 1
+ y: 2
+ label: "center/big"
+}
\ No newline at end of file
diff --git a/internal/third_party/yaml/testdata/merge.test b/internal/third_party/yaml/testdata/merge.test
new file mode 100644
index 0000000..733ba2b
--- /dev/null
+++ b/internal/third_party/yaml/testdata/merge.test
@@ -0,0 +1,54 @@
+# From http://yaml.org/type/merge.html
+# Test
+anchors:
+ list:
+ - &CENTER { "x": 1, "y": 2 }
+ - &LEFT { "x": 0, "y": 2 }
+ - &BIG { "r": 10 }
+ - &SMALL { "r": 1 }
+
+# All the following maps are equal:
+
+plain:
+ # Explicit keys
+ "x": 1
+ "y": 2
+ "r": 10
+ label: center/big
+
+mergeOne:
+ # Merge one map
+ << : *CENTER
+ "r": 10
+ label: center/big
+
+mergeMultiple:
+ # Merge multiple maps
+ << : [ *CENTER, *BIG ]
+ label: center/big
+
+override:
+ # Override
+ << : [ *BIG, *LEFT, *SMALL ]
+ "x": 1
+ label: center/big
+
+shortTag:
+ # Explicit short merge tag
+ !!merge "<<" : [ *CENTER, *BIG ]
+ label: center/big
+
+longTag:
+ # Explicit merge long tag
+ !<tag:yaml.org,2002:merge> "<<" : [ *CENTER, *BIG ]
+ label: center/big
+
+inlineMap:
+ # Inlined map
+ << : {"x": 1, "y": 2, "r": 10}
+ label: center/big
+
+inlineSequenceMap:
+ # Inlined map in sequence
+ << : [ *CENTER, {"r": 10} ]
+ label: center/big
\ No newline at end of file