Расширения базового синтаксиса

Некоторые особенности языка Turbo Pascal

Алфавит. Дополнительные символы алфавита: @ $ # _.

Знак подчеркивания ("_") относится к буквам, то есть, он может употребляться в именах, и имя может начинаться с этого знака.

Ключевые слова. Дополнительные ключевые (зарезервированные) слова:

Asm Constructor Destructor Implementation Inline Interface Object Shl Shr String Unit Uses Xor

Также к зарезервированным словам относится слово Private, но оно является зарезервированным только внутри описаний объектов.

Стандартные директивы. Директивы не являются операторами, хотя внешне выглядят как операторы. Они являются инструкциями для компилятора. В стандартном Паскале есть директива forward, если она записана после заголовка процедуры или функции, это сигнал компилятору, что полное описание этой процедуры или функции будет приведено далее. В Turbo Pascal, например, директива Interrupt указывает на то, что описываемая процедура является обработчиком прерываний, а директива Absolute указывает на то, что переменная должна быть расположена по заданному физическому адресу, либо ее адрес должен совпадать с адресом другой переменной. Директивы не являются зарезервированными словами, тем не менее, не рекомендуется использовать их в качестве имен, чтобы не запутаться в собственной программе.

Стандартные директивы:

absolute assembler external far forward interrupt near virtual

Метки. Могут быть целыми числами от 0 до 9999. Ведущие нули игнорируются, то есть, 7, 07 и 007 – одна и та же метка. Также метки могут быть именами (см. синтаксис имен в стандартном Паскале).

Шестнадцатеричные числа. Добавлен способ изображения целочисленных констант без знака в формате 16-ричных чисел.

<шестнадцатеричное значение>::="$"<шестнадцатеричное целое без знака>.

<шестнадцатеричное целое без знака>::=<шестнадцатеричная цифра> {<шестнадцатеричная цифра >}.

<шестнадцатеричная цифра>::= "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"A"|"B"|"C"|"D"|"E"|"F".

Также, как и в стандартном Паскале, различия между заглавными и строчными буквами не делается, поэтому для изображения 16-ричных цифр можно использовать соответствующие малые буквы.

Диапазон значений: от $0 до $FFFFFFFF.

Примеры: $1F – эквивалент десятичного значения 31. $A0 – эквивалент десятичного значения 160.

Строковые константы. В строковых константах можно задавать не только символы, но и их коды из кодовой таблицы. Для этого записывается знак #, а за ним указывается десятичный номер кода нужного символа. Так можно вставить в строку, например, управляющие символы, не имеющие изображения, или символы, для которых нет соответствующей клавиши на клавиатуре. Чтобы вписать такой символ в строковую константу, его нужно отделить от обычных символов этой же константы знаком апострофа.

Примеры:

'Line 1'#13#10'Line 2'

Здесь между текстами Line 1 и Line 2 вставлены коды перехода на следующую строку и возврата каретки. В результате, при выводе такой строковой константы, эти тексты будут напечатаны в двух отдельных строчках.

'Wake up!'#7

Код 7 зарезервирован за "звонком". При передаче его на дисплей компьютер издает звуковой сигнал. При выводе такой константы на дисплей появится надпись Wake up! и раздастся звуковой сигнал.

Константные выражения.В объявлениях констант можно использовать простые выражения, которые будут вычислены на этапе компиляции, и их значения будут занесены в константы. В константных выражениях нельзя использовать переменные, типизированные константы и адресные операции (Однако адресные операции допустимы для константных выражений типизированных констант). Разрешено использовать функции Abs, Chr, H, Length, Lo, Odd, Ord, Pred, Ptr, Round, SizeOf, Succ, Swap, Trunc).

Примеры: