Какие символы можно использовать в имени переменной в ObjectScript при установке "Юникод"?
У меня есть синтаксический анализатор (на Java) для ObjectScript, который работает довольно хорошо, за исключением одного: я не анализирую "имена переменных Unicode".
Проблема в том, что документация не очень объяснительна по этому вопросу; и более того, он неправильно определяет Unicode как "16 бит". Это говорит мне, что разрешены только символы в BMP.
Но какие? Количество блоков Unicode, определенных в JDK , пугающе велико, и сценарии не лучше.
Я мог бы использовать Character.isLetter()
(обратите внимание, я выбрал версию с символом, а не с int), но я уверен, что даже это будет слишком большим...
2 ответа
Эдуард был в значительной степени корректен, то есть локальная переменная могла начинаться с процента или буквенного символа, за которым следовали буквенные символы или цифры.
[\p{Alphabetic}%][\p{Alphabetic}\d]*
Здесь самое важное отметить - что такое "алфавитный"? Это подразумевает латинскую букву или алфавит в текущей локали Caché. Т.е. с установленным языком русский / юникод вы можете написать что-то вроде:
set порусски = 1
или в японском языке:
USER>set a=$c(12354)
USER>set @a=88
USER>write
a="あ"
あ=88
Смотрите документы здесь и здесь. Подводить итоги:
Имя локальной переменной должно быть допустимым идентификатором. Его первый символ должен быть буквой или символом процента (%). Имена переменных, начинающиеся с символа "%", называются "процентными переменными" и имеют разные правила области видимости.