cue export json.cue
cmp stdout expect-stdout-cue

-- frontmatter.toml --
title = "JSON Superset"
description = ""

-- text.md --
CUE is a superset of JSON.
It adds the following conveniences:

- C-style comments,
- quotes may be omitted from field names without special characters,
- commas at the end of fields are optional,
- comma after last element in list is allowed,
- outer curly braces are optional.

<!--
{{< alert color="info">}}
CUE borrows a trick from Go to make commas optional:
the formal grammar still requires commas,
but the scanner inserts commas according to a small set
of simple rules.
{{< /alert >}}
-->

JSON objects are called structs in CUE.
An object member is called a field.

-- json.cue --
one: 1
two: 2

// A field using quotes.
"two-and-a-half": 2.5

list: [
	1,
	2,
	3,
]

-- expect-stdout-cue --
{
    "list": [
        1,
        2,
        3
    ],
    "one": 1,
    "two": 2,
    "two-and-a-half": 2.5
}
