Сообщения об ошибках периода компиляции
Среда Турбо Паскаля дает исчерпывающую информацию о характере и месте обнаруженной компилятором ошибки. При обнаружении ошибки среда автоматически загружает в окно редактора исходный файл и помещает курсор около того места, где в исходном тексте обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение. После нажатия на любую клавишу (кроме F1) верхняя строка восстанавливает свой первоначальный вид и среда переходит к режиму редактирования.
Если после появления сообщения об ошибке нажать F1, на экране появится окно справочной службы с детальной информацией об ошибке и рекомендациями по ее устранению. Некоторые ошибки в исходном тексте обнаруживаются не сразу, а в ходе продолжающегося контекстного разбора. Например, несоответствие типов в операторе присваивания не может быть обнаружено до тех пор, пока не будет вычислено целиком выражение в правой части этого оператора. В таких случаях ищите ошибку слева от курсора или в предыдущей строке текста.
Ниже приводятся сообщения об ошибках в том виде, в каком они появляются в верхней строке редактора, а также перевод сообщений справочной службы.
На экране после кода ошибки (цифры) нет точки, поэтому ее нет и в соответствующем месте текста.
1 Out of memory (Выход за границы памяти).
Компилятору не хватает памяти. Имеется ряд возможных решений этой проблемы:
- если в опции COMPILE/DESTINATION установлено значение MEMORY, замените эту опцию на DISK;
- если в опции OPTIONS/LINKER/LINK BUFFER установлено значение MEMORY, замените эту опцию т DISK;
- если Вы используете резидентные обслуживающие программы, такие как SIDEKICK, NORTON, удалите их из памяти;
- если Вы используете интегрированную среду TVRBO.EXE, то попробуйте воспользоваться компилятором ТРС.ЕХЕ – он занимает меньше памяти.
Если ни одна из рекомендаций не помогает, то, возможно, Ваша программа просто слишком велика, чтобы компилировать ее в таком объеме памяти. В этом случае Вы должны разбить ее на два или более модулей.
2 Identifier expected (Не указан идентификатор).
В этом месте должен находиться идентификатор. Возможно, Вы пытаетесь использовать в качестве идентификатора зарезервированное слово.
3 Unknown identifier (Неизвестный идентификатор).
Этот идентификатор не был описан.
4 Duplicate identifier (Двойной идентификатор).
Попытка дважды описать один и тот же идентификатор.
5 Syntax error (Синтаксическая ошибка).
В исходном тексте найден недопустимый символ. Возможно, Вы забыли заключить в апострофы строковую константу.
6 Error in real constant (Ошибка в вещественной константе).
Синтаксис констант вещественного типа описан в гл.4.
7 Error in integer constant (Ошибка в целой константе).
Синтаксис констант целого типа описан в гл.4. Учтите, что после целых действительных чисел, превышающих диапазон представления целых чисел (-2147483648..+2147483647), должны ставиться точка и ноль, например, 12345678912.0.
8 String constant exceeds line (Строковая константа превышает допустимые размеры).
Вероятно, Вы забыли поставить апостроф в конце строковой константы.
9 Too many nested files (Слишком много вложенных файлов).
Компилятор допускает не более пяти уровней вложенности включаемых файлов (т.е. в исходном файле есть ссылка на включаемый файл, в котором есть ссылка на еще один включаемый файл и т.д.).