Прочитайте данные перед выполнением файла lua

Я хочу прочитать таблицу внутри файла Lua перед его выполнением. Есть ли способ сделать это с loadfile, Он возвращает только функцию, и я не могу прочитать, что находится внутри (что объявлено, но не выполнено).

Другой вариант, который я попробовал, это проверить, изменилась ли среда, но опять же я не смог прочитать внутри функции, возвращаемой loadfile(),

Есть ли способ сделать это, не открывая файл в виде текста и поиска в таблице?

Вот пример таблицы, которую я пытаюсь получить:

--file to be loaded  
local library = require("library")  --random requires...  
table = { author = "myself", dependencies = "library > 1.0"} --table to get before execution

1 ответ

Решение

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

Однако вы можете прочитать файл как текст и попытаться извлечь нужную информацию, используя сопоставление с образцом. Это не будет надежно, но, вероятно, в большинстве случаев будет работать, если файлы будут записаны одинаково.

Другие вопросы по тегам