1. Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, сыграть в увлекательные ФРПГ, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
    Скрыть объявление
  2. Форум аддона "Возвращение" 2.0:
    — Обсудить игру, почитать о прохождениях и/или разрешить свои вопросы по игре вы можете в одной из тем одноименного форума. Посетить...
    — Прочитать историю изменения и/или скачать последнюю версию аддона "Возвращение", вы можете на страницах наших ресурсов. Скачать...
    Скрыть объявление

Важно Руководство по ошибкам Gothic Sourcer

Тема в разделе "Скриптинг", создана пользователем MEG@VOLT, 18 сен 2013.

Статус темы:
Закрыта.
  1. MEG@VOLT

    MEG@VOLT ★★★★★★★
    Модератор

    Регистрация:
    24 мар 2006
    Сообщения:
    1.733
    Благодарности:
    761
    Баллы:
    290
    Руководство по ошибкам и способам их устранения для программы Gothic Sourcer версий 3.1х (модостроение для Готики).
    Типы ошибок, обрабатываемых компилятором, и способы их устранения.
    Преобразование скриптов в *.dat файл состоит из двух процессов: компиляции и линковки.
    Критические ошибки вызывают останов процесса компиляции, без их устранения дальнейшая компиляция невозможна.
    1. Found no matching File: – отсутствует компилируемый файл (группа файлов), указанный(ая) в файле *.src.
    2. Syntax error: - указанное выражение не соответствует требуемому синтаксису скриптов.
    3. Unexpected End of File. – неожиданный конец файла (обрабатываемое выражение синтаксически не завершено).
    4. Expected - внутри выражения в соответствии с правилами синтаксиса отсутствует указанное подвыражение.
    5. Assignment: Left operand is not a lvalue – возникает при попытке присвоить значение величине, которой оно не может быть присвоено (например: 500 = ххх).
    6. Unknown identifier: - неизвестное имя переменной. Возникает когда переменная используется в выражении до ее объявления. Примечание: ошибка довольно сложна для локализации, существует несколько правил деклараций переменных: декларация функции или VAR переменной должна предшествовать первому вызову функции или VAR переменной; класс должен быть декларирован до его использования в любом виде; lvalue в выражениях присвоения должно быть декларировано до присвоения – эти виды ошибок обрабатываются компилятором на стадии компиляции. Имя инстанции (INSTANCE) или константы (CONST) можно использовать в выражениях до их деклараций, но в скриптах эти имена должны быть обязательно декларированы, иначе возникнет ошибка этого типа на стадии линковки.
    7. Expected an Integer-Value: - возникает при нахождении внутри целочисленного значения недопустимого символа (например: 256х)
    8. Redefined identifier: - повторная декларация переменной (данное имя задекларировано в скриптах более одного раза).
    9. Syntax Error. First letter is a digit in prototype (instance) name. - имя класса, прототипа или инстанции не может начинаться с цифры.
    10. Not a valid class or prototype name: - возникает при декларации прототипа или инстанции, когда базовый класс или прототип не декларирован.
    11. Undefined function: - встретился вызов функция с именем name раньше её декларации.
    12. Func does not return a - выполнен вызов функции в выражении присвоения, но функция имеет тип void или тип, возвращаемый функцией, не соответствует типу lvalue.
    13. Unexpected 'return' – выражение return встретилось не в функции.
    14. Wrong type: - выдается только линковщиком при несоответствии присваиваемых или сравниваемых типов. Примечание: В версии компилятора 2.0 эта ошибка выявляется уже на стадии компиляции и более подробно будет рассмотрена ниже.
    Обычные ошибки не приводят к останову процесса компиляции. Введены начиная с версии 2.0.
    1. undeclared name (function) – аналогично критическому сообщению №6, но возникает на стадии компиляции.
    2. Wrong type in '!' expression – неверный тип отрицаемого выражения (может быть только INT).
    3. Cannot assignment in 'if' expression – внутри if выражения встретилась операция присвоения (недопустимо).
    4. Comparison is possible only in 'if' expression – операция сравнения встречена не в if выражении (недопустимо).
    5. Function in 'if' expression should return type INT – функция внутри if выражения может иметь возвращаемый тип только INT.
    6. Unexpected return – неожиданный return. Особенностью скриптов является то, что любое выражение внутри функции, если оно записано одиноко (не в операциях сравнения или присваивания) заносится в стек и может быть возвращено при выходке их функции (для этого необязательно указывать слово return), но это является потенциально скрытой ошибкой, подлежащей устранению.
    7. Index = out of bounds array . – индекс массива с именем name выходит за объявленную границу.
    8. Function : Argument : » Cannot convert from type to - значение переменной типа type1, используемое в качестве аргумента number функции с именем name типа нельзя преобразовать к типу аргумента type2. Необходимо использовать одинаковые типы.
    9. Cannot convert from type to - значение переменной типа type1 нельзя преобразовать к типу переменной type2. Необходимо использовать одинаковые типы. Примечание: Есть исключение из правила, оно относится к переопределенным типам. Для понимания этих типов необходимо написать отдельную статью. Это же относится и к сообщению с ошибкой №8 (см. выше).
    10. Possible error, function should return value – функция объявлена с возвращаемым типом, но при выходе из неё ничего не возвращается. Фактические ошибки.
    Внимания не влияют на процесс компиляции и линковки. Введены начиная с версии 2.0.
    1. Possible error, function should return value – функция объявлена с возвращаемым типом, но при выходе из неё ничего не возвращается. Возвращаемые функцией значения скрыты (неявны), возможна в дальнейшем потенциальная ошибка.
    2. Argument should be uppercase! – строковый аргумент функции должен содержать только заглавные буквы.
    Автор статьи: Vam.
     
    Валера и Alliat поблагодарили.
Статус темы:
Закрыта.

Поделиться этой страницей