Rewrite the REPL in Lisp using FFI
[jscl.git] / jscl.html
index 3cd1330..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>
-      $(function () {
-        var jqconsole = $('#console').jqconsole('Welcome to JSCL!\n\n', '');
-        jqconsole.RegisterMatching('(', ')', 'parents');
-
-        lisp.write = function(str){
-           jqconsole.Write(str, 'jqconsole-output', false);
-           return str;
-        }
-
-        var startPrompt = function () {
-          // Start the prompt with history enabled.
-          jqconsole.Write(lisp.evalString(pv, 1, '(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(mv, 1, input);
-                    for (var i=0; i<vs.length; i++){
-                       jqconsole.Write(lisp.print(pv, 1, vs[i]) + '\n', 'jqconsole-return');
-                    }
-                } catch(error) {
-                    jqconsole.Write('ERROR: ' + (error.message || error) + '\n', 'jqconsole-error');
-                }
-            } else {
-                jqconsole.Write(lisp.compileString(pv, 1, input.slice(1)) + '\n', 'jqconsole-return');
-            }
-            // Restart the prompt.
-            startPrompt();
-          }, function(input){
-            try {
-                lisp.read(pv, 1, 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>