[ {"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"} ]