fixing the printing of values
This commit is contained in:
parent
efdfa015ad
commit
4860edf678
|
@ -277,11 +277,11 @@
|
|||
var chunks = baselib.numbers.toRepeatingDecimal(baselib.numbers.numerator(n),
|
||||
baselib.numbers.denominator(n),
|
||||
{limit: 25});
|
||||
repeatingDecimalNode.appendChild(document.createTextNode(chunks[0] + '.'));
|
||||
repeatingDecimalNode.appendChild(document.createTextNode(chunks[1]));
|
||||
repeatingDecimalNode.appendChild($('<span/>').text(chunks[0] + '.').get(0));
|
||||
repeatingDecimalNode.appendChild($('<span/>').text(chunks[1]).get(0));
|
||||
if (chunks[2] === '...') {
|
||||
repeatingDecimalNode.appendChild(
|
||||
document.createTextNode(chunks[2]));
|
||||
$('<span/>').text(chunks[2]).get(0));
|
||||
} else if (chunks[2] !== '0') {
|
||||
var overlineSpan = document.createElement("span");
|
||||
overlineSpan.style.textDecoration = 'overline';
|
||||
|
@ -296,11 +296,12 @@
|
|||
var denominatorNode = document.createElement("sub");
|
||||
denominatorNode.appendChild(document.createTextNode(String(baselib.numbers.denominator(n))));
|
||||
fractionalNode.appendChild(numeratorNode);
|
||||
fractionalNode.appendChild(document.createTextNode("/"));
|
||||
fractionalNode.appendChild($('<span/>').text('/').get(0));
|
||||
fractionalNode.appendChild(denominatorNode);
|
||||
|
||||
|
||||
var numberNode = document.createElement("span");
|
||||
numberNode.className = "wescheme-number Rational";
|
||||
numberNode.appendChild(repeatingDecimalNode);
|
||||
numberNode.appendChild(fractionalNode);
|
||||
fractionalNode.style['display'] = 'none';
|
||||
|
@ -326,21 +327,25 @@
|
|||
if (baselib.numbers.isExact(n)) {
|
||||
if (baselib.numbers.isInteger(n)) {
|
||||
node = document.createElement("span");
|
||||
node.className = "wescheme-number Integer";
|
||||
node.appendChild(document.createTextNode(n.toString()));
|
||||
return node;
|
||||
} else if (baselib.numbers.isRational(n)) {
|
||||
return rationalToDomNode(n);
|
||||
} else if (baselib.numbers.isComplex(n)) {
|
||||
node = document.createElement("span");
|
||||
node.className = "wescheme-number Complex";
|
||||
node.appendChild(document.createTextNode(n.toString()));
|
||||
return node;
|
||||
} else {
|
||||
node = document.createElement("span");
|
||||
node.className = "wescheme-number";
|
||||
node.appendChild(document.createTextNode(n.toString()));
|
||||
return node;
|
||||
}
|
||||
} else {
|
||||
node = document.createElement("span");
|
||||
node.className = "wescheme-number";
|
||||
node.appendChild(document.createTextNode(n.toString()));
|
||||
return node;
|
||||
}
|
||||
|
@ -397,14 +402,14 @@
|
|||
node = document.createTextNode(toDisplayedString(x));
|
||||
}
|
||||
wrapper.appendChild(node);
|
||||
$(wrapper).addClass("string");
|
||||
$(wrapper).addClass("wescheme-string");
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
if (x === true || x === false) {
|
||||
node = document.createElement("span");
|
||||
node.appendChild(document.createTextNode(x ? "true" : "false"));
|
||||
$(node).addClass("boolean");
|
||||
$(node).addClass("wescheme-boolean");
|
||||
return node;
|
||||
}
|
||||
|
||||
|
@ -482,4 +487,4 @@
|
|||
exports.toDomNode = toDomNode;
|
||||
|
||||
exports.escapeString = escapeString;
|
||||
}(this.plt.baselib, jQuery));
|
||||
}(this.plt.baselib, jQuery));
|
||||
|
|
|
@ -179,48 +179,51 @@
|
|||
node = subelts[subelts.length - 1];
|
||||
for (i = subelts.length - 2; i >= 0; i--) {
|
||||
node = $('<span/>')
|
||||
.text("(cons ")
|
||||
.append($('<span/>').text("(").addClass('lParen'))
|
||||
.append($('<span/>').text("cons"))
|
||||
.append(" ")
|
||||
.append(subelts[i])
|
||||
.append(" ")
|
||||
.append(node)
|
||||
.append(")").get(0);
|
||||
.append($('<span/>').text(")").addClass('rParen'))
|
||||
.get(0);
|
||||
}
|
||||
return node;
|
||||
} else {
|
||||
node = document.createElement("span");
|
||||
node.appendChild(document.createTextNode("("));
|
||||
node.appendChild(document.createTextNode("list"));
|
||||
node.appendChild(document.createTextNode(" "));
|
||||
node.appendChild(subelts[0]);
|
||||
node = $("<span/>").addClass("wescheme-cons");
|
||||
node.append($('<span/>').text("(").addClass('lParen'));
|
||||
node.append($('<span/>').text("list"));
|
||||
node.append(" ");
|
||||
node.append(subelts[0]);
|
||||
for (i = 1; i < subelts.length; i++) {
|
||||
node.appendChild(document.createTextNode(" "));
|
||||
node.appendChild(subelts[i]);
|
||||
node.append(" ");
|
||||
node.append(subelts[i]);
|
||||
}
|
||||
node.appendChild(document.createTextNode(")"));
|
||||
return node;
|
||||
node.append($('<span/>').text(')').addClass('rParen'));
|
||||
return node.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
node = document.createElement('span');
|
||||
node = $('<span/>').addClass("wescheme-cons");
|
||||
if (params.getMode() === 'print') {
|
||||
node.appendChild(document.createTextNode("'"));
|
||||
node.append($("<span/>").text("'"));
|
||||
}
|
||||
node.appendChild(document.createTextNode("("));
|
||||
node.appendChild(subelts[0]);
|
||||
node.append($('<span/>').text('(').addClass('lParen'))
|
||||
node.append(subelts[0]);
|
||||
if (subelts.length > 1) {
|
||||
for (i = 1; i < subelts.length - 1; i++) {
|
||||
node.appendChild(document.createTextNode(" "));
|
||||
node.appendChild(subelts[i]);
|
||||
node.append(" ");
|
||||
node.append(subelts[i]);
|
||||
}
|
||||
if (dottedPair) {
|
||||
node.appendChild(document.createTextNode(" "));
|
||||
node.appendChild(document.createTextNode("."));
|
||||
node.append(" ");
|
||||
node.append(".");
|
||||
}
|
||||
node.appendChild(document.createTextNode(" "));
|
||||
node.appendChild(subelts[subelts.length - 1]);
|
||||
node.append(" ");
|
||||
node.append(subelts[subelts.length - 1]);
|
||||
}
|
||||
node.appendChild(document.createTextNode(")"));
|
||||
return node;
|
||||
node.append($('<span/>').text(")").addClass('rParen'));
|
||||
return node.get(0);
|
||||
};
|
||||
|
||||
|
||||
|
@ -347,4 +350,4 @@
|
|||
exports.listToArray = listToArray;
|
||||
exports.arrayToList = arrayToList;
|
||||
|
||||
}(this.plt.baselib, jQuery));
|
||||
}(this.plt.baselib, jQuery));
|
||||
|
|
|
@ -76,6 +76,14 @@
|
|||
|
||||
Str.prototype.toDisplayedString = Str.prototype.toString;
|
||||
|
||||
Str.prototype.toDomNode = function(params) {
|
||||
return $("<span/>")
|
||||
.text(escapeString(this.toString()))
|
||||
.addClass('wescheme-string')
|
||||
.get(0);
|
||||
};
|
||||
|
||||
|
||||
Str.prototype.copy = function () {
|
||||
return Str.makeInstance(this.chars.slice(0));
|
||||
};
|
||||
|
@ -145,4 +153,4 @@
|
|||
exports.isMutableString = isMutableString;
|
||||
exports.makeMutableString = Str.makeInstance;
|
||||
|
||||
}(this.plt.baselib));
|
||||
}(this.plt.baselib));
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
var Repl = function(options, afterSetup) {
|
||||
this.M = plt.runtime.currentMachine;
|
||||
this.M.params['print-mode'] = 'constructor';
|
||||
this.compilerUrl = options.compilerUrl || 'rpc.html';
|
||||
this._xhr = undefined;
|
||||
if (options.write) { this.write = options.write; }
|
||||
|
@ -89,6 +90,7 @@
|
|||
M.reset();
|
||||
// We configure the machine's output to send it to the
|
||||
// "output" DOM node.
|
||||
M.params['print-mode'] = 'constructor';
|
||||
M.params.currentDisplayer = function(MACHINE, domNode) {
|
||||
that.write(domNode);
|
||||
};
|
||||
|
|
|
@ -63,4 +63,8 @@
|
|||
;(for/hash ([(key path) module-mappings])
|
||||
; (values key (path->string (file-name-from-path path))))
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(module+ main
|
||||
(write-repl-runtime-files))
|
||||
|
|
Loading…
Reference in New Issue
Block a user