Keywords can only be used in their correct contextes, and cannot be used as names of variables, functions, data types, enums, generics, [labels][?] or namespaces.
The following are all of the keywords [name] implements:
if
else
switch
case
default
loop
while
do
for
break
continue
return
goto
var
const
priv
rdonly
fun
virt
lambda
type
asm
typeof
sizeof
instanceof
new
destroy
namespace
using
try [reserved]
catch [reserved]
throw [reserved]
In addition to these, all the primitive data types, while not strictly keywords, are not allowed as identifiers.
Identifiers can be any sequence of alphanumeric characters and underscores. They cannot start with a number, but they can contain numbers and they can start with underscores. As mentioned above, keywords are not allowed as identifiers.
I have no clue about Unicode Standard Annex #31, so please don't go calling your variables 小红书, as the result is pretty much undefined. (Should work, though?)
Comments can either be line comments or block comments. After the sequence // all characters are ignored until newline (line comment), while after the sequence /* all characters are ignored until the sequence */. Do not forget to close your block comments! ;)
[name] recognizes the following characters as whitespace:
('\v')
('\t')
('\f')
('\r')
('\n')
(' ')
This is a complete list of all escape sequences in [name]
\a Alert
\b Backspace
\f Form feed
\n Line feed LF
\r Carraige return CR
\t Horizontal tab
\v Vertical tab
\\ Backslash
\* Single quotation
\" Double quotation mark
\nnn ASCII with octal value of nnn
\xhh ASCII with hex value of hh