value

value ws?Whitespace (Optional) [\n\r\t ]* annotation wsWhitespace [\n\r\t ]+ string string_raw string_base64 string_datetime number float_literal true[0x74, 0x72, 0x75, 0x65] false[0x66, 0x61, 0x6c, 0x73, 0x65] null[0x6e, 0x75, 0x6c, 0x6c] annotation ws?Whitespace (Optional) [\n\r\t ]* object array expression ws?Whitespace (Optional) [\n\r\t ]*

annotation

annotation !0x21 ws?Whitespace (Optional) [\n\r\t ]* dotted_identifier <0x3c ws?Whitespace (Optional) [\n\r\t ]* annotation_inner >0x3e

annotation_inner

annotation_inner ws?Whitespace (Optional) [\n\r\t ]* dotted_identifier string string_raw string_datetime number float_literal true[0x74, 0x72, 0x75, 0x65] false[0x66, 0x61, 0x6c, 0x73, 0x65] null[0x6e, 0x75, 0x6c, 0x6c] !0x21 *0x2a ?0x3f |0x7c &0x26 =0x3d ,0x2c <0x3c annotation_inner >0x3e (0x28 annotation_inner )0x29 ws?Whitespace (Optional) [\n\r\t ]*

object

object {0x7b ws?Whitespace (Optional) [\n\r\t ]* ws?Whitespace (Optional) [\n\r\t ]* identifier_object_key .0x2e string number_object_key null[0x6e, 0x75, 0x6c, 0x6c] true[0x74, 0x72, 0x75, 0x65] false[0x66, 0x61, 0x6c, 0x73, 0x65] ws?Whitespace (Optional) [\n\r\t ]* :0x3a value ,0x2c line_break ,0x2c line_break ws?Whitespace (Optional) [\n\r\t ]* trailing separator }0x7d

array

array [0x5b ws?Whitespace (Optional) [\n\r\t ]* value ,0x2c line_break ,0x2c line_break ws?Whitespace (Optional) [\n\r\t ]* trailing separator ]0x5d

expression

expression (0x28 ws?Whitespace (Optional) [\n\r\t ]* expression_item )0x29

expression_item

expression_item ws?Whitespace (Optional) [\n\r\t ]* identifier string string_raw string_base64 string_datetime number_unsigned true[0x74, 0x72, 0x75, 0x65] false[0x66, 0x61, 0x6c, 0x73, 0x65] null[0x6e, 0x75, 0x6c, 0x6c] nan[0x6e, 0x61, 0x6e] inf[0x69, 0x6e, 0x66] expression_operator line_break ,0x2c :0x3a @0x40 [0x5b expression_item ws?Whitespace (Optional) [\n\r\t ]* ]0x5d {0x7b expression_item ws?Whitespace (Optional) [\n\r\t ]* }0x7d (0x28 expression_item ws?Whitespace (Optional) [\n\r\t ]* )0x29 ws?Whitespace (Optional) [\n\r\t ]*

expression_operator

