3个版本 (破坏性更新)
使用旧的Rust 2015
0.2.0 | 2018年9月29日 |
---|---|
0.1.0 | 2018年6月30日 |
0.0.1 | 2018年6月28日 |
#2888 在 解析实现
每月41次下载
在 2 个crate中使用(通过 atlas-coverage-core)
6MB
56K SLoC
ecmascript
这是一个Rust crate,可以帮助您处理ECMAScript 2017 v9.0。它提供了一个解析器和AST(抽象语法树)实现。我们还提供了一些宏来构建AST,以便您可以进行一些有趣的优化!
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
ecmascript = "0.1"
然后将此内容放入您的crate根目录
extern crate ecmascript;
示例
此示例读取一个文件,解析它,然后打印出压缩版本。
文件读取来自std::fs::File
文档
extern crate ecmascript;
use std::fs::File;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
// read foo.js
let mut file = File::open("foo.js")?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
// parse it
let ast = ecmascript::parse(&contents).unwrap();
println!("{:?}", ast);
}
API参考
文档托管在 docs.rs.
关于
ecmascript
用于解析JavaScript模块,并在其上执行一些操作。例如,将模块连接在一起,丑化变量名,格式化压缩代码等。
特性(计划中)
- ECMAScript 2017 v9.0 支持(进行中)
- 我们正在积极开发这个库,使其保持最新!
- JSX 扩展支持(进行中)
- JSX 旨在作为语言的一种附加扩展
- AST 格式化打印器(进行中)
- 这支持压缩选项,例如0空白
- AST 重写规则(进行中)
- 例如,常量折叠,转换为语言的老版本等。
测试
要测试一切,只需运行此命令
cargo test
或者要运行单个测试,
cargo test --test <test_name>
代码检查
要检查您的代码,请使用 clippy。一旦安装,只需运行一次即可!
cargo clippy
参考资料
许可证
MIT © Nick Dujay
依赖项
约2.4-3.5MB
约64K SLoC