WARNING: These diagrams represent upcoming design decisions (surrounding byte and numeric literals in particular) in Ziggy which are not implemented yet!

These diagrams were generated using https://github.com/kristoff-it/railroad

Document

braceless-struct value

Braceless Struct

struct-field , ,

Value

null bool integer float bytes enum union array struct dictionary

Bool

true false

Integer

- 0 b bin [0-1] _ o oct [0-7] _ x hex [0-9a-fA-F] hex digits _ [1-9] _ [0-9] _ no whitespace

Float

- integral 0 [1-9] _ [0-9] _ fraction . [0-9] _ exponent E e - + [0-9] no whitespace

Bytes

quoted-escapes multiline-string

Quoted escapes

" printable unicode except ["\\] \ " \ / b f n r t u 4 hex digits x 2 hex digits " no whitespace

Enum

. identifier no whitespace

Union

enum ( no whitespace value )

Array

[ value , , ]

Struct

.{ struct-field , , }

Struct Field

. identifier no whitespace = value

Dictionary

{ dictionary-field , , }

Dictionary Field

quoted-escapes : value

Identifier

[a-zA-Z_] [a-zA-Z0-9_] no whitespace

Whitespace

Whitespace is implicitly present between all terms except for the ones inside of a no whitespace box.

comment [ \t\r\n]

Comment

// printable unicode and [\t] [\r] [\n] no whitespace