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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

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

Статус
В этой теме нельзя размещать новые ответы.

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.103
Благодарности
6.070
Баллы
1.565
Руководство по ошибкам и способам их устранения для программы 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.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу