From 17f636215de90a812a3d99b75f8fe454a4f6a2bd Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Sun, 31 Mar 2024 21:35:41 +0300 Subject: [PATCH] test: use spec examples --- examples/invoice.yaml | 29 + examples/log-file.yaml | 29 + test/corpus/02_preview.txt | 1246 +++++ test/corpus/05_characters.txt | 326 ++ test/corpus/06_structures.txt | 763 +++ test/corpus/07_flows.txt | 729 +++ test/corpus/08_blocks.txt | 770 +++ test/corpus/09_streams.txt | 145 + test/corpus/10_schemas.txt | 508 ++ test/corpus/schema.txt | 354 -- test/corpus/spec.txt | 9836 --------------------------------- 11 files changed, 4545 insertions(+), 10190 deletions(-) create mode 100644 examples/invoice.yaml create mode 100644 examples/log-file.yaml create mode 100644 test/corpus/02_preview.txt create mode 100644 test/corpus/05_characters.txt create mode 100644 test/corpus/06_structures.txt create mode 100644 test/corpus/07_flows.txt create mode 100644 test/corpus/08_blocks.txt create mode 100644 test/corpus/09_streams.txt create mode 100644 test/corpus/10_schemas.txt delete mode 100644 test/corpus/schema.txt delete mode 100644 test/corpus/spec.txt diff --git a/examples/invoice.yaml b/examples/invoice.yaml new file mode 100644 index 0000000..4625739 --- /dev/null +++ b/examples/invoice.yaml @@ -0,0 +1,29 @@ +--- ! +invoice: 34843 +date : 2001-01-23 +bill-to: &id001 + given : Chris + family : Dumars + address: + lines: | + 458 Walkman Dr. + Suite #292 + city : Royal Oak + state : MI + postal : 48046 +ship-to: *id001 +product: + - sku : BL394D + quantity : 4 + description : Basketball + price : 450.00 + - sku : BL4438H + quantity : 1 + description : Super Hoop + price : 2392.00 +tax : 251.42 +total: 4443.52 +comments: + Late afternoon is best. + Backup contact is Nancy + Billsmer @ 338-4338. diff --git a/examples/log-file.yaml b/examples/log-file.yaml new file mode 100644 index 0000000..eb5fb8a --- /dev/null +++ b/examples/log-file.yaml @@ -0,0 +1,29 @@ +--- +Time: 2001-11-23 15:01:42 -5 +User: ed +Warning: + This is an error message + for the log file +--- +Time: 2001-11-23 15:02:31 -5 +User: ed +Warning: + A slightly different error + message. +--- +Date: 2001-11-23 15:03:17 -5 +User: ed +Fatal: + Unknown variable "bar" +Stack: + - file: TopClass.py + line: 23 + code: | + x = MoreObject("345\n") + - file: MoreClass.py + line: 58 + code: |- + foo = bar + + + diff --git a/test/corpus/02_preview.txt b/test/corpus/02_preview.txt new file mode 100644 index 0000000..9377831 --- /dev/null +++ b/test/corpus/02_preview.txt @@ -0,0 +1,1246 @@ +============================================================================ +Sequence of Scalars (ball players) +============================================================================ +- Mark McGwire +- Sammy Sosa +- Ken Griffey + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================ +Mapping Scalars to Scalars (player statistics) +============================================================================ +hr: 65 # Home runs +avg: 0.278 # Batting average +rbi: 147 # Runs Batted In + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (comment) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar)))) + (comment) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (comment))))) + +============================================================================ +Mapping Scalars to Sequences (ball clubs in each league) +============================================================================ +american: + - Boston Red Sox + - Detroit Tigers + - New York Yankees +national: + - New York Mets + - Chicago Cubs + - Atlanta Braves + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))))))) + +============================================================================ +Sequence of Mappings (players’ statistics) +============================================================================ +- + name: Mark McGwire + hr: 65 + avg: 0.278 +- + name: Sammy Sosa + hr: 63 + avg: 0.288 + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar))))))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar))))))))))) + +============================================================================ +Sequence of Sequences +============================================================================ +- [name , hr, avg ] +- [Mark McGwire, 65, 0.278] +- [Sammy Sosa , 63, 0.288] + + + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))) + (block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))))))) + +============================================================================ +Mapping of Mappings +============================================================================ +Mark McGwire: {hr: 65, avg: 0.278} +Sammy Sosa: { + hr: 63, + avg: 0.288 + } + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar))))))))))) + +============================================================================ +Two Documents in a Stream (each with a leading comment) +============================================================================ +# Ranking of 1998 home runs +--- +- Mark McGwire +- Sammy Sosa +- Ken Griffey + +# Team ranking +--- +- Chicago Cubs +- St Louis Cardinals + +---------------------------------------------------------------------------- + +(stream + (comment) + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (comment)))) + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================ +Play by Play Feed from a Game +============================================================================ +--- +time: 20:03:20 +player: Sammy Sosa +action: strike (miss) +... +--- +time: 20:03:47 +player: Sammy Sosa +action: grand slam +... + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================ +Single Document with Two Comments +============================================================================ +--- +hr: # 1998 hr ranking + - Mark McGwire + - Sammy Sosa +rbi: + # 1998 rbi ranking + - Sammy Sosa + - Ken Griffey + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))))))) + +============================================================================ +Node for “Sammy Sosa” appears twice in this document +============================================================================ +--- +hr: + - Mark McGwire + # Following node labeled SS + - &SS Sammy Sosa +rbi: + - *SS # Subsequent occurrence + - Ken Griffey + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (comment) + (block_sequence_item + (flow_node + (anchor + (anchor_name)) + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (alias + (alias_name)))) + (comment) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))))))) + +============================================================================ +Mapping between Sequences +============================================================================ +? - Detroit Tigers + - Chicago cubs +: + - 2001-07-23 + +? [ New York Yankees, + Atlanta Braves ] +: [ 2001-07-02, 2001-08-12, + 2001-08-14 ] + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))))) + +============================================================================ +Compact Nested Mapping +============================================================================ +--- +# Products purchased +- item : Super Hoop + quantity: 1 +- item : Basketball + quantity: 4 +- item : Big Shoes + quantity: 1 + + +---------------------------------------------------------------------------- + +(stream + (document + (comment) + (block_node + (block_sequence + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))))))) + +============================================================================ +In literals, newlines are preserved +============================================================================ +# ASCII Art +--- | + \//||\/|| + // || ||__ + +---------------------------------------------------------------------------- + +(stream + (comment) + (document + (block_node + (block_scalar)))) + +============================================================================ +In the folded scalars, newlines become spaces +============================================================================ +--- > + Mark McGwire's + year was crippled + by a knee injury. + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar)))) + +============================================================================ +Folded newlines are preserved for "more indented" and blank lines +============================================================================ +> + Sammy Sosa completed another + fine season with great stats. + + 63 Home Runs + 0.288 Batting Average + + What a year! + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar)))) + +============================================================================ +Indentation determines scope +============================================================================ +name: Mark McGwire +accomplishment: > + Mark set a major league + home run record in 1998. +stats: | + 65 Home Runs + 0.278 Batting Average + + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +============================================================================ +Quoted Scalars +============================================================================ +unicode: "Sosa did fine.\u263A" +control: "\b1998\t1999\t2000\n" +hex esc: "\x0d\x0a is \r\n" + +single: '"Howdy!" he cried.' +quoted: ' # Not a ''comment''.' +tie-fighter: '|\-*-/|' + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar + (escape_sequence)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (single_quote_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (single_quote_scalar + (escape_sequence) + (escape_sequence)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (single_quote_scalar))))))) + +============================================================================ +Multi-line Flow Scalars +============================================================================ +plain: + This unquoted scalar + spans many lines. + +quoted: "So does this + quoted scalar.\n" + + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar + (escape_sequence)))))))) + +============================================================================ +Integers +============================================================================ +canonical: 12345 +decimal: +12345 +octal: 0o14 +hexadecimal: 0xC + + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))))))) + +============================================================================ +Floating Point +============================================================================ +canonical: 1.23015e+3 +exponential: 12.3015e+02 +fixed: 1230.15 +negative infinity: -.inf +not a number: .NaN + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))))) + +============================================================================ +Miscellaneous +============================================================================ +null: +booleans: [ true, false ] +string: '012345' + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (null_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (boolean_scalar))) + (flow_node + (plain_scalar + (boolean_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (single_quote_scalar))))))) + +============================================================================ +Timestamps +============================================================================ +canonical: 2001-12-15T02:59:43.1Z +iso8601: 2001-12-14t21:59:43.10-05:00 +spaced: 2001-12-14 21:59:43.10 -5 +date: 2002-12-14 + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================ +Various Explicit Tags +============================================================================ +--- +not-date: !!str 2002-04-28 + +picture: !!binary | + R0lGODlhDAAMAIQAAP//9/X + 17unp5WZmZgAAAOfn515eXv + Pz7Y6OjuDg4J+fn5OTk6enp + 56enmleECcgggoBADs= + +application specific tag: !something | + The semantics of the tag + above may be different for + different documents. + + +---------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_scalar))))))) + +============================================================================ +Global Tags +============================================================================ +%TAG ! tag:clarkevans.com,2002: +--- !shape + # Use the ! handle for presenting + # tag:clarkevans.com,2002:circle +- !circle + center: &ORIGIN {x: 73, y: 129} + radius: 7 +- !line + start: *ORIGIN + finish: { x: 89, y: 102 } +- !label + start: *ORIGIN + color: 0xFFEEBB + text: Pretty vector drawing. + +---------------------------------------------------------------------------- + +(stream + (document + (tag_directive + (tag_handle) + (tag_prefix)) + (block_node + (tag) + (comment) + (comment) + (block_sequence + (block_sequence_item + (block_node + (tag) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (anchor + (anchor_name)) + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (block_sequence_item + (block_node + (tag) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (alias + (alias_name)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))))))))) + (block_sequence_item + (block_node + (tag) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (alias + (alias_name)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +============================================================================ +Unordered Sets +============================================================================ +# Sets are represented as a +# Mapping where each key is +# associated with a null value +--- !!set +? Mark McGwire +? Sammy Sosa +? Ken Griff + +---------------------------------------------------------------------------- + +(stream + (comment) + (comment) + (comment) + (document + (block_node + (tag) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================ +Ordered Mappings +============================================================================ +# Ordered maps are represented as +# A sequence of mappings, with +# each mapping having one key +--- !!omap +- Mark McGwire: 65 +- Sammy Sosa: 63 +- Ken Griffy: 58 + +---------------------------------------------------------------------------- + +(stream + (comment) + (comment) + (comment) + (document + (block_node + (tag) + (block_sequence + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))))))) diff --git a/test/corpus/05_characters.txt b/test/corpus/05_characters.txt new file mode 100644 index 0000000..0e3ef96 --- /dev/null +++ b/test/corpus/05_characters.txt @@ -0,0 +1,326 @@ +================================================================================ +Byte Order Mark +================================================================================ +# Comment only. + +-------------------------------------------------------------------------------- + +(stream + (comment)) + +================================================================================ +Invalid Byte Order Mark +:error +================================================================================ +- Invalid use of BOM + +- Inside a document. + +-------------------------------------------------------------------------------- + +================================================================================ +Block Structure Indicators +================================================================================ +sequence: +- one +- two +mapping: + ? sky + : blue + sea : green + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Flow Collection Indicators +================================================================================ +sequence: [ one, two, ] +mapping: { sky: blue, sea: green } + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Comment Indicator +================================================================================ +# Comment only. + +-------------------------------------------------------------------------------- + +(stream + (comment)) + +================================================================================ +Node Property Indicators +================================================================================ +anchored: !local &anchor value +alias: *anchor + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (anchor + (anchor_name)) + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (alias + (alias_name)))))))) + +================================================================================ +Block Scalar Indicators +================================================================================ +literal: | + some + text +folded: > + some + text + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +================================================================================ +Quoted Scalar Indicators +================================================================================ +single: 'text' +double: "text" + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (single_quote_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar))))))) + +================================================================================ +Directive Indicator +================================================================================ +%YAML 1.2 +--- text + +-------------------------------------------------------------------------------- + +(stream + (document + (yaml_directive + (yaml_version)) + (flow_node + (plain_scalar + (string_scalar))))) + +================================================================================ +Invalid use of Reserved Indicators +:error +================================================================================ +commercial-at: @text +grave-accent: `text + +-------------------------------------------------------------------------------- + +================================================================================ +Line Break Characters +================================================================================ +| + Line break (no glyph) + Line break (glyphed) + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar)))) + +================================================================================ +Tabs and Spaces +================================================================================ +# Tabs and spaces +quoted: "Quoted " +block: | + void main() { + printf("Hello, world!\n"); + } + +-------------------------------------------------------------------------------- + + (stream + (comment) + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +================================================================================ +Escaped Characters +================================================================================ +"Fun with \\ +\" \a \b \e \f +\n \r \t \v \0 +\ \_ \N \L \P +\x41 \u0041 \U00000041" + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (double_quote_scalar + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence) + (escape_sequence))))) + +================================================================================ +Invalid Escaped Characters +:error +================================================================================ +Bad escapes: + "\c + \xq-" + +-------------------------------------------------------------------------------- + diff --git a/test/corpus/06_structures.txt b/test/corpus/06_structures.txt new file mode 100644 index 0000000..0dc3da9 --- /dev/null +++ b/test/corpus/06_structures.txt @@ -0,0 +1,763 @@ +============================================================================|||| +Indentation Spaces +============================================================================|||| + # Leading comment line spaces are + # neither content nor indentation. + +Not indented: + By one space: | + By four + spaces + Flow style: [ # Leading spaces + By two, # in flow style + Also by two, # are neither + Still by two # content nor + ] # indentation. + +----------------------------------------------------------------------------|||| + +(stream + (comment) + (comment) + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (comment) + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (flow_node + (plain_scalar + (string_scalar))) + (comment)))) +(comment)))))))) + +============================================================================|||| +Indentation Indicators +============================================================================|||| +? a +: - b + - - c + - d + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))))))))))))) + +============================================================================|||| +Separation Spaces +============================================================================|||| +- foo: bar +- - baz + - baz + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (block_sequence_item + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))))))) + +============================================================================|||| +Line Prefixes +============================================================================|||| +plain: text + lines +quoted: "text + lines" +block: | + text + lines + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +============================================================================|||| +Empty Lines +============================================================================|||| +Folding: + "Empty line + + as a line feed" +Chomping: | + Clipped empty lines + + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +============================================================================|||| +Line Folding +============================================================================|||| +>- + trimmed + + + + + + + + as + + space + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_scalar)))) + +============================================================================|||| +Block Folding +============================================================================|||| +> + foo + + + + bar + + + + baz + + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_scalar)))) + +============================================================================|||| +Flow Folding +============================================================================|||| +" + + foo + + + + bar + + + + baz + +" + +----------------------------------------------------------------------------|||| + +(stream + (document + (flow_node + (double_quote_scalar)))) + +============================================================================|||| +Separated Comment +============================================================================|||| +key: # Comment + + value +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================|||| +Comment Lines +============================================================================|||| + # Comment + + + + + + +----------------------------------------------------------------------------|||| + +(stream + (comment)) + +============================================================================|||| +Multi-Line Comments +============================================================================|||| +key: # Comment + + # lines + + value + + + + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (comment) + (flow_node + (plain_scalar + (string_scalar)))))))) + +============================================================================|||| +Separation Spaces +============================================================================|||| +{ first: Sammy, last: Sosa }: + +# Statistics: + hr: # Home runs + 65 + avg: # Average + 0.278 + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (comment) + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (flow_node + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (comment) + (flow_node + (plain_scalar + (float_scalar))))))))))) + +============================================================================|||| +Reserved Directives +============================================================================|||| +%FOO bar baz # Should be ignored + # with a warning. +--- "foo" + +----------------------------------------------------------------------------|||| + +(stream + (document + (reserved_directive + (directive_name) + (directive_parameter) + (directive_parameter)) + (comment) + (comment) + (flow_node + (double_quote_scalar)))) + +============================================================================|||| +“YAML” directive +============================================================================|||| +%YAML 1.3 # Attempt parsing + # with a warning +--- +"foo" + +----------------------------------------------------------------------------|||| + +(stream + (document + (yaml_directive + (yaml_version)) + (comment) + (comment) + (flow_node + (double_quote_scalar)))) + +============================================================================|||| +Invalid Repeated YAML directive +:error +============================================================================|||| +%YAML 1.2 +%YAML 1.1 +foo + +----------------------------------------------------------------------------|||| + +============================================================================|||| +“TAG” directive +============================================================================|||| +%TAG !yaml! tag:yaml.org,2002: +--- +!yaml!str "foo" + +----------------------------------------------------------------------------|||| + +(stream + (document + (tag_directive + (tag_handle) + (tag_prefix)) + (flow_node + (tag) + (double_quote_scalar)))) + +============================================================================|||| +Invalid Repeated TAG directive +:error +============================================================================|||| +%TAG ! !foo +%TAG ! !foo +bar + +----------------------------------------------------------------------------|||| + +============================================================================|||| +Primary Tag Handle +============================================================================|||| +# Private +!foo "bar" +... +# Global +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" + +----------------------------------------------------------------------------|||| + +(stream + (comment) + (document + (flow_node + (tag) + (double_quote_scalar))) + (comment) + (document + (tag_directive + (tag_handle) + (tag_prefix)) + (flow_node + (tag) + (double_quote_scalar)))) + +============================================================================|||| +Secondary Tag Handle +============================================================================|||| +%TAG !! tag:example.com,2000:app/ +--- +!!int 1 - 3 # Interval, not integer + +----------------------------------------------------------------------------|||| + +(stream + (document + (tag_directive + (tag_handle) + (tag_prefix)) + (flow_node + (tag) + (plain_scalar + (string_scalar)))) + (comment)) + +============================================================================|||| +Tag Handles +============================================================================|||| +%TAG !e! tag:example.com,2000:app/ +--- +!e!foo "bar" + +----------------------------------------------------------------------------|||| + +(stream +(document +(tag_directive +(tag_handle) +(tag_prefix)) +(flow_node +(tag) +(double_quote_scalar)))) + +============================================================================|||| +Local Tag Prefix +============================================================================|||| +%TAG !m! !my- +--- # Bulb here +!m!light fluorescent +... +%TAG !m! !my- +--- # Color here +!m!light green + +----------------------------------------------------------------------------|||| + +(stream +(document +(tag_directive +(tag_handle) +(tag_prefix)) +(comment) +(flow_node +(tag) +(plain_scalar +(string_scalar)))) +(document +(tag_directive +(tag_handle) +(tag_prefix)) +(comment) +(flow_node +(tag) +(plain_scalar +(string_scalar))))) + +============================================================================|||| +Global Tag Prefix +============================================================================|||| +%TAG !e! tag:example.com,2000:app/ +--- +- !e!foo "bar" + +----------------------------------------------------------------------------|||| + +(stream +(document +(tag_directive +(tag_handle) +(tag_prefix)) +(block_node +(block_sequence +(block_sequence_item +(flow_node +(tag) +(double_quote_scalar))))))) + +============================================================================|||| +Node Properties +============================================================================|||| +!!str &a1 "foo": + !!str bar +&a2 baz : *a1 + +----------------------------------------------------------------------------|||| + +(stream +(document +(block_node +(block_mapping +(block_mapping_pair +(flow_node +(tag) +(anchor +(anchor_name)) +(double_quote_scalar)) +(flow_node +(tag) +(plain_scalar +(string_scalar)))) +(block_mapping_pair +(flow_node +(anchor +(anchor_name)) +(plain_scalar +(string_scalar))) +(flow_node +(alias +(alias_name)))))))) + +============================================================================|||| +Verbatim Tags +============================================================================|||| +! foo : + ! baz + +----------------------------------------------------------------------------|||| + +(stream +(document +(block_node +(block_mapping +(block_mapping_pair +(flow_node +(tag) +(plain_scalar +(string_scalar))) +(flow_node +(tag) +(plain_scalar +(string_scalar)))))))) + +============================================================================|||| +Invalid Verbatim Tags +============================================================================|||| +- ! foo +- !<$:?> bar + +----------------------------------------------------------------------------|||| + +(stream +(document +(block_node +(block_sequence +(block_sequence_item +(flow_node +(tag) +(plain_scalar +(string_scalar)))) +(block_sequence_item +(flow_node +(tag) +(plain_scalar +(string_scalar)))))))) + +============================================================================|||| +Tag Shorthands +============================================================================|||| +%TAG !e! tag:example.com,2000:app/ +--- +- !local foo +- !!str bar +- !e!tag%21 baz + +----------------------------------------------------------------------------|||| + +(stream +(document +(tag_directive +(tag_handle) +(tag_prefix)) +(block_node +(block_sequence +(block_sequence_item +(flow_node +(tag) +(plain_scalar +(string_scalar)))) +(block_sequence_item +(flow_node +(tag) +(plain_scalar +(string_scalar)))) +(block_sequence_item +(flow_node +(tag) +(plain_scalar +(string_scalar)))))))) + +============================================================================|||| +Invalid Tag Shorthands +============================================================================|||| +%TAG !e! tag:example,2000:app/ +--- +- !e! foo +- !h!bar baz + +----------------------------------------------------------------------------|||| + +(ERROR +(tag_directive +(tag_handle) +(tag_prefix)) +(block_sequence_item)) + +============================================================================|||| +Non-Specific Tags +============================================================================|||| +# Assuming conventional resolution: +- "12" +- 12 +- ! 12 + +----------------------------------------------------------------------------|||| + +(stream +(comment) +(document +(block_node +(block_sequence +(block_sequence_item +(flow_node +(double_quote_scalar))) +(block_sequence_item +(flow_node +(plain_scalar +(integer_scalar)))) +(block_sequence_item +(flow_node +(tag) +(plain_scalar +(integer_scalar)))))))) + +============================================================================|||| +Node Anchors +============================================================================|||| +First occurrence: &anchor Value +Second occurrence: *anchor + +----------------------------------------------------------------------------|||| + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (anchor + (anchor_name)) + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (alias + (alias_name)))))))) diff --git a/test/corpus/07_flows.txt b/test/corpus/07_flows.txt new file mode 100644 index 0000000..4f63ac9 --- /dev/null +++ b/test/corpus/07_flows.txt @@ -0,0 +1,729 @@ +================================================================================ +Alias Nodes +================================================================================ +First occurrence: &anchor Foo +Second occurrence: *anchor +Override anchor: &anchor Bar +Reuse anchor: *anchor + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (anchor + (anchor_name)) + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (alias + (alias_name)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (anchor + (anchor_name)) + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (alias + (alias_name)))))))) + +================================================================================ +Empty Content +================================================================================ +{ + foo : !!str, + !!str : bar, +} + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag))) + (flow_pair + (flow_node + (tag)) + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Completely Empty Flow Nodes +================================================================================ +{ + ? foo :, + : bar, +} + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Double Quoted Implicit Keys +================================================================================ +"implicit block key" : [ + "implicit flow key" : value, + ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (double_quote_scalar)) + (flow_node + (flow_sequence + (flow_pair + (flow_node + (double_quote_scalar)) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Double Quoted Line Breaks +================================================================================ +"folded + +to a space, + + + +to a line feed, or \ + + \ non-content" + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (double_quote_scalar + (escape_sequence) + (escape_sequence))))) + +================================================================================ +Double Quoted Lines +================================================================================ +" 1st non-empty + + + + 2nd non-empty + 3rd non-empty " + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (double_quote_scalar)))) + +================================================================================ +Single Quoted Characters +================================================================================ + 'here''s to "quotes"' + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (single_quote_scalar + (escape_sequence))))) + +================================================================================ +Single Quoted Implicit Keys +================================================================================ +'implicit block key' : [ + 'implicit flow key' : value, + ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (single_quote_scalar)) + (flow_node + (flow_sequence + (flow_pair + (flow_node + (single_quote_scalar)) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Single Quoted Lines +================================================================================ +' 1st non-empty + + + + 2nd non-empty + 3rd non-empty ' + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (single_quote_scalar)))) + +================================================================================ +Plain Characters +================================================================================ +# Outside flow collection: +- ::vector +- ": - ()" +- Up, up, and away! +- -123 +- http://example.com/foo#bar +# Inside flow collection: +- [ ::vector, + ": - ()", + "Up, up and away!", + -123, + http://example.com/foo#bar ] + +-------------------------------------------------------------------------------- + +(stream + (comment) + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (double_quote_scalar))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (integer_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (comment) +(block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar)) + (flow_node + (double_quote_scalar)) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))))) + +================================================================================ +Plain Implicit Keys +================================================================================ +implicit block key : [ + implicit flow key : value, + ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Plain Lines +================================================================================ +1st non-empty + + + + 2nd non-empty + 3rd non-empty + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (plain_scalar + (string_scalar))))) + +================================================================================ +Flow Sequence +================================================================================ +- [ one, two, ] +- [three ,four] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))))) + +================================================================================ +Flow Sequence Entries +================================================================================ +[ +"double + quoted", 'single + quoted', +plain + text, [ nested ], +single: pair, +] + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_sequence + (flow_node + (double_quote_scalar)) + (flow_node + (single_quote_scalar)) + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Flow Mappings +================================================================================ +- { one : two , three: four , } +- {five: six,seven : eight} + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (block_sequence_item + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Flow Mapping Entries +================================================================================ +{ +? explicit: entry, +implicit: entry, +? +} + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair))))) + +================================================================================ +Flow Mapping Separate Values +================================================================================ +{ +unquoted : "separate", +http://foo.com, +omitted value:, +: omitted key, +} + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar))) + (flow_node + (plain_scalar + (string_scalar))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Flow Mapping Adjacent Values +================================================================================ +{ +"adjacent":value, +"readable": value, +"empty": +} + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_mapping + (flow_pair + (flow_node + (double_quote_scalar)) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (double_quote_scalar)) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (double_quote_scalar))))))) + +================================================================================ +Single Pair Flow Mappings +================================================================================ +[ +foo: bar +] + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_sequence + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Single Pair Explicit Entry +================================================================================ +[ +? foo + bar : baz +] + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_sequence + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Single Pair Implicit Entries +================================================================================ +- [ YAML : separate ] +- [ : empty key entry ] +- [ {JSON: like}:adjacent ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (flow_sequence + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (block_sequence_item + (flow_node + (flow_sequence + (flow_pair + (flow_node + (plain_scalar + (string_scalar))))))) + (block_sequence_item + (flow_node + (flow_sequence + (flow_pair + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Invalid Implicit Keys +================================================================================ +[ foo + bar: invalid, + "foo...>1K characters...bar": invalid ] + +-------------------------------------------------------------------------------- + +(stream + (document + (flow_node + (flow_sequence + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (double_quote_scalar)) + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Flow Content +================================================================================ +- [ a, b ] +- { a: b } +- "a" +- 'b' +- c + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (block_sequence_item + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (block_sequence_item + (flow_node + (double_quote_scalar))) + (block_sequence_item + (flow_node + (single_quote_scalar))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))))))) + +================================================================================ +Flow Nodes +================================================================================ +- !!str "a" +- 'b' +- &anchor "c" +- *anchor +- !!str + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (tag) + (double_quote_scalar))) + (block_sequence_item + (flow_node + (single_quote_scalar))) + (block_sequence_item + (flow_node + (anchor + (anchor_name)) + (double_quote_scalar))) + (block_sequence_item + (flow_node + (alias + (alias_name)))) + (block_sequence_item + (flow_node + (tag))))))) diff --git a/test/corpus/08_blocks.txt b/test/corpus/08_blocks.txt new file mode 100644 index 0000000..eb69037 --- /dev/null +++ b/test/corpus/08_blocks.txt @@ -0,0 +1,770 @@ +================================================================================ +Block Scalar Header +================================================================================ +- | # Empty header + + literal +- >1 # Indentation indicator + + folded +- |+ # Chomping indicator + + keep + +- >1- # Both indicators + + strip + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (block_node + (block_scalar + (comment)))) + (block_sequence_item + (block_node + (block_scalar + (comment)))) + (block_sequence_item + (block_node + (block_scalar + (comment)))) + (block_sequence_item + (block_node + (block_scalar + (comment)))))))) + +================================================================================ +Block Indentation Indicator +================================================================================ +- | + detected +- > + + + # detected +- |1 + explicit +- > + + detected + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (block_node + (block_scalar))) + (block_sequence_item + (block_node + (block_scalar))) + (block_sequence_item + (block_node + (block_scalar))) + (block_sequence_item + (block_node + (block_scalar))))))) + +================================================================================ +Invalid Block Scalar Indentation Indicators +:error +================================================================================ +- | + + text +- > + text + text +- |2 + text + +-------------------------------------------------------------------------------- + +================================================================================ +Chomping Final Line Break +================================================================================ +strip: |- + text + +clip: | + text + +keep: |+ + text + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +================================================================================ +Chomping Trailing Lines +================================================================================ + # Strip + # Comments: +strip: |- + # text + + ⇓ + # Clip + # comments: + + +clip: | + # text + + + + # Keep + # comments: + + +keep: |+ + # text + + + + # Trail + # comments. + +-------------------------------------------------------------------------------- + +(stream + (comment) + (comment) + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (comment) + (comment) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (comment) + (comment) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) +(comment) +(comment))))) + +================================================================================ +Empty Scalar Chomping +================================================================================ +strip: >- + + +clip: > + + +keep: |+ + + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))))))) + +================================================================================ +Literal Scalar +================================================================================ +| + + literal + + text + + + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar)))) + +================================================================================ +Literal Content +================================================================================ +| + + + literal + + + + + text + + + + # Comment + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar))) + (comment)) + +================================================================================ +Folded Scalar +================================================================================ +> + + folded + + text + + + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar)))) + +================================================================================ +Folded Lines +================================================================================ +> + + folded + + line + + + + next + line + + * bullet + + * list + * lines + + last + + line + + +# Comment + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar))) + (comment)) + +================================================================================ +More Indented Lines +================================================================================ +> + + folded + line + + next + line + * bullet + + + + * list + + * lines + + + last + line + +# Comment + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar))) + (comment)) + +================================================================================ +Empty Separation Lines +================================================================================ +> + + + folded + line + + + + next + line + + * bullet + + * list + * line + + + + last + line + +# Comment + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar))) + (comment)) + +================================================================================ +Final Empty Lines +================================================================================ +> + folded + line + + next + line + * bullet + + * list + * line + + last + line + + + +# Comment + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_scalar))) + (comment)) + +================================================================================ +Block Sequence +================================================================================ +block sequence: + - one + + - two : three + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))))))))) + +================================================================================ +Block Sequence Entry Types +================================================================================ +- # Empty +- | + block node +- - one # Compact + - two # sequence +- one: two # Compact mapping + +-------------------------------------------------------------------------------- + +(stream +(document +(block_node +(block_sequence +(block_sequence_item) +(comment) +(block_sequence_item +(block_node +(block_scalar))) +(block_sequence_item +(block_node +(block_sequence +(block_sequence_item +(flow_node +(plain_scalar +(string_scalar)))) +(comment) +(block_sequence_item +(flow_node +(plain_scalar +(string_scalar)))) +(comment)))) +(block_sequence_item +(block_node +(block_mapping +(block_mapping_pair +(flow_node +(plain_scalar +(string_scalar))) +(flow_node +(plain_scalar +(string_scalar)))) +(comment)))))))) + +================================================================================ +Block Mappings +================================================================================ +block mapping: + key: value + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Explicit Block Mapping Entries +================================================================================ +? explicit key # Empty value + +? | + block key + +: - one # Explicit compact + - two # block value + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar)))) + (comment) + (block_mapping_pair + (block_node + (block_scalar)) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (comment) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (comment)))))))) + +================================================================================ +Implicit Block Mapping Entries +================================================================================ +plain key: in-line value +: # Both empty +"quoted key": +- entry + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair) + (comment) + (block_mapping_pair + (flow_node + (double_quote_scalar)) + (block_node + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Compact Block Mappings +================================================================================ +- sun: yellow + +- ? earth: blue + + : moon: white + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (block_sequence_item + (block_node + (block_mapping + (block_mapping_pair + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))) + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))))))))) + +================================================================================ +Block Node Types +================================================================================ +- + + "flow in block" + +- > + Block scalar + +- !!map # Block collection + foo : bar + + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_sequence + (block_sequence_item + (flow_node + (double_quote_scalar))) + (block_sequence_item + (block_node + (block_scalar))) + (block_sequence_item + (block_node + (tag) + (comment) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +Block Scalar Nodes +================================================================================ +literal: |2 + value +folded: + + !foo + >1 + value + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_scalar))))))) + +================================================================================ +Block Collection Nodes +================================================================================ +sequence: !!seq +- entry +- !!seq + - nested +mapping: !!map + foo: bar + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (block_node + (tag) + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) diff --git a/test/corpus/09_streams.txt b/test/corpus/09_streams.txt new file mode 100644 index 0000000..1d9df27 --- /dev/null +++ b/test/corpus/09_streams.txt @@ -0,0 +1,145 @@ +============================================================================|||| +Document Prefix +============================================================================|||| +# Comment +# lines +Document + +----------------------------------------------------------------------------|||| + +(stream + (comment) + (comment) + (document + (flow_node + (plain_scalar + (string_scalar))))) + +============================================================================|||| +Document Markers +============================================================================|||| +%YAML 1.2 +--- +Document +... # Suffix + +----------------------------------------------------------------------------|||| + +(stream + (document + (yaml_directive + (yaml_version)) + (flow_node + (plain_scalar + (string_scalar)))) + (comment)) + +============================================================================|||| +Bare Documents +============================================================================|||| +Bare +document +... +# No document +... +| +%!PS-Adobe-2.0 # Not the first line + +----------------------------------------------------------------------------|||| + +(stream + (document + (flow_node + (plain_scalar + (string_scalar)))) + (comment) + (document) + (document + (block_node + (block_scalar)))) + +============================================================================|||| +Explicit Documents +============================================================================|||| +--- +{ matches +% : 20 } +... +--- +# Empty +... + +----------------------------------------------------------------------------|||| + +(stream + (document + (flow_node + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar))))))) + (document + (comment))) + +============================================================================|||| +Directives Documents +============================================================================|||| +%YAML 1.2 +--- | +%!PS-Adobe-2.0 +... +%YAML1.2 +--- +# Empty +... + +----------------------------------------------------------------------------|||| + +(stream + (document + (yaml_directive + (yaml_version)) + (block_node + (block_scalar))) + (document + (reserved_directive + (directive_name)) + (comment))) + +============================================================================|||| +Stream +============================================================================|||| +Document +--- +# Empty +... +%YAML 1.2 +--- +matches %: 20 + +----------------------------------------------------------------------------|||| + +(stream + (document + (flow_node + (plain_scalar + (string_scalar)))) + (document + (comment)) + (document + (yaml_directive + (yaml_version)) + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))))))) + diff --git a/test/corpus/10_schemas.txt b/test/corpus/10_schemas.txt new file mode 100644 index 0000000..b8e113d --- /dev/null +++ b/test/corpus/10_schemas.txt @@ -0,0 +1,508 @@ +================================================================================ +!!map Examples +================================================================================ +Block style: !!map + Clark : Evans + Ingy : döt Net + Oren : Ben-Kiki + +Flow style: !!map { Clark: Evans, Ingy: döt Net, Oren: Ben-Kiki } + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (flow_mapping + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (flow_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))))))))))) + +================================================================================ +!!seq Examples +================================================================================ +Block style: !!seq +- Clark Evans +- Ingy döt Net +- Oren Ben-Kiki + +Flow style: !!seq [ Clark Evans, Ingy döt Net, Oren Ben-Kiki ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_sequence + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar)))) + (block_sequence_item + (flow_node + (plain_scalar + (string_scalar))))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (flow_sequence + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (string_scalar)))))))))) + +================================================================================ +!!str Examples +================================================================================ +Block style: !!str |- + String: just a theory. + +Flow style: !!str "String: just a theory." + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (block_node + (tag) + (block_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (double_quote_scalar))))))) + +================================================================================ +!!null Examples +================================================================================ +!!null null: value for null key +key with null value: !!null null + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (tag) + (plain_scalar + (null_scalar))) + (flow_node + (plain_scalar + (string_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (null_scalar)))))))) + +================================================================================ +!!bool Examples +================================================================================ +YAML is a superset of JSON: !!bool true +Pluto is a planet: !!bool false + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (boolean_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (boolean_scalar)))))))) + +================================================================================ +!!int Examples +================================================================================ +negative: !!int -12 +zero: !!int 0 +positive: !!int 34 + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (integer_scalar)))))))) + +================================================================================ +!!float Examples +================================================================================ +negative: !!float -1 +zero: !!float 0 +positive: !!float 2.3e4 +infinity: !!float .inf +not a number: !!float .nan + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (integer_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (float_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (float_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (tag) + (plain_scalar + (float_scalar)))))))) + +================================================================================ +JSON Tag Resolution +================================================================================ +A null: null +Booleans: [ true, false ] +Integers: [ 0, -0, 3, -19 ] +Floats: [ 0., -0.0, 12e03, -2E+05 ] +Invalid: [ True, Null, 0o7, 0x3A, +12.3 ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (null_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (boolean_scalar))) + (flow_node + (plain_scalar + (boolean_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (boolean_scalar))) + (flow_node + (plain_scalar + (null_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))))))) + +================================================================================ +Core Tag Resolution +================================================================================ +A null: null +Also a null: # Empty +Not a null: "" +Booleans: [ true, True, false, FALSE ] +Integers: [ 0, 0o7, 0x3A, -19 ] +Floats: [ 0., -0.0, .5, +12e03, -2E+05 ] +Also floats: [ .inf, -.Inf, +.INF, .NAN ] + +-------------------------------------------------------------------------------- + +(stream + (document + (block_node + (block_mapping + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (plain_scalar + (null_scalar)))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar)))) + (comment) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (double_quote_scalar))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (boolean_scalar))) + (flow_node + (plain_scalar + (boolean_scalar))) + (flow_node + (plain_scalar + (boolean_scalar))) + (flow_node + (plain_scalar + (boolean_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar))) + (flow_node + (plain_scalar + (integer_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))) + (block_mapping_pair + (flow_node + (plain_scalar + (string_scalar))) + (flow_node + (flow_sequence + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar))) + (flow_node + (plain_scalar + (float_scalar)))))))))) diff --git a/test/corpus/schema.txt b/test/corpus/schema.txt deleted file mode 100644 index 39a5b3f..0000000 --- a/test/corpus/schema.txt +++ /dev/null @@ -1,354 +0,0 @@ -================================================================================ -Example 10.4. !!null Examples -================================================================================ -!!null null: value for null key -key with null value: !!null null - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag) - (plain_scalar - (null_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (null_scalar)))))))) - -================================================================================ -Example 10.5. !!bool Examples -================================================================================ -YAML is a superset of JSON: !!bool true -Pluto is a planet: !!bool false - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (boolean_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (boolean_scalar)))))))) - -================================================================================ -Example 10.6. !!int Examples -================================================================================ -negative: !!int -12 -zero: !!int 0 -positive: !!int 34 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Example 10.7. !!float Examples -================================================================================ -negative: !!float -1 -zero: !!float 0 -positive: !!float 2.3e4 -infinity: !!float .inf -not a number: !!float .nan - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (float_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (float_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (float_scalar)))))))) - -================================================================================ -Example 10.8. JSON Tag Resolution -================================================================================ -A null: null -Booleans: [ true, false ] -Integers: [ 0, -0, 3, -19 ] -Floats: [ 0., -0.0, 12e03, -2E+05 ] -Invalid: [ True, Null, 0o7, 0x3A, +12.3 ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (null_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (boolean_scalar))) - (flow_node - (plain_scalar - (boolean_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (boolean_scalar))) - (flow_node - (plain_scalar - (null_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (float_scalar)))))))))) - -================================================================================ -Example 10.9. Core Tag Resolution -================================================================================ -A null: null -Also a null: # Empty -Not a null: "" -Booleans: [ true, True, false, FALSE ] -Integers: [ 0, 0o7, 0x3A, -19 ] -Floats: [ 0., -0.0, .5, +12e03, -2E+05 ] -Also floats: [ .inf, -.Inf, +.INF, .NAN ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (null_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (boolean_scalar))) - (flow_node - (plain_scalar - (boolean_scalar))) - (flow_node - (plain_scalar - (boolean_scalar))) - (flow_node - (plain_scalar - (boolean_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (integer_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar))) - (flow_node - (plain_scalar - (float_scalar)))))))))) diff --git a/test/corpus/spec.txt b/test/corpus/spec.txt deleted file mode 100644 index 3ed4e8b..0000000 --- a/test/corpus/spec.txt +++ /dev/null @@ -1,9836 +0,0 @@ -================================================================================ -Aliases in Block Sequence -================================================================================ -- &a a -- &b b -- *a -- *b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (alias - (alias_name)))) - (block_sequence_item - (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Aliases in Explicit Block Mapping -================================================================================ -? &a a -: &b b -: *a - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Aliases in Flow Objects -================================================================================ -{ &a [a, &b b]: *b, *a : [c, *b, d]} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (anchor - (anchor_name)) - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))))) - value: (flow_node - (alias - (alias_name)))) - (flow_pair - key: (flow_node - (alias - (alias_name))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (alias - (alias_name))) - (flow_node - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Aliases in Implicit Block Mapping -================================================================================ -&a a: &b b -*a : *b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (alias - (alias_name))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Allowed characters in alias -================================================================================ -a: &:@*!$": scalar a -b: *:@*!$": - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Allowed characters in keys -================================================================================ -a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~: safe -?foo: safe question mark -:foo: safe colon --foo: safe dash -this is#not: a comment - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Allowed characters in plain scalars -================================================================================ -safe: a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ - !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ -safe question mark: ?foo -safe colon: :foo -safe dash: -foo - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Allowed characters in quoted mapping key -================================================================================ -"foo\nbar:baz\tx \\$%^&*()x": 23 -'x\ny:z\tx $%^&*()x': 24 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (double_quote_scalar - (escape_sequence) - (escape_sequence) - (escape_sequence))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (single_quote_scalar)) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Anchor and alias as mapping key [INVALID] -================================================================================ -key1: &alias value1 -&b *alias : value2 - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (flow_node - (anchor - (anchor_name)))) - -================================================================================ -Anchor before sequence entry on same line [INVALID] -================================================================================ -&anchor - sequence entry - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (anchor - (anchor_name)))) - -================================================================================ -Anchor before zero indented sequence -================================================================================ ---- -seq: - &anchor -- a -- b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Anchor for empty node -================================================================================ ---- -a: &anchor -b: *anchor - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Anchor plus Alias [INVALID] -================================================================================ -key1: &a value -key2: &b *a - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name))))) - -================================================================================ -Anchor with colon in the middle -================================================================================ ---- -key: &an:chor value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Anchor with unicode character -================================================================================ ---- -- &😁 unicode anchor - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Anchors and Tags -================================================================================ - - &a !!str a - - !!int 2 - - !!int &c 4 - - &d d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (tag) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_sequence_item - (flow_node - (tag) - (anchor - (anchor_name)) - (plain_scalar - (integer_scalar)))) - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Anchors in Mapping -================================================================================ -&a a: b -c: &d d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Anchors on Empty Scalars -================================================================================ -- &a -- a -- - &a : a - b: &b -- - &c : &a -- - ? &d -- - ? &e - : &a - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (anchor - (anchor_name)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name))) - value: (flow_node - (anchor - (anchor_name))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name))) - value: (flow_node - (anchor - (anchor_name))))))))))) - -================================================================================ -Anchors With Colon in Name -================================================================================ -&a: key: &a value -foo: - *a: - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Backslashes in singlequotes -================================================================================ -'foo: bar\': baz' - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (single_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Bad indentation in mapping (2) [INVALID] -================================================================================ -map: - key1: "quoted1" - key2: "bad indentation" - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (ERROR)))))))) - -================================================================================ -Bad indentation in mapping [INVALID] -================================================================================ -map: - key1: "quoted1" - key2: "bad indentation" - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar)))) - -================================================================================ -Bare document after document end marker -================================================================================ ---- -scalar1 -... -key: value - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar)))) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Blank lines -================================================================================ -foo: 1 - -bar: 2 - -text: | - a - - b - - c - - d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Block Mapping with Missing Keys -================================================================================ -: a -: b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Block Mapping with Missing Values -================================================================================ -? a -? b -c: - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Block Mapping with Multiline Scalars -================================================================================ -? a - true -: null - d -? e - 42 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Block Mappings in Block Sequence -================================================================================ - - key: value - key2: value2 - - - key3: value3 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Block scalar indicator order -================================================================================ -- |2- - explicit indent and chomp -- |-2 - chomp and explicit indent - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))))))) - -================================================================================ -Block Scalar Keep -================================================================================ ---- |+ - ab - - -... - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Block Scalar Strip -================================================================================ -|- - ab - - -... - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Block Scalar Strip [1.3] -================================================================================ ---- |- - ab - - -... - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Block scalar with spaces only -================================================================================ -empty block scalar: > - - - - # comment - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (comment))))) - -================================================================================ -Block scalar with wrong indented line after spaces only [INVALID] -================================================================================ -block scalar: > - - - - invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (ERROR))))) - -================================================================================ -Block Sequence in Block Mapping -================================================================================ -key: - - item1 - - item2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Block Sequence in Block Sequence -================================================================================ -- - s1_i1 - - s1_i2 -- s2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Block Submapping -================================================================================ -foo: - bar: 1 -baz: 2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Colon and adjacent value after comment on next line -================================================================================ ---- -{ "foo" # comment - :bar } - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - (comment) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Colon and adjacent value on next line -================================================================================ ---- -{ "foo" - :bar } - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Colon followed by comma -================================================================================ ---- -- :, - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Colon in Double Quoted String -================================================================================ -"foo: bar\": baz" - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar - (escape_sequence))))) - -================================================================================ -Comment and document-end marker -================================================================================ -# comment -... - --------------------------------------------------------------------------------- - -(stream - (comment) - (document)) - -================================================================================ -Comment between plain scalar lines [INVALID] -================================================================================ -word1 # comment -word2 - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar))) - (comment)) - -================================================================================ -Comment in flow sequence before comma -================================================================================ ---- -[ word1 -# comment -, word2] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (comment) - (flow_node - (plain_scalar - (string_scalar))))))) - -================================================================================ -Comment in plain multiline value [INVALID] -================================================================================ -key: word1 -# xxx - word2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (ERROR))))) - -================================================================================ -Comment that looks like a mapping key [INVALID] -================================================================================ -key: value -this is #not a: key - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (flow_node - (plain_scalar - (string_scalar)))) - (comment))))) - -================================================================================ -Comment without whitespace after block scalar indicator [INVALID] -================================================================================ -block: ># comment - scalar - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Comment without whitespace after doublequoted scalar [INVALID] -================================================================================ -key: "value"# invalid comment - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar)))) - -================================================================================ -Construct Binary -================================================================================ -canonical: !!binary "\ - R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\ - OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\ - +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\ - AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=" -generic: !!binary | - R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 - OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ - +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC - AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= -description: - The binary value above is a tiny arrow encoded as a gif image. - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (double_quote_scalar - (escape_sequence) - (escape_sequence) - (escape_sequence) - (escape_sequence)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Directive without document [INVALID] -================================================================================ -%YAML 1.2 -... - --------------------------------------------------------------------------------- - -(stream - (ERROR - (yaml_directive - (yaml_version))) - (document)) - -================================================================================ -Document start on last line -================================================================================ ---- -a: b ---- - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document)) - -================================================================================ -Document with footer -================================================================================ -aaa: bbb -... - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Document-end marker -================================================================================ -... - --------------------------------------------------------------------------------- - -(stream - (document)) - -================================================================================ -Double quoted scalar with escaped single quote [INVALID] -================================================================================ ---- -double: "quoted \' scalar" - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Double quoted string without closing quote [INVALID] -================================================================================ ---- -key: "missing closing quote - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (ERROR))))) - -================================================================================ -Doublequoted scalar starting with a tab -================================================================================ ---- -tab: "\tstring" - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar - (escape_sequence)))))))) - -================================================================================ -Duplicate YAML directive -================================================================================ -%YAML 1.2 -%YAML 1.2 ---- - --------------------------------------------------------------------------------- - -(stream - (document - (yaml_directive - (yaml_version)) - (yaml_directive - (yaml_version)))) - -================================================================================ -Empty flow collections -================================================================================ ---- -nested sequences: -- - - [] -- - - {} -key1: [] -key2: {} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence))))))))) - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping)))))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping))))))) - -================================================================================ -Empty Lines at End of Document -================================================================================ -: - - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair))))) - -================================================================================ -Empty Lines Between Mapping Elements -================================================================================ -1: 2 - - -3: 4 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (integer_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (integer_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Empty Stream -================================================================================ - --------------------------------------------------------------------------------- - -(stream) - -================================================================================ -Escaped slash in double quotes -================================================================================ -escaped slash: "a\/b" - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar - (escape_sequence)))))))) - -================================================================================ -Explicit key and value seperated by comment -================================================================================ ---- -? key -# comment -: value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Explicit Non-Specific Tag -================================================================================ -! a - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (tag) - (plain_scalar - (string_scalar))))) - -================================================================================ -Explicit Non-Specific Tag [1.3] -================================================================================ ---- -! a - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (tag) - (plain_scalar - (string_scalar))))) - -================================================================================ -Flow Mapping -================================================================================ -{foo: you, bar: far} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Flow Mapping Closed at Original Indentation -================================================================================ -first: { - foo: you, - bar: far -} -second: 2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Flow mapping colon on line after key -================================================================================ -{"foo" -: "bar"} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (double_quote_scalar))))))) - -================================================================================ -Flow Mapping in Block Sequence -================================================================================ -- {a: b} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Flow Mapping Key on two lines [INVALID] -================================================================================ -[23 -]: 42 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (integer_scalar)))))) - (MISSING _eof)) - -================================================================================ -Flow mapping missing a separating comma [INVALID] -================================================================================ ---- -{ - foo: 1 - bar: 2 } - --------------------------------------------------------------------------------- - -(ERROR - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Flow Sequence -================================================================================ -[foo, bar, 42] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (integer_scalar))))))) - -================================================================================ -Flow Sequence Closed at Original Indentation -================================================================================ -first: [ - foo, - b, - 42 -] -second: 2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (integer_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Flow Sequence in Block Mapping -================================================================================ -a: [b, c] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Flow Sequence in Flow Mapping -================================================================================ -{a: [b, c], [d, e]: f} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - (flow_pair - key: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Flow Sequence in Flow Sequence -================================================================================ -[a, [b, c]] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))))))) - -================================================================================ -Flow sequence with invalid comma at the beginning [INVALID] -================================================================================ ---- -[ , a, b, c ] - --------------------------------------------------------------------------------- - -(ERROR) - -================================================================================ -Flow sequence with invalid extra closing bracket [INVALID] -================================================================================ ---- -[ a, b, c ] ] - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - -================================================================================ -Flow sequence with invalid extra comma [INVALID] -================================================================================ ---- -[ a, b, c, , ] - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Flow sequence without closing bracket [INVALID] -================================================================================ ---- -[ [ a, b, c ] - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - -================================================================================ -Folded Block Scalar -================================================================================ -> - ab - cd - - ef - - - gh - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Folded Block Scalar [1.3] -================================================================================ ---- > - ab - cd - - ef - - - gh - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Implicit Flow Mapping Key on one line -================================================================================ -[flow]: block - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Implicit key followed by newline [INVALID] -================================================================================ ---- -[ key - : value ] - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Implicit key followed by newline and adjacent value [INVALID] -================================================================================ -[ "key" - :value ] - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (double_quote_scalar))) - -================================================================================ -Invalid anchor in zero indented sequence [INVALID] -================================================================================ ---- -seq: -&anchor -- a -- b - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (flow_node - (anchor - (anchor_name)))) - -================================================================================ -Invalid block mapping key on same line as previous key [INVALID] -================================================================================ ---- -x: { y: z }in: valid - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Invalid comment after comma [INVALID] -================================================================================ ---- -[ a, b, c,#invalid -] - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Invalid comment after end of flow sequence [INVALID] -================================================================================ ---- -[ a, b, c, ]#invalid - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - -================================================================================ -Invalid content after document end marker [INVALID] -================================================================================ ---- -key: value -... invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (MISSING _eof)) - -================================================================================ -Invalid document markers in flow style [INVALID] -================================================================================ -[ ---- , -... -] - --------------------------------------------------------------------------------- - -(ERROR - (string_scalar)) - -================================================================================ -Invalid document-end marker in single quoted string [INVALID] -================================================================================ ---- -' -... -' - --------------------------------------------------------------------------------- - -(ERROR - (document - (ERROR))) - -================================================================================ -Invalid document-start marker in doublequoted tring [INVALID] -================================================================================ ---- -" ---- -" - --------------------------------------------------------------------------------- - -(ERROR - (ERROR)) - -================================================================================ -Invalid escape in double quoted string [INVALID] -================================================================================ ---- -"\." - --------------------------------------------------------------------------------- - -(ERROR) - -================================================================================ -Invalid item after end of flow sequence [INVALID] -================================================================================ ---- -[ -sequence item -] -invalid item - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar)))))) - (MISSING _eof)) - -================================================================================ -Invalid mapping after sequence [INVALID] -================================================================================ -- item1 -- item2 -invalid: x - --------------------------------------------------------------------------------- - -(ERROR - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (flow_node - (plain_scalar - (string_scalar))) - (string_scalar)) - -================================================================================ -Invalid mapping in plain multiline [INVALID] -================================================================================ -this - is - invalid: x - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar)))) - (MISSING _eof)) - -================================================================================ -Invalid Mapping in plain scalar [INVALID] -================================================================================ -key: - word1 word2 - no: key - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Invalid mapping in plain single line value [INVALID] -================================================================================ -a: b: c: d - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Invalid nested mapping [INVALID] -================================================================================ ---- -a: 'b': c - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar)))) - -================================================================================ -Invalid scalar after sequence [INVALID] -================================================================================ -- item1 -- item2 -invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (string_scalar)))))) - -================================================================================ -Invalid scalar at the end of mapping [INVALID] -================================================================================ -key: - - item1 - - item2 -invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (ERROR - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Invalid scalar at the end of sequence [INVALID] -================================================================================ -key: - - bar - - baz - invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (string_scalar))))))))) - -================================================================================ -Invalid sequene item on same line as previous item [INVALID] -================================================================================ ---- -- { y: z }- invalid - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - -================================================================================ -Invalid tabs as indendation in a mapping [INVALID] -================================================================================ ---- -a: - b: - c: value - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Invalid tag [INVALID] -================================================================================ ---- -!invalid{}tag scalar - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (tag) - (flow_mapping))) - -================================================================================ -Invalid text after block scalar indicator [INVALID] -================================================================================ ---- -folded: > first line - second line - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Invalid value after mapping [INVALID] -================================================================================ -foo: - bar -invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Key with anchor after missing explicit mapping value -================================================================================ ---- -a: 1 -? b -&anchor c: 3 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Literal Block Scalar -================================================================================ -a: | - ab - - cd - ef - - -... - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Literal block scalar with more spaces in first line [INVALID] -================================================================================ ---- -block scalar: | - - more spaces at the beginning - are invalid - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (ERROR))))) - -================================================================================ -Literal unicode -================================================================================ ---- -wanted: love ♥ and peace ☮ - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Lookahead test cases -================================================================================ -- bla"keks: foo -- bla]keks: foo - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Mapping starting at --- line [INVALID] -================================================================================ ---- key1: value1 - key2: value2 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar)))) - (MISSING _eof)) - -================================================================================ -Mapping with anchor on document start line [INVALID] -================================================================================ ---- &anchor a: b - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (MISSING _eof)) - -================================================================================ -Mapping, key and flow sequence item anchors -================================================================================ ---- -&mapping -&key [ &item a, b, c ]: value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (flow_sequence - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Missing colon [INVALID] -================================================================================ -top1: - key1: val1 -top2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (ERROR - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Missing comma in flow [INVALID] -================================================================================ -key: [ word1 -# xxx - word2 ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (flow_node - (plain_scalar - (string_scalar))) - (comment)))))) - -================================================================================ -Missing document-end marker before directive [INVALID] -================================================================================ ---- -scalar1 # comment -%YAML 1.2 ---- -scalar2 - --------------------------------------------------------------------------------- - -(stream - (document) - (ERROR - (flow_node - (plain_scalar - (string_scalar))) - (comment)) - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Missing space in YAML directive -================================================================================ -%YAML1.2 ---- -key: value - --------------------------------------------------------------------------------- - -(stream - (document - (reserved_directive - (directive_name)) - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Mixed Block Mapping (explicit to implicit) -================================================================================ -? a -: 13 -1.5: d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (float_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Mixed Block Mapping (implicit to explicit) -================================================================================ -a: 4.2 -? 23 -: d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (integer_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -More indented lines at the beginning of folded block scalars -================================================================================ ---- -a: >2 - more indented - regular -b: >2 - - - more indented - regular - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Multi-level Mapping Indent -================================================================================ -a: - b: - c: d - e: - f: g -h: i - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Multiline double quoted flow mapping key -================================================================================ ---- -- { "single line": value} -- { "multi - line": value} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Multiline double quoted implicit keys [INVALID] -================================================================================ -"a\nb": 1 -"c - d": 1 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (double_quote_scalar - (escape_sequence))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (ERROR))))) - -================================================================================ -Multiline doublequoted flow mapping key without value -================================================================================ ---- -- { "single line", a: b} -- { "multi - line", a: b} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_node - (double_quote_scalar)) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_node - (double_quote_scalar)) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Multiline implicit keys [INVALID] -================================================================================ -a\nb: 1 -c - d: 1 - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))) - -================================================================================ -Multiline plain flow mapping key -================================================================================ ---- -- { single line: value} -- { multi - line: value} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Multiline plain flow mapping key without value -================================================================================ ---- -- { single line, a: b} -- { multi - line, a: b} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_node - (plain_scalar - (string_scalar))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_node - (plain_scalar - (string_scalar))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Multiline plain scalar with empty line -================================================================================ ---- -plain: a - b - - c - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Multiline plain value with tabs on empty lines -================================================================================ -key: - value - with - - tabs - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Multiline Scalar at Top Level -================================================================================ -a -b - c -d - -e - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Multiline Scalar at Top Level [1.3] -================================================================================ ---- -a -b - c -d - -e - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Multiline Scalar in Mapping -================================================================================ -a: b - c -d: - e - f - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Multiline scalar that looks like a YAML directive -================================================================================ ---- -scalar -%YAML 1.2 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Multiline single quoted implicit keys [INVALID] -================================================================================ -'a\nb': 1 -'c - d': 1 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (single_quote_scalar)) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (ERROR))))) - -================================================================================ -Multiple Entry Block Sequence -================================================================================ -- foo -- bar -- 42 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Multiple Pair Block Mapping -================================================================================ -foo: blue -bar: arrr -baz: jazz - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Nested flow collections -================================================================================ ---- -{ - a: [ - b, c, { - d: [e, f] - } - ] -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))))))))))))) - -================================================================================ -Nested flow collections on one line -================================================================================ ---- -{ a: [b, c, { d: [e, f] } ] } - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))))))))))))) - -================================================================================ -Nested flow mapping sequence and mappings -================================================================================ ---- -{ top1: [item1, {key2: value2}, item3], top2: value2 } - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))) - (flow_node - (plain_scalar - (string_scalar)))))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Nested implicit complex keys -================================================================================ ---- -[ - [ a, [ [[b,c]]: d, e]]: 23 -] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (flow_sequence - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_node - (plain_scalar - (string_scalar))))))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Nested top level flow mapping -================================================================================ -{ key: [[[ - value - ]]] -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (flow_sequence - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar)))))))))))))) - -================================================================================ -Node Anchor and Tag on Seperate Lines -================================================================================ -key: &anchor - !!map - a: b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Node anchor in sequence [INVALID] -================================================================================ -- item1 -&node -- item2 - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Node anchor not indented [INVALID] -================================================================================ -key: &x -!!map - a: b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)))) - (ERROR - (tag)))))) - -================================================================================ -Node and Mapping Key Anchors -================================================================================ ---- -top1: &node1 - &k1 key1: one -top2: &node2 # comment - key2: two -top3: - &k3 key3: three -top4: - &node4 - &k4 key4: four -top5: - &node5 - key5: five -top6: &val6 - six -top7: - &val7 seven - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (comment) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Node and Mapping Key Anchors [1.3] -================================================================================ ---- -top1: &node1 - &k1 key1: one -top2: &node2 # comment - key2: two -top3: - &k3 key3: three -top4: &node4 - &k4 key4: four -top5: &node5 - key5: five -top6: &val6 - six -top7: - &val7 seven - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (comment) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Non-Specific Tags on Scalars -================================================================================ -- plain -- "double quoted" -- 'single quoted' -- > - block -- plain again - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (double_quote_scalar))) - (block_sequence_item - (flow_node - (single_quote_scalar))) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Plain mapping key ending with colon -================================================================================ ---- -key ends with two colons::: value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Plain Scalar looking like key, comment, anchor and tag -================================================================================ -k:#foo - &a !t s - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Plain Scalar looking like key, comment, anchor and tag [1.3] -================================================================================ ---- -k:#foo - &a !t s - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Plain scalar with backslashes -================================================================================ ---- -plain\value\with\backslashes - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Plain URL in flow mapping -================================================================================ -- { url: http://example.org } - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Scalar value with two anchors [INVALID] -================================================================================ -top1: &node1 - &k1 key1: val1 -top2: &node2 - &v2 val2 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)))) - (ERROR - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Scalars on --- line -================================================================================ ---- "quoted -string" ---- &node foo - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar))) - (document - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))))) - -================================================================================ -Sequence entry that looks like two with wrong indentation -================================================================================ -- single multiline - - sequence entry - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Sequence Indent -================================================================================ -foo: -- 42 -bar: - - 44 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar))))))))))) - -================================================================================ -Sequence on same Line as Mapping Key [INVALID] -================================================================================ -key: - a - - b - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Sequence With Same Indentation as Parent Mapping -================================================================================ -1: -- 2 -- 3 -4: 5 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (integer_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (integer_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Simple Mapping Indent -================================================================================ -foo: - bar: baz - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Single block sequence with anchor -================================================================================ -&sequence -- a - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (anchor - (anchor_name)) - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Single block sequence with anchor and explicit document start -================================================================================ ---- &sequence -- a - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (anchor - (anchor_name)) - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Single Entry Block Sequence -================================================================================ -- foo - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Single Pair Block Mapping -================================================================================ -foo: bar - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 2.1. Sequence of Scalars -================================================================================ -- Mark McGwire -- Sammy Sosa -- Ken Griffey - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 2.2. Mapping Scalars to Scalars -================================================================================ -hr: 65 # Home runs -avg: 0.278 # Batting average -rbi: 147 # Runs Batted In - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar)))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (comment))))) - -================================================================================ -Spec Example 2.3. Mapping Scalars to Sequences -================================================================================ -american: - - Boston Red Sox - - Detroit Tigers - - New York Yankees -national: - - New York Mets - - Chicago Cubs - - Atlanta Braves - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 2.4. Sequence of Mappings -================================================================================ -- - name: Mark McGwire - hr: 65 - avg: 0.278 -- - name: Sammy Sosa - hr: 63 - avg: 0.288 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar))))))))))) - -================================================================================ -Spec Example 2.5. Sequence of Sequences -================================================================================ -- [name , hr, avg ] -- [Mark McGwire, 65, 0.278] -- [Sammy Sosa , 63, 0.288] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (float_scalar)))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (float_scalar)))))))))) - -================================================================================ -Spec Example 2.6. Mapping of Mappings -================================================================================ -Mark McGwire: {hr: 65, avg: 0.278} -Sammy Sosa: { - hr: 63, - avg: 0.288 - } - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar))))))))))) - -================================================================================ -Spec Example 2.7. Two Documents in a Stream -================================================================================ -# Ranking of 1998 home runs ---- -- Mark McGwire -- Sammy Sosa -- Ken Griffey - -# Team ranking ---- -- Chicago Cubs -- St Louis Cardinals - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment)))) - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 2.8. Play by Play Feed from a Game -================================================================================ ---- -time: 20:03:20 -player: Sammy Sosa -action: strike (miss) -... ---- -time: 20:03:47 -player: Sammy Sosa -action: grand slam -... - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 2.9. Single Document with Two Comments -================================================================================ ---- -hr: # 1998 hr ranking - - Mark McGwire - - Sammy Sosa -rbi: - # 1998 rbi ranking - - Sammy Sosa - - Ken Griffey - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 2.10. Node for “Sammy Sosa” appears twice in this document -================================================================================ ---- -hr: - - Mark McGwire - # Following node labeled SS - - &SS Sammy Sosa -rbi: - - *SS # Subsequent occurrence - - Ken Griffey - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (alias - (alias_name)))) - (comment) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 2.11. Mapping between Sequences -================================================================================ -? - Detroit Tigers - - Chicago cubs -: - - 2001-07-23 - -? [ New York Yankees, - Atlanta Braves ] -: [ 2001-07-02, 2001-08-12, - 2001-08-14 ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Spec Example 2.12. Compact Nested Mapping -================================================================================ ---- -# Products purchased -- item : Super Hoop - quantity: 1 -- item : Basketball - quantity: 4 -- item : Big Shoes - quantity: 1 - --------------------------------------------------------------------------------- - -(stream - (document - (comment) - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))))))) - -================================================================================ -Spec Example 2.13. In literals, newlines are preserved -================================================================================ -# ASCII Art ---- | - \//||\/|| - // || ||__ - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 2.14. In the folded scalars, newlines become spaces -================================================================================ ---- > - Mark McGwire's - year was crippled - by a knee injury. - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 2.15. Folded newlines are preserved for "more indented" and blank lines -================================================================================ -> - Sammy Sosa completed another - fine season with great stats. - - 63 Home Runs - 0.288 Batting Average - - What a year! - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 2.16. Indentation determines scope -================================================================================ -name: Mark McGwire -accomplishment: > - Mark set a major league - home run record in 1998. -stats: | - 65 Home Runs - 0.278 Batting Average - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 2.17. Quoted Scalars -================================================================================ -unicode: "Sosa did fine.\u263A" -control: "\b1998\t1999\t2000\n" -hex esc: "\x0d\x0a is \r\n" - -single: '"Howdy!" he cried.' -quoted: ' # Not a ''comment''.' -tie-fighter: '|\-*-/|' - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar - (escape_sequence)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar - (escape_sequence) - (escape_sequence) - (escape_sequence) - (escape_sequence)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar - (escape_sequence) - (escape_sequence) - (escape_sequence) - (escape_sequence)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar - (escape_sequence) - (escape_sequence)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))))))) - -================================================================================ -Spec Example 2.18. Multi-line Flow Scalars -================================================================================ -plain: - This unquoted scalar - spans many lines. - -quoted: "So does this - quoted scalar.\n" - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar - (escape_sequence)))))))) - -================================================================================ -Spec Example 2.23. Various Explicit Tags -================================================================================ ---- -not-date: !!str 2002-04-28 - -picture: !!binary | - R0lGODlhDAAMAIQAAP//9/X - 17unp5WZmZgAAAOfn515eXv - Pz7Y6OjuDg4J+fn5OTk6enp - 56enmleECcgggoBADs= - -application specific tag: !something | - The semantics of the tag - above may be different for - different documents. - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_scalar))))))) - -================================================================================ -Spec Example 2.24. Global Tags -================================================================================ -%TAG ! tag:clarkevans.com,2002: ---- !shape - # Use the ! handle for presenting - # tag:clarkevans.com,2002:circle -- !circle - center: &ORIGIN {x: 73, y: 129} - radius: 7 -- !line - start: *ORIGIN - finish: { x: 89, y: 102 } -- !label - start: *ORIGIN - color: 0xFFEEBB - text: Pretty vector drawing. - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (block_node - (tag) - (comment) - (comment) - (block_sequence - (block_sequence_item - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_sequence_item - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))))) - (block_sequence_item - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 2.25. Unordered Sets -================================================================================ -# Sets are represented as a -# Mapping where each key is -# associated with a null value ---- !!set -? Mark McGwire -? Sammy Sosa -? Ken Griff - --------------------------------------------------------------------------------- - -(stream - (comment) - (comment) - (comment) - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 2.26. Ordered Mappings -================================================================================ -# Ordered maps are represented as -# A sequence of mappings, with -# each mapping having one key ---- !!omap -- Mark McGwire: 65 -- Sammy Sosa: 63 -- Ken Griffy: 58 - --------------------------------------------------------------------------------- - -(stream - (comment) - (comment) - (comment) - (document - (block_node - (tag) - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))))))) - -================================================================================ -Spec Example 2.27. Invoice -================================================================================ ---- ! -invoice: 34843 -date : 2001-01-23 -bill-to: &id001 - given : Chris - family : Dumars - address: - lines: | - 458 Walkman Dr. - Suite #292 - city : Royal Oak - state : MI - postal : 48046 -ship-to: *id001 -product: - - sku : BL394D - quantity : 4 - description : Basketball - price : 450.00 - - sku : BL4438H - quantity : 1 - description : Super Hoop - price : 2392.00 -tax : 251.42 -total: 4443.52 -comments: - Late afternoon is best. - Backup contact is Nancy - Billsmer @ 338-4338. - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (float_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 2.28. Log File -================================================================================ ---- -Time: 2001-11-23 15:01:42 -5 -User: ed -Warning: - This is an error message - for the log file ---- -Time: 2001-11-23 15:02:31 -5 -User: ed -Warning: - A slightly different error - message. ---- -Date: 2001-11-23 15:03:17 -5 -User: ed -Fatal: - Unknown variable "bar" -Stack: - - file: TopClass.py - line: 23 - code: | - x = MoreObject("345\n") - - file: MoreClass.py - line: 58 - code: |- - foo = bar - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar)))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))))))))) - -================================================================================ -Spec Example 5.3. Block Structure Indicators -================================================================================ -sequence: -- one -- two -mapping: - ? sky - : blue - sea : green - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 5.4. Flow Collection Indicators -================================================================================ -sequence: [ one, two, ] -mapping: { sky: blue, sea: green } - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 5.5. Comment Indicator -================================================================================ -# Comment only. - --------------------------------------------------------------------------------- - -(stream - (comment)) - -================================================================================ -Spec Example 5.6. Node Property Indicators -================================================================================ -anchored: !local &anchor value -alias: *anchor - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Spec Example 5.7. Block Scalar Indicators -================================================================================ -literal: | - some - text -folded: > - some - text - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 5.8. Quoted Scalar Indicators -================================================================================ -single: 'text' -double: "text" - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))))))) - -================================================================================ -Spec Example 5.9. Directive Indicator -================================================================================ -%YAML 1.2 ---- text - --------------------------------------------------------------------------------- - -(stream - (document - (yaml_directive - (yaml_version)) - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Spec Example 5.12. Tabs and Spaces -================================================================================ -# Tabs and spaces -quoted: "Quoted " -block: | - void main() { - printf("Hello, world!\n"); - } - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 6.1. Indentation Spaces -================================================================================ - # Leading comment line spaces are - # neither content nor indentation. - -Not indented: - By one space: | - By four - spaces - Flow style: [ # Leading spaces - By two, # in flow style - Also by two, # are neither - Still by two # content nor - ] # indentation. - --------------------------------------------------------------------------------- - -(stream - (comment) - (comment) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (comment) - (flow_node - (plain_scalar - (string_scalar))) - (comment) - (flow_node - (plain_scalar - (string_scalar))) - (comment) - (flow_node - (plain_scalar - (string_scalar))) - (comment)))) - (comment)))))))) - -================================================================================ -Spec Example 6.2. Indentation Indicators -================================================================================ -? a -: - b - - - c - - d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))))))))) - -================================================================================ -Spec Example 6.3. Separation Spaces -================================================================================ -- foo: bar -- - baz - - baz - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 6.4. Line Prefixes -================================================================================ -plain: text - lines -quoted: "text - lines" -block: | - text - lines - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 6.5. Empty Lines -================================================================================ -Folding: - "Empty line - - as a line feed" -Chomping: | - Clipped empty lines - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 6.5. Empty Lines [1.3] -================================================================================ -Folding: - "Empty line - - as a line feed" -Chomping: | - Clipped empty lines - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 6.6. Line Folding -================================================================================ ->- - trimmed - - - - as - space - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 6.6. Line Folding [1.3] -================================================================================ ---- >- - trimmed - - - - as - space - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 6.7. Block Folding -================================================================================ -> - foo - - bar - - baz - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 6.8. Flow Folding -================================================================================ -" - foo - - bar - - baz -" - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.8. Flow Folding [1.3] -================================================================================ ---- -" - foo - - bar - - baz -" - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.9. Separated Comment -================================================================================ -key: # Comment - value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 6.10. Comment Lines -================================================================================ - # Comment - - - - --------------------------------------------------------------------------------- - -(stream - (comment)) - -================================================================================ -Spec Example 6.11. Multi-Line Comments -================================================================================ -key: # Comment - # lines - value - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - (comment) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 6.12. Separation Spaces -================================================================================ -{ first: Sammy, last: Sosa }: -# Statistics: - hr: # Home runs - 65 - avg: # Average - 0.278 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))) - (comment) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (flow_node - (plain_scalar - (float_scalar))))))))))) - -================================================================================ -Spec Example 6.13. Reserved Directives -================================================================================ -%FOO bar baz # Should be ignored - # with a warning. ---- "foo" - --------------------------------------------------------------------------------- - -(stream - (document - (reserved_directive - (directive_name) - (directive_parameter) - (directive_parameter)) - (comment) - (comment) - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.13. Reserved Directives [1.3] -================================================================================ -%FOO bar baz # Should be ignored - # with a warning. ---- -"foo" - --------------------------------------------------------------------------------- - -(stream - (document - (reserved_directive - (directive_name) - (directive_parameter) - (directive_parameter)) - (comment) - (comment) - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.14. “YAML” directive -================================================================================ -%YAML 1.3 # Attempt parsing - # with a warning ---- -"foo" - --------------------------------------------------------------------------------- - -(stream - (document - (yaml_directive - (yaml_version)) - (comment) - (comment) - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.16. “TAG” directive -================================================================================ -%TAG !yaml! tag:yaml.org,2002: ---- -!yaml!str "foo" - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (flow_node - (tag) - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.18. Primary Tag Handle -================================================================================ -# Private -!foo "bar" -... -# Global -%TAG ! tag:example.com,2000:app/ ---- -!foo "bar" - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (flow_node - (tag) - (double_quote_scalar))) - (comment) - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (flow_node - (tag) - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.18. Primary Tag Handle [1.3] -================================================================================ -# Private ---- -!foo "bar" -... -# Global -%TAG ! tag:example.com,2000:app/ ---- -!foo "bar" - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (flow_node - (tag) - (double_quote_scalar))) - (comment) - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (flow_node - (tag) - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.19. Secondary Tag Handle -================================================================================ -%TAG !! tag:example.com,2000:app/ ---- -!!int 1 - 3 # Interval, not integer - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (comment)) - -================================================================================ -Spec Example 6.20. Tag Handles -================================================================================ -%TAG !e! tag:example.com,2000:app/ ---- -!e!foo "bar" - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (flow_node - (tag) - (double_quote_scalar)))) - -================================================================================ -Spec Example 6.21. Local Tag Prefix -================================================================================ -%TAG !m! !my- ---- # Bulb here -!m!light fluorescent -... -%TAG !m! !my- ---- # Color here -!m!light green - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (comment) - (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (comment) - (flow_node - (tag) - (plain_scalar - (string_scalar))))) - -================================================================================ -Spec Example 6.22. Global Tag Prefix -================================================================================ -%TAG !e! tag:example.com,2000:app/ ---- -- !e!foo "bar" - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (block_node - (block_sequence - (block_sequence_item - (flow_node - (tag) - (double_quote_scalar))))))) - -================================================================================ -Spec Example 6.23. Node Properties -================================================================================ -!!str &a1 "foo": - !!str bar -&a2 baz : *a1 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag) - (anchor - (anchor_name)) - (double_quote_scalar)) - value: (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Spec Example 6.24. Verbatim Tags -================================================================================ -! foo : - ! baz - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag) - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 6.26. Tag Shorthands -================================================================================ -%TAG !e! tag:example.com,2000:app/ ---- -- !local foo -- !!str bar -- !e!tag%21 baz - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (block_node - (block_sequence - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 6.28. Non-Specific Tags -================================================================================ -# Assuming conventional resolution: -- "12" -- 12 -- ! 12 - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (double_quote_scalar))) - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar)))) - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Spec Example 6.29. Node Anchors -================================================================================ -First occurrence: &anchor Value -Second occurrence: *anchor - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Spec Example 7.1. Alias Nodes -================================================================================ -First occurrence: &anchor Foo -Second occurrence: *anchor -Override anchor: &anchor Bar -Reuse anchor: *anchor - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (alias - (alias_name)))))))) - -================================================================================ -Spec Example 7.2. Empty Content -================================================================================ -{ - foo : !!str, - !!str : bar, -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag))) - (flow_pair - key: (flow_node - (tag)) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.3. Completely Empty Flow Nodes -================================================================================ -{ - ? foo :, - : bar, -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.4. Double Quoted Implicit Keys -================================================================================ -"implicit block key" : [ - "implicit flow key" : value, - ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 7.5. Double Quoted Line Breaks -================================================================================ -"folded -to a space, - -to a line feed, or \ - \ non-content" - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar - (escape_sequence) - (escape_sequence))))) - -================================================================================ -Spec Example 7.5. Double Quoted Line Breaks [1.3] -================================================================================ ---- -"folded -to a space, - -to a line feed, or \ - \ non-content" - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar - (escape_sequence) - (escape_sequence))))) - -================================================================================ -Spec Example 7.6. Double Quoted Lines -================================================================================ -" 1st non-empty - - 2nd non-empty - 3rd non-empty " - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 7.6. Double Quoted Lines [1.3] -================================================================================ ---- -" 1st non-empty - - 2nd non-empty - 3rd non-empty " - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (double_quote_scalar)))) - -================================================================================ -Spec Example 7.7. Single Quoted Characters -================================================================================ -'here''s to "quotes"' - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (single_quote_scalar - (escape_sequence))))) - -================================================================================ -Spec Example 7.7. Single Quoted Characters [1.3] -================================================================================ ---- -'here''s to "quotes"' - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (single_quote_scalar - (escape_sequence))))) - -================================================================================ -Spec Example 7.8. Single Quoted Implicit Keys -================================================================================ -'implicit block key' : [ - 'implicit flow key' : value, - ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (single_quote_scalar)) - value: (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (single_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 7.9. Single Quoted Lines -================================================================================ -' 1st non-empty - - 2nd non-empty - 3rd non-empty ' - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (single_quote_scalar)))) - -================================================================================ -Spec Example 7.9. Single Quoted Lines [1.3] -================================================================================ ---- -' 1st non-empty - - 2nd non-empty - 3rd non-empty ' - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (single_quote_scalar)))) - -================================================================================ -Spec Example 7.10. Plain Characters -================================================================================ -# Outside flow collection: -- ::vector -- ": - ()" -- Up, up, and away! -- -123 -- http://example.com/foo#bar -# Inside flow collection: -- [ ::vector, - ": - ()", - "Up, up and away!", - -123, - http://example.com/foo#bar ] - --------------------------------------------------------------------------------- - -(stream - (comment) - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (double_quote_scalar))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (integer_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (double_quote_scalar)) - (flow_node - (double_quote_scalar)) - (flow_node - (plain_scalar - (integer_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Spec Example 7.11. Plain Implicit Keys -================================================================================ -implicit block key : [ - implicit flow key : value, - ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 7.12. Plain Lines -================================================================================ -1st non-empty - - 2nd non-empty - 3rd non-empty - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Spec Example 7.13. Flow Sequence -================================================================================ -- [ one, two, ] -- [three ,four] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Spec Example 7.14. Flow Sequence Entries -================================================================================ -[ -"double - quoted", 'single - quoted', -plain - text, [ nested ], -single: pair, -] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_node - (double_quote_scalar)) - (flow_node - (single_quote_scalar)) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.15. Flow Mappings -================================================================================ -- { one : two , three: four , } -- {five: six,seven : eight} - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 7.16. Flow Mapping Entries -================================================================================ -{ -? explicit: entry, -implicit: entry, -? -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair))))) - -================================================================================ -Spec Example 7.17. Flow Mapping Separate Values -================================================================================ -{ -unquoted : "separate", -http://foo.com, -omitted value:, -: omitted key, -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.18. Flow Mapping Adjacent Values -================================================================================ -{ -"adjacent":value, -"readable": value, -"empty": -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (double_quote_scalar))))))) - -================================================================================ -Spec Example 7.19. Single Pair Flow Mappings -================================================================================ -[ -foo: bar -] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.20. Single Pair Explicit Entry -================================================================================ -[ -? foo - bar : baz -] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.21. Single Pair Implicit Entries -================================================================================ -- [ YAML : separate ] -- [ : empty key entry ] -- [ {JSON: like}:adjacent ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_pair - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 7.21. Single Pair Implicit Entries [1.3 -================================================================================ -- [ YAML : separate ] -- [ : empty key entry ] -- [ "JSON like":adjacent ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_pair - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (flow_sequence - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 7.23. Flow Content -================================================================================ -- [ a, b ] -- { a: b } -- "a" -- 'b' -- c - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (flow_node - (double_quote_scalar))) - (block_sequence_item - (flow_node - (single_quote_scalar))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Spec Example 7.24. Flow Nodes -================================================================================ -- !!str "a" -- 'b' -- &anchor "c" -- *anchor -- !!str - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (tag) - (double_quote_scalar))) - (block_sequence_item - (flow_node - (single_quote_scalar))) - (block_sequence_item - (flow_node - (anchor - (anchor_name)) - (double_quote_scalar))) - (block_sequence_item - (flow_node - (alias - (alias_name)))) - (block_sequence_item - (flow_node - (tag))))))) - -================================================================================ -Spec Example 8.1. Block Scalar Header -================================================================================ -- | # Empty header↓ - literal -- >1 # Indentation indicator↓ - folded -- |+ # Chomping indicator↓ - keep - -- >1- # Both indicators↓ - strip - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_scalar - (comment)))) - (block_sequence_item - (block_node - (block_scalar - (comment)))) - (block_sequence_item - (block_node - (block_scalar - (comment)))) - (block_sequence_item - (block_node - (block_scalar - (comment)))))))) - -================================================================================ -Spec Example 8.2. Block Indentation Indicator -================================================================================ -- | - detected -- > - - - # detected -- |1 - explicit -- > - - detected - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 8.2. Block Indentation Indicator [1.3] -================================================================================ -- | - detected -- > - - - # detected -- |1 - explicit -- > - detected - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 8.4. Chomping Final Line Break -================================================================================ -strip: |- - text -clip: | - text -keep: |+ - text - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 8.5. Chomping Trailing Lines -================================================================================ - # Strip - # Comments: -strip: |- - # text - - # Clip - # comments: - -clip: | - # text - - # Keep - # comments: - -keep: |+ - # text - - # Trail - # comments. - --------------------------------------------------------------------------------- - -(stream - (comment) - (comment) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (comment) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (comment) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (comment) - (comment))))) - -================================================================================ -Spec Example 8.6. Empty Scalar Chomping -================================================================================ -strip: >- - -clip: > - -keep: |+ - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))))))) - -================================================================================ -Spec Example 8.7. Literal Scalar -================================================================================ -| - literal - text - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 8.7. Literal Scalar [1.3] -================================================================================ ---- | - literal - text - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 8.8. Literal Content -================================================================================ -| - - - literal - - - text - - # Comment - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar))) - (comment)) - -================================================================================ -Spec Example 8.8. Literal Content [1.3] -================================================================================ ---- | - - - literal - - - text - - # Comment - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar))) - (comment)) - -================================================================================ -Spec Example 8.9. Folded Scalar -================================================================================ -> - folded - text - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 8.9. Folded Scalar [1.3] -================================================================================ ---- > - folded - text - - - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 8.10. Folded Lines - 8.13. Final Empty Lines -================================================================================ -> - - folded - line - - next - line - * bullet - - * list - * lines - - last - line - -# Comment - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar))) - (comment)) - -================================================================================ -Spec Example 8.14. Block Sequence -================================================================================ -block sequence: - - one - - two : three - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))))))))) - -================================================================================ -Spec Example 8.15. Block Sequence Entry Types -================================================================================ -- # Empty -- | - block node -- - one # Compact - - two # sequence -- one: two # Compact mapping - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item) - (comment) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment)))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (comment)))))))) - -================================================================================ -Spec Example 8.16. Block Mappings -================================================================================ -block mapping: - key: value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 8.17. Explicit Block Mapping Entries -================================================================================ -? explicit key # Empty value -? | - block key -: - one # Explicit compact - - two # block value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_mapping_pair - key: (block_node - (block_scalar)) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (comment)))))))) - -================================================================================ -Spec Example 8.18. Implicit Block Mapping Entries -================================================================================ -plain key: in-line value -: # Both empty -"quoted key": -- entry - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair) - (comment) - (block_mapping_pair - key: (flow_node - (double_quote_scalar)) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 8.19. Compact Block Mappings -================================================================================ -- sun: yellow -- ? earth: blue - : moon: white - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))))))))) - -================================================================================ -Spec Example 8.20. Block Node Types -================================================================================ -- - "flow in block" -- > - Block scalar -- !!map # Block collection - foo : bar - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (double_quote_scalar))) - (block_sequence_item - (block_node - (block_scalar))) - (block_sequence_item - (block_node - (tag) - (comment) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 8.21. Block Scalar Nodes -================================================================================ -literal: |2 - value -folded: - !foo - >1 - value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_scalar))))))) - -================================================================================ -Spec Example 8.21. Block Scalar Nodes [1.3] -================================================================================ -literal: |2 - value -folded: !foo >1 - value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_scalar))))))) - -================================================================================ -Spec Example 8.22. Block Collection Nodes -================================================================================ -sequence: !!seq -- entry -- !!seq - - nested -mapping: !!map - foo: bar - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (block_node - (tag) - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Spec Example 9.2. Document Markers -================================================================================ -%YAML 1.2 ---- -Document -... # Suffix - --------------------------------------------------------------------------------- - -(stream - (document - (yaml_directive - (yaml_version)) - (flow_node - (plain_scalar - (string_scalar)))) - (comment)) - -================================================================================ -Spec Example 9.3. Bare Documents -================================================================================ -Bare -document -... -# No document -... -| -%!PS-Adobe-2.0 # Not the first line - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (document) - (document - (block_node - (block_scalar)))) - -================================================================================ -Spec Example 9.4. Explicit Documents -================================================================================ ---- -{ matches -% : 20 } -... ---- -# Empty -... - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (document - (comment))) - -================================================================================ -Spec Example 9.5. Directives Documents -================================================================================ -%YAML 1.2 ---- | -%!PS-Adobe-2.0 -... -%YAML 1.2 ---- -# Empty -... - --------------------------------------------------------------------------------- - -(stream - (document - (yaml_directive - (yaml_version)) - (block_node - (block_scalar))) - (document - (yaml_directive - (yaml_version)) - (comment))) - -================================================================================ -Spec Example 9.6. Stream -================================================================================ -Document ---- -# Empty -... -%YAML 1.2 ---- -matches %: 20 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar)))) - (document - (comment)) - (document - (yaml_directive - (yaml_version)) - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Spec Example 9.6. Stream [1.3] -================================================================================ -Mapping: Document ---- -# Empty -... -%YAML 1.2 ---- -matches %: 20 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (comment)) - (document - (yaml_directive - (yaml_version)) - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))))))) - -================================================================================ -Tab after document header -================================================================================ ---- scalar - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Tab at beginning of line followed by a flow mapping -================================================================================ - {} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (flow_mapping)))) - -================================================================================ -Tag shorthand used in documents but only defined in the first -================================================================================ -%TAG !prefix! tag:example.com,2011: ---- !prefix!A -a: b ---- !prefix!B -c: d ---- !prefix!C -e: f - --------------------------------------------------------------------------------- - -(stream - (document - (tag_directive - (tag_handle) - (tag_prefix)) - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Tags for Block Objects -================================================================================ -foo: !!seq - - !!str a - - !!map - key: !!str value - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (tag) - (block_sequence - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (string_scalar)))))))))))))) - -================================================================================ -Tags for Flow Objects -================================================================================ -!!map { - k: !!seq - [ a, !!str b] -} - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (tag) - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (tag) - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Tags for Root Objects -================================================================================ ---- !!map -? a -: b ---- !!seq -- !!str c ---- !!str -d -e - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (tag) - (block_sequence - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (string_scalar))))))) - (document - (flow_node - (tag) - (plain_scalar - (string_scalar))))) - -================================================================================ -Tags in Block Sequence -================================================================================ - - !!str a - - b - - !!int 42 - - d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Tags in Explicit Mapping -================================================================================ -? !!str a -: !!int 47 -? c -: !!str d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag) - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (string_scalar)))))))) - -================================================================================ -Tags in Implicit Mapping -================================================================================ -!!str a: b -c: !!int 42 -e: !!str f -g: h -!!int 23: !!bool false - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag) - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (tag) - (plain_scalar - (integer_scalar))) - value: (flow_node - (tag) - (plain_scalar - (boolean_scalar)))))))) - -================================================================================ -Tags on Empty Scalars -================================================================================ -- !!str -- - !!null : a - b: !!str -- !!str : !!null - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (tag))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag)) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (tag)))))) - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (tag)) - value: (flow_node - (tag)))))))))) - -================================================================================ -Three dashes and content without space -================================================================================ ----word1 -word2 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Three dashes and content without space [1.3] -================================================================================ ---- ----word1 -word2 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Trailing comment in multiline plain scalar [INVALID] -================================================================================ ---- -plain: a - b # end of scalar - c - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (ERROR))))) - -================================================================================ -Trailing content after quoted value [INVALID] -================================================================================ -key1: "quoted1" -key2: "quoted2" trailing content -key3: "quoted3" - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar)))) - -================================================================================ -Trailing content that looks like a mapping [INVALID] -================================================================================ -key1: "quoted1" -key2: "quoted2" no key: nor value -key3: "quoted3" - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar)))) - -================================================================================ -Two document start markers -================================================================================ ---- ---- - --------------------------------------------------------------------------------- - -(stream - (document) - (document)) - -================================================================================ -Various combinations of explicit block mappings -================================================================================ -complex1: - ? - a -complex2: - ? - a - : b -complex3: - ? - a - : > - b -complex4: - ? > - a - : -complex5: - ? - a - : - b - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - value: (block_node - (block_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_scalar)))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))))))))) - -================================================================================ -Various combinations of tags and anchors -================================================================================ ---- -&a1 -!!str -scalar1 ---- -!!str -&a2 -scalar2 ---- -&a3 -!!str scalar3 ---- -&a4 !!map -&a5 !!str key5: value4 ---- -a6: 1 -&anchor6 b6: 2 ---- -!!map -&a8 !!str key8: value7 ---- -!!map -!!str &a10 key10: value9 ---- -!!str &a11 -value11 - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (anchor - (anchor_name)) - (tag) - (plain_scalar - (string_scalar)))) - (document - (flow_node - (tag) - (anchor - (anchor_name)) - (plain_scalar - (string_scalar)))) - (document - (flow_node - (anchor - (anchor_name)) - (tag) - (plain_scalar - (string_scalar)))) - (document - (block_node - (anchor - (anchor_name)) - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (tag) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar)))) - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))))) - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (tag) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (block_node - (tag) - (block_mapping - (block_mapping_pair - key: (flow_node - (tag) - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (document - (flow_node - (tag) - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))))) - -================================================================================ -Various empty or newline only quoted strings -================================================================================ ---- -a: ' - ' -b: ' - ' -c: " - " -d: " - " -e: ' - - ' -f: " - - " -g: ' - - - ' -h: " - - - " - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))))))) - -================================================================================ -Various location of anchors in flow sequence -================================================================================ -&flowseq [ - a: b, - &c c: d, - { &e e: f }, - &g { g: h } -] - --------------------------------------------------------------------------------- - -(stream - (document - (flow_node - (anchor - (anchor_name)) - (flow_sequence - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))) - (flow_node - (anchor - (anchor_name)) - (flow_mapping - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))))) - -================================================================================ -Various Trailing Comments -================================================================================ -a: "double - quotes" # lala -b: plain - value # lala -c : #lala - d -? # lala - - seq1 -: # lala - - #lala - seq2 -e: - &node # lala - - x: y -block: > # lala - abcde - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - (comment) - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - (comment) - value: (block_node - (block_sequence - (block_sequence_item - (comment) - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (comment) - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar - (comment)))))))) - -================================================================================ -Various Trailing Comments [1.3] -================================================================================ -a: "double - quotes" # lala -b: plain - value # lala -c : #lala - d -? # lala - - seq1 -: # lala - - #lala - seq2 -e: &node # lala - - x: y -block: > # lala - abcde - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (comment) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - (comment) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - (comment) - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - (comment) - value: (block_node - (block_sequence - (block_sequence_item - (comment) - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (comment) - (block_sequence - (block_sequence_item - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_scalar - (comment)))))))) - -================================================================================ -Various trailing tabs -================================================================================ -a: b -seq: - - a -c: d #X - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (comment))))) - -================================================================================ -Whitespace After Scalars in Flow -================================================================================ -- [a, b , c ] -- { "a" : b - , c : 'd' , - e : "f" - } -- [ ] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_sequence - (block_sequence_item - (flow_node - (flow_sequence - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar))) - (flow_node - (plain_scalar - (string_scalar)))))) - (block_sequence_item - (flow_node - (flow_mapping - (flow_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar)))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (single_quote_scalar))) - (flow_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (double_quote_scalar)))))) - (block_sequence_item - (flow_node - (flow_sequence))))))) - -================================================================================ -Whitespace around colon in mappings -================================================================================ -"top1" : - "key1" : &alias1 scalar1 -'top2' : - 'key2' : &alias2 scalar2 -top3: &node3 - *alias1 : scalar3 -top4: - *alias2 : scalar4 -top5 : - scalar5 -top6: - &anchor6 'key6' : scalar6 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (double_quote_scalar)) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (double_quote_scalar)) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (single_quote_scalar)) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (single_quote_scalar)) - value: (flow_node - (anchor - (anchor_name)) - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (anchor - (anchor_name)) - (block_mapping - (block_mapping_pair - key: (flow_node - (alias - (alias_name))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (alias - (alias_name))) - value: (flow_node - (plain_scalar - (string_scalar))))))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar)))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (anchor - (anchor_name)) - (single_quote_scalar)) - value: (flow_node - (plain_scalar - (string_scalar))))))))))) - -================================================================================ -Wrong indendation in Map [INVALID] -================================================================================ -key: - ok: 1 - wrong: 2 - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar))) - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (integer_scalar))))) - -================================================================================ -Wrong indendation in mapping [INVALID] -================================================================================ -k1: v1 - k2: v2 - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -Wrong indendation in Sequence [INVALID] -================================================================================ -key: - - ok - - also ok - - wrong - --------------------------------------------------------------------------------- - -(ERROR - (flow_node - (plain_scalar - (string_scalar))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (flow_node - (plain_scalar - (string_scalar)))) - -================================================================================ -Wrong indented flow sequence [INVALID] -================================================================================ ---- -flow: [a, -b, -c] - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (flow_node - (plain_scalar - (string_scalar))) - (string_scalar) - (string_scalar)))))) - -================================================================================ -Wrong indented multiline quoted scalar [INVALID] -================================================================================ ---- -quoted: "a -b -c" - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar)))) - (ERROR - (string_scalar) - (string_scalar)))))) - -================================================================================ -Wrong indented sequence item [INVALID] -================================================================================ -- key: value - - item1 - --------------------------------------------------------------------------------- - -(ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))) - -================================================================================ -YAML directive without document end marker [INVALID] -================================================================================ ---- -key: value -%YAML 1.2 ---- - --------------------------------------------------------------------------------- - -(stream - (ERROR - (block_mapping_pair - key: (flow_node - (plain_scalar - (string_scalar))) - value: (flow_node - (plain_scalar - (string_scalar))))) - (document - (yaml_directive - (yaml_version)))) - -================================================================================ -Zero indented block scalar -================================================================================ ---- > -line1 -line2 -line3 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Zero indented block scalar with line that looks like a comment -================================================================================ ---- > -line1 -# no comment -line3 - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_scalar)))) - -================================================================================ -Zero-indented sequences in explicit mapping keys -================================================================================ ---- -? -- a -- b -: -- c -- d - --------------------------------------------------------------------------------- - -(stream - (document - (block_node - (block_mapping - (block_mapping_pair - key: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))) - value: (block_node - (block_sequence - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))) - (block_sequence_item - (flow_node - (plain_scalar - (string_scalar)))))))))))