Как определить, где начинаются строки в Lua Bytecode?(используя C #) - PullRequest
0 голосов
/ 11 сентября 2010

Как определить, где начинаются строки в байт-коде Lua, используя C #?Я хотел бы перечислить все строки в файле байт-кода Lua.

Ответы [ 3 ]

2 голосов
/ 11 сентября 2010

Вам нужно разобрать файл.Особых маркеров нет.См. Исходный код в lundump.c .

0 голосов
/ 12 сентября 2010

Насколько я знаю, литеральные строки хранятся в байт-коде в том же формате, что и в исходном коде, то есть "sometexthere".Тем не менее, я предлагаю вам просто скомпилировать файл Lua без функции, кроме возвращаемой строки, и посмотреть, как он выглядит в байт-коде.

0 голосов
/ 12 сентября 2010

Не могу найти ссылку на то же утверждение на сайте LUA, но вот цитата, которую я нашел в другом месте:

нет официальной спецификации набора команд виртуальной машины Lua, естьнет необходимости в одном;единственная официальная спецификация языка Lua

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

http://luaforge.net/docman/index.php?group_id=83&selected_doc_group_id=102&language_id=1

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

...