在 "Unicode" 安装中,ObjectScript 的变量名中可以使用哪些字符?

What characters are usable in a variable name in ObjectScript on a "Unicode" installation?

我有一个用于 ObjectScript 的解析器(在 Java 中),它工作得很好,除了一件事:我不解析 "Unicode variable names".

问题是文档对这个主题的解释不是很清楚;而且,它错误地将 Unicode 定义为“16 位”。这告诉我只允许 BMP 中的字符。

但是哪些呢? JDK is frighteningly high, and scripts aren't any better.

中定义的Unicode块数

我也许可以使用 Character.isLetter()(注意,我选择了带有 char 的版本,而不是 int),但我确信即使这样也太大了...

参见文档 here and here。总结:

局部变量名必须是有效的标识符。它的第一个字符必须是字母或百分号 (%) 字符。以“%”字符开头的变量名称称为“百分比变量”,并且具有不同的范围规则。

Eduard 非常正确,即局部变量可以从百分比或 "alphabetic" 字符开始,后跟 "alphabetic" 个字符或数字。

[\p{Alphabetic}%][\p{Alphabetic}\d]*

这里最要注意的是——什么是"alphabetic"?这意味着当前 Caché 语言环境中的拉丁字母或字母。 IE。安装 Russian/Unicode 语言环境后,您可以这样写:

set порусски = 1

或在日语语言环境中:

USER>set a=$c(12354)

USER>set @a=88

USER>write

a="あ"
あ=88