Текст запроса:
Напиши HTML+JavaScript код веб-страницы с полем ввода кода (textarea), полем вывода (textarea) и кнопкой RUN.
Реализуй интерпретатор криптографического языка программирования Oflameron со следующими правилами:
Переменные и константы:
h, q, l, k - числовые переменные, начальное значение 0
Константы: a=0, b=1, c=3, d=5, e=7
Обработка чисел:
Если число >127: while(num > 127) num -= 127
Если число <0: num = Math.abs(num)
Диапазон h: 0-127 (применять указанные выше преобразования)
Операторы:
fXY - умножение: h = X * Y (k+3)
gXY - сложение: h = X + Y (k+3)
iXY - вычитание по модулю: h = Math.abs(X - Y) (k+3)
Где X,Y - a,b,c,d,e,h
lX - записать в l код символа из позиции k+X, где X - a,b,c,d,e,h (k+2)
mX - вывести символ с кодом X в поле вывода, если код 32-126 (печатные) (k+2)
nq - заменить символ в позиции k+q на символ с кодом h (k+2)
Если k+q вне диапазона строки - пропустить
Общие правила:
Исполнение слева направо
k только увеличивается
При ошибке: k+1, пропустить символ
Самомодификация кода через nq
При RUN: сброс состояния, исполнение с начала
Реализуй логику обработки ошибок: если ожидается операнд, но символ не является допустимым (не a,b,c,d,e,h) - это ошибка, k+1.
Пример поведения:
fbc > h=3, k+3
ghc > h = h + 3, k+3
lb > l = код_символа_из_позиции(k+1), k+2
mh > вывод символа с кодом h, k+2
nq > code[k+q] = символ_с_кодом_h, k+2
Интерпретатор оформлен как веб страница для удобства тестирования и разработки программ.
Исчерпывающей обработки ошибок нет. Это усложняет взлом кода.
© by Valery Shmelev
https://t.me/llmsource/391
https://llmproject.livejournal.com/15382.html
https://telegra.ph/Web-Site-07-03
Online Processing https://chat.deepseek.com/share/nmdod80x5aplsi8zx5