4个版本 (破坏性更新)

0.4.0 2024年5月16日
0.3.0 2024年5月14日
0.2.0 2024年5月14日
0.1.0 2024年5月12日

320编程语言 中排名

Download history 276/week @ 2024-05-09 174/week @ 2024-05-16 9/week @ 2024-05-23 1/week @ 2024-06-27 11/week @ 2024-07-04 68/week @ 2024-07-25 11/week @ 2024-08-01

每月下载 79

MIT 许可证

19KB
460

语言包 - 扫描器

语言包 - 扫描器,是扫描/词法分析Rust库,适用于解释器/编译器应用。库旨在高度可定制且易于学习,它识别键盘上的每个可用字符和您可以配置的关键字,并返回一个标记数组,您可以使用它来构建AST。

安装

在您的项目目录中运行以下Cargo命令

cargo add lp-pack-scanner

或者将以下行添加到您的Cargo.toml中

lp-pack-scanner = "0.4.0"

示例

use std::collections::HashMap;
use lp_pack_scanner::{Config, Scanner, Token};

fn main() {
    let tokens = Scanner::scan(Config {
        input: "let x = 5".to_string(),
        keywords: HashMap::from([("let", lp_pack_scanner::Token::Variable)]),
        allow_unknown: Some(true),
        errors: None,
        comments: None,
        benchmark: false,
    });
    println!("{:?}", tokens);
}

/*
[OutputToken { token: Variable, literal: None, lexeme: "let", line: 1 }, OutputToken { token: Identifier, literal: None, lexeme: "x", line: 1 }, OutputToken { token: Equal, literal: None, lexeme: "=", line: 1 }, OutputToken { token: Number, literal: Number(5.0), lexeme: "5", line: 1 }, OutputToken { token: EndOfFile, literal: None, lexeme: "", line: 1 }]
*/

文档

即将推出

无运行时依赖