fjsc: change prompt to be "( scratchpad )".

db4
John Benediktsson 2011-08-24 15:11:33 -07:00
parent 539d34fd23
commit 363ca60191
1 changed files with 99 additions and 99 deletions

View File

@ -1,99 +1,99 @@
/* Copyright (C) 2007 Chris Double. All Rights Reserved. /* Copyright (C) 2007 Chris Double. All Rights Reserved.
See http://factorcode.org/license.txt for BSD license. */ See http://factorcode.org/license.txt for BSD license. */
var fjsc_repl = false; var fjsc_repl = false;
function fjsc_repl_handler() { function fjsc_repl_handler() {
var my_term = this; var my_term = this;
this.newLine(); this.newLine();
if(this.lineBuffer != '') { if(this.lineBuffer != '') {
factor.server_eval( factor.server_eval(
this.lineBuffer, this.lineBuffer,
function(text, result) { function(text, result) {
document.getElementById("compiled").value = result; document.getElementById("compiled").value = result;
display_datastack(); display_datastack();
}, },
function() { my_term.prompt(); }); function() { my_term.prompt(); });
} }
else else
my_term.prompt(); my_term.prompt();
} }
function fjsc_init_handler() { function fjsc_init_handler() {
this.write( this.write(
[ [
TermGlobals.center('********************************************************'), TermGlobals.center('********************************************************'),
TermGlobals.center('* *'), TermGlobals.center('* *'),
TermGlobals.center('* Factor to Javascript Compiler Example *'), TermGlobals.center('* Factor to Javascript Compiler Example *'),
TermGlobals.center('* *'), TermGlobals.center('* *'),
TermGlobals.center('********************************************************') TermGlobals.center('********************************************************')
]); ]);
this.prompt(); this.prompt();
} }
function startup() { function startup() {
var conf = { var conf = {
x: 0, x: 0,
y: 0, y: 0,
cols: 64, cols: 64,
rows: 18, rows: 18,
termDiv: "repl", termDiv: "repl",
crsrBlinkMode: true, crsrBlinkMode: true,
ps: "scratchpad ", ps: "( scratchpad )",
initHandler: fjsc_init_handler, initHandler: fjsc_init_handler,
handler: fjsc_repl_handler handler: fjsc_repl_handler
}; };
fjsc_repl = new Terminal(conf); fjsc_repl = new Terminal(conf);
fjsc_repl.open(); fjsc_repl.open();
} }
function display_datastack() { function display_datastack() {
var html=[]; var html=[];
html.push("<table border='1'>") html.push("<table border='1'>")
for(var i = 0; i < factor.cont.data_stack.length; ++i) { for(var i = 0; i < factor.cont.data_stack.length; ++i) {
html.push("<tr><td>") html.push("<tr><td>")
html.push(factor.cont.data_stack[i]) html.push(factor.cont.data_stack[i])
html.push("</td></tr>") html.push("</td></tr>")
} }
html.push("</table>") html.push("</table>")
document.getElementById('stack').innerHTML=html.join(""); document.getElementById('stack').innerHTML=html.join("");
} }
jQuery(function() { jQuery(function() {
startup(); startup();
display_datastack(); display_datastack();
}); });
factor.add_word("kernel", ".s", "primitive", function(next) { factor.add_word("kernel", ".s", "primitive", function(next) {
var stack = factor.cont.data_stack; var stack = factor.cont.data_stack;
var term = fjsc_repl; var term = fjsc_repl;
for(var i=0; i<stack.length; ++i) { for(var i=0; i<stack.length; ++i) {
term.type(""+stack[i]); term.type(""+stack[i]);
term.newLine(); term.newLine();
} }
factor.call_next(next); factor.call_next(next);
}); });
factor.add_word("io", "print", "primitive", function(next) { factor.add_word("io", "print", "primitive", function(next) {
var stack = factor.cont.data_stack; var stack = factor.cont.data_stack;
var term = fjsc_repl; var term = fjsc_repl;
term.type(""+stack.pop()); term.type(""+stack.pop());
term.newLine(); term.newLine();
factor.call_next(next); factor.call_next(next);
}); });
factor.add_word("io", "write", "primitive", function(next) { factor.add_word("io", "write", "primitive", function(next) {
var stack = factor.cont.data_stack; var stack = factor.cont.data_stack;
var term = fjsc_repl; var term = fjsc_repl;
term.type(""+stack.pop()); term.type(""+stack.pop());
factor.call_next(next); factor.call_next(next);
}); });
factor.add_word("io", ".", "primitive", function(next) { factor.add_word("io", ".", "primitive", function(next) {
var stack = factor.cont.data_stack; var stack = factor.cont.data_stack;
var term = fjsc_repl; var term = fjsc_repl;
term.type(""+stack.pop()); term.type(""+stack.pop());
term.newLine(); term.newLine();
factor.call_next(next); factor.call_next(next);
}); });