From dd3c90011ab33717e4c4175cd6804ae86582135f Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 11 Apr 2023 14:38:51 +0300 Subject: Refactor folder --- src/assembler_eval.py | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 src/assembler_eval.py (limited to 'src/assembler_eval.py') diff --git a/src/assembler_eval.py b/src/assembler_eval.py deleted file mode 100644 index 691e4eb..0000000 --- a/src/assembler_eval.py +++ /dev/null @@ -1,47 +0,0 @@ -constants: dict[str, str] = { - # Registers - "ra": "0", - "rb": "1", - "rc": "2", - "rd": "3", - "re": "4", - "rf": "5", - "rg": "6", - "rh": "7", - # ALU instructions - "al_plus": "0", - "al_minus": "1", - "al_and": "2", - "al_or": "3", - "al_xor": "4", - "al_slr": "5", - "al_sar": "6", - "al_sll": "7", - # ALU flags - "carry": "0", - "overflow": "1", - "zero": "2", - "sign": "3", -} - -Labels = dict[str, int] - -def check_size(bits: int, val: int) -> None: - if val >= 2 ** bits: - raise Exception(f"Value does not fit in {bits} bits: {val}") - -def eval_symbol(labels: Labels, c: str) -> str: - if c in labels: - return str(labels[c]) - - if c in constants: - return constants[c] - - return c - -def eval_expr(labels: Labels, expr: str, bits: int = 16) -> int: - expr = expr.lower() - expr = eval_symbol(labels, expr) - ret = eval(expr, labels.copy()) # eval as Python expr - check_size(bits, ret) - return ret -- cgit v1.3