================================================================================
Arrays
================================================================================

[
  345,
  10.1,
  10,
  -10,
  null,
  true,
  false,
  { "stuff": "good" }
]

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

(document
  (array
    (number)
    (number)
    (number)
    (number)
    (null)
    (true)
    (false)
    (object
      (pair
        (string
          (string_content))
        (string
          (string_content))))))

================================================================================
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))
    (string
      (string_content))
    (string
      (string_content))))

================================================================================
Top-level numbers
================================================================================

-1

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

(document
  (number))

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

null

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

(document
  (null))

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

{
  "a": 1,

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

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

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

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

===========================================
Multiple top-level objects
===========================================

{}
{}

---

(document
  (object)
  (object))
