在 "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),但我确信即使这样也太大了...
局部变量名必须是有效的标识符。它的第一个字符必须是字母或百分号 (%) 字符。以“%”字符开头的变量名称称为“百分比变量”,并且具有不同的范围规则。
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
我有一个用于 ObjectScript 的解析器(在 Java 中),它工作得很好,除了一件事:我不解析 "Unicode variable names".
问题是文档对这个主题的解释不是很清楚;而且,它错误地将 Unicode 定义为“16 位”。这告诉我只允许 BMP 中的字符。
但是哪些呢? JDK is frighteningly high, and scripts aren't any better.
中定义的Unicode块数我也许可以使用 Character.isLetter()
(注意,我选择了带有 char 的版本,而不是 int),但我确信即使这样也太大了...
局部变量名必须是有效的标识符。它的第一个字符必须是字母或百分号 (%) 字符。以“%”字符开头的变量名称称为“百分比变量”,并且具有不同的范围规则。
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