LUA - вспомогательный язык программирования, созданный в 1994 и используемый совместно с другими языками высокого уровня, чаще всего С/С++. В целом язык относится к скриптовым языкам класса Perl, Tcl, Ruby, Forth, Python, но имеет ряд принципиальных отличий - расширяемость, в том числе собственных структур языка, относительная простота синтаксиса, высокая (в большинстве тестов - самая высокая) скорость исполнения в своём классе (скриптовых языков), широкая портируемость на большинство известных платформ, ОС и средств разработки, при этом изменения кода минимальны.
Код LUA выглядит примерно так: ( пример функции расчета факториала для введенного с консоли числа )
Код:
function factorial (n)
if n == 0 then return 1
else return n*factorial(n-1) end
end
print "enter a number:"
a = read("*number")
print(factorial(a))
Зарезервированных идентификаторов языка всего 19:
Код:
and break do else elseif
end for function if in
local nil not or repeat
return then until while
ещё одна интересная особенность языка - таблицы со свободными типами данных и их ключей:
Код:
a = {}
k = "x"
a[k] = 10 -- new field, with key="x" and value=10
a[20] = "great" -- new field, with key=20 and value="great"
print(a["x"]) --> 10
k = 20
print(a[k]) --> "great"
a["x"] = a["x"]+1 -- increments field "x"
print(a["x"]) --> 11
Текст создан при использовании книги Roberto Ierusalimschy - Programming in Lua, примеры взяты оттуда.
Теперь по использованию LUA при экпорте данных из LO (по материалам форума и переписки с ED. Валерий Блажнов, поправьте меня если ошибаюсь):
ED сoздаёт программу-сервер, которая по закрытому протоколу принимает данные из самой игры. Сама программа-сервер будет допускать стандартное сетевое подключение со стороны, для выдачи этих данных программе-клиенту пользователя. При этом настраивать формат выдачи и состав данных можно будет скриптами LUA, которые будет принимать программа-сервер.
Остаётся дождаться более детального описания всего этого механизма и примеров использования.