СООБЩЕНИЯ КОМПИЛЯТОРА ОБ ОШИБКАХ
1 | Out of memory | Выход за границы памяти | Компилятор выполняется вне допустимых границ памяти. Имеется ряд возможных решений проблемы:
§ Если в меню Options?Linker?Link Buffer, установлен параметр Memory, переключите его в значение Disk. § Возможно программа слишком велика, чтобы компилироваться в таком объеме памяти. Следует разбить ее на два или более модуля. |
2 | Identifier expected | Не указан идентификатор | В этом месте должен находиться идентификатор. |
3 | Unknown identifier | Неизвестный идентификатор | Этот идентификатор не был описан. |
4 | Duplicate identifier | Повторный идентификатор | Идентификатор уже представляет имя программы, модуля, константы, переменной, типа, процедуры и функции, описанных в текущем блоке. |
5 | Syntax error | Синтаксическая ошибка | В исходном тексте найден неверный символ. |
6 | Error in real constant | Ошибка в вещественной константе | |
7 | Error in integer constant | Ошибка в целой константе | |
8 | String constant exceeds line | Строковая константа превышает размеры строки | Вероятно, отсутствует кавычка в конце строковой константы. |
10 | Unexpected end of file | Неожиданный конец файла | Причины:
§ несоответствующее количество begin и end (не забудьте, что оператор case также заканчивается словом end); § включаемый файл заканчивается в середине раздела операторов. Каждый раздел операторов должен целиком помещаться в одном файле; § незаконченный комментарий. |
11 | Line too long | Строка слишком длинная | Максимальная длина строки может равняться 126 символам. Возможно, отсутствует апостроф в конце строковой константы. |
12 | Type identifier expected | Нужен идентификатор типа | Не указан типа идентификатора, как это должно быть. |
13 | Too many open files | Слишком много открытых файлов | Файл CONFIG.SYS не содержит параметра FILES=xx или этот параметр указывает слишком много файлов. Следует увеличить число файлов. |
14 | Invalid file name | Неверное имя файла | Имя файла неверно или указывает несуществующий путь. |
15 | File not found | Файл не найден | Файл не может быть найден ни в текущем каталоге, ни в каком-либо другом исследуемом каталоге, предназначенном для этого типа файлов. |
16 | Disk full | Диск заполнен | Удалите некоторые файлы или воспользуйтесь новым диском (если речь идет о сменном носителе). |
17 | Invalid compiler directive | Неправильная директива компилятора | Возможно, неверная буква в директиве компилятора, один из параметров директивы компилятора неверный или используется глобальная директива компилятора, когда компиляция тела программы уже началась. |
18 | Too many files | Слишком много файлов | В компиляции программы или программного модуля участвует слишком много файлов. Следует объединить включаемые файлы или сделать короче имена файлов. |
19 | Undefined type in pointer definition | Неопределенный тип в определении ссылки | Была осуществлена ссылка на тип в приведенном ранее описании указателя, но этот тип не был описан. |
20 | Variable identifier expected | Нужен идентификатор переменной | Идентификатор не описывает переменную, как это должно быть. |
21 | Error in type | Ошибка в определении типа | Определение типа не может начинаться с этого символа. |
22 | Structure too large | Слишком большая структура | Максимально допустимый размер структурного типа 65 535 байт. |
23 | Set base type of range | Базовый тип множества выходит за допустимые границы | Базовый тип множества должен представлять собой отрезок типа с границами в пределах от 0 до 255 или перечислимого типа, допускающим не более чем 256 значений. |
24 | File components may not be files or objects | Элементы файла не могут быть файлами или объектами | Тип компоненты файлового типа не может быть объектным или файловым типом и не может быть структурным типом с компонентами файлового или объектного типа: конструкции file of file или file of object не допускаются. |
25 | Invalid string length | Неверная длина строки | Длина строки должна находиться в диапазоне от 1 до 255. |
26 | Type mismatch | Несоответствие типов | Причины:
§ несовместимые типы переменной и выражения в операторе присваивания; § несовместимые типы фактического и формального параметров в обращении к процедуре или функции; § тип выражения, несовместимый с типом индекса при индексировании массива; § несовместимые типы операндов в выражении. |
27 | Invalid subrange base type | Неправильный базовый тип интервального типа | Допустимыми являются все порядковые типы. |
28 | Lower bound greater than upper bound | Нижняя граница больше верхней | В описании диапазона нижняя граница больше, чем верхняя. |
29 | Ordinal type expected | Нужен порядковый тип | Вещественные, строковые, структурные и ссылочные типы в данном случае не допускаются. |
30 | Integer constant expected | Нужна целая константа | |
31 | Constant expected | Нужна константа | |
32 | Integer or real constant expected | Нужна целая или вещественная константа | |
33 | Pointer type identifier expected | Нужен идентификатор типа указателя | Данный идентификатор не обозначает тип указателя, как это требуется. |
34 | Invalid function result type | Неправильный тип результата функции | Правильными типами результата функции являются все простые типы, а также строковые и ссылочные типы. |
35 | Label identifier expected | Нужен идентификатор метки | Метка не обозначена с помощью идентификатора, как это требуется. |
36 | BEGIN expected | Нужен BEGIN | |
37 | END expected | Нужен END | Следует проверить соответствие ключевых слов BEGIN и END. |
38 | Integer expression expected | Нужно выражение типа INTEGER | Предыдущее выражение должно иметь целочисленный тип INTEGER |
39 | Ordinal expression expected | Нужно выражение порядкового типа | Предшествующее выражение должно иметь порядковый тип. |
40 | Boolean expression expected | Нужно выражение типа BOOLEAN | Предшествующее выражение должно иметь тип BOOLEAN |
41 | Operand types do not math operator | Типы операндов не соответствуют оператору | Данный оператор не может быть применен к операндам этого типа, например, нельзя ‘A’ разделить на ‘2’. |
42 | Error in expression | Ошибка в выражении | Данный идентификатор не может участвовать в выражении указанным образом. |
43 | Illegal assignment | Неверное присваивание | § Нетипизированным файлам и переменным нельзя присваивать значения.
§ Идентификатору функции можно присваивать значения только внутри раздела операторов данной функции. |
44 | Field identifier expected | Нужен идентификатор поля | Данный идентификатор не является полем предшествующей переменной типа «запись». |
45 | Object file too large | Объектный файл слишком большой | Нельзя компоновать файлы .obj, превышающие 64 Кбайт. |
46 | Undefined external | Не определена внешняя процедура | Внешняя процедура или функция не имеет соответствующего определения Public в объектном файле. Убедитесь, что вы указали все объектные файлы в директивах {$L имя_файла}, и проверьте написание идентификаторов процедуры или функции в файле .asm. |
47 | Invalid object file record | Неправильная запись объектного файла | Файл .obj содержит неверную объектную запись. Убедитесь, что данный файл является действительно файлом .obj. |
48 | Code segment too large | Сегмент кода слишком большой | Максимальный размер кода программы или программного модуля равняется 65 520 байт. Если вы компилируете программный модуль, разбейте его на два или более программных модулей. |
49 | Data segment too large | Сегмент данных слишком велик | Максимальный размер сегмента данных равен 65 520 байт, включая данные, описываемые используемыми программными модулями. Если вам нужно большее количество глобальных данных, опишите большие структуры с помощью указателей и выделяйте для них память динамически с помощью процедуры New. |
50 | DO expected | Нужен оператор DO | |
51 | Invalid PUBLIC definition | Неверное определение PUBLIC | § Две или более директивы PUBLIC на языке ассемблера определяют один и тот же идентификатор.
§ Объектный файл .obj определяет идентификаторы PUBLIC, которые не находятся в сегменте CODE. |
52 | Invalid EXTRN definition | Неверное определение EXTRN | § На идентификатор имеется ссылка в директиве EXTRN на языке ассемблера, но он не описан в программе или модуле на Паскале или в интерфейсной части какого-либо из используемых модулей.
§ Идентификатор обозначает абсолютную переменную. § Идентификатор обозначает процедуру или функцию типа inline. |
53 | Too many EXTRN definition | Слишком много определений EXTRN | Невозможно обработать файлы .obj, если имеется более чем 256 EXTRN. |
54 | OF expected | Требуется OF | |
55 | INTERFACE expected | Требуется интерфейсный раздел | |
56 | Invalid relocatable reference | Недопустимая перемещаемая ссылка | § Файл .obj содержит данные и перемещаемые ссылки в сегментах, отличных от CODE. Например, вы пытаетесь описать инициализированные переменные в сегменте DATA.
§ Файл .com содержит ссылки с размерами в байтах на перемещаемые идентификаторы. Такая ошибка происходит в случае, если вы используете операторы HIGH и DOWN с перемещаемыми идентификаторами или если вы ссылаетесь в директивах DB на перемещаемые идентификаторы. § Операнд ссылается на перемещаемый идентификатор, который не был определен в сегменте CODE или в сегменте DATA. § Операнд ссылается на процедуру EXTRN или функцию EXTRN со смещением, например CALL SortProc+8. |
57 | Then expected | Требуется THEN | В нужном месте отсутствует слово then. |
58 | TO or DOWNTO expected | Требуется TO или DOWNTO | В нужном месте отсутствует ключевое слово TO или DOWNTO. |
59 | Undefined forward | Не определено опережающее описание | § Процедура или функция были описаны в интерфейсном разделе программного модуля, но их определение отсутствует в разделе реализации.
§ Процедуры или функции были описаны с помощью описания forward, но их определение не найдено. |
61 | Invalid typecast | Неверное преобразование типа | § Размеры ссылки на переменную и тип результата отличаются друг от друга при изменении типа переменной.
§ Вы пытаетесь осуществить приведение типа выражения, когда разрешается только ссылка на переменную, процедуру или функцию. |
62 | Division by zero | Деление на нуль | Предшествующая операция пытается выполнить деление на нуль. |
63 | Invalid file type | Неверный файловый тип | Данный файловый тип не обслуживается процедурой обработки файлов. Например, вы пытаетесь использовать процедуру Readln для типизированного файла или процедуру Seek для текстового. |
64 | Cannot Read or Write variables of this type | Нельзя считать или записать переменные данного типа | Процедуры Read и Readln могут считывать переменные символьного, целого, вещественного и строкового типа. |
65 | Pointer variable expected | Нужно использовать переменную-указатель | Предыдущая переменная должна иметь тип «указатель». |
66 | String variable expected | Нужна строковая переменная | Предшествующая переменная должна иметь строковый тип. |
67 | String expression expected | Нужно выражение строкового типа | Предшествующее выражение должно иметь строковый тип. |
68 | Circular unit reference | Циклическая ссылка на модуль | Два модуля не могут ссылаться друг на друга в разделе interface, но могут это делать в разделе implementation. Переупорядочите операторы uses таким образом, чтобы циклические ссылки имели место только в разделе implementation. |
69 | Unit name mismatch | Несоответствие имен программных модулей | Имя программного модуля, найденное в файле .tpu, не соответствует имени, указанному в операторе uses. |
70 | Unit version mismatch | Несоответствие версий программных модулей | Один или несколько программных модулей, используемых данной программой, были изменены после их компиляции. Воспользуйтесь командой Compile?Make или Compile?Build в интегрированной интерактивной среде программирования, что позволит автоматически скомпилировать программные модули, нуждающиеся в перекомпиляции. |
71 | Internal stack overflow | Переполнение внутреннего стека | Внутренний стек компилятора исчерпан из-за слишком большого уровня вложенности операторов. Переорганизуйте исходный код и уменьшите уровень вложенности. Например, переместите внутренние уровни вложенных операторов в отдельную процедуру. |
72 | Unit file format error | Ошибка формата файла программного модуля | Файле .tpu является недействительным. Возможно, он создан с помощью старой версии Turbo Pascal или Borland Pascal. В этом случае нужно перекомпилировать исходный код модуля и создать новый модуль. |
73 | Implementation expected | Требуется раздел реализации | Ключевое слово Implementation отсутствует там, где оно должно быть. Возможно, вы включили реализацию процедуры, функции или метода в интерфейсную часть модуля. |
74 | Constant and case types do not math | Типы констант и выражения оператора Case не соответствуют друг другу | Тип константы оператора Case несовместим с выражением селектора в операторе выбора |
75 | Record variable expected | Нужна переменная типа запись | Предшествующая переменная должна иметь тип «запись». |
76 | Constant out of range | Константа выходит за допустимые границы | § Вы пытаетесь указать массив с константами, нарушающими границы.
§ Вы пытаетесь присвоить константу вне диапазона переменной. § Вы пытаетесь передать константу вне диапазона в качестве параметра процедуре или функции. |
77 | File variable expected | Нужна файловая переменная | Предшествующая переменная должна иметь файловый тип. |
78 | Pointer expression expected | Нужно выражение типа указатель | Предшествующая переменная должна иметь ссылочный тип. |
79 | Integer or real expression expected | Нужно выражение типа real или integer | Предшествующее выражение должно иметь тип real или integer. |
80 | Label not within current block | Метка не находится внутри текущего блока | Оператор goto не может ссылаться на метку, находящуюся вне текущего блока. |
81 | Label already defined | Метка уже определена | Данная метка уже помечает оператор. |
82 | Undefined label in processing statement part | Неопределенная метка в предшествующем разделе операторов | Данная метка была описана, и на нее осуществлялась ссылка в предшествующем разделе операторов, но она не определена. |
83 | Invalid @ argument | Недействительный аргумент оператора @ | Действительными аргументами являются ссылки на переменные и идентификаторы процедур или функций. |
84 | Unit expected | Нужно ключевое слово Unit | Не указано ключевое слово Unit, как это требуется. |
85 | «;» expected | Нужно указать «;» | Не указана, где это требуется, точка с запятой. |
86 | «:» expected | Нужно указать «:» | Не указана, где это требуется, двоеточие. |
87 | «,» expected | Нужно указать «,» | Не указана, где это требуется, запятая. |
88 | «(» expected | Нужно указать «(» | Не указана, где это требуется, открывающаяся круглая скобка. |
89 | «)» expected | Нужно указать «)» | Не указана, где это требуется, закрывающаяся круглая скобка. |
90 | «=» expected | Нужно указать «=» | Нужно указать знак равенства. |
91 | «:=» expected | Нужно указать «:=» | Требуется использовать операцию присваивания. |
92 | «[» or «(.» expected | Нужно «[» or «(.» | Требуется указать квадратную скобку или «(. ». |
93 | «]» or «.)» expected | Нужно «]» or «.)» | Требуется указать квадратную скобку или «.) ». |
94 | «.» expected | Нужно «.» | Требуется указать точку. Убедитесь, что тип не используется как переменная или что именем программы не переопределяется важный идентификатор другого модуля. |
95 | «..» expected | Нужно «..» | Требуется указать точки. Там, где это нужно, не указан диапазон. |
96 | Too many variables | Слишком много переменных | Общий размер глобальных переменных, описанных в программе или программном модуле, не может превышать 64 Кбайт.
Размер локальных переменных, описанных в программе или функции, не может превышать 64 Кбайт. |
97 | Invalid for control variable | Недопустимая управляющая переменная оператора for | Управляющая переменная оператора for должна быть переменной перечисляемого типа, определенной в разделе описаний текущей подпрограммы. |
98 | Integer variable expected | Нужна переменная целого типа | Предшествующая переменная должна иметь тип integer. |
99 | Files are not allowed here | Здесь не допускаются файлы | Типизированная константа не может иметь файловый тип. |
100 | String length mismatch | Несоответствие длины | Длина строковой константы не соответствует количеству элементов символьного массива. |
101 | Invalid ordering of fields | Неверный порядок полей | Поля в константе типа «запись» должны указываться в порядке их описания. |
102 | String constant expected | Нужна константа строкового типа | |
103 | Integer or real variable expected | Нужна переменная типа integer или real | Предшествующая переменная должна иметь целый или вещественный тип. |
104 | Character expression | Ожидается символьные выражения | |
105 | Compilation aborted | Компиляция прервана | |
106 | Error in statement | Ошибка в операторе | |
107 | Error in type | Ошибка в типе | |
108 | Expected | Ожидается имя | |
109 | Invalid floating point operation | Неправильная операция для вещественных операндов | |
110 | Ordinal variable expected | Ожидается переменная целого или символьного типа | |
111 | Too many symbols | Слишком много символов | |
112 | Undefined type | Неопределенный тип | |
113 | Abnormal program termination | Ненормальное окончание программы | |
114 | Ctrl-Break to quit | нажмите CTRL и Break для входа | |
115 | Disk is write-protected | Диск защищен от записи | |
116 | Disk read error | Ошибка записи на диск | |
117 | Disk write error | Ошибка записи на диск | |
118 | Drive not ready | дисковод не готов (нет дискеты) | |
119 | Error on execute | Ошибка исполнения | |
120 | Floating point overflow | Вещественное переполнение | |
121 | Hardware failure | Ошибка оборудования | |
122 | Heap overflow error | Не хватает основной памяти | |
123 | I/O checking | Ошибка ввода/вывода | |
124 | Invalid Breakpoint | Неправильная точка останова | |
125 | Invalid format specifier | Неправильный формат | |
126 | No debug info | Не задана информация для отладки | |
127 | Not enough memory | Не хватает памяти | |
128 | Press any key | Нажмите любую клавишу | |
129 | Program terminated | Исполнение программы прекращено | |
130 | Range check error | Выход индекса за пределы массива | |
131 | Runtime error | Ошибка во время исполнения | |
132 | Stack overflow error | Ошибка по переполнению стека | |
133 | Too many breakpoints | Слишком много точек останова | |
134 | Type EXIT to return to Turbo Pascal | Введите Exit для возврата в Турбо Паскаль | |
135 | User Break | Пользователь прервал исполнение программы |