Лексемы - это минимальные значимые единицы текста в программе, написанной на Паскале. Они представлены такими категориями как специальные символы, идентификаторы, метки, числа и строковые константы.
Программа, написанная на Паскале, состоит из лексем и разделителей, причем разделитель представляет собой пробел или комментарий. Две соседние лексемы, если они представляют собой зарезервированное слово, идентификатор, метку или число, должны быть отделены друг от друга одним и несколькими разделителями.
Примечание: Разделители не могут быть частью лексем, за исключением строковых констант.
Borland Pascal использует следующие подмножества набора символов кода ASCII:
* Буквы - буквы английского алфавита от A до Z и от a до z.
* Цифры - арабские цифры от 0 до 9.
* Шестнадцатиричные цифры - арабские цифры от 0 до 9, буквы от A до F и буквы от a до f.
* Разделители - символ пробела (ASCII 32) и все управляющие символы кода ASCII (ASCII 0-31), включая символ конца строки или символ возврата (ASCII 13).
буква
і
АДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДДДДДДДДї
і і і і
v v v v
ЪДДДї ЪДДДї ЪДДДї ЪДДДї
і A і ... іZ і і a і ... іz і
АДВДЩ АДВДЩ АДВДЩ АДВДЩ
і і і і
АДДДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДД цифра
і
АДДДДДДВДДДДДДДДДДДї
і і
v v
ЪДДДї ЪДДДї
і0 і ... і 9 і
АДВДЩ АДВДЩ
і і
АДДДДДДДДДДДБДДДДДДД>
шестнадцатиричная
цифра
і ЪДДДДДДДДДДДї
АДДДДДДДД>і цифра іДДДДДДДДДДДДДДДДДДДДДДДДДї
і АДДДДДДДДДДДЩ і
і і
АДДДВДДДДДДДДДВДДДДДДДДДВДДДДДДДДДї і
і і і і і
v v v v і
ЪДДДї ЪДДДї ЪДДДї ЪДДДї і
і A і .. і F і і a і... іf і і
АДВДЩ АДВДЩ АДВДЩ АДВДЩ і
і і і і і
АДДДДДДДДДБДДДДДДДДДБДДДДДДДДДБДДДДДДДДДБДДДДДДДДД>
Специальные символы и зарезервированные слова представляют собой символы, имеющие одно или несколько фиксированных значений.
Специальными символами являются следующие одиночные символы:
+ - * / = < > [ ] . , ( ) : ; ^ @ { } $ #
Следующие пары символов также
представляют собой специальные символы:
<= >= := .. (* *) (. .)
Кроме того, некоторые специальные символы являются знаками операций. Левая квадратная скобка ([) эквивалентна паре символов, состоящей из левой круглой скобки и точки ((.). Аналогично правая квадратная скобка (]) эквивалентна паре символов, состоящей из точки и правой круглой скобки (.)).
Зарезервированные слова и стандартные директивы Borland PascalЗарезервированные слова Borland Pascal Таблица 1.1
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. В отличие от зарезервированных слов пользователь может их переопределить. Однако делать это не рекомендуется.
Стандартные директивы Borland Pascal Таблица 1.2
ДДДДДДД
absolute far name resident
assembler forward near virtual
export index private
external interrupt public
Идентификаторы выступают в качестве имен констант, типов, переменных, процедур, модулей, программ и полей в записях.
Идентификатор может иметь любую длину, однако только первые его 63 символа являются значимыми. Идентификатор должен начинаться с буквы и не может содержать пробелов. После первого символа идентификатора можно использовать буквы, цифры и символы подчеркивания (значение ASCII $5F). Как и в зарезервированных словах, в идентификаторах можно использовать как строчные, так и прописные буквы (компилятор их не различает).
Идентификатор должен начинаться с буквы и не должен содержать пробелов. После первого символа допускаются буквы, цифры и символ подчеркивания (ASCII $5F). Как и зарезервированные слова, идентификаторы безразличны к регистру клавиатуры.
Когда имеется несколько мест с указанием одного и того же идентификатора, для задания нужного идентификатора необходимо уточнить этот идентификатор с помощью идентификатора модуля. Например, для уточнения идентификатора 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. Синтаксические диаграммы для записи чисел приведены ниже.ЪДДДДДДДДДДДДДДДДДї
последовательность ДДДДДДДД>ішестнадцатиричнаяГДДДДДДДВДД>
шестнадцатиричных ^ і цифра і і
цифр і АДДДДДДДДДДДДДДДДДЩ і
АДДЩ
ЪДДДДДДДДДДДДДДДДДї
последовательность ДДДДДДДД>і цифра ГДДДДДДДВДДД>
цифр ^ АДДДДДДДДДДДДДДДДДЩ і
і і
АДДЩ
ЪДДДДДДДДДДДДДДДДДДї
целые без знака ДДДДВДДДД>іпоследовательностьГДДДДДДДДДДД>
і і цифр і ^
і АДДДДДДДДДДДДДДДДДДЩ і
і і
і ЪДДДї ЪДДДДДДДДДДДДДДБДДДї
АДДДД>і $ іДДДД>іпоследовательностьі
АДДДЩ ішестнадцатиричных і
і цифр і
АДДДДДДДДДДДДДДДДДДЩ
ЪДДДї
знак ДВДДД>і + ГДДДДДДД>
і АДДДЩ ^
і ЪДДДї і
АДДД>і - ГДДДЩ
АДДДЩ
вещественное без знака
і ЪДДДДДДДДДДї ЪДДДї ЪДДДДДДДДДДї
АДД>іПоследова-ГДВД>і . ГД>іпоследова-ГДДВДДДДДДДДДДДДДДДДДД>
ітельность і і АДДДЩ ітельность і і ^
і цифр і і і цифр і і і
АДДДДДДДДДДЩ і АДДДДДДДДДДЩ і і
і v ЪДДДДДДДДДДї і
АДДДДДДДДДДДДДДДДДДДДДДДДД>імасштабныйГДЩ
і множительі
АДДДДДДДДДДЩ
масштабный множитель
і ЪДДДї ЪДДДДДДДДДДДДДДДДДДї
АДДДДДДДВД>і E ГДДДДДВДДДДДДДДДДДД>іпоследовательностьГДД>
і АДДДЩ ^ і ^ і цифр і
і ЪДДДї і і ЪДДДДї і АДДДДДДДДДДДДДДДДДДЩ
АД>і е ГДЩ АД>ізнакГДДЩ
АДДДЩ АДДДДЩ
число без знака
і ЪДДДДДДДДДДДДДДДї
АДДДДДДДДДДДВД>іцелое без знакаГДДДДДДДД>
і АДДДДДДДДДДДДДДДЩ ^
і ЪДДДДДДДДДДДДї і
АД>івещественноеГДДДДДДДЩ
ібез знака і
АДДДДДДДДДДДДЩ
число со знаком
і ЪДДДДДДДДДДДДДДДї
АДДДДДДДДВДДДДДДДДДДДДДДДД>ічисло без знакаГДДДД>
і ^ АДДДДДДДДДДДДДДДЩ
і ЪДДДДї і
АД>ізнакГДДДДДЩ
АДДДДЩ
Числа с десятичными точками или показателями степени представляют собой константы вещественного типа. Остальные десятичные числа обозначают константы целого типа. Они должны принимать значения в диапазоне от -2147483648 до 2147483647.
Шестнадцатиричные числа обозначают константы целочисленного типа. Они должны находиться в диапазоне от $00000000 до $FFFFFFFF. Окончательный знак значения определяется шестнадцатиричной записью.Меткой является последовательность цифр в диапазоне от 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 і ^
і АДДДДДДДДДДДДДДДДДДДДДДЩ і
і ЪДДДї ЪДДДї і
АДДДДДДД>і ' ГДДДДДД>і ' ГДДДДДЩ
АДДДЩ АДДДЩ
ЪДДДї ЪДДДДДДДДДДДДДДДДДДДї
символ строки ДДДДДД>і # ГД>і беззнаковое целое ГДВДД>
^ АДДДЩ АДДДДДДДДДДДДДДДДДДДЩ і
і і
АДДДДДЩ
Примечание: CR - символ возврата каретки.
Длина символьной строки - это фактическое число символов в строке. Строка символов любой длины совместима с любым строковым типом и, при разрешении директивой {$X+} расширенного синтаксиса, с типом PChar.. Кроме того, строка символов с длиной, равной 1, совместима с любым типом Char. Строка символов длиной n, где n больше или равен 1, допустима для любого строкового типа и упакованных массивов из n символов.Следующие конструкции представляют собой комментарии и поэтому игнорируются компилятором:
{ любой текст, не содержащий правую фигурную скобку }
(* любой текст, не содержащий звездочку/правую круглую
скобку *)
Комментарий, содержащий знак доллара ($) сразу после открывающей скобки { или (*, является директивой компилятора. За символом $ следует мнемоника команды компилятора.
Примечание: Общее описание директив компилятора дано в Главе 2 "Справочного руководства программиста".
В Borland Pascal строки программы имеют максимальную длину в 126 символов.