Структура Языка Паскаль
Программы для компилятора TMT Pascal должны быть написаны в Редакторе
Кода TMT Pascal IDE или в редакторе по вашему выбору. Исходные файлы,
созданные вашим редактором должны иметь стандартный текст ASCII.
Допускаются все символы, ASCII-код которых лежит в пределах диапазона
от 32 до 127 (десятичные числа). Символы Управления (символы, кодовое
значение которых меньше 32) обрабатываются как пробелы.
Лексемы и идентификаторы
Зарезервированные слова
Операторы и разделители
Константы
Программные Комментарии
Лексемы и идентификаторы
В исходном файле набор символов, в который не входит пробел (код 32),
называется лексемой. Лексемы разделяются любым количеством пробелов
или символов управления (в диапазоне от 0 до 32). Например, в
следующем сегменте,
Writeln('Hello, World!');
пять лексем: идентификатор
Writeln, левая и правая круглые скобки,
точка с запятой и строка '
Hello, World!' Программы - это
последовательности лексем, которые сообщают компилятору, какой код
нужно генерировать. Существуют несколько типов лексем. Например,
идентификаторы, зарезервированные слова, операторы и т.п. Каждый тип
лексем описывается далее в этом руководстве.
Идентификаторы - это лексемы, которые имеют определенное значение в
TMT Pascal. Идентификаторы начинаются с буквы (
A-Z или
a-z) или
символа подчеркивания, и могут содержать буквы, символы подчеркивания
и цифры (0-9). Максимальная длина идентификатора - 255 символов,
однако, только первые 63 символа имеют значение. TMT Pascal не
чувствителен к регистру, поэтому идентификаторы
WriteLn, writeln и
WRITELN являются идентичными. Зарезервированные слова, имена процедур
и переменные являются примерами идентификаторов.
Зарезервированные слова
Зарезервированные слова - это идентификаторы, которые имеют
определенное значение в TMT Pascal. Это значение не может быть
изменено или заменено каким-либо способом. Ниже приведен список
зарезервированных слов TMT Pascal:
and goto program
array if record
asm implementation repeat
begin in set
case inherited shl
const inline shr
constructor interface string
declare label then
destructor library to
div mod type
do nil unit
downto not until
else object uses
end of var
exports or virtual
file overload while
for packed with
function procedure xor
Операторы и разделители
Операторы и разделители - это лексемы, которые также имеют
определенное значение. Ниже приведен список допустимых операторов и
разделителей и их назначение:
Лексема Использование
@ оператор адреса
^ Оператор переадресации указателя
+ Сложение или дополнение значений в множество
- Вычитание или удаление значений из множества
* Умножение или пересечение множеств
/ Вещественное деление
div Целое деление
mod Модуль (остаток от целого деления)
() Круглые скобки
[] Нижний разделитель, константы множества
:= Оператор присваивания
. Оператор выбора поля
, Разделитель
.. Разделитель диапазона
: Разделитель Type или Case
= Равно
< Меньше
> Больше
<= Меньше или равно
>= Больше или равно
<> Не равно
and Логическое И
in Оператор множества
not Логическое НЕ
or Логическое ИЛИ
shl Поразрядный левый сдвиг, заменяющий правую часть нулями
shr Поразрядный правый сдвиг, заменяющий левую часть нулями
xor Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
Приоритет операторов
Операторы учитывают манипуляцию с некоторыми типами идентификаторов.
Для выражений с тремя и более операндами (т.е. 5*4+2) применяются
правила старшинства. Порядок старшинства для операторов следующий:
Оператор Тип
Унарные Операторы @, not
Операторы Умножения *, / , div, mod, and, shl, shr
Операторы Сложения +, -, or, xor
Операторы сравнения =, <>, <, >, <=, >= , in
Операции выполняются слева направо, в то же время операции с более
высоким приоритетом выполняются первыми. Более подробная информация
об операторах находится в разделе
Выражения.
Константы
Константа - это идентификатор, который имеет постоянное значение и
не изменяется на протяжении всей программы. TMT Pascal предоставляет
два стандартных типа констант:
См. также:
Описание Констант
Программные комментарии
Хороший программист знает, что комментарии в исходном коде программы
могут быть очень полезны. Комментарии выделяются символами "
{" и "
}"
или "
(* " и "
*)". Все комментарии игнорируются во время компиляции.
Комментарии не могут содержать вложенные комментарии, которые
выделяются такими же разделителями. Ниже приведен пример традиционных
комментариев Паскаля:
{ Это комментарий }
(* Другой комментарий *)
(* Этот комментарий { вложенный } *)
{ Другой (* вложенный *) комментарий }
(* Это неправильный (* комментарий *) *)
В дополнениe к традиционным комментариям TMT Pascal поддерживает
комментарии
C/C++ и стиля
АДА, которые начинаются с двойного дефиса
и заканчиваются в конце строки. Пример:
/* Это комментарий С-стиля */
Space:=' '; -- Комментарий АДА-стиля
FillChar(Ptr ($A0000), 64000, 0); // Комментарий С++
Замечания:
Комментарий, который содержит знак доллара (
$) сразу после символа
открытия
{, (* или
/* - это директива компилятора. Мнемоника команды
компилятора следует за символом
$.
Важно!
Начиная с версии 3.0, TMT Pascal не поддерживает комментарии
АДА-стиля по умолчанию. Мы планируем в будущем полностью удалить
поддержку комментариев АДА-стиля и рекомендуем вам заменить все
комментарии стиля АДА в вашей программе традиционными комментариями
Паскаля или стиля С/С++. Используйте директиву компилятора {$AC+},
если хотите откомпилировать старые исходные файлы с TMT Pascal 3.0
или выше (см.
$AC: Ada-Style Comments Switch).