Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
109 lines (94 sloc) 4.8 KB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Esprima</title>
<link rel="stylesheet" type="text/css" href="assets/style.css"/>
</head>
<body>
<div class="container">
<div class="topbar">
<ul class="nav">
<li><a href="index.html">&larr; Home</a></li>
<li><a href="http://github.com/ariya/esprima">Code</a></li>
<li><a href="doc/index.html">Documentation</a></li>
<li><a href="http://issues.esprima.org">Issues</a></li>
</ul>
</div>
<h1>Esprima <small>ECMAScript parsing infrastructure for multipurpose analysis</small></h1>
<div class="main">
<p>Esprima (<a href="http://esprima.org">esprima.org</a>) is an educational
<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript</a>
(also popularly known as <a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a>)
parsing infrastructure for multipurpose analysis. It is also written in ECMAScript.</p>
<p>Esprima is created and maintained by <a href="http://ariya.ofilabs.com/about">Ariya Hidayat</a>
(Twitter: <a href="http://twitter.com/ariyahidayat">@ariyahidayat</a>), with the help of
<a href="https://github.com/ariya/esprima/contributors">many contributors</a>.</p>
<h3>Features</h3>
<ul>
<li>Supports <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript 5.1</a>
with an experimental branch for ES.Next/Harmony</li>
<li>Sensible format for the abstract syntax tree (AST), compatible with Mozilla
<a href="https://developer.mozilla.org/en/SpiderMonkey/Parser_API">Parser API</a></li>
<li>Heavily tested (&gt; 500 <a href="http://esprima.org/test/">unit tests</a> with solid 100% code coverage)</li>
<li>Optional tracking of syntax node location (index-based and line-column)</li>
<li>
<a href="http://esprima.org/test/benchmarks.html">Blazing fast</a>, up to 3x faster than
UglifyJS <code>parse-js</code> (<a href="http://esprima.org/test/compare.html">speed comparison</a>)</li>
</ul>
<p>Esprima runs on web browsers (IE 6+, Firefox 1+, Safari 3+, Chrome 1+, Konqueror 4.6+, Opera 8+) as well as
<a href="http://nodejs.org">Node.js</a>.</p>
<h3>Use-cases</h3>
<ul>
<li>Smart editing: <a href="https://github.com/aclement/esprima-outline">outline view</a>, <a href="http://contraptionsforprogramming.blogspot.com/2012/02/better-javascript-content-assist-in.html">content assist</a></li>
<li>Source code modification: <a href="https://github.com/ariya/esmorph">Esmorph</a>, <a href="https://github.com/fawek/codepainter">Code Painter</a>,
<a href="https://github.com/substack/node-falafel">node-falafel</a></li>
<li>Code coverage analysis: <a href="https://github.com/itay/node-cover">node-cover</a>,
<a href="https://github.com/coveraje/coveraje">coveraje</a>,
<a href="https://github.com/arian/CoverJS">CoverJS</a></li>
<li>Code generation: <a href="https://github.com/Constellation/escodegen">escodegen</a></li>
<li>Documentation tool: <a href="https://github.com/thejohnfreeman/jfdoc">JFDoc</a>, <a href="https://github.com/senchalabs/jsduck">JSDuck</a></li>
<li>Source-to-source compilation: <a href="https://github.com/Yoric/Marv-the-Tinker">Marv</a>,
<a href="http://mbebenita.github.com/LLJS/">LLJS</a>,
<a href="https://github.com/jdiamond/harmonizr">Harmonizr</a></li>
</ul>
<p>Feedback and contribution are welcomed! Please join the
<a href="http://groups.google.com/group/esprima">mailing list</a> and read the
<a href="doc/index.html#contribution">contribution guide</a>
for further info.</p>
</div>
<div class="sidebar">
<h3>Semantic analysis</h3>
<ul>
<li><a href="demo/parse.html">Code parser</a></li>
<li><a href="demo/validate.html">Syntax validator</a></li>
<li><a href="demo/precedence.html">Operator precedence</a></li>
<li><a href="demo/collector.html">Regex collector</a></li>
<li><a href="demo/functiontrace.html">Function tracing</a></li>
<li><a href="demo/highlight.html">Identifier highlight</a></li>
</ul>
<h3>Source transformation</h3>
<ul>
<li><a href="demo/rewrite.html">Source rewrite</a></li>
</ul>
<h3>Harness tests</h3>
<ul>
<li><a href="test/index.html">Unit tests</a></li>
<li><a href="test/compat.html">Compatibility tests</a></li>
<li><a href="test/module.html">Module loading</a></li>
<li><a href="test/coverage.html">Coverage analysis</a></li>
</ul>
<h3>Need for speed</h3>
<ul>
<li><a href="test/benchmarks.html">Benchmarks suite</a></li>
<li><a href="test/compare.html">Speed comparison</a></li>
</ul>
</div>
<br clear="all"/>
<div class="footer"><strong>Esprima</strong> is created by
<a href="http://ariya.ofilabs.com/about" target="_blank">Ariya Hidayat</a>. Follow <a href="http://twitter.com/ariyahidayat">@ariyahidayat</a> on Twitter.
</div>
</div>
<a href="http://github.com/ariya/esprima"><img style="position: absolute; top: 0; right: 0; border: 0;" src="assets/forkme_right_red_aa0000.png" alt="Fork me on GitHub"></a>
</body>
</html>