diff --git a/__pycache__/Iinstruction.cpython-39.pyc b/__pycache__/Iinstruction.cpython-39.pyc index 9cf077e..aa4a984 100644 Binary files a/__pycache__/Iinstruction.cpython-39.pyc and b/__pycache__/Iinstruction.cpython-39.pyc differ diff --git a/interpret_source.py b/interpret_source.py index 577a2b1..86ae496 100644 --- a/interpret_source.py +++ b/interpret_source.py @@ -18,7 +18,7 @@ def load_src(filepath: str) -> List[str]: try: with open(filepath) as file: for _line in file: - line = _line.strip() + line = _line.strip().replace(' ', '') if line and not re.match(r"""^//|^#|^COMMENT|^--""", line): lines.append(line) if line.__contains__('{'): @@ -57,6 +57,15 @@ def get_instructions_in_scope(src: List[str], start_idx: int = 0) -> Tuple[List[ if src[i].__contains__("else"): #if there is an else statement, check it false_instructions, i = get_instructions_in_scope(src, i+2) outer_scope.add_instruction(if_instruction(instruction_txt, true_instructions, false_instructions)) + + elif line.startswith("do{"): + logging.debug("Found start of do-while instruction in line: %i", i) + child_instructions, i = get_instructions_in_scope(src, i+1) + end_line = src[i] + #line: }while(...); + bracket_idx = end_line.rindex(");") + instruction_txt = end_line[7: bracket_idx] + outer_scope.add_instruction(while_instruction_back(instruction_txt, child_instructions)) else: logging.debug("Found generic instruction in line: %i", i+1) diff --git a/res/input/input.java b/res/input/input.java index d65e001..bb1fec8 100644 --- a/res/input/input.java +++ b/res/input/input.java @@ -17,6 +17,11 @@ while(shouldNiet()) { niet15(); niet16(); +do{ + niet21(); + niet22(); +}while(bool23); + // drehe("links"); // while(huegelVorhanden("rechts")) // { diff --git a/res/output/Nina.png b/res/output/Nina.png index 01f6fe4..9342de5 100644 Binary files a/res/output/Nina.png and b/res/output/Nina.png differ