Помогите в реализации многострочного цикла

Всем привет, я разрабатываю интерпритатор для своего языка программирования. Вот код:

import re

variables = {}

def interpret(command):
try:

    # Если строка начинается с символа '#', это комментарий, и мы его пропускаем

    if command.startswith('#'):
        return

    # Переменные

    match = re.match(r'var (\w+) is (\d+)', command)
    if match:
        var_name = match.group(1)
        var_value = int(match.group(2))
        variables[var_name] = var_value
    match = re.match(r'var (\w+) is (\w+) mlp (\w+)', command)
    if match:
        var_name = match.group(1)
        var1_name = match.group(2)
        var2_name = match.group(3)
        if var1_name in variables and var2_name in variables:
            variables[var_name] = variables[var1_name] * variables[var2_name]
        else:
            print("Один из компонентов функции varmpl не определён")
    match = re.match(r'var (\w+) is (\w+) sum (\d+)', command)
    if match:
        var_name = match.group(1)
        var1_name = match.group(2)
        var2_name = match.group(3)
        if var1_name in variables and var2_name in variables:
            variables[var_name] = variables[var1_name] + variables[var2_name]
    match = re.match(r'logvar (\w+)', command)
    if match:
        var_name = match.group(1)
        if var_name in variables:
            print(variables[var_name])
        else:
            print(f'Переменная {var_name} не определена')

    # Логи (вывод на экран)

    match = re.match(r'log "(.*)"', command)
    if match:
        value = match.group(1)
        print(value)
    match = re.match(r'log (\d+) sum (\d+)', command)
    if match:
        num1 = int(match.group(1))
        num2 = int(match.group(2))
        print(num1 + num2)
    match = re.match(r'log (\d+) mlp (\d+)', command)
    if match:
        num1 = int(match.group(1))
        num2 = int(match.group(2))
        print(num1 * num2)

    # Многострочный луп
    match = re.match(r'loop (\d+) {(.*?)}', command, re.DOTALL)
    if match:
        n = int(match.group(1))
        commands = [cmd.strip()]
        for a in range(n):
            interpret(commands)
    # Цикл
    match = re.match(r'loop (\d+) log "(.*)"', command)
    if match:
        n = int(match.group(1))
        txt = match.group(2)
        a = 0
        while a < n:
            print(txt)
            a+=1

    #Ифы

    match = re.match(r'if (\w+) eq (\d+) then log "(.*)"', command)
    if match:
        var_name = match.group(1)
        var_value = int(match.group(2))
        message = match.group(3)
        if variables.get(var_name) == var_value:
            print(message)
    match = re.match(r'if (\w+) less (\d+) then log "(.*)"', command)
    if match:
        var_name = match.group(1)
        var_value = int(match.group(2))
        message = match.group(3)
        if variables.get(var_name) <= var_value-1:
            print(message)
    match = re.match(r'if (\w+) over (\d+) then log "(.*)"', command)
    if match:
        var_name = match.group(1)
        var_value = int(match.group(2))
        message = match.group(3)
        if variables.get(var_name) >= var_value+1:
            print(message)
    match = re.match(r'if (\w+) btw (\d+) and (\d+) then log "(.*)"', command)
    if match:
        var_name = match.group(1)
        var_value = int(match.group(2))
        var_value1 = int(match.group(3))
        message = match.group(4)
        if variables.get(var_name) >= var_value+1 and variables.get(var_name) <= var_value1-1:
            print(message)
except Exception as e:
    print(f'Произошла ошибка: {str(e)}')

def interpret_file(filename):
try:
with open(filename, ‘r’) as file:
for line in file:
interpret(line.strip())
except FileNotFoundError:
print(‘Файл не найден’)
except Exception as e:
print(f’Произошла ошибка при чтении файла: {str(e)}’)

while True:
intF = input(’> Выберите файл для компиляции > ')
interpret_file(intF)

Мне нужно реализовать многострочный цикл (на несколько команд). ПОМОГИТЕ ПОЖАЛУЙСТА

Прежде всего, определим количество повторений, которое мы хотим выполнить в цикле. Для примера, предположим, что нам нужно выполнить 5 повторений.

Затем определим блок команд, который мы хотим выполнить в каждой итерации цикла. Пусть это будет следующий блок команд:

  1. Вывести на экран значение переменной
  2. Увеличить значение переменной на 1.
  3. Выполнить сложение двух чисел и сохранить результат в новой переменной.

Теперь можно приступить к написанию кода:
ваш код выше с изменениями с учетом переменной

Затем в каждой итерации цикла мы выводим значение переменной - x -где x ваше значение переменной, увеличиваем его на 1 и выполняем сложение чисел.

Таким образом, мы создали многострочный цикл, в котором выполнение блока команд повторяется указанное количество раз. Вы можете адаптировать этот пример под свои нужды, добавляя или изменяя команды в блоке.

В данном случае, цикл будет повторяться, пока переменная x не превысит значение 10. На каждой итерации цикла будет выводиться значение переменной x , а затем **** будет увеличиваться на 1