#forms #parser #language #root #generate #parser-generator #ithkuil

tnil

New Ithkuil 的解析、注释和生成实用工具

4 个版本

0.1.3 2023年12月11日
0.1.2 2023年12月11日
0.1.1 2023年12月10日
0.1.0 2023年12月7日

#20 in #root

每月下载量:34

MIT/Apache

615KB
14K SLoC

一个用于解析、生成、转换和在 New Ithkuil 语言中操作文本的包。

请参阅文档以获取面向程序员的详细信息。

已完成目标

  • 建模 New Ithkuil 中的所有单词和语法类别。 提供了所有 Ithkuil 语言部分的 struct 和 enum,以精确地对其进行建模,即使这会导致最终难以工作的类型。请参阅 CheckedFormative 类型,以了解这种复杂性在实际操作中的示例。

  • 提供注释功能。 Ithkuil 文本通常以注释形式显示,这显示了单词的语法类别和词根,以方便人类解析。此包提供了 GlossGlossStatic 特性,以允许包中的所有类型进行注释。

  • 轻松转换为罗马化文本。 Ithkuil 文本最显著的形式是其罗马化系统,此包提供了一级支持,使用 FromTokensIntoTokens 特性提供解析和生成函数。

未完成目标

  • 转换为 Ithkuil 书写系统。 本地而言,Ithkuil 使用形态音位书写系统。此包旨在能够生成 Ithkuil 文本的脚本字符表示,以便进行通用脚本转换。它还旨在为 Discord 服务器成员提供的符号提供所有类型的 SVG 转换。

  • 转换为 Unicode 表示。 “通用脚本转换”包括使用 Unicode 写作 Ithkuil 文本的两种格式:一种由 @shankarsivarajan 开发,主要使用带变音符号的 ASCII 字符以方便计算机解析,另一种由 @zsakowitz 开发,使用分配给私有使用的 Unicode 块的一部分,以便将 Ithkuil 文本与其他文本交织在一起。

  • 提供词根和词缀列表。 已启动两个主要项目,以创建计算机可读的 Ithkuil 词汇和词缀列表表示:Collaborative Ithkuil IV Roots and Affixes Spreadsheetlexicon-json。此包旨在允许用户在注释中选择使用哪种表示,并旨在为每种表示提供类型定义。

非目标

  • 在解析文本时保留所有数据。 malëuţřaitmalëuţřaita 应该并且将解析为相同的值;包含最终元音的决定对意义没有影响,因此对解析值也没有影响。Ca 和 Cn 快捷方式在类型系统中仍然被准确表示。

  • 成为 Ithkuil 语法的终极来源。 如果这个crate的行为与官方形态文档(目前为v1.3.2)在任何方面有所不同,那么这是这个crate的问题,而不是形态文档的问题。

  • 实现与@ırburučpaızya的精确兼容。 这个crate的行为与 IthkuilGloss 类似,但不完全相同。这是故意的;它们不是同一个crate,并且会有不同的行为。然而请注意,两者都遵循相同的通用语法([] 表示参照物,. 表示槽位中的片段,- 表示不同的槽位,双撇号表示词根,单撇号表示词缀,等等)。

依赖项

~2.3–3.5MB
~57K SLoC