error 001 expected token but found string

Самые известные баги стандартного компилятора «Pawno» и их исправление.

return «Some string»;

Проблема
Возвращая строки напрямую компилятор падает ( краш ).

Решение
Создайте для вашей строки массив, далее возвратите её ( не рекомендуется возвращать большие строки ).

static const
some_text[] = «Some String»;

string = (a == 5) ? «это пять» : «это не пять»;

Проблема
Строки конкатенируются (объединяются, соединяются) компилятором в одну, например это будет скомпилировано в одну строку «Hello World»:

string = «Hello» » » «World»;

Однако компилятор на засчитывает «:» как часть тернарного оператора и компилятор засчитывает это за ошибку скриптера. Обычно в таких случаях ( а обычно это так и есть ) появляется вот такая ошибка:

errors.pwn(11) : error 001: expected token: «-string end-«, but found «-identifier-»
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.

Решение
Чтобы это исправить, просто заключите строки в круглые скобки, хочу заметить, что на работоспособность кода это никак не влияет.

string = (a == 5) ? («это пять») : («это не пять»);

new
gGlobalVariable = SomeFunction();

Проблема
Вызывая функцию для инициализации глобальной переменной компилятор падает ( краш ).

Решение
Вызовите функцию для инициализации переменной в «OnGameModeInit», «OnFilterScriptInit», или «main»:

public OnGameModeInit()

Проблема
Максимальная длина строки в компиляторе 512 символов ( считая с завершающим символом ‘’ ).

Решение
Сократить текст со строкой. Обычно люди делают это так:

format(str, sizeof(str),
«Очень длинная строка»,
other,
parameters);

Это разделяет вызов функции на 4 строки, делая её короче. Однако это решение далеко не хорошее. Даже иногда может откуда не возьмись возникнуть падения компилятора ( краш ).

stock SomeFunction()
Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий