make most of the buttons work
This commit is contained in:
parent
24145fffec
commit
7fb2cbf7d9
47
main.js
47
main.js
|
|
@ -97,6 +97,11 @@ function compute(queue, modulus) {
|
|||
const c = (a * binv) % modulus;
|
||||
stack.push(c);
|
||||
} else if (token === "^") {
|
||||
// FIXME: not always valid - consider 2^3^4 mod 7
|
||||
// also 2^(3+4)
|
||||
// solution might be to change parser
|
||||
// might also be better to just mod once at the end
|
||||
// instead of with every op
|
||||
const [a, b] = binaryOpPop(stack);
|
||||
const c = modpow(a, b, modulus);
|
||||
stack.push(c);
|
||||
|
|
@ -145,7 +150,47 @@ function calculate() {
|
|||
}
|
||||
|
||||
result.value = r;
|
||||
|
||||
}
|
||||
|
||||
let currentInput = null;
|
||||
|
||||
function setCurrentInput() {
|
||||
currentInput = this;
|
||||
}
|
||||
|
||||
function clear() {
|
||||
currentInput.value = "";
|
||||
// TODO: set current input as focused
|
||||
}
|
||||
|
||||
function keyPress(c) {
|
||||
currentInput.value += c;
|
||||
// TODO: set current input as focused
|
||||
}
|
||||
|
||||
document.querySelector("#expr").addEventListener("focus", setCurrentInput);
|
||||
document.querySelector("#modulus").addEventListener("focus", setCurrentInput);
|
||||
|
||||
document.querySelector("#zero").addEventListener("click", () => keyPress("0"));
|
||||
document.querySelector("#one").addEventListener("click", () => keyPress("1"));
|
||||
document.querySelector("#two").addEventListener("click", () => keyPress("2"));
|
||||
document.querySelector("#three").addEventListener("click", () => keyPress("3"));
|
||||
document.querySelector("#four").addEventListener("click", () => keyPress("4"));
|
||||
document.querySelector("#five").addEventListener("click", () => keyPress("5"));
|
||||
document.querySelector("#six").addEventListener("click", () => keyPress("6"));
|
||||
document.querySelector("#seven").addEventListener("click", () => keyPress("7"));
|
||||
document.querySelector("#eight").addEventListener("click", () => keyPress("8"));
|
||||
document.querySelector("#nine").addEventListener("click", () => keyPress("9"));
|
||||
|
||||
document.querySelector("#plus").addEventListener("click", () => keyPress("+"));
|
||||
document.querySelector("#minus").addEventListener("click", () => keyPress("-"));
|
||||
document.querySelector("#times").addEventListener("click", () => keyPress("*"));
|
||||
document.querySelector("#divide").addEventListener("click", () => keyPress("/"));
|
||||
|
||||
document.querySelector("#lparen").addEventListener("click", () => keyPress("("));
|
||||
document.querySelector("#rparen").addEventListener("click", () => keyPress(")"));
|
||||
|
||||
document.querySelector("#pow").addEventListener("click", () => keyPress("^"));
|
||||
|
||||
document.querySelector("#clear").addEventListener("click", clear);
|
||||
document.querySelector("#enter").addEventListener("click", calculate);
|
||||
|
|
|
|||
Loading…
Reference in New Issue