8.8.2. Конфигурационный файл ptop

На верх  Назад  Вперёд

Создавать и распространять конфигурационный файл нет необходимости, так как вы можете изменить стандартный конфигурационный файл по вашему усмотрению. Конфигурационный файл никогда не загружается по умолчанию, так что если вы хотите использовать его, вы должны всегда указывать параметр -c ptop.cfg.

Структура конфигурационного файла – это простой набор блоков, повторённых несколько раз (20- 30) для каждого ключевого слова Pascal, известного программе ptop (см. настроенный по умолчанию конфигурационный файл или исходный код программы ptopu.pp, чтобы посмотреть ключевые слова, которые известны программе).

Основной блок конфигурационного файла содержит одну или две строки, описывающие, как программа должна реагировать на определённое ключевое слово. Первое вхождение строки без квадратных скобок имеет следующий формат:

КлючевоеСлово=Опция1,Опция2,Опция3,-

Если одна из опций – это «dindonkey» (см. ниже), то вторая строка – с квадратными скобками – должна быть:

[КлючевоеСлово]=ДругоеКлючевоеСлово1,ДругоеКлючевоеСлово2,…

Вы можете увидеть блок, содержащий два типа идентификаторов: ключевые слова (КлючевоеСлово и ДругоеКлючевоеСлово1- 2) и опции (Опция1- 3).

Ключевые слова – это встроенные в структуру языка Pascal идентификаторы, типа BEGIN, END, CASE, IF, THEN, ELSE, IMPLEMENTATION. По умолчанию конфигурационный файл содержит список большинства из них.

Кроме реальных ключевых слов языка Pascal используются различные кодовые слова для операторов и комментариев (см. таблицу 8.1).

Таблица 8.1. Ключевые слова для операторов.

Кодовое слово

Оператор

casevar

: в конструкции case (не то же самое, что двоеточие 'colon').

becomes

:=

delphicomment

//

opencomment

{ или (*

closecomment

} или *)

semicolon

;

colon

:

equals

=

openparen

[

closeparen

]

period

.

Кодовые слова опций определяют действия, которые будут выполнены, когда будет найдено ключевое слово перед этим кодовым словом (см. таблицу 8.2).

Опция «dindonkey», описанная в таблице 8.2, требует некоторых пояснений. «dindonkey» - это сокращение от «DeINDent ON associated KEYword» (Структурировать на связанном ключевом слове). Если это кодовое слово имеется как опция для какого-либо ключевого слова в первой строке, то далее во второй строке требуется указать это ключевое слово в квадратных скобках. Тогда для всех ключевых слов, перечисленных во второй строке, будет удалён отступ в исходном коде, если они следуют ПОСЛЕ указанного в квадратных скобках ключевого слова. Например, строки

else=crbefore,dindonkey,inbytab,upper
[else]=if,then,else

Означают следующее:

Ключевым словом для этого блока является else, так как находится в левой части строк.

Опция crbefore указывает на то, что никакого другого кода в этой строке перед ключевым словом else быть не должно.

Опция dindonkey указывает программе, что нужно удалять отступы, если синтаксический анализатор находит любые ключевые слова, перечисленные в строке, где if,then или else заключено в квадратные скобки.

Опция inbytab означает, что нужно делать отступ с помощью табуляции.

Опция upper указывает программе, что ключевое слово нужно переводить в верхний регистр (else или Else будет преобразовано в ELSE).

Попытайтесь поэкспериментировать с конфигурационным файлом, пока не найдёте наиболее приемлемый для себя вариант. Способность к изменению конфигурации и возможности программы ptop являются довольно мощными. Например, если вы любите писать все ключевые слова большими буквами, то с помощью этой программы вы можете преобразовать все такие слова в слова в верхнем регистре.

Программа работает в фоновом режиме, поэтому для проверки её работы нужно сгенерировать исходный файл и попытаться откомпилировать его, если программа не выдала сообщений об ошибках.

Таблица 8.2. Опции.

Опция

Что делает

crsupp

Запрещает CR (возврат каретки) перед ключевым словом.

crbefore

Вставляет CR перед ключевым словом (не используется с crsupp).

blinbefore

Пустая строка перед ключевым словом.

dindonkey

Отменяет отступ для связанного ключевого слова (см. выше).

dindent

Отменяет отступ (всегда).

spbef

Пробел перед ключевым словом.

spaft

Пробел после ключевого слова.

gobsym

Печатает символы, которые следуют за ключевым словом, но не влияют на структуру. Печатает, пока не встретится завершающий символ (завершающие символы являются закодированными на аппаратном уровне в pptop, нет необходимости их заменять).

inbytab

Отступ с помощью табуляции.

crafter

Вставляет CR после ключевого слова.

upper

Печатает ключевое слово в верхнем регистре.

lower

Печатает ключевое слово в нижнем регистре.

capital

Печатает в верхнем регистре первую букву слова, остальные буквы в нижнем регистре.