[
  {"type":"CommentSingle","value":"# You are reading a comment in \".properties\" file."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"! The exclamation mark can also be used for comments."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# Lines with \"properties\" contain a key and a value separated by a delimiting character."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# There are 3 delimiting characters: '=' (equal), ':' (colon) and whitespace (space, \\t and \\f)."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"website"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"https://en.wikipedia.org/"},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"language"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":":"},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"English"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# White space that appears between the key, the value and the delimiter is ignored."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# This means that the following are equivalent (other than for readability)."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"hello"},
  {"type":"Operator","value":"="},
  {"type":"LiteralString","value":"hello"},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"hello"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"hello"},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"topic"},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":".properties files"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# A word on a line will just create a key with no value."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"empty"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# Keys with the same name will be overwritten by the key that is the furthest in a file."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# For example the final value for \"duplicateKey\" will be \"second\"."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"duplicateKey"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"first"},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"duplicateKey"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"second"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# Adding a \\ at the end of a line means that the value continues to the next line."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"towLines"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"This line \\\n           continues"},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"threeLines"},
  {"type":"Operator","value":":"},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"This value \\\n            has even \\\n            three lines"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# If you need to add newlines and carriage returns, they need to be escaped using \\n and \\r respectively."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# You can also optionally escape tabs with \\t for readability purposes."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"valueWithEscapes"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"This is a newline\\n and a carriage return\\r and a tab\\t."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# You can also use Unicode escape characters (maximum of four hexadecimal digits)."},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# In the following example, the value for \"encodedHelloInJapanese\" is \"こんにちは\"."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"encodedHelloInJapanese"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"\\u3053\\u3093\\u306b\\u3061\\u306f"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# But with more modern file encodings like UTF-8, you can directly use supported characters."},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"helloInJapanese"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"こんにちは"},
  {"type":"Text","value":"\n  "},
  {"type":"CommentSingle","value":"# Comments and keys can have leading whitespace"},
  {"type":"Text","value":"\n  "},
  {"type":"NameAttribute","value":"foo"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"I have leading whitespace"},
  {"type":"Text","value":"\n"},
  {"type":"CommentSingle","value":"# Comments and keys can have trailing whitespace as part of the comment   "},
  {"type":"Text","value":"\n"},
  {"type":"NameAttribute","value":"bar"},
  {"type":"Text","value":" "},
  {"type":"Operator","value":"="},
  {"type":"Text","value":" "},
  {"type":"LiteralString","value":"I have trailing whitespace as part of the value  "},
  {"type":"Text","value":"\n"}
]