3 个版本

0.1.2 2020年2月29日
0.1.1 2020年2月29日
0.1.0 2020年2月29日

#1836解析器实现

MIT/Apache

600KB
6.5K SLoC

Build Status

吉隆

v0.1.1

目录

介绍

吉隆是一个用 Rust 编写的 ECMAScript 解析器,它以 ESTree 规范格式输出 Rust 结构或 JSON。

giron-wasm 提供了编译后的 .wasm 二进制文件和 JavaScript 接口,以便在网络上使用吉隆解析器。

注意:吉隆仍在开发中。

贡献

此存储库正在寻找贡献者。还有很多工作要做,但目前的一些优先事项包括

  1. 添加更多测试,确保与 esprima 和/或 acorn 的输出一致性。
  2. 更新解析器和 ESTree 以符合 ECMAScript 2020 标准。
  3. 将 ECMAScript 规范中的所有早期错误添加到解析器中。
  4. 重构代码库以提高可读性并添加更多文档。
  5. 提高性能。
  6. 添加 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