From 4814c357eb87e271f5880446b371683a5347a9be Mon Sep 17 00:00:00 2001 From: Epagris Date: Tue, 14 Oct 2025 14:30:45 +0200 Subject: [PATCH] - ... --- class/LogicFunction.php | 14 ++++++++++---- class/Tasks/SingleChoiceTask.php | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/class/LogicFunction.php b/class/LogicFunction.php index b48710a..9e663b8 100644 --- a/class/LogicFunction.php +++ b/class/LogicFunction.php @@ -15,6 +15,11 @@ class LogicFunction implements JsonSerializable return str_replace(["/", "!", "*", "+"], ["~", "~", "&", "|"], $expression); } + public static function adaptToEL(string $expression): string + { + return str_replace(["~"], [" not "], $expression); + } + public static function collectVariables(string $expression): array { preg_match_all("/\w/", $expression, $variables); @@ -41,7 +46,7 @@ class LogicFunction implements JsonSerializable $vars[$var] = 0; } - $expression = $this->getExpression("verilog_logic"); + $expression = self::adaptToEL($this->getExpression("verilog_logic")); // printf("Cooked: %s\n", $cooked_form); $tt = []; @@ -171,7 +176,7 @@ class LogicFunction implements JsonSerializable public function isValid(): bool { try { - self::$EXP_LANG->lint($this->expression, $this->input_vars); + self::$EXP_LANG->lint(self::adaptToEL($this->expression), $this->input_vars); } catch (Exception $e) { return false; } @@ -248,9 +253,10 @@ class LogicFunction implements JsonSerializable return join(" | ", $minterms); } - public function drawNetwork(string $outvar = "f"): string { + public function drawNetwork(string $outvar = "f"): string + { $expr = str_replace(["^"], [" xor "], $this->getExpression()); - return PythonUtils::execPy("draw_logic_network.py", [ $expr, $outvar ]); + return PythonUtils::execPy("draw_logic_network.py", [$expr, $outvar]); } } diff --git a/class/Tasks/SingleChoiceTask.php b/class/Tasks/SingleChoiceTask.php index c915b9d..bfc4488 100644 --- a/class/Tasks/SingleChoiceTask.php +++ b/class/Tasks/SingleChoiceTask.php @@ -27,6 +27,10 @@ class SingleChoiceTask extends PicturedTask $this->answers[] = $answer; } + function clearAnswers(): void { + $this->answers = []; + } + function getAnswers(): array { return $this->answers;