Лексемы - это минимальные значимые единицы текста в программе, написанной на Паскале. Они представлены такими категориями как специальные символы, идентификаторы, метки, числа и строковые константы.
Программа, написанная на Паскале, состоит из лексем и разделителей, причем разделитель представляет собой пробел или комментарий. Две соседние лексемы, если они представляют собой зарезервированное слово, идентификатор, метку или число, должны быть отделены друг от друга одним и несколькими разделителями.
Примечание: Разделители не могут быть частью лексем, за исключением строковых констант.
Borland Pascal использует следующие подмножества набора символов кода ASCII:
Специальные символы и зарезервированные слова представляют собой символы, имеющие одно или несколько фиксированных значений. Специальными символами являются следующие одиночные символы:
+ - *
/ = < > [ ] . , ( ) : ; ^ @ { } $ #
Следующие пары символов также представляют собой специальные символы:
<= >=
:= .. (* *) (. .)
Кроме того, некоторые специальные символы являются знаками операций. Левая квадратная скобка ([) эквивалентна паре символов, состоящей из левой круглой скобки и точки ((.). Аналогично правая квадратная скобка (]) эквивалентна паре символов, состоящей из точки и правой круглой скобки (.)).
Следующие слова являются зарезервированными в Borland Pascal:
Таблица 1.1. Зарезервированные слова Borland Pascal
and |
exports |
mod |
shr |
array |
file |
nil |
string |
asm |
for |
not |
then |
begin |
function |
object |
to |
case |
goto |
of |
type |
const |
if |
or |
unit |
consatructor |
implementation |
packed |
until |
destructor |
in |
procedure |
uses |
div |
inherited |
program |
var |
do |
inline |
record |
while |
downto |
interface |
repeat |
with |
else |
label |
set |
xor |
end |
library |
shl |
|
В настоящем руководстве зарезервированные слова записаны строчными буквами. Однако, для Borland Pascal безразличен регистр клавиатуры, поэтому вы можете использовать в своей программе буквы как нижнего, так и верхнего регистра.
Далее приведены стандартные директивы Borland Pascal. В отличие от зарезервированных слов пользователь может их переопределить. Однако делать это не рекомендуется.
Таблица 1.2. Стандартные директивы Borland Pascal
absolute |
far |
name |
resident |
assembler |
forward |
near |
virtual |
export |
index |
private |
|
external |
interrupt |
public |
|
Идентификаторы выступают в качестве имен констант, типов, переменных, процедур, модулей, программ и полей в записях.
Идентификатор может иметь любую длину, однако только первые его 63 символа
являются значимыми. Идентификатор должен начинаться с буквы и не может содержать
пробелов. После первого символа идентификатора можно использовать буквы, цифры и
символы подчеркивания (значение ASCII
Идентификатор должен начинаться с буквы и не должен содержать пробелов. После
первого символа допускаются буквы, цифры и символ подчеркивания (ASCII
Когда имеется несколько мест с указанием одного и того же идентификатора, для задания нужного идентификатора необходимо уточнить этот идентификатор с помощью идентификатора модуля. Например, для уточнения идентификатора Ident с помощью идентификатора модуля UnitName следует записать UnitNamt.Ident. Такой комбинированный идентификатор называется уточненным идентификатором.
Примечание: Модули описываются в Главе 7 "Руководства пользователя" и в Главе 10 данного руководства.
Приведем несколько примеров идентификаторов:
Writeln
Exit
Real2String
System.MemAvail
Dos.Exec
WinCrt.Windows
Для чисел, представляющих собой константы целого и вещественного типа, используется обычная десятичная запись. Целая константа в шестнадцатиричном формате имеет в качестве префикса знак доллара ($). Техническое обозначение (E или е с показателем степени) в вещественных типах читается, как "на десять в степени". Например, 7E-2 означает 7х10^-2, а 12.25E+6 или 12.25E6 оба обозначают 12.25х10^+6. Синтаксические диаграммы для записи чисел приведены ниже.
Числа с десятичными точками или показателями степени представляют собой
константы вещественного типа. Остальные десятичные числа обозначают константы
целого типа. Они должны принимать значения в диапазоне от -
Шестнадцатиричные числа обозначают константы целочисленного типа. Они должны
находиться в диапазоне от
Меткой является последовательность цифр в диапазоне от 0 до 9999. Начальные нули не являются значащими. Метки используются с операторами перехода goto.
Как расширение стандартного Паскаля, Borland Pascal позволяет использовать в качестве меток идентификаторы функций.
Строка символов представляет собой последовательность, содержащую ноль и более символов из расширенного набора символов кода ASCII, записанную в одной строке программы и заключенную в одиночные кавычки (апострофы). Строка символов, ничего не содержащая между апострофами, называется нулевой строкой. Два последовательных апострофа в строке символов обозначают один символ - апостроф. Атрибут длины строки символов выражается действительным количеством символов между апострофами, например:
'Borland'
'You'll see'
''''
';'
' '
'' { пустая строка }
' ' { пробел }
В качестве расширения стандартного Паскаля, Borland Pascal разрешает вставлять в строку символов управляющие символы. Символ # с целой константой без знака в диапазоне от 0 до 255 обозначает соответствующий этому значению символ в коде ASCII. Между символом # и целой константой не должно быть никаких разделителей. Аналогично, если несколько управляющих символов входит строку символов, то между ними не должно быть разделителей.
Приведем несколько примеров строк символов:
#13#10
'Line 1'#13'Line2'
#7#7'Make up!'#7#7
Примечание: CR - символ возврата каретки.
Длина символьной строки - это фактическое число символов в строке. Строка символов любой длины совместима с любым строковым типом и, при разрешении директивой {$X+} расширенного синтаксиса, с типом PChar. Кроме того, строка символов с длиной, равной 1, совместима с любым типом Char. Строка символов длиной n, где n больше или равен 1, допустима для любого строкового типа и упакованных массивов из n символов.
Следующие конструкции представляют собой комментарии и поэтому игнорируются компилятором:
{ любой текст, не содержащий правую фигурную скобку }
(* любой текст, не содержащий звездочку/правую круглую скобку *)
Комментарий, содержащий знак доллара ($) сразу после открывающей скобки { или (*, является директивой компилятора. За символом $ следует мнемоника команды компилятора.
Примечание: Общее описание директив компилятора дано в Главе 2 "Справочного руководства программиста".
В Borland Pascal строки программы имеют максимальную длину в 126 символов.