Лексемы - это минимальные значимые единицы текста в программе, написанной на Паскале.  Они представлены такими  категориями  как специальные символы, идентификаторы, метки, числа и строковые  константы.

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

Примечание: Разделители  не  могут быть частью лексем, за исключением строковых констант.

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 символов.