forked from jquery/esprima
/
rewrite.html
153 lines (142 loc) · 6.08 KB
/
rewrite.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<!DOCTYPE html>
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8" />
<title>Esprima: Source Rewrite</title>
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" type="text/css" href="../assets/orion/built-editor.css"/>
<link rel="stylesheet" type="text/css" href="../assets/style.css"/>
<link rel="stylesheet" href="../assets/foundation/foundation.min.css">
</head>
<body>
<!-- Navigation bar -->
<div class="row">
<div class="twelve columns">
<nav class="top-bar">
<ul>
<li class="name">
<h1><a href="../index.html">Esprima</a></h1>
</li>
</ul>
<section>
<ul class="right">
<li class="divider show-for-medium-and-up"></li>
<li class="has-dropdown">
<a href="../demo/index.html">Demo</a>
<ul class="dropdown">
<li><label>Static Analysis</label></li>
<li><a href="../demo/parse.html">Online Parsing</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><label>Dynamic Tracing</label></li>
<li><a href="../demo/functiontrace.html">Function Instrumentation</a></li>
<li><label>Code Transformation</label></li>
<li><a href="../demo/rewrite.html">Source Rewrite</a></li>
<li><a href="../demo/minify.html">Minifiy & Obfuscate</a></li>
<li><label>Editing Tools</label></li>
<li><a href="../demo/highlight.html">Identifier Highlight</a></li>
<li><a href="../demo/rename.html">Rename Refactoring</a></li>
<li><a href="../demo/autocomplete.html">Autocomplete</a></li>
</ul>
</li>
<li class="has-dropdown">
<a href="#">Project</a>
<ul class="dropdown">
<li><a href="http://github.com/jquery/esprima">Git Repository</a></li>
<li><a href="https://travis-ci.org/jquery/esprima">Continuous Integration</a></li>
<li><a href="http://groups.google.com/group/esprima">Mailing List</a></li>
<li><a href="https://github.com/jquery/esprima/issues">Issue Tracker</a></li>
<li class="divider"></li>
<li><label>QA</label></li>
<li><a href="../test/index.html">Unit Tests</a></li>
<li><a href="../test/benchmarks.html">Benchmarks Suite</a></li>
<li><a href="../test/compare.html">Speed Comparison</a></li>
<li><a href="../test/module.html">Module Loading</a></li>
<li><a href="https://coveralls.io/r/jquery/esprima">Coverage Analysis</a></li>
</ul>
</li>
<li><a href="../doc/index.html">Documentation</a></li>
</ul>
</section>
</nav>
</div>
</div>
<!-- Title and subtitle -->
<div class="row">
<div class="twelve columns">
<h3 class="subheader"><strong>Source Rewrite</strong> cleans up and reformats everything</h3>
</div>
</div>
<!-- Main content -->
<div class="row">
<div class="eight columns">
<pre id="editor" spellcheck="false" style="height: 350px">
// Messy code with confusing and inconsistent indentations
function bubbleSort (list) {
var items = list.slice(0), swapped =false,
p, q;
for ( p= 1;p < items.length; ++p) {
for (q=0; q < items.length - p; ++q) {
if (items[q + 1 ] < items[q]) {
swapped =true;
let temp = items[q];
items[q] = items[ q+1]; items[q+1] = temp;
}
}
if (!swapped)
break;
}
return items; alert("Finish");
}
</pre>
<div id="info" class="alert-box secondary">Ready.</div>
<p></p>
<div class="four columns">
<p>Indent with:
<label><input type="radio" name="indent" id="onetab" value="onetab"> tab</label>
<label><input type="radio" name="indent" id="twospaces" value="twospaces"> 2 spaces</label>
<label><input checked type="radio" name="indent" id="fourspaces" value="fourspaces"> 4 spaces</label>
</p>
</div>
<div class="four columns">
<p>String literal quotes:
<label><input checked type="radio" name="quotes" id="singlequotes" value="singlequotes"> single (')</label>
<label><input type="radio" name="quotes" id="doublequotes" value="doublequotes"> double (")</label>
<label><input type="radio" name="quotes" id="autoquotes" value="autoquotes"> automatic</label>
</p>
</div>
<div class="four columns">
<p><input class="medium radius button right" type="button" value="Rewrite" id="rewrite"></p>
</div>
</div>
<div class="four columns">
<div class="panel">
<p>Rewriting is a two-step process: parse the code to get the syntax tree
and then <strong>regenerate</strong> a new code from the syntax tree following the specified formatting.</p>
<p><strong>Note:</strong> Only syntatically valid input is accepted.</p>
<p>Code regeneration is carried out using
<a href="https://github.com/Constellation/escodegen">escodegen project</a>.</p>
</div>
</div>
</div>
<!-- Footer -->
<div class="row copyright">
<div class="six columns">
<p>Esprima is created and maintained by <a href="http://ariya.ofilabs.com/about">Ariya Hidayat</a>.</p>
</div>
<div class="six columns">
<ul class="link-list right">
<li><a href="http://twitter.com/esprima">@Esprima</a></li>
<li><a href="https://github.com/jquery/esprima">GitHub</a></li>
</ul>
</div>
</div>
<script src="../esprima.js"></script>
<script src="../test/3rdparty/escodegen.browser.js"></script>
<script src="../assets/orion/built-editor.min.js"></script>
<script src="../assets/orion/customeditor.js"></script>
<script src="rewrite.js"></script>
</body>
</html>