Универсальный язык программирования

На моём движке есть возможность в текстовом файле писать игру на языке, отличном от lua, но который при запуске движка анализируется и создаётся на его основе программа на языке lua. Преобразователь там простейший, но у меня возникла идея создания универсального языка, причём анализатор был бы похож примерно на парсерный адвентюрный. Суть идеи такова: пишется программа такими командами, как:

cls, очистить экран, очистка
print, вывести сообщение, pln, вывод, message
if ... then ... else...end
или
если...то...иначе...конец

и парсерный анализатор эти команды преобразовывает в команды, понимаемые lua интерпретатором. Я понимаю, что писать такие программы будет гораздо дольше, но если использовать сокращенные, то одинаково, просто не привычно. Но даже если вы где-то напишете if .. то.. иначе..end, то никакой ошибки при этом не возникнет, ведь адвентюры синонимы воспринимают одинаково, а IF и ЕСЛИ это и есть синонимы разных языков программирования.
Получается, что можно будет писать так:

if a~= b then print c
else print d
end

и так:
if a not eq b then pln c
else pln d
end

и так:
если a не равно b то вывести c
иначе вывести d
конец

и даже так:
если a <> b then print c
иначе pln d
end

Мне кажется, что такое создать можно, реально.
P.S. Я попробовал сделать простейший анализатор и выяснилось, что нужны строгие правила синтаксиса для правильной парсеровки текста: обязательные кавычки в текстовых сообщениях, законченность условий (endif), начало и конец процедур с именами процедур.

Комментарии

Популярные сообщения