Расширения базового синтаксиса
Некоторые особенности языка 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).
Примеры: