#markup-language #markup #parser #no-std

已删除 owens-ml-parser

轻量级标记语言解析器

0.0.0 2019年8月7日

#93#markup-language

MIT 许可证

18KB

解析器概述

关于 owens-ml-parser

此针对 owens-ml 标记语言的解析器是一个学习项目,旨在使用 nom 创建一个简单的库。这个“核心”解析器可以轻松扩展到其他语言的运行时和绑定(例如,使用 pyo3 的 Python)以构建一个小型生态系统。

注意:作为学习项目,其质量可能不是最好的。

计划中的生态系统


标记语言规范概述

关于 owens-ml

owens-ml 是一个易于解析的通用标记语言(可以用作 json/yaml/toml 等的替代),使用 Rust + nom 实现。

以下列出了 owens-ml 的一些关键目标

  • 易于解析且高效;不推断类型。
  • 通用语法;与 JSON、TOML、YAML 或 Python Dict 兼容,布局更改非常小或没有。
  • 相对 易于阅读;这不是此标记语言的主要优先级,但总是很受欢迎。
  • (未来) owens-ml 与 serde 兼容,允许与 owens-ml 之间的转换。

示例 owens-ml 语法

(s) "hello there" (o) {
    (s) "woo" (a-i) [
        4234,
        5,
        34
    ],
    (i) 3423 (o) {
        (s) "ids" (o) {
            (i) 423 (s) "scOwez",
            (i) 4234 (s) "gdude",
            (i) 234 (s) "bisk",
            (s) "username_dynamic" (s) "woo"
        }
    }
},
(s) "cool_array" (a-s) [
    "woo",
    "cool",
    "awesome",
    ":)"
]

如您所见,owens-ml 是一个严格的静态类型标记语言,每种不同的类型都有不同的注释。这是有原因的: 解析容易

依赖关系

~1MB
~17K SLoC