It looks like no... but
https://github.com/d3x0r/JSOX#readme
This section has EBNF rendered as line drawings...
JSON6 just adds 'undefined' parsing support (doesn't stringify 'undefined' as a output)
It adds loose quoting specification which the above BNF captures.
also for numbers JSON6 adds NaN, [-]Infinity keywords...
https://github.com/d3x0r/SACK/blob/master/include/json_emitter.h#L206-L220 (this is the list of enum type fields; there is the start of 'Date' and 'TypedArray' but those weren't implemented until JSOX; JSOX deviates from JSON by adding 'typeName{/*object*/}' and 'typename[/*type with array initializer*/]` and even `'stringtype'"stringinitializer"' though the last is less used; in addition to ISO-8601 encoding for Dates as a sub-type of number parsing, and 'n' suffix on numbers for bigint.
JSON6 does not add any additional types - JSOX has Date and BigInt support for native-data types added, and tagged/typed objects and arrays - which JSOX uses for other type stuff.
empty values in arrays is new ... '[1,2,,,3]' results with '[1,2,<empty>,<empty>,3]' where in JS 'delete array[2]' and 'delete array[3]' is done...
comments are /* to */ and // to \n
for strings \n is not required to terminate the string...
' "asdf
ghij" ' would include the binary \n as data... and would look the same as ' "asdf\nghij" '
Simular to JS - if you don't want the newline included you can escape it...
' "asdf\
ghij" ' would consume the newline... and would look the same as ' "asdfghij" '
single, double and back-tick quote characters are available for strings
JSON6 was a modification of stock JSON parsing; where a lot of places where JSON would through an error (like unquoted characters which do not include any JSON frame characters ' [ ] { } , : ' or whitespace to just be strings..
the JS version is mostly a copy the C version of the parser, copied from C to JS and replace '->' with '.' and other types with just their direct values.
But, JSON6 was just a stop along the way - I found JSON5 and various other parsers when I was coming up with the name of it, and realized that I could take what the version was at that point and stop and call it JSON6 - basically just adding 'undefined' over JSON5... but then further modifications I developed to something not quite JSON anymore; but I felt the structure of this is mostly just JSON - it uses the same characters to parse tokens; Mostly the parser is built almost like a NLP; that the primary function is just finding tokens, and the frame control characters and whitespace is what forms the delimiters of tokens, and quotes overrides any of those characters as token delimiters, and collects them into a string result.
I guess these are also changes over JSON6 ...
- underscores in numbers - after the beginning of a number is detected from '0-9' or '.' , then underscores are ignored until the end of the number token)
- over JSON number prefixes of '0b', '0o', '0x' are used... for JS, I basically just take the token and pass it to `Number(val)` to convert the string to a number; for C I have a generic atoi() sort of routine that understands the radix prefixes.
J