3 releases
0.1.2 | Feb 29, 2020 |
---|---|
0.1.1 | Feb 29, 2020 |
0.1.0 | Feb 29, 2020 |
#2088 in Parser implementations
600KB
6.5K
SLoC
Giron
v0.1.1
Table of Contents
Introduction
Giron is an ECMAScript parser written in Rust which outputs Rust strucs or JSON in the ESTree specification format.
The giron-wasm
provides the compiled .wasm binary and javascript interface for using the giron parser on the web.
Note: giron is a work in progress.
Contribution
This repository is looking for contributors. There's still a lot of work to be done, but some of the priorities right now are:
- Add more tests, ensure parity with output from esprima and/or acorn.
- Update parser and ESTree to be ECMAScript 2020 compliant.
- Add all early errors from the ECMAScript specification to the parser.
- Refactor the codebase to increase readability and add more documentation.
- Improve performance.
- Add JSX support.
Installation
Get from crates.io: https://crates.io/crates/giron
Usage
Once you add giron
to your Cargo.toml,
Basic Usage:
use giron::{parse_module, parse_script};
fn main() {
let source = String::from("const PI = 3.14;");
parse_script(source).unwrap();
}
Giron Errors:
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)
}
Parse contents of a javascript file:
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();
}
Dependencies
~3.5MB
~66K SLoC