19个版本

0.2.14 2024年6月28日
0.2.13 2024年6月28日
0.2.12 2024年2月21日
0.2.7 2024年1月31日
0.1.6 2023年7月28日

#4 in #sdml


用于 2 crates

自定义许可证

760KB
16K SLoC

#+TITLE: 包 sdml-parse #+AUTHOR: Simon Johnston #+EMAIL: [email protected] #+LANGUAGE: en #+STARTUP: overview hidestars inlineimages entitiespretty #+OPTIONS: author:nil created:nil creator:nil date:nil email:nil num:3 toc:nil

Rust 对简单域建模语言(SDML)的解析器。

[https://crates.io/crates/sdml_parse] [https://docs.rs/sdml_parse]

本包是 Rust SDML 项目的一部分,具体实现了从 SDML 表面语法到内存中模型表示的解析器。项目的目的是提供一个内存模型、解析器、生成器和 CLI 工具的惯用实现。

以下图展示了该包在更广泛的项目背景中的位置。

#+CAPTION: 包组织 #+BEGIN_EXAMPLE ╭───────╮ │ CLI │ ╔══ │ crate │ ══╗ ║ ╰───────╯ ║ ┌╌╌╌╌╌╌╌╌┐ V V ┆ ┆ ╭───────╮ ╭──────────╮ 格式化源代码 ┆ 源代码 ┆ ══> │ parse │ ══> │ generate │ ══> RDF 表示 ┆ 文件 ┆ ╭───│ crate │───────│ crate │───╮ 文档 ┆ ┆ │ ╰───────╯ ╰──────────╯ │ 图表 └╌╌╌╌╌╌╌╌┘ │ 核心crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ 其他 │ ║ │ 工具 │ ════════════════╝ └───────┘ #+END_EXAMPLE

  • 变更

版本 0.2.13-0.2.14

  • 构建:将依赖项从 =sdml_error= 更新到 =sdml-errors=。
  • 构建:提升 =sdml-core= 的版本。

版本 0.2.12

  • 修复:更新所有测试用例以反映最新的 API 更改。
    • 将文件 ID 添加到所有测试示例 "ron" 文件中。
    • 将模块导入 Span 添加到所有测试示例 "ron" 文件中。
    • 在相关的测试示例 "ron" 文件中使用新的 HeaderValue。
    • 添加 ModuleStore 特质的用法。

版本 0.2.11

  • 构建:升级到 =sdml_core= 版本 =0.2.14= 和新的 =ModelStore= 特质。

版本 0.2.10

  • 修复:在顶级规则失败时,正确处理 tree-sitter =ERROR= 节点。

版本 0.2.9

  • 构建:使用 =sdml_core= 版本 =0.2.11= 进行更新的验证。
  • 修复:通过更好的验证发现的微小更改。

版本 0.2.8

  • 构建:使用 =sdml_core= 版本 =0.2.10= 用于新的 stdlib 名称。

版本 0.2.7

  • 修复:基数解析器设置不正确的默认值。
    • 修复:对于 min/max,默认值应该是 =one=,而不是 =zero_or_one=,以匹配模型中的 =DEFAULT_CARDINALITY= 常量。
    • 修复:对于排序/唯一性,如果未解析,则默认值应该是 =None=,而不是 =Some(Default::default())=。
    • 更新:在 =Cardinality= 上的 =with_= 构造函数现在接受选项类型。

版本 0.2.6

  • 构建:从 Cargo.toml 中移除了间接依赖项。

版本 0.2.5

  • 测试:更新测试用例以支持
    • Module 中的新 =source_file= 字段。
    • 需要 =ModuleCache= 的新 =ModuleLoader= API。

版本 0.2.4

  • 修复:解析新的 =rdf_def= 规则现在正确工作。
    • 更新测试用例。

版本 0.2.3

  • 特性:添加具有标准布局的新 stdlib 模块。
  • 特性:对缓存和加载器进行微小重构。

版本 0.2.2

  • 特性:更新到最新的版本 URI 和 RDF 定义语法。
    • 支持模块上的基本 URI。
    • 支持模块上的版本信息和 URI。
    • 支持模块导入上的版本 URI。
    • 解析类和属性的 RDF 定义。

版本 0.2.1

  • 特性:删除成员组。

版本 0.2.0

  • 特性:更新到最新的语法。
    • 移除值变体的数值。
    • 更新正式约束。
    • 添加类型类。

版本 0.1.9

  • 添加了对 =mapping_type= 和 =mapping_value= 规则的支持。

版本 0.1.8

  • 从解析器模型中移除宏。

版本 0.1.7

  • 更新了解析器,以包含 =tree-sitter-sdml= 版本 =0.1.29= 中的语法更改。
  • 添加了核心中的所有测试用例。

版本 0.1.6

  • 更新了解析器,以包含 =tree-sitter-sdml= 版本 =0.1.26= 中的语法更改。

版本 0.1.5

  • 创建了一个 =stdlib= 模块,并将所有 SDML 和相关 RDF 文件移入其中。
  • 将 =tree-sitter-sdml= 更新到版本 =0.1.21=,并更新了约束。

版本 0.1.4

之前是单个 crate 的一部分 [[https://crates.io/crates/sdml][sdml]]。

依赖项

~13–23MB
~342K SLoC