1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年5月28日

#1457开发工具


用于 luther-derive

Apache-2.0/MIT

35KB
628

Luther

Luther 是一个用于稳定 Rust 的嵌入式词法生成器。

Build Status Coverage Status

用法

Luther 目前还在开发中。以下是大致的工作原理

extern crate luther;
#[macro_use]
extern crate luther_derive;

#[derive(Lexer)]
enum Token {
    #[luther(regex="ab")]
    Ab,

    #[luther(regex="acc*")]
    Acc,
}

fn main() {
    use luther::Lexer;

    let input = ... // some suitable iterator

    let tokens = Tokens::lexer(input)
        .map(|r| r.map(|s| s.into_inner()));

    // use tokens
}

上述语法有一些粗糙的边缘,在 Luther 准备好投入使用之前应该平滑处理。

提供 #[derive(Lexer)] 和识别 #[luther(...)] 属性的过程宏实现位于 luther-derive 包中。

目的是让上述示例中的 tokens 迭代器成为解析器生成器 Lalrpop 的外部词法分析器的一个合适候选。

许可证

Luther 根据您的选择受以下任一许可证的许可

贡献

除非您明确声明,否则您提交给 Luther 的任何贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,没有任何额外的条款或条件。

依赖关系

~215KB