首页 > 解决方案 > 为简体中文标识符构建令牌

问题描述

我正在尝试为简体中文标识符构建一个令牌。

简体中文标识符在规范中定义如下:

simplified-Chinese-identifier = first-sChinese-identifier-character *subsequent-sChinese-identifier-character
first-sChinese-identifier-character = (first-Latin-identifier-character / CP936-initialcharacter)
subsequent-sChinese-identifier-character = (subsequent-Latin-identifier-character / CP936-
subsequent-character)
CP936-initial-character = < character ranges specified in section 3.3.5.1.3>
CP936-subsequent-character = < character ranges specified in section 3.3.5.1.3>

在此处输入图像描述

这是UNICODE-BESTFITWindows Codepage 936

例如,我所做的是%xA3C1在页面中查找,然后获取其对应的代码,即0xff21. %xA3C1因此,我找到了, %xA3DA, %xA3E1, %xA3FA, %xA1A2, %xA1AA, %xA1AC, %xA1AD, %xA1B2,的相应代码%xA1E6%xA1E8, %xA1EF, %xA2B1, %xA2FC, %xA4A1, %xFE4F, 和构建CP936-initial-character如下:

在此处输入图像描述

let cP936_initial_character = [%sedlex.regexp? 0xff21 .. 0xff3a | 0xff41 .. 0xff5a | 0x3001 .. 0x2014 | 0x2016 .. 0x2026 | 0x3014 .. 0x2103 | 0x00a4 .. 0x2605 | 0x2488 .. 0x216b | 0x3041 .. 0xfa29]

但是,问题在于,例如,某些范围看起来很奇怪,0x00a4 .. 0x2605并且0x2488 .. 0x216b顺序不正确;而且0x3041 .. 0xfa29看起来太大了。

有谁知道构建这个令牌的正确方法是什么?

标签: unicodecjkcodepointgb2312

解决方案



推荐阅读