From 64628d64f2d34f9a7f641d25acb04a1e1c8fdf26 Mon Sep 17 00:00:00 2001 From: Maxim Date: Wed, 15 May 2024 23:56:25 +0300 Subject: [PATCH] Fixes --- src/visualizers/turing-machine/render.tsx | 13 ++++++++----- src/visualizers/turing-machine/turing-machine.ts | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/visualizers/turing-machine/render.tsx b/src/visualizers/turing-machine/render.tsx index c5a3578..8ad3f3d 100644 --- a/src/visualizers/turing-machine/render.tsx +++ b/src/visualizers/turing-machine/render.tsx @@ -11,12 +11,10 @@ export const TuringMachineRender = ({ curState, curEvent }: SafeRenderProps(null) const graphRef = useRef(null) - if (curEvent.name === "error") { - return
- Error while running: {curEvent.error + ""} -
- } useEffect(() => { + if (graphRef.current === null) { + return + } cy.current = cytoscape({ container: graphRef.current, elements: [], @@ -125,6 +123,11 @@ export const TuringMachineRender = ({ curState, curEvent }: SafeRenderProps + Error while running: {curEvent.error + ""} + + } return
{curState.machineState.description}
diff --git a/src/visualizers/turing-machine/turing-machine.ts b/src/visualizers/turing-machine/turing-machine.ts index 82215f3..363bca4 100644 --- a/src/visualizers/turing-machine/turing-machine.ts +++ b/src/visualizers/turing-machine/turing-machine.ts @@ -131,7 +131,7 @@ export const turingMachine = async (program: Readonly, startTape: Readon for(const rule of parsed.rules) { if (state.state === rule.curState && tapeCopy.get(state.curPosition) === rule.curTape) { if (matchingRule !== null) { - throw new Error("Two rules match this state.") + throw new Error(`Two rules match state ${state.state} by symbol ${rule.curTape}: ${matchingRule} and ${rule}.`) } matchingRule = rule }