|
Re: Декомпилятор скриптов Готики
Всем:
Да, теперь чтобы скомпировать скрипты нужно приложить немало усилий по устранению ошибок и возможных ошибок. Компилятор теперь проверяет соответствие всех типов данных, возможности использования выражений в нужных местах, правильность объявлений функций и возвращаемых значений. Даже в оригинальных скриптах (мягко говоря) наблюдается бардак, в одних местах написано строго, как и должно быть, в других допущено множество несоответствий, которые в определенных случаях могут привести к ошибке. Давайте рассматривать в первую очередь конкретные ошибки: 1. Possible error, function should return value - данное сообщение возникает в нескольких случаях когда объявленная функция должна возвращать значение, а этого не происходит. Причины может быть две: первая, если функция действительно должна возвращать значение, то при выходе из функции должна быть запись - return ххх; где - ххх возвращаемое значение. Во многих файлах скриптов это не соблюдается. Вторая причина - функция не должна ничего возвращать, а в объявлении функции указан возвращаемый тип, в этом случае вместо возвращаемого типа в объявлении функции необходимо указать тип void. Таких ошибок в скриптах меньше, но они имеются. Если исправить все возможные ошибки, то компиляция проходит успешно, дальнейшие процессы декомпиляции и компиляции проходят вообще без ошибок и результаты всех компиляций дают одинаковые правильные результаты. Если у кого-либо возникают трудности в исправлении каких либо конкретных ошибок приводите строчку сообщения об ошибке и строки из файла скриптов с ошибкой. Сообщение, рассмотренное выше указывает всегда на последнюю строку проверенной функции.
ЗЫ: Обо всех нововведениях сразу сказать трудно, задавайте вопросы по устранению ошибок и так разберем все новые возможности компилятора, а заодно научимся правильно соблюдать синтаксис скриптов при их написании. Любые вольности могут привести в некоторых случаях к ошибкам. Все компиляторы высокоуровневых языков осуществляют полную проверку систаксиса. ;)
|