web: Add 'base' command to REPL

This commit is contained in:
PaddiM8 2023-01-24 19:48:40 +01:00
parent 021eb8ffdf
commit 94571bb850

View File

@ -46,6 +46,7 @@
let inputElement: HTMLTextAreaElement; let inputElement: HTMLTextAreaElement;
let highlightedTextElement: HTMLElement; let highlightedTextElement: HTMLElement;
let ignoreNextInput = false; let ignoreNextInput = false;
let currentBase = 10;
enum HighlightType { enum HighlightType {
Output, Output,
@ -100,6 +101,7 @@
try { try {
if (!kalkContext) kalkContext = new kalk.Context(); if (!kalkContext) kalkContext = new kalk.Context();
const result = kalkContext.evaluate(input.replaceAll(/\s+/g, " ")); const result = kalkContext.evaluate(input.replaceAll(/\s+/g, " "));
result?.setRadix(currentBase);
return [result?.toPrettyString(), true]; return [result?.toPrettyString(), true];
} catch (err) { } catch (err) {
@ -153,12 +155,14 @@
output = `<a style="color: ${linkcolor}" output = `<a style="color: ${linkcolor}"
href="https://kalker.xyz/#usage" href="https://kalker.xyz/#usage"
target="blank">Link to usage guide</a>`; target="blank">Link to usage guide</a>`;
} else if (/base\s\d\d?/.test(input.trim())) {
currentBase = +input.trim().slice(5);
} else if (input.trim() == "clear") { } else if (input.trim() == "clear") {
outputLines = []; outputLines = [];
setText(""); setText("");
return; return;
} else { } else {
const [result, success] = calculate(kalk, input); let [result, success] = calculate(kalk, input);
output = success output = success
? highlight(result, HighlightType.Output)[0] ? highlight(result, HighlightType.Output)[0]