В алфавит языка программирования паскаль входят следующие символы

Перейти к Индексу Фундаментальных синтаксических элементов Фундаментальные синтаксические элементы. Называемые токенами, объединяются. Чтобы сформировать выражения. Объявления и утверждения. Оператор описывает алгоритмическое действие. Которое может быть выполнено в программе. Выражение — это синтаксическая единица. Которая встречается в операторе и обозначает значение. Объявление определяет идентификатор (например. Имя функции или переменной). Который может использоваться в выражениях и операторах. Инеобходимости. Выделяет память для этого идентификатора.

Содержание

В этом разделе представлен набор символов языка Object Pascal и описан синтаксис объявления:

  • Идентификаторы
  • Числа
  • Символьные строки
  • Этикетки
  • Комментарии к исходному коду

Объектный набор символов Pascal

Объектный язык Паскаль использует кодировку символов Юникода для своего набора символов. Включая буквенные и буквенно-цифровые символы Юникода и символ подчеркивания. Объектный Паскаль не чувствителен к регистру. Пробел и управляющие символы (от U+0000 до U+001F. Включая U+000D. Символ возврата или конца строки) являются пробелами.

Компилятор Appmethod примет файл, закодированный в UCS-2 или UCS-4, если файл содержит метку порядка байтов.

Однако использование форматов, отличных от UTF-8, может привести к снижению скорости компиляции. Все символы в исходном файле, закодированном UCS-4, должны быть представлены в UCS-2 без суррогатных пар. Кодировки UCS-2 с суррогатными парами (включая GB18030) принимаются только в том случае. Если задана опция компилятора кодовых страниц.

Жетоны

На простейшем уровне программа представляет собой последовательность токенов. Разделенных разделителями. Токен — это наименьшая значимая единица текста в программе. Разделитель-это либо пробел. Либо комментарий. Строго говоря. Не всегда необходимо ставить разделитель между двумя токенами; например. Фрагмент кода:

 Размер:=20;Цена:=10; 

это совершенно законно. Условность и читаемость. Однако, диктуют. Что мы пишем это в двух строках, как:

 Размер := 20; Цена := 10; 

Маркеры классифицируются как специальные символы. Идентификаторы. Зарезервированные слова. Директивы, цифры. Метки и символьные строки. Разделитель может быть частью токена только в том случае. Если он представляет собой символьную строку. Соседние идентификаторы. Зарезервированные слова. Цифры и метки должны иметь один или несколько разделителей между ними.

Специальные символы

Специальные символы-это не буквенно-цифровые символы или пары таких символов. Которые имеют фиксированное значение. Следующие одиночные символы являются специальными символами:

# $ & ‘ ( ) * + . — . / : ; @ [ ] ^ { }

Следующие пары символов также являются специальными символами:

(* (. *) .) .. // := =

Комментариях и директивах компилятора):

Специальные символы   Похожие Специальные Символы

[    ]

(.   .)

{    }

(*    *)

Левая скобка [ аналогична символьной паре левой скобки и точки (..

Правая скобка ] аналогична символьной паре точки и правой скобки

.).

Левая скобка { аналогична символьной паре левых скобок и звездочки (*.

Правая скобка } аналогична символьной паре звездочки и правой скобки *).

Примечание: %, ?, \, !, (двойные кавычки), _ (подчеркивание), | (труба) и ~ (тильда) не являются специальными символами.

Идентификаторы

Идентификаторы обозначают константы. Переменные, поля. Типы, свойства. Процедуры, функции. Программы, блоки. Библиотеки и пакеты. Идентификатор может быть любой длины. Но только первые 255 символов являются значимыми. Идентификатор должен начинаться с буквенного символа. Символа Юникода или символа подчеркивания (

_) и не должен содержать пробелов. Буквенно-цифровые символы. Символы Юникода. Цифры и подчеркивания допускаются после первого символа. Зарезервированные слова не могут использоваться в качестве идентификаторов. Поскольку язык Object Pascal не учитывает регистр. Идентификатор. Например calculateValue может быть написано любым из этих способов:

 calculateValue calculateValue calculatevalue CALCULATEVALUE 

