» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Noid компилер

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Как в Noid компилерe в файле decompile сделать так, что бы при декомпилировании скрипта, в нем не создавались скобки () если аргументов нет и как сделать так что бы в начале названия ноды неставил @.

Отправлено: 11:58 - 13 Фев., 2008
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

Во-первых, я бы тебе крайне сильно не рекомендовал вообще пользоваться декомпилятором Noid'а. Тем более для декомпиляции скриптов первого Fallout, опкоды которого он понимает НЕВЕРНО!!! А с опкодами второго Fallout имеет проблемы с типами, а то и наличием возвращаемых значений. Очень не хотелось бы в моддерском будущем встретить результат подобной декомпиляции. Зачем он тебе вообще понадобился при нормально отлаженном int2ssl?

А во-вторых, для академического интереса вот тебе список необходимых правок. Только имей в виду, что результат работы этого кода уже ничто не скомпилирует в скрипт.

Для скобок заменить одно вхождение строки
Код:
str = "#{name}(#{args.join(", ")})"

на последовательность
Код:
      str1 = "(#{args.join(", ")})" 
     if str1 == "()"
       str = "#{name}"
     else
       str = "#{name}" + str1
     end


И заменить ДВА вхождения строки
Код:
      str += "()"

на
Код:
#      str += "()"




Для "@"  заменить одно вхождение строки
Код:
        args.push("@" + node.procedure_name)

на строку
Код:
        args.push(node.procedure_name)



P.S. Но ещё раз повторю: если тебе просто нужен инструмент для декомпиляции, не майся дурью и оставь Noid'а в покое.

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 20:16 - 13 Фев., 2008 | ИСПРАВЛЕНО: Alchemist - 20:18 - 13 Фев., 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Alchemist

Спасибо сейчас буду мучить декомпилятор

Все скрипты от первого уже декомпилированы и отлажены но мне не нравится эти end их там уж очень много и чтение скрипта усложняется а noid не декомпилирует эти лишние endы. Вот по этому я переименовал все функции noidа на бисовские и декомпилирую скрипт уже становится читабельнее.

Вот если бы int2ssl не декомпилировал лишние end было бы здорово. (это сложно сделать?)

Отправлено: 21:02 - 13 Фев., 2008 | ИСПРАВЛЕНО: Jordan 63 - 21:36 - 13 Фев., 2008
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

"Лишние" begin/end прописаны в стандарте языка. Открой интерплейевские исходники и почитай. Noid просто изобретал собственный синтаксис. Основые достоинства, которого ты, к слову, применив мои рекомендации просто выбросишь. Но главное не это, то что часть опкодов в твоём декомпиляте будет неверно интерпретирована. И ты всё равно полезешь смотреть результат работы int2ssl. Поверь человеку, написавшему транслятор синтаксиса Noid'а в синтаксис Iply.

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 22:00 - 13 Фев., 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Alchemist

Цитата:
Поверь человеку, написавшему транслятор синтаксиса Noid'а в синтаксис Iply.


Верю, ладно не буду фигней заниматься. Хоть мод быстрей доделаю. Хотя я пробывал в измененном Noide декомпилировать скрипты а потом компилировать в sslc все компилилось и работало.

Отправлено: 22:10 - 13 Фев., 2008
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com