UNPKG

esprima

Version:

ECMAScript parsing infrastructure for multipurpose analysis

121 lines (102 loc) 3.96 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Esprima: Full Source Rewrite Demo</title> <script src="../test/3rdparty/platform.js"></script> <script src="../test/3rdparty/escodegen.js"></script> <script src="checkenv.js"></script> <script src="rewrite.js"></script> <script src="../esprima.js"></script> <script src="../assets/codemirror/codemirror.js"></script> <script src="../assets/codemirror/javascript.js"></script> <link rel="stylesheet" type="text/css" href="../assets/codemirror/codemirror.css"/> <link rel="stylesheet" type="text/css" href="../assets/style.css"/> <style> .CodeMirror-scroll { height: 300px; } </style> </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="http://wiki.esprima.org">Documentation</a></li> <li><a href="http://issues.esprima.org">Issues</a></li> </ul> </div> <h1>Source Rewrite <small>cleans up and reformats everything</small></h1> <p>Type ECMAScript code in the editor. Press <b>Rewrite</b> button to get the code parsed and reconstructed.</p> <p><textarea id="code" autofocus="autofocus" cols="70" rows="25" spellcheck="false"> // Example of messy code with confusing and inconsistent indentations function bubbleSort (list) { var items = list.slice(0), swapped =false, p, q; for ( p= 1;p &lt; items.length; ++p) { for (q=0; q &lt; items.length - p; ++q) { if (items[q + 1 ] &lt; items[q]) { swapped =true; let temp = items[q]; items[q] = items[ q+1]; items[q+1] = temp; } } if (!swapped) break; } return items; } </textarea></p> <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> <p><input type="button" value="Rewrite" id="rewrite"></p> <p id="codemirror" align="right"><small>The above code editor is based on <a href="http://codemirror.net" target="_blank">CodeMirror</a>.</small></p> <p id="error"></p> <p><b>Notes</b>:</p> <ul> <li>Only valid syntax is accepted.</li> <li>Comments are <em>not</em> preserved.</li> <li>It is still experimental (see the <a href="https://github.com/Constellation/escodegen">escodegen project</a>).</li> </ul> <p style="margin-top: 50px;">Using Esprima version <span id="version"></span>.</p> <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> <p id="testbox" style="visibility: hidden;"><textarea id="test"></textarea></p> </div> <script> /*jslint sloppy:true browser:true */ /*global sourceRewrite:true, CodeMirror:true */ window.onload = function () { var el; el = document.getElementById('version'); if (typeof el.innerText === 'string') { el.innerText = window.esprima.version; } else { el.textContent = window.esprima.version; } document.getElementById('rewrite').onclick = sourceRewrite; }; try { window.checkEnv(); // This is just testing, to detect whether CodeMirror would fail or not window.editor = CodeMirror.fromTextArea(document.getElementById("test")); window.editor = CodeMirror.fromTextArea(document.getElementById("code"), { lineNumbers: true, matchBrackets: true }); } catch (e) { // CodeMirror failed to initialize, possible in e.g. old IE. document.getElementById('codemirror').innerHTML = ''; } finally { document.getElementById('testbox').parentNode.removeChild(document.getElementById('testbox')); } </script> </body> </html>