RBBI规则增强

动机

    • 截至ICU 4.6的RBBI规则无法表达Unicode 6.0的UAX-14换行行为。需要一些扩展。问题在于UAX规则LB8的反向规则。

    • 如果对规则链有更细粒度的控制,那么可以更容易地表达许多其他规则。对于一整套规则,它当前处于打开或关闭状态。

    • 一些现有规则语法极易出错。

    • 普通的老虫子。

ICU票据

    • 2783,规则中的注释在多行集合中失败。可能没有意义,在这种情况下会返回错误。

    • 3058,空unicode集不应为错误。事实证明,这是有用途的。集合的内容可能来自别处定义的$Variable,并且根据选项或其他内容,集合可能为空。

    • #3640,\p{unicode属性}语法在规则中无法识别,只能在集合中识别。

    • #3769,使每个规则集的规则链接成为可选的。(这将被#4441包含在内)

    • #4441,规则链增强

      • 替换!!LBCMNoChain更通用。

      • !!LookAheadHardBreak,删除此选项,将其设为默认值。(没有此选项的前瞻性中断永远不会使用,行为没有得到很好的定义,也完全没有经过测试。它们的存在只是为了保持与原始Rich Gilliam引擎的兼容性。

    • #????,抬头休息,允许多人同时飞行。UAX14修复需要。需要更改引擎和状态表。可能是一个长度=状态数的向量,vec[state]=对应于“/”的状态时的输入位置,以及用于接受完成look-ahead的状态的边表,指示哪些向量位置(状态)具有中断位置。

    • #4444,长着长鼻子的臭虫。已经修复?调查。

    • #5451,64位文本索引。UText可以做到这一点。

  • 更多。