1 个稳定版本

使用旧的Rust 2015

1.0.0 2014年11月21日

#22#null

2.5MB
89K SLoC

JavaScript 84K SLoC // 0.0% comments Rust 3K SLoC // 0.0% comments TypeScript 2K SLoC // 0.2% comments

rust-acorn

Acorn.js移植到Rust。这是一次半自动翻译,相当粗糙!(分支来自提交ef045b,最终将向前滚动。)

Acorn是一个轻量级的ECMAScript解析器,支持版本3-6。它输出与Esprima或Mozilla解析器AST等效的AST。

试用方法

git clone https://github.com/tcr/rust-acorn.git
cd rust-acorn
cargo build
echo "console.log('hello world!')" | ./target/acorn -
{"_type":"Program","loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"body":[{"_type":"ExpressionStatement","loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":28}},"expression":{"_type":"CallExpression","loc":null,"callee":{"_type":"MemberExpression","loc":null,"object":{"_type":"Identifier","loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7}},"name":"console"},"property":{"_type":"Identifier","loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":11}},"name":"log"},"computed":false},"arguments":[{"_type":"Literal","loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":27}},"value":"hello worldls","raw":"'hello worldls'"}]}}]}

您还可以指定一个文件名 ./target/acorn input.js,或使用 make test 运行acorn.js测试套件。

许可协议

MIT. Acorn.js版权属于Marijn Haverbeke

无运行时依赖