From 7fb2cbf7d9acf60b5acb2e723378b73ff38a52aa Mon Sep 17 00:00:00 2001 From: filifa Date: Thu, 11 Dec 2025 23:49:34 -0500 Subject: [PATCH] make most of the buttons work --- main.js | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/main.js b/main.js index d06d18f..1f548ad 100644 --- a/main.js +++ b/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);