3 个版本
0.1.2 | 2020年2月29日 |
---|---|
0.1.1 | 2020年2月29日 |
0.1.0 | 2020年2月29日 |
#1836 在 解析器实现
600KB
6.5K SLoC
吉隆
v0.1.1
目录
介绍
吉隆是一个用 Rust 编写的 ECMAScript 解析器,它以 ESTree 规范格式输出 Rust 结构或 JSON。
giron-wasm
提供了编译后的 .wasm 二进制文件和 JavaScript 接口,以便在网络上使用吉隆解析器。
注意:吉隆仍在开发中。
贡献
此存储库正在寻找贡献者。还有很多工作要做,但目前的一些优先事项包括
- 添加更多测试,确保与 esprima 和/或 acorn 的输出一致性。
- 更新解析器和 ESTree 以符合 ECMAScript 2020 标准。
- 将 ECMAScript 规范中的所有早期错误添加到解析器中。
- 重构代码库以提高可读性并添加更多文档。
- 提高性能。
- 添加 JSX 支持。
安装
从 crates.io 获取: https://crates.io/crates/giron
使用
一旦将 giron
添加到您的 Cargo.toml 中,
基本用法
use giron::{parse_module, parse_script};
fn main() {
let source = String::from("const PI = 3.14;");
parse_script(source).unwrap();
}
吉隆错误
use giron::{parse_module, parse_script, GironError, EstreeNode};
fn analyze_ast() -> Result<EstreeNode, GironError> {
let source = String::from("const PI = 3.14;");
parse_script(source)
}
解析 JavaScript 文件的正文
use giron::{parse_module, parse_script};
use std::fs;
fn main() {
let source = fs::read_to_string("example-file.js").unwrap();
parse_script(source).unwrap();
}
依赖关系
~3.5MB
~66K SLoC