Показать сообщение отдельно
Старый 19.03.2005, 13:44   #421
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: Декомпилятор скриптов Готики

Всем:

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

ЗЫ: Обо всех нововведениях сразу сказать трудно, задавайте вопросы по устранению ошибок и так разберем все новые возможности компилятора, а заодно научимся правильно соблюдать синтаксис скриптов при их написании. Любые вольности могут привести в некоторых случаях к ошибкам. Все компиляторы высокоуровневых языков осуществляют полную проверку систаксиса.  ;)
Ответить с цитированием