================================================================================
Meta1
================================================================================

<"foo":"bar", 1:<2:"baz">"baz">1

--------------------------------------------------------------------------------

(document
  (meta
    (mpair
      (string
        (string_content))
      (string
        (string_content)))
    (mpair
      (number)
      (meta
        (mpair
          (number)
          (string
            (string_content)))
      )
      (string
        (string_content))))
  (number)
)

================================================================================
Meta2
================================================================================

<
  "foo":  "bar" 
  1:<
    2: "baz"
  >
    "baz"
>1

--------------------------------------------------------------------------------

(document
  (meta
    (mpair
      (string
        (string_content))
      (string
        (string_content)))
    (mpair
      (number)
      (meta
        (mpair
          (number)
          (string
            (string_content)))
      )
      (string
        (string_content))))
  (number)
)

=================================================================================
Array
================================================================================

[
  345,
  10.1  10,

  -10,
  123u
  0xabc,
  0x23efu,
  0X123dc
  null

  true,
  false,
,
  { "stuff": "good" },
  i{ 
    1: 2 2:"foo",
  },
]

--------------------------------------------------------------------------------

(document
  (array
    (number)
    (number)
    (number)
    (number)
    (number)
    (number)
    (number)
    (number)
    (null)
    (true)
    (false)
    (map
      (pair
        (string (string_content))
        (string (string_content))))
    (imap
      (ipair
        (number)
        (number)
      )      
      (ipair
        (number)
        (string (string_content))
      )    
    )
  )
)
  
=================================================================================
Array with comment
================================================================================

[1,/*2,*/3]

--------------------------------------------------------------------------------

(document
  (array
    (number)
    (comment)
    (number)
  )
)
  
=================================================================================
DateTime
================================================================================

[
  d"2020-01-23T12:13:14"
  d"2020-01-23T12:13:14.123"
  d"2020-01-23T12:13:14.123Z"
  d"2020-01-23T12:13:14+1030"
  d"2020-01-23T12:13:14.999-03"
  d"2020-01-23T12:13:14.456Z"
  d"2020-01-23T12:13:14Z"
]

--------------------------------------------------------------------------------

(document
  (array
    (datetime)
    (datetime)
    (datetime)
    (datetime)
    (datetime)
    (datetime)
    (datetime)
  )
)

================================================================================
String content
================================================================================

[
  "",
  "abc",
  "def\n",
  "ghi\t",
  "jkl\f"
]

--------------------------------------------------------------------------------

(document
  (array
    (string)
    (string
      (string_content))
    (string
      (string_content
        (escape_sequence)))
    (string
      (string_content
        (escape_sequence)))
    (string
      (string_content
        (escape_sequence)))))

================================================================================
Top-level number
================================================================================

-1

--------------------------------------------------------------------------------

(document
  (number))

================================================================================
array of numbers
================================================================================

[
  1
  0xabc
  1e23
]

--------------------------------------------------------------------------------

(document
  (array
    (number)
    (number)
    (number)
  )
)

================================================================================
Array of blobs
================================================================================

[
  b"ab\\\3123" // "ab\123"
  b"ab1"
  b"ab\31"
  x"616231"
]

--------------------------------------------------------------------------------

(document
  (array
    (escblob)
    (escblob)
    (escblob)
    (hexblob)
  )
)

================================================================================
Top-level null
================================================================================

null

--------------------------------------------------------------------------------

(document
  (null))

================================================================================
Comments
================================================================================

{
  "a": 1,
  
  // we allow comments, because several
  // commonly used tools allow comments in
  // files with the extension `.cpon`
  "b": "2",

  /*
   * Block comments are also ok
   */
  "c": 3
}

--------------------------------------------------------------------------------

(document
  (map
    (pair
      (string
        (string_content))
      (number))
    (comment)
    (comment)
    (comment)
    (pair
      (string
        (string_content))
      (string
        (string_content)))
    (comment)
    (pair
      (string
        (string_content))
      (number))))
