forked from jquery/esprima
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
102 lines (87 loc) · 4.77 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!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">← 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><strong>Esprima</strong> is a high performance, standard-compliant
<a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript</a> parser
written in ECMAScript (also popularly known as
<a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a>).</p>
<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://www.mozilla.org/rhino">Rhino</a> and <a href="http://nodejs.org">Node.js</a>.</p>
<h3>Features</h3>
<ul>
<li>Full support for <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript 5.1</a> (ECMA-262)</li>
<li>Sensible <a href="doc/index.html#ast">syntax tree format</a>, compatible with Mozilla
<a href="https://developer.mozilla.org/en/SpiderMonkey/Parser_API">Parser AST</a></li>
<li>Heavily tested (> 550 <a href="http://esprima.org/test/">unit tests</a> with solid 100% statement coverage)</li>
<li>Optional tracking of syntax node location (index-based and line-column)</li>
<li>Experimental support for ES6/Harmony (module, class, destructuring, ...)</li>
</ul>
<p>Esprima is blazing fast (see the <a href="http://esprima.org/test/benchmarks.html">benchmark suite</a>).
It is up to 3x faster than UglifyJS v1 and it is still
<a href="http://esprima.org/test/compare.html">competitive</a> with the new generation of fast parsers.</p>
<h3>Applications</h3>
Esprima serves as the basis for many popular JavaScript development tools:
<ul>
<li>Code coverage analysis: <a href="https://github.com/itay/node-cover">node-cover</a>, <a href="https://github.com/yahoo/Istanbul">Istanbul</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>Language extension: <a href="http://mbebenita.github.com/LLJS/">LLJS</a> (low-level JS), <a href="http://sweetjs.org/">Sweet.js</a> (macro)</li>
<li>ES6/Harmony transpiler: <a href="https://github.com/matthewrobb/six">Six</a>, <a href="https://github.com/jdiamond/harmonizr">Harmonizr</a></li>
<li>Eclipse Orion 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 transformation: <a href="https://github.com/substack/node-falafel">node-falafel</a>, <a href="https://github.com/Constellation/esmangle">Esmangle</a>, <a href="https://github.com/Constellation/escodegen">escodegen</a></li>
</ul>
<p>Feedback is welcomed! Please join the discussion in the <a href="http://groups.google.com/group/esprima">mailing list</a>.</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>
<li><a href="demo/minify.html">Minify</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 and maintained by <a href="http://twitter.com/ariyahidayat">Ariya Hidayat</a>,
with the help of <a href="https://github.com/ariya/esprima/contributors">many contributors</a>.<br/>
Follow <a href="http://twitter.com/Esprima">@Esprima</a> on Twitter to get the development updates.
</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>