#full { background:#fff; } #full ul { list-style: none; } .left { width:46%; margin:1%; float:left; background:#fff; } .right { width:46%; margin:1%; float:left; background:#fff; } What follows is an attempt to break the Yaml language down into meaningful chunks….
Each block below is a complete feature set.
A person implementing a Yaml parser would likely implement a single block at a time.
Lower blocks may depend on higher blocks. Lower blocks also tend to be of greater complexity than higher blocks. Blocks on the left and right are completely independent of each other.
Those at the same vertical level are of roughly the same complexity. With the exception of double quoted strings, each feature exists in only one block. Each colored set of blocks represents a unique category of the Yaml language. Parsers might differentiate themselves by how many categories they support.
Simplified Yaml Link to heading
-
Yaml documents
-
Lines
-
Indentation
-
Directives
-
Content
-
Comments
-
Sequence blocks
-
Map blocks
-
Comments
Simple Json Link to heading
-
Json tokens
-
Json values
-
Double-quoted strings
-
Json collections
-
Sequence flows
-
Map flows
Basic Strings Link to heading
- Double-quoted strings
- Single-quoted strings
- Multi-line plain scalars
- Multi-line quoted scalars
Scalar Blocks Link to heading
- Literal blocks
- Folded blocks
- Blocks modifiers
Simple Types (Complete Json) Link to heading
-
Simple types
-
Strings, numbers, booleans, nulls
Complete Types Link to heading
- Explict types
- Additional scalar types
- Additional collection types
- Taguris
Anchors Link to heading
- Anchors
- Alias
Full Collection Syntax Link to heading
- Scalar keys
- Complex mappings
Formal Yaml Link to heading
- Documents
- Directives
- Unicode