test: use spec examples

This commit is contained in:
ObserverOfTime 2024-03-31 21:35:41 +03:00 committed by Amaan Qureshi
parent 6347d6367c
commit 17f636215d
11 changed files with 4545 additions and 10190 deletions

29
examples/invoice.yaml Normal file
View file

@ -0,0 +1,29 @@
--- !<tag:clarkevans.com,2002: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.

29
examples/log-file.yaml Normal file
View file

@ -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

1246
test/corpus/02_preview.txt Normal file

File diff suppressed because it is too large Load diff

View file

@ -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-"
--------------------------------------------------------------------------------

View file

@ -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
============================================================================||||
!<tag:yaml.org,2002:str> foo :
!<!bar> 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))))))))

729
test/corpus/07_flows.txt Normal file
View file

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

770
test/corpus/08_blocks.txt Normal file
View file

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

145
test/corpus/09_streams.txt Normal file
View file

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

508
test/corpus/10_schemas.txt Normal file
View file

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

View file

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

File diff suppressed because it is too large Load diff