1 个稳定版本
使用旧的Rust 2015
1.0.0 | 2014年11月21日 |
---|
#22 在 #null
2.5MB
89K SLoC
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