Rewrite the REPL in Lisp using FFI
[jscl.git] / jscl.html
index ade16ec..a8d109b 100644 (file)
--- a/jscl.html
+++ b/jscl.html
 
   <body>
     <div id="console"></div>
-    <script src="jscl.js" type="text/javascript"></script>
     <script src="jquery.js" type="text/javascript" charset="utf-8"></script>
+    <script src="jscl.js" type="text/javascript"></script>
     <script src="jqconsole.min.js" type="text/javascript" charset="utf-8"></script>
     <script>
-      var jqconsole;
-      $(function () {
-        jqconsole = $('#console').jqconsole('Welcome to JSCL!\n\n', '');
-        jqconsole.RegisterMatching('(', ')', 'parents');
-        if (localStorage.getItem("jqhist"))
-           jqconsole.SetHistory(JSON.parse(localStorage.getItem("jqhist")));
-      
-        lisp.write = function(str){
-           jqconsole.Write(xstring(str), 'jqconsole-output', false);
-           return str;
-        }
-
-        var startPrompt = function () {
-          // Start the prompt with history enabled.
-          jqconsole.Write(lisp.evalString('(CL:PACKAGE-NAME CL:*PACKAGE*)') + '> ', 'jqconsole-prompt');
-          jqconsole.Prompt(true, function (input) {
-            // Output input with the class jqconsole-return.
-            if (input[0] != ','){
-                try {
-                    var vs = lisp.evalInput(input);
-                    // for (var i=0; i<vs.length; i++){
-                       jqconsole.Write(lisp.print(vs) + '\n', 'jqconsole-return');
-                       localStorage.setItem("jqhist", JSON.stringify(jqconsole.GetHistory()));
-                    // }
-                } catch(error) {
-                    var msg = error.message || error || 'Unknown error';
-                    if (typeof(msg) != 'string') msg = xstring(msg);
-                    jqconsole.Write('ERROR: ' + msg + '\n', 'jqconsole-error');
-                }
-            } else
-                jqconsole.Write(lisp.compileString(input.slice(1)) + '\n', 'jqconsole-return');
-
-            // Restart the prompt.
-            startPrompt();
-          }, function(input){
-            try {
-                lisp.read(input[0]==','? input.slice(1): input);
-            } catch(error) {
-                return 0;
-            }
-            return false;
-          });
-        };
-        startPrompt();
-      });
+      var jqconsole = $('#console').jqconsole(';; Welcome to JSCL!\n\n', '');
     </script>
   </body>
 </html>