1 /* Copyright (C) 2007 Chris Double. All Rights Reserved.
2 See https://factorcode.org/license.txt for BSD license. */
6 function fjsc_repl_handler() {
9 if(this.lineBuffer != '') {
12 function(text, result) {
13 document.getElementById("compiled").value = result;
16 function() { my_term.prompt(); });
22 function fjsc_init_handler() {
25 TermGlobals.center('********************************************************'),
26 TermGlobals.center('* *'),
27 TermGlobals.center('* Factor to Javascript Compiler Example *'),
28 TermGlobals.center('* *'),
29 TermGlobals.center('********************************************************')
44 initHandler: fjsc_init_handler,
45 handler: fjsc_repl_handler
47 fjsc_repl = new Terminal(conf);
51 function display_datastack() {
53 html.push("<table border='1'>")
54 for(var i = 0; i < factor.cont.data_stack.length; ++i) {
56 html.push(factor.cont.data_stack[i])
57 html.push("</td></tr>")
60 document.getElementById('stack').innerHTML=html.join("");
68 factor.add_word("kernel", ".s", "primitive", function(next) {
69 var stack = factor.cont.data_stack;
71 for(var i=0; i<stack.length; ++i) {
72 term.type(""+stack[i]);
75 factor.call_next(next);
78 factor.add_word("io", "print", "primitive", function(next) {
79 var stack = factor.cont.data_stack;
81 term.type(""+stack.pop());
83 factor.call_next(next);
86 factor.add_word("io", "write", "primitive", function(next) {
87 var stack = factor.cont.data_stack;
89 term.type(""+stack.pop());
90 factor.call_next(next);
93 factor.add_word("io", ".", "primitive", function(next) {
94 var stack = factor.cont.data_stack;
96 term.type(""+stack.pop());
98 factor.call_next(next);