============================================================================|||| 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))))))))