Anywhere whitespace may appear, FSON recognises a white space character:

  • the ASCII set: space, \r, \n, \t, \v, \f;
  • since v0.9.0.0: NBSP (U+00A0), the BOM / ZWNBSP (U+FEFF), U+2028 (LINE SEPARATOR), U+2029 (PARAGRAPH SEPARATOR), and the rest of Unicode general category Zs (space separators).

The parser matches the multi-byte separators as literal UTF-8 byte sequences.

Whitespace, comments, and trivia

Whitespace never appears alone in the grammar — it is always part of skip_comments_and_blanks, which is "zero or more of (whitespace | line comment | block comment)". That production is what lets comments appear anywhere, and it is what the writer normalises: the positions of comments are kept, the runs of blank space between tokens are not.