expression_operator |0x7c &0x26 !0x21 =0x3d +0x2b -0x2d *0x2a /0x2f \0x5c %0x25 ^0x5e .0x2e ?0x3f ~0x7e <0x3c >0x3e `0x60 ;0x3b

dotted_identifier

dotted_identifier identifier ws?Whitespace (Optional) [\n\r\t ]* .0x2e ws?Whitespace (Optional) [\n\r\t ]*

identifier

identifier a-z0x61-0x7a A-Z0x41-0x5a _0x5f $0x24 a-z0x61-0x7a A-Z0x41-0x5a 0-90x30-0x39 _0x5f $0x24

identifier_object_key

identifier_object_key a-z0x61-0x7a A-Z0x41-0x5a _0x5f $0x24 *0x2a a-z0x61-0x7a A-Z0x41-0x5a 0-90x30-0x39 _0x5f $0x24 *0x2a

string

string "0x22 Any UTF8 sequence except " or \Any UTF8 sequence except 0x22 or 0x5c string_escape_sequence "0x22 '0x27 Any UTF8 sequence except ' or \Any UTF8 sequence except 0x27 or 0x5c string_escape_sequence '0x27

string_escape_sequence

string_escape_sequence \0x5c "0x22 double quote '0x27 single quote \0x5c backslash /0x2f forward slash b0x62 backspace f0x66 formfeed n0x6e line break r0x72 carriage return t0x74 horizontal tab x0x78 hex_digit exactly 2x one-byte character u0x75 hex_digit exactly 4x utf16-be codepoint U0x55 hex_digit exactly 8x utf32-be codepoint

string_raw

string_raw r0x72 "0x22 heredoc (0x28 Any UTF8 sequenceAny UTF8 sequence )0x29 heredoc "0x22 '0x27 heredoc (0x28 Any UTF8 sequenceAny UTF8 sequence )0x29 heredoc '0x27

heredoc

heredoc a-z0x61-0x7a A-Z0x41-0x5a _0x5f a-z0x61-0x7a A-Z0x41-0x5a 0-90x30-0x39 _0x5f 1x to 14x (max 15 characters)

string_base64

string_base64 b64"[0x62, 0x36, 0x34, 0x22] base64_digit "0x22 b64'[0x62, 0x36, 0x34, 0x27] base64_digit '0x27 b64"([0x62, 0x36, 0x34, 0x22, 0x28] ws?Whitespace (Optional) [\n\r\t ]* base64_digit ws?Whitespace (Optional) [\n\r\t ]* )"[0x29, 0x22] b64'([0x62, 0x36, 0x34, 0x27, 0x28] ws?Whitespace (Optional) [\n\r\t ]* base64_digit ws?Whitespace (Optional) [\n\r\t ]* )'[0x29, 0x27] Digit count must be a multiple of 4

string_datetime

string_datetime dt"[0x64, 0x74, 0x22] datetime_iso8601 "0x22 dt'[0x64, 0x74, 0x27] datetime_iso8601 '0x27

datetime_iso8601

datetime_iso8601 date T0x54 time timezone

date

date +0x2b -0x2d 0-90x30-0x39 4x to 5x Year -0x2d 0-90x30-0x39 0-90x30-0x39 Month -0x2d 0-90x30-0x39 0-90x30-0x39 Day

time

time 0-90x30-0x39 0-90x30-0x39 :0x3a 0-90x30-0x39 0-90x30-0x39 :0x3a 0-90x30-0x39 0-90x30-0x39 .0x2e 0-90x30-0x39 1x to 12x

timezone

timezone Z0x5a +0x2b -0x2d 0-90x30-0x39 0-90x30-0x39 :0x3a 0-90x30-0x39 0-90x30-0x39

number

number +0x2b -0x2d number_unsigned

number_object_key

number_object_key +0x2b -0x2d number_unsigned_hex number_unsigned_bin number_unsigned_oct number_unsigned_dec exponent_positive

number_unsigned

number_unsigned number_unsigned_hex number_unsigned_bin number_unsigned_oct number_unsigned_dec exponent_positive exponent_negative number_unsigned_dec .0x2e 0-90x30-0x39 exponent_positive exponent_negative

number_unsigned_dec

number_unsigned_dec 1-90x31-0x39 0-90x30-0x39

number_unsigned_hex

number_unsigned_hex 0x[0x30, 0x78] 0X[0x30, 0x58] hex_digit

number_unsigned_bin

number_unsigned_bin 0b[0x30, 0x62] 0B[0x30, 0x42] 00x30 10x31

number_unsigned_oct

number_unsigned_oct 0o[0x30, 0x6f] 0O[0x30, 0x4f] 0-70x30-0x37

number_suffix

number_suffix a-z0x61-0x7a A-Z0x41-0x5a %0x25 a-z0x61-0x7a A-Z0x41-0x5a 0-90x30-0x39 %0x25 15 chars max

exponent_positive

exponent_positive e0x65 E0x45 +0x2b

exponent_negative

exponent_negative e0x65 E0x45 -0x2d

hex_digit

hex_digit a-f0x61-0x66 A-F0x41-0x46 0-90x30-0x39

base64_digit

base64_digit a-z0x61-0x7a A-Z0x41-0x5a 0-90x30-0x39 +0x2b /0x2f =0x3d

float_literal

float_literal nan[0x6e, 0x61, 0x6e] +0x2b -0x2d inf[0x69, 0x6e, 0x66]

whitespace_optional

whitespace_optional (space)0x20 \t (tab)0x09 \n (line break)0x0a \r (carriage return)0x0d

whitespace

whitespace (space)0x20 \t (tab)0x09 \n (line break)0x0a \r (carriage return)0x0d

line_break

line_break \n (line break)0x0a \r (carriage return)0x0d