Spec-Zone.ru › Elisp

Дескрипторы синтаксиса

Класс синтаксиса символа описывает его синтаксическую роль. Каждая таблица синтаксиса задаёт класс синтаксиса для каждого символа. Между классом символа в одной таблице синтаксиса и его классом в любой другой таблице не обязательно существует связь.

Каждый класс синтаксиса обозначается мнемоническим символом, который служит именем класса, когда требуется указать класс. Обычно в качестве такого символа используется тот, которому часто назначают этот класс; однако его значение в качестве обозначения неизменно и не зависит от того, какой синтаксис в данный момент назначен самому этому символу. Таким образом, ‘\’ в качестве обозначающего символа всегда означает синтаксис символа экранирования, независимо от того, назначен ли символу ‘\’ такой синтаксис в текущей таблице синтаксиса. Список классов синтаксиса и обозначающих их символов см. в Таблице классов синтаксиса.

Дескриптор синтаксиса — это строка Lisp, описывающая класс синтаксиса и другие синтаксические свойства символа. Чтобы изменить синтаксис символа, вызовите функцию modify-syntax-entry и передайте дескриптор синтаксиса в качестве одного из её аргументов (см. Функции таблиц синтаксиса).

Первым символом дескриптора синтаксиса должен быть символ, обозначающий класс синтаксиса. Второй символ, если он есть, задаёт парный символ (например, в Lisp парным символом для ‘(’ является ‘)’); пробел означает, что парного символа нет. Далее следуют символы, задающие дополнительные свойства синтаксиса (см. Флаги синтаксиса).

Если парный символ или флаги не нужны, достаточно одного символа, задающего класс синтаксиса.

Например, дескриптор синтаксиса символа ‘*’ в режиме C — это ". 23" (то есть знак пунктуации, слот парного символа не используется, первый символ начала комментария, второй символ конца комментария), а запись для ‘/’ — ‘. 14’ (то есть знак пунктуации, слот парного символа не используется, первый символ начала комментария, второй символ конца комментария).

В Emacs также определены дескрипторы необработанного синтаксиса, которые используются для описания классов синтаксиса на более низком уровне. См. Внутреннее устройство таблиц синтаксиса.

  • Таблица классов синтаксиса
  • Флаги синтаксиса

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Syntax-Descriptors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API