Основные команды встроенного редактора текста
Меню окна сообщений.
Меню окна наблюдений
Меню окна редактирования
Локальные меню
Локальных меню всего пять (здесь учитывается и меню Browse, доступное только в защищенном режиме работы процессора) и каждое из них привязано к соответствующему окну: редактирования, помощи, наблюдений, сообщений и браузера. Активизация локального меню производится нажатием клавиш Alt-F10 или правой клавиши мыши.
В состав этого меню входят четыре опции меню Edit – Cut, Copy, Paste и Clear; опцияменю Help –Topic search; опция меню Run – Go to cursor; две опции меню Debug – Evaluate/modify и Add watch; опция Options, которая дублирует опцию Environment/Editor меню Option.
Меню окна помощи.
Меню включает четыре опции меню Help – Contents, Index, Topic search и Previous topic; а также опцию меню Edit – Copy.
В состав этого меню входят шесть опций: Add, Modify, Remove, Clear all, Enable и Disable.
Add служит для добавления выражения в окно наблюдений. Любое выражение, присутствующее в окне наблюдений, можно сделать текущим. Для этого необходимо активизировать окно наблюдений и, с помощью клавиатуры, выделить подсветкой строку с искомым выражением.
Modify дает возможность редактировать текущее выражение, находящееся в окне наблюдений.
Remove позволяет удалить текущее выражение из окна наблюдений. Но в этом случае для удаления проще воспользоваться клавишей Del.
Clear all очищает окно наблюдений, т. е. удаляет из него все выражения.
Disable позволяет скрыть значение текущего выражения окна наблюдений: вместо значения будет появляться слово < disable >.
Enable отменяет действие опции Disable.
В этом меню три опции: Clear, Goto source и Track source. Опция Clear позволяет очистить окно сообщений, опция Goto source – перейти в окно редактирования, в котором находится анализируемый файл и, наконец, опция Track source – перейти в окно редактирования и выделить подсветкой строку, соответствующую текущему сообщению.
Таблица 35. Список горячих клавиш
| Горячая клавиша | Функция | Опция меню |
| F1 | Открытие окна с подсказками | HELP/TOPIC |
| F2 | Сохранение файла, находящегося в активном окне редактирования | FILE/SAVE |
| F3 | Загрузка файла в активное окно редактирования | FILE/OPEN |
| F4 | Выполнение программы до строки, помеченной курсором | RUN/ GOTO CURSOR |
| F5 | Увеличение/уменьшение размеров активного окна | WINDOW/ZOOM |
| F6 | Переход в следующее открытое окно | WINDOW/NEXT |
| F7 | Выполнение очередного оператора программы или подпрограммы | RUN/ TRACE INTO |
| F8 | Выполнение очередного оператора программы | RUN/ TRACE OVER |
| F9 | Компиляции программы/модуля и возможно связанных с ними модулей | COMPILE/ MAKE |
| F10 | Возврат в главное меню | |
| CTRL+F1 | Выдача справки о языковой конструкции | HELP/ TOPIC SEARCH |
| CTRL+F2 | Прекращение отладки программы | RUN/PROGRAM RESET |
| CTRL+F3 | Вывод на экран списка имен активных блоков | WINDOW/ CALL STACK |
| CTRL+F4 | Просмотр значения выражения, изменение значения переменной | DEBUG/EVALUATE |
| CTRL+F5 | Изменение размера и положения активного окна | WINDOW SIZE/MOVE |
| CTRL+F6 | Добавление выражения в окно наблюдений | DEBUG/ ADD WATCH |
| CTRL+F8 | Установка или отмена точки останова | DEBUG/TOGGLE BREAKPOINT |
| CTRL+F9 | Запуск программы | RUN/RUN |
| CTrl+K, R | Вставить в текущей позиции курсора файл (с диска) | |
| Ctrl+K, W | Записать выделенный блок в отдельный файл | |
| Сtrl+K, T | Выделить слово | |
| Ctrl+K, B | Перейти в начало выделенного блока | |
| Ctrl+Q, K | Перейти в конец выделенного блока | |
| Ctrl+Q, A | Найти и заменить | |
| Ctrl+Q, L | Восстановить строку | |
| Ctrl+Q, Y | Удалить текст до конца строки | |
| Ctrl+Y | Удалить строку | |
| Сtrl+Home | Перейти в начало экрана (окна) | |
| Ctrl+End | Перейти в конец экрана (окна) | |
| Ctrl+PgUp | Перейти к началу файла | |
| Ctrl+PgDn | Перейти к концу файла | |
| Shift+клавиша управления курсором | Выделение блока | |
| CTRL+Del | Удаление выделенного текста | EDIT/CLEAR |
| CTRL+Ins | Копирование выделенного текста в карман | EDIT/COPY |
| CTRL+L | Повторение последней операции Find (поиска) или Replace (замены) | |
| CTRL+P | Открытие последнего закрытого окна | SEARCH/PREVIOUS |
| SHIFT+DEL | Удаление выделенного текста из файла и помещение его в карман. | EDIT/CUT |
| SHIFT+INS | Помещение выделенного текста из кармана в активное окно, в место, определяемое курсором | EDIT/PASTE |
| SHIFT+F6 | Переход в предыдущее открытое окно | WINDOW/ PREVIOUS |
| ALT+F1 | Восстановление содержимого предыдущего окна подсказки | HELP/PREVIOUS TOPIC |
| ALT+F3 | Закрытие активного окна | WINDOW/CLOSE |
| ALT+F5 | Показ окна вывода (экрана операционной системы) | WINDOW/USER SCREEN |
| ALT+F6 | Переход в окно, которое было открыто непосредственно перед текущим активным окном | WINDOW/PREVIOUS |
| ALT+F8 | Определение места нахождения ошибки в исходном файле | SEARH/FIND ERROR |
| ALT+F9 | Компиляция файла, находящегося в активном окне редактирования | COMPILE/ COMPILE |
| ALT+X | Выход из среды системы | FILE/EXIT |
| ALT+0 | Вывод на экран списка всех открытых окон | WINDOW/LIST |
| ALT+цифра | Переход в открытое окно с номером, заданным цифрой 1..9 | |
| ALT+S, F | Поиск заданного текста в файле активного окна | SEARCH/FIND |
| ALT+S, R | Поиск заданного текста в файле активного окна и его замена | SEARCH/REPLACE |
| ALT+C | Активизация меню COMPILE | COMPILE |
| ALT+D | Активизация меню DEBUG | DEBUG |
| ALT+E | Активизация меню EDIT | EDIT |
| ALT+F | Активизация меню FIND | FIND |
| ALT+H | Активизация меню HELP | HELP |
| ALT+O | Активизация меню OPTIONS | OPTIONS |
| ALT+R | Активизация меню RUN | RUN |
| ALT+S | Активизация меню SEARCH | SEARCH |
| ALT+W | Активизация меню WINDOW | WINDOW |
Приложение Б.
Сообщения об ошибках
Таблица 36. Сообщения об ошибках на шаге компиляции
Ниже приводятся коды ошибок и сообщения об ошибках, генерируемые компилятором языка Турбо-Паскаль. Кроме перевода сообщений в некоторых случаях даются необходимые пояснения, а также рекомендации по устранению ошибок.
| Код ошибки | Сообщение об ошибке | Перевод сообщения, возможная причина ошибки и рекомендации для ее устранения |
| Out of memory | «не хватает памяти» — Компилятор извещает, что доступной памяти недостаточно для размещения программы. Чтобы устранить ошибку, рекомендуется удалить из памяти ранее загруженные, но не используемые в данный момент программы, или указать, что объектный код должен выводиться на диск. Если это не дает результата, следует разделить программу или модуль на большее число модулей | |
| Identifier expected | «ожидается идентификатор» — Возможно, в качестве идентификатора использовано зарезервированное слово | |
| Unknown identifier | «неизвестный идентификатор» — Идентификатор не объявлен | |
| Duplicate identifier | «дублируемый идентификатор» — Идентификатор объявлен дважды | |
| Syntax error | «синтаксическая ошибка» — Обнаружен символ, отсутствующий в алфавите языка | |
| Error in real constant | ошибка в записи константы вещественного типа | |
| Error in integer constant | ошибка в записи константы целого типа | |
| String constant exceeds line | «длина строковой константы превышает максимально допустимую длину строки» — Возможно, отсутствует закрывающий апостроф | |
| Too many nested files | «слишком много вложенных файлов» — При включении исходных файлов (с помощью директив {$1 <имя файла >}) компилятор допускает не более 15 уровней вложенности | |
| Unexpected end of file | «несвоевременное появление признака конца файла» Возможно, не совпадает количество операторов begin и end или не закрыт комментарий | |
| Line too long | «слишком длинная строка» — Длина строки превысила 126 символов | |
| Type identifier expected | «ожидается идентификатор типа» — В объявлении отсутствует идентификатор типа | |
| Too many open files | «слишком много открытых файлов» — Следует задать большее число файлов в CONFIG.SYS (в записи FILES = < число) | |
| Invalid file name | неправильно задано имя файла | |
| File not found | файл не найден | |
| Disk full | на диске нет свободного места | |
| Invalid compiler directive | неправильно записана директива компилятора | |
| Too many files | «слишком много файлов» — С помощью директив {$1 <имя файла>} включается чрезмерное количество исходных файлов | |
| Undefined type in pointer definition | «необъявленный тип в объявлении указателя» — Не объявлен тип данных, указанный в объявлении ссылочного типа | |
| Variable identifier expected | ожидается идентификатор переменной | |
| Error in type | ошибка в объявлении типа | |
| Structure too large | «структура слишком большая» — Превышен допустимый размер (65520 байт) области памяти для данных структурированного типа | |
| Set base type out of range | «число значений базового типа для множества превышает допустимое» — Базовый тип не должен содержать более 256 значений | |
| File components may not be files or objects | компонентами файла не могут быть файлы или объекты | |
| Invalid string length | «недопустимая длина строки» — Превышена максимально допустимая длина строки (255) | |
| Type mismatch | «несоответствие типов» — Не соответствуют друг другу типы данных в выражении | |
| Invalid subrange base type | недопустимый базовый тип для интервального типа | |
| Lower bound greater than upper bound | нижняя граница больше верхней границы | |
| Ordinal type expected | ожидается ссылка на порядковый тип | |
| Integer constant expected | ожидается целая константа | |
| Constant expected | ожидается константа | |
| Integer or real constant expected | ожидается целая или вещественная константа | |
| Type identifier expected | ожидается идентификатор типа | |
| Invalid function result type | недопустимый тип результата функции | |
| Label identifier expected | ожидается идентификатор метки | |
| Begin expected | ожидается зарезервированное слово begin | |
| End expected | ожидается зарезервированное слово end | |
| Integer expession expected | ожидается выражение целого типа) | |
| Ordinal expession expected | ожидается выражение порядкового типа | |
| Boolean expression expected | ожидается выражение булевого типа | |
| Operand types do not match operator | типы операндов не соответствуют оператору | |
| Error in expression | ошибка в выражении | |
| Illegal assignment | неправильное присваивание | |
| Field identifier expected | ожидается идентификатор поля записи | |
| Object file too large | «объектный файл слишком большой» — OBJ-файл превысил максимально допустимый размер (65520 байт) | |
| Undefined external | «не определена внешняя подпрограмма» — Вероятно, во внешней подпрограмме отсутствует соответствующее определение PUBLIC | |
| Invalid object file record | «нераспознаваемая запись объектного файла» — Вероятно, объектный файл искажен | |
| Code Segment too large | «кодовый сегмент слишком велик» — Превышен максимально допустимый размер кода программы или модуля (65520 байтов) | |
| Data segment too large | «сегмент данных слишком велик» — Превышен максимально допустимый размер сегмента данных (65520 байтов) | |
| Do expected | ожидается ключевое слово DO | |
| Invalid PUBLIC definition | «неправильное определение public» — Несоответствие определения PUBLIC в программе на Ассемблере и директивы external в программе или модуле на Паскале | |
| Invalid EXTRN definition | «неправильное определение extrn» — Вероятно, фрагмент программы на языке Ассемблера не объявлен в программе или модуле | |
| Too many EXTRN ltfinition | «слишком много определений extrn» — Максимально допустимое число определений EXTRN в Obj-файле равно 256 | |
| OF expected | ожидается зарезервированное слово OF | |
| INTERFACE expected | ожидается зарезервированное слово INTERFACE | |
| Invalid relocatable | «неправильно определена смещенная ссылка» — Вероятно, во фрагменте программы на языке Ассемблера неправильно задано смещение адреса | |
| THEN expected | ожидается зарезервированное слово Then | |
| TO or DOWNTO expected | ожидается зарезервированное слово To или downto | |
| Undefined forward | не завершено опережающее объявление | |
| Too many procedures | «слишком много процедур» — Превышено максимально допустимое (512) количество подпрограмм, объявленных в программе или модуле | |
| Invalid Typecast | неверно описанное преобразование типов | |
| 62 | Division by zero | деление на нуль |
| Invalid file type | неправильно задан файловый тип | |
| Cannot Read or Write variables of type | «нельзя читать или писать переменные этого типа» — Предпринята попытка чтения/записи данных, не обрабатываемых процедурами Read/Readln и Write/Writeln. | |
| Pointer variable expected | ожидается переменная ссылочного типа | |
| String variable expected | ожидается строковая переменная | |
| String expession expected | ожидается выражение строкового типа | |
| Circular unit reference | «циклические ссылки модулей» — Не допускается, чтобы два модуля ссылались друг на друга | |
| Unit name mismatch | «неправильное имя модуля» — Модуль, имя которого задано в директиве Uses, не найден | |
| Unit version mismatch | «неверная версия модуля» — Модуль, подключаемый к программе, был изменен после компиляции | |
| Duplicate unit name | имя модуля дублируется в директиве uses | |
| Unit file format error | ошибка в спецификации файла модуля | |
| Implementation expected | ожидается зарезервированное слово implementation | |
| Constant and case types do not match | типы констант и селектора в операторе case не соответствуют друг другу | |
| Record variable expected | ожидается переменная комбинированного типа | |
| Constant out of range | константа не укладывается в допустимый диапазон | |
| File variable expected | ожидается переменная файлового типа | |
| Pointer expression expected | ожидается выражение ссылочного типа | |
| Integer or real expression expected | ожидается выражение типа integer или real | |
| Label not within current block | метка находится вне текущего блока | |
| Label already defined | метка ранее уже объявлена | |
| Undefined label in preceding statement part | необъявленная метка в предыдущей части раздела операторов | |
| Invalid @ argument | неправильный аргумент оператора @ | |
| UNIT expected | ожидается зарезервированное слово unit | |
| “;” expected | ожидается точка с запятой | |
| ”:” expected | ожидается двоеточие | |
| “,” expected | ожидается запятая | |
| “(“ expected | ожидается открывающая круглая скобка | |
| “)” expected | ожидается закрывающая круглая скобка | |
| “=”' expected | ожидается знак равенства | |
| ”:=" expected | ожидается знак присваивания | |
| ”[“' or "(" expected | ожидаются знаки “[“ или “(“ | |
| ”]” or “)” expected | ожидаются знаки ']' или ')' | |
| ”.” expected | ожидается точка | |
| ”..” expected | ожидается горизонтальное двоеточие | |
| Too many variables | «слишком много переменных» — Максимально допустимый размер памяти для размещения переменных равен 64К: – глобальных, объявленных в программе или модуле; – локальных, объявленных в подпрограмме | |
| Invalid FOR control variable | «неправильная переменная цикла в операторе for» — Переменная цикла в операторе for должна принадлежать одному из простых типов | |
| Integer variable expected | ожидается переменная целого типа | |
| File and procedure types are not allowed here | в данном контексте файловый и процедурный типы недопустимы | |
| String length mismatch | «неправильная длина строки» — Длина строковой константы не соответствует количеству элементов символьного массива. | |
| Invalid ordering of fields | неправильный порядок следования полей | |
| String constant expected | ожидается константа строкового типа | |
| Integer or real variable expected | ожидается переменная типа integer или real | |
| Ordinal variable expected | ожидается переменная порядкового типа | |
| INLINE error | ошибка в директиве inline | |
| Character expession expected | ожидается выражение символьного типа | |
| Too many relocation items | «слишком много перемещаемых элементов» — Размер таблицы перемещаемых символов в объектном файле превышает 64К байта. Это означает, что программа слишком велика, чтобы ее смог обработать компоновщик Турбо-Паскаля. | |
| Overflow in arithmetic operation. | переполнение при выполнении арифметической операции | |
| No enclosing For, While or Repeat statement. | использование операторов Break и Continue вне пределов цикла | |
| Case constant out of range | «в операторе case константа не вписывается в допустимый диапазон» — Целочисленные константы, используемые в операторе case, должны находиться в пределах от -32768 до 32767. | |
| Error in statement | ошибка в операторе | |
| Cannot call an interrupt procedure | не вызывается процедура прерывания | |
| Must be in 8087 mode to compile this | «для компиляции данной конструкции должен быть установлен режим сопроцессора» — Данная конструкция может быть откомпилирована только в режиме {$ N+}. | |
| Target address not found | «заданный адрес отсутствует» — Не обнаружен оператор, расположенный по заданному адресу. | |
| Included files are not allowed here | «в заданном месте не допускается включение файла» — Исходные файлы нельзя включать внутри раздела операторов. | |
| No inherited methods are accesible here. | неправильное использование ключевого слова Inherited | |
| Invalid Qualifier | «неправильно указан квалификатор» — Возможны следующие причины появления сообщения: задан индекс переменной, не объявленной как массив; задано поле переменной, не объявленной как запись; в качестве указателя используется переменная, не объявленная как ссылочная | |
| Invalid variable reference | неправильная ссылка на переменную | |
| Too many symbols | «слишком много символов» — Длина текста программы или модуля превышает 64К байта | |
| Statement part too large | «слишком велик раздел операторов» — Превышен максимально допустимый размер раздела операторов программы (около 24К байт) | |
| Files must be var parameters | «файлы должны быть параметрами-переменными» — Параметры файлового типа в объявлении подпрограмм должны описываться как переменные. | |
| Too many conditional symbols | «слишком много условных символов» — Недостаточно памяти для размещения имен, указанных в директивах условной компиляции Рекомендуется укоротить одно или несколько символических имен | |
| Misplaced conditional directive | несоответствие директив условной компиляции | |
| ENDIF directive missing | отсутствует директива {$ ENDIF} | |
| Error in initial conditional defines | «ошибка в установке условных определений» — Условия компиляции, заданные в Options/Compiler/ Conditional defines, должны разделяться пробелами, запятыми или точками с запятой | |
| Header does not match previous definition | «заголовок не соответствует предыдущему определению» — Заголовок подпрограммы, заданный в секции связи модуля или в объявлении, использующем forward, не соответствует данному заголовку | |
| Critical disk error | серьезная ошибка дискового накопителя | |
| Cannot evaluate this expression | данное выражение невозможно вычислить | |
| Expession incorrectly terminated | «неправильно завершено выражение» — Вероятно, отсутствует точка с запятой | |
| Invalid format specifier | неправильная спецификация формата | |
| Invalid indirect reference | «неправильная косвенная ссылка» — Возможно, используется переменная типа absolute, базовая переменная которой не объявлена в данном модуле | |
| Structured variables are not allowed here | в данном контексте структурные переменные недопустимы | |
| Cannot evaluate without System unit | нельзя вычислить без модуля System | |
| Cannot access this symbol | «невозможен доступ к данному символу» — Доступ к некоторым идентификаторам, например, переменным, возможен только после начала фактического выполнения программы | |
| Invalid floating-point operation | «неправильная операция с плавающей точкой» » — Операция над двумя значениями вещественного типа привела к переполнению или делению на нуль | |
| Cannot compile overlay to memory | нельзя компилировать код оверлейной программы в память | |
| Procedure or function variable expected | ожидается переменная типа procedure или function | |
| Invalid procedure or function reference | неправильная ссылка на процедуру или функцию | |
| Cannot overlay this unit | «данный модуль нельзя сделать оверлейным» — Предпринята попытка объявить оверлейным модуль, который был откомпилирован без директивы {$0+ }. | |
| Too many nested scopes | использование недопустимо большого числа вложенных элементов языка | |
| File access denied | попытка использовать файл, предназначенный только для считывания, как выходной | |
| Object type expected | ожидается объектный тип | |
| Local object types are not allowed | «локальный объектный тип недопустим» — Объектный тип не должен объявляться в подпрограмме | |
| VIRTUAL expected | ожидается зарезервированное слово virtual | |
| Method identifier expected | ожидается идентификатор метода | |
| Virtual constructors are not allowed | «виртуальные конструкторы недопустимы» — Метод-конструктор может быть только статическим | |
| Constructor identifier expected | ожидается идентификатор конструктора | |
| Destructor identifier expected | ожидается идентификатор деструктора | |
| Fail only allowed withing constructors | «процедуру Fail можно использовать только внутри конструкторов» | |
| Invalid combination of opcode and operands | «неправильное сочетание кода операции и операндов» — Код операции Ассемблера не допускает данного сочетания операндов | |
| Memory reference expected | «ожидается ссылка на элемент памяти» — Вероятно, регистровый операнд не заключен в квадратные скобки | |
| Cannot add or subtract relocatable symbols | сложение или вычитание переместимых символов недопустимо | |
| Invalid register combination | указана неправильная комбинация регистров | |
| 286/287 Instructions are not enabled | «не разрешены инструкции процессора 286/287» — Отсутствует директива компилятора {$G+}, разрешающая использовать операции 286/287 | |
| Invalid symbol reference | «неправильная ссылка на символ» — Данный символ нельзя использовать в ассемблерном операнде | |
| Code generation error | ошибка при генерации кода | |
| ASM expected | ожидается зарезервированное слово ASM |