Поскольку имена блоков соответствуют именам файлов. Несоответствия в case иногда могут повлиять на компиляцию. Дополнительные сведения см. в разделе Ссылки на единицы измерения и предложение Uses

в разделе Программы и единицыизмерения .

Квалифицированные Идентификаторы

Когда вы используете идентификатор. Который был объявлен в нескольких местах. Иногда необходимо квалифицировать этот идентификатор. Синтаксис квалифицированного идентификатора таков:

identifier1.identifier2

где identifier1 квалифицирует identifier2. Например, если каждый из двух блоков объявляет переменнуюcurrentValue . Вы можете указать. Что хотите получить доступ к currentValue в Unit2, написав:

 Unit2.currentValue 

Квалификаторы могут быть повторены. Например:

 Form1.Button1.Click 

вызывает метод Click в Button1 формы Form1.

Если вы не квалифицируете идентификатор. Его интерпретация определяется правилами области видимости. Описанными в Блоках и области видимости внутри деклараций и операторов.

Расширенные идентификаторы

Вы можете столкнуться с идентификаторами (например. Типами или методами в классе). Имеющими то же имя. Что и зарезервированное слово языка Object Pascal. Например, класс может иметь метод begin. Зарезервированные слова Object Pascal. Такие как begin, не могут использоваться для имени идентификатора.

Если вы полностью квалифицируете идентификатор. То нет никаких проблем.

Например, если вы хотите использовать тип зарезервированного слова Object Pascal для имени идентификатора. Вы должны использовать его полное имя:

 var TMyType.type  

В качестве более короткой альтернативы оператор амперсанда (&) может быть использован для разрешения неоднозначностей между идентификаторами и зарезервированными словами языка Object Pascal. & предотвращает анализ ключевого слова как ключевого слова (то есть зарезервированного слова). Если вы встретите метод или тип с тем же именем. Что и ключевое слово Object Pascal. Вы можете опустить спецификацию пространства имен. Если перед именем идентификатора поставите амперсанд.

Но когда вы объявляете идентификатор. Который имеет то же имя. Что и ключевое слово, вы должны использовать &:

 type &Type = Integer; // Префикс с ' & ' - это нормально. 

Зарезервированные Слова

Следующие зарезервированные слова нельзя переопределить или использовать в качестве идентификаторов.

Объект Pascal Зарезервированные Слова:

и

конец

интерфейс

запись

var

массив

кроме

является

повторять

пока

как

экспорт

этикетка

ресурсы    

с        

асм

файл

библиотека

набор    

xor

начать

окончательная доработка   

модификация

шл

дело

наконец

нуль

шр

класс

для

нет

строка

const

функция

объект

затем

конструктор

идти к

от

threadvar

деструктор

если

или

Для

dispinterface     

реализация    

уплотненный

пробовать

див.

в

процедура    

Тип

делать

унаследованный

программа      

единица измерения

вниз

инициализация   

собственность

до тех пор

ещё

встроенный

поднимать

использует

Примечание: В дополнение к словам в предыдущей таблице

private, protected, public, publishedи automated действуют как зарезервированные слова в объявлениях типов классов . Но в остальном рассматриваются как директивы. Слова

at и on также имеют особое значение и должны рассматриваться как зарезервированные слова. Ключевые слова объекта используются для определения указателей на методы.

Директивы

Object Pascal имеет несколько типов директив. Одно из значений слова Этот тип директивы имеет особое значение в языке Object Pascal. Ноличие от зарезервированного слова. Появляется только в контекстах. Где не могут встречаться пользовательские идентификаторы.

Следовательно. Хотя это и нецелесообразно. Вы можете определить идентификатор. Который выглядит точно так же. Как директива.

Директивы:

абсолютный

экспорт

Имя

Публично

stdcall

абстрактный

внешний

около1

опубликованный

строгий

ассемблер

далеко1

nodefault

Читать

хранящийся

автоматизированный

Финал

оператор10

только для чтения

небезопасный

cdecl

вперед

из

ссылка9

варарги

содержит7

помощник8

перегрузка

Зарегистрироваться

виртуальный

По умолчанию

инвентарь

переопределение7

реинтродукция

winapi6

задержка11

Указатель

пакет

требуется7

писать

осуждаемый

рядный2

паскаль

резидент1

writeonly

dispid

библиотека3

Платформа

safecall

динамический

местный4

Частное

запечатанный5

экспериментальный

Сообщение

защищенный

статический

Примечания:  1. far, nearи resident устарели. 2. inline используется директивным стилем в конце объявления процедуры и функции для обозначения процедуры или функции для встраивания. Но стал зарезервированным словом для Turbo Pascal.

3. библиотека также является ключевым словом при использовании в качестве первого маркера в исходном коде проекта; она указывает на цель DLL.

В противном случае он помечает символ так. Чтобы при использовании он выдавал предупреждение библиотеки. 4. local была директивой Kylix и игнорируется для Object Pascal для Win32. 5. sealed-это директива класса с нечетным синтаксисом: ‘class sealed’. Запечатанный класс не может быть расширен или производным . 6. winapi-это то же самое. Что stdcall для Object Pascal для Win32; 64-разрядная версия отличается.

7. пакет, используемый в качестве первого маркера. Указывает на цель пакета и включает синтаксис пакета. requires и contains являются директивами только в синтаксисе пакета. 8. helper указывает на 9. reference указывает на ссылку на функцию или процедуру. 10. оператор указывает оператор класса. 11. Директива delayed описана в Библиотеках и пакетах.

Дополнительные сведения о директивах Object Pascal см. в разделе:

Другие типы директив

Object Pascal имеет два типа директив. Включая контекстно-зависимый тип директивы. Описанный выше.

Директива может быть идентификатором (обычно это не ключевое слово). Который вы помещаете в конец объявления. Чтобы изменить его значение. Например:

 процедура P; вперед; 

или:

 процедура M; виртуальная; переопределение; 

или:

 свойство Foo: Integer read FFoo write FFoo default 42; 

Последний тип директивы-официальная директива компилятора, которая представляет собой переключатель или параметр. Влияющий на поведение компилятора.

   // DEBUGINFO ON 

Как и другие типы директив, директивы компилятора не являются ключевыми словами. Список директив компилятора см. в разделе Список директив компилятора Object Pascal.

Цифры

Целочисленные и вещественные константы могут быть представлены в десятичной системе счисления в виде последовательностей цифр без запятых или пробелов и снабжены префиксом оператора + или для обозначения знака. Значения по умолчанию положительные (так что, например, 67258 эквивалентно +67258) и должны находиться в диапазоне наибольшего предопределенного вещественного или целочисленного типа.

Числа с десятичными точками или экспонентами обозначают вещественные числа. В то время как другие числа обозначают целые. Когда символ Е или е встречается внутри реального, это означает Например, 7E2 означает 7 * 10^2, а 12.25 e+6 и 12.25e6 оба означают 12.25 * 10^6.

Префикс знака доллара указывает на шестнадцатеричную цифру. Например, $8F. Шестнадцатеричные числа без предшествующего унарного оператора принимаются за положительные значения. Во время присвоения. Если шестнадцатеричное значение находится за пределами диапазона принимающего типа. Возникает ошибка. За исключением случая целого числа (32-разрядного целого числа). Где возникает предупреждение. В этом случае значения. Превышающие положительный диапазон для целого числа. Принимаются за отрицательные числа в соответствии с целочисленным представлением дополнения 2.

Дополнительные сведения о вещественных и целочисленных типах см. в разделе Типы данных. Переменные и константы. Сведения о типах данных числительных см. в разделе Объявленные константы.

Этикетки

В качестве метки можно использовать либо идентификатор. Либо неотрицательное целое число. Компилятор Object Pascal допускает числовые метки от 0 до 4294967295 (диапазон uint32).

Метки используются в операторах goto. Дополнительные сведения об операторах и метках Goto см. в разделе Операторы Goto в объявлениях и операторах.

Символьные строки

Символьная строка. Также называемая строковым литералом или строковой константой. Состоит из строки в кавычках. Управляющей строки или комбинации строк в кавычках и управляющих строк. Разделители могут встречаться только в строках в кавычках.

Строка в кавычках-это последовательность символов из ANSI или многобайтового набора символов. Записанная в одной строке и заключенная в апострофы. Строка в кавычках. В которой между апострофами ничего нет. Является нулевой строкой. Два последовательных апострофа в строке в кавычках обозначают один символ. А именно апостроф.

Эта строка внутренне представлена как строка Unicode. Закодированная как UTF-16. Символы в Базовой многоязычной плоскости (BMP) занимают 2 байта, а символы. Не входящие в BMP. Требуют 4 байта.

Например:

 'Appmethod'  'Ты увидишь' {  'アプリケーションを Unicode 対応にする' ''''  ''  ' '  

Управляющая строка-это последовательность одного или нескольких управляющих символов, каждый из которых состоит из символа#, за которым следует целочисленная константа без знака от 0 до 65 535 (десятичная) или от $0 до $FFFF (шестнадцатеричная) в кодировке UTF-16, и обозначает символ. Соответствующий заданному значению кода. Каждое целое число внутренне представлено 2 байтами в строке. Это полезно для представления управляющих символов и многобайтовых символов. Контрольная строка:

#89#111#117 

эквивалентно строке в кавычках:


Вы можете комбинировать строки в кавычках с управляющими строками. Чтобы сформировать более крупные символьные строки. Например, вы можете использовать:

'Строка 1'#13#10 'Строка 2' 

чтобы поместить линию возврата каретки между Однако вы не можете объединить две строки в кавычках таким образом. Так как пара последовательных апостроф интерпретируется как один символ. (Чтобы объединить строки в кавычки. Используйте оператор + или просто объедините их в одну строку в кавычках.)

Символьная строка совместима с любым типом строки и с типом PChar. Поскольку тип AnsiString может содержать многобайтовые символы. Строка символов с одним символом. Одним или несколькими. Совместима с любым типом символов. Если включен расширенный синтаксис (с директивой компилятора ), непустая символьная строка длины n совместима с массивами на основе нуля и упакованными массивами из n символов. Дополнительные сведения см. в разделе Типы данных. Переменные и константы.

Комментарии и директивы компилятора

Комментарии игнорируются компилятором. За исключением тех случаев. Когда они функционируют как разделители (разделяющие соседние токены) или директивы компилятора.

Существует несколько способов построения комментариев:

 { Текст между левой и правой фигурными скобками-это комментарий. } (* Текст между левой скобкой плюс звездочка и  звездочкой плюс правая скобка также является комментарием *) // Текст между двойной косой чертой и концом строки является комментарием. 

Одинаковые комментарии не могут быть вложенными. Например, (*{}*)уилл. Эта последняя форма полезна для комментирования разделов кода. Которые также содержат комментарии.

Вот некоторые рекомендации о том. Как и когда использовать три типа символов комментариев:

  • Используйте двойную косую черту (//) для комментирования временных изменений. Внесенных во время разработки. Вы можете использовать удобный механизм редактора кода CTRL+/(косая черта) для быстрой вставки символа комментария с двойной косой чертой во время работы.
  • Используйте скобку-звездочку Этот символ комментария позволяет удалить несколько строк исходного кода. Включая другие типы комментариев. Из рассмотрения компилятором.

Комментарий. Содержащий знак доллара ($) сразу после открытия { или ( * ), является директивой компилятора. Например,

  

говорит компилятору не генерировать предупреждающие сообщения.

смотрите также