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 在 编程语言 中排名
每月下载 79 次
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 }]
*/
文档
即将推出