Какие символы можно использовать в имени переменной в 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

Смотрите документы здесь и здесь. Подводить итоги:

Имя локальной переменной должно быть допустимым идентификатором. Его первый символ должен быть буквой или символом процента (%). Имена переменных, начинающиеся с символа "%", называются "процентными переменными" и имеют разные правила области видимости.

Другие вопросы по тегам