Правила определения идентификаторов в языке соответствуют правилам стандарта Юникод (Unicode Standard Annex 15) за следующим исключением: в качестве начального символа идентификатора может быть использован символ подчеркивания или символ «@», если идентификатор совпадает с ключевым словом.
Примечание. Не более одного символа «_» или «@» допускается использовать в качестве начального символа.
identifier:
identifier-start-character identifier-part-charactersopt
identifier-start-character:
letter-character
_ (the underscore character U+005F)
identifier-part-characters:
identifier-part-character
identifier-part-characters identifier-part-character
identifier-part-character:
letter-character
decimal-digit-character
connecting-character
combining-character
formatting-character
letter-character:
A Unicode character of classes Lu, Ll, Lt, Lm, Lo, or Nl
A unicode-escape-sequence representing a character of classes Lu, Ll, Lt, Lm, Lo, or Nl
combining-character:
A Unicode character of classes Mn or Mc
A unicode-escape-sequence representing a character of classes Mn or Mc
decimal-digit-character:
A Unicode character of the class Nd
A unicode-escape-sequence representing a character of the class Nd
connecting-character:
A Unicode character of the class Pc
A unicode-escape-sequence representing a character of the class Pc
formatting-character:
A Unicode character of the class Cf
A unicode-escape-sequence representing a character of the class Cf
Информацию о классах символов, используемых в определении, можно найти в The Unicode Standard, Version 3.0, section 4.5.
Два идентификатора считаются одинаковыми, если они идентичны после применения следующих преобразований:
Все контрольные последовательности Юникод (Unicode escape sequences) преобразованы в соответствующие им символы.
Удалены все символы форматирования (formatting-character).
Идентификаторы, начинающиеся с двух знаков подчеркивания, зарезервированы для использования реализацией языка.
См.также: