Дескрипторы синтаксиса
Класс синтаксиса символа описывает его синтаксическую роль. Каждая таблица синтаксиса указывает класс синтаксиса каждого символа. Нет необходимой связи между классом символа в одной таблице синтаксиса и его классом в любой другой таблице.
Каждый класс синтаксиса обозначается мнемоническим символом, который служит именем класса, когда вам нужно указать класс. Обычно этот символ-обозначение — это символ, которому часто присваивается этот класс; однако его значение в качестве обозначения неизменно и независимо от текущего синтаксиса этого символа. Таким образом, «\» в качестве символа-обозначения всегда обозначает синтаксис символа экранирования, независимо от того, имеет ли символ «\» этот синтаксис в текущей таблице синтаксиса. См. Таблицу классов синтаксиса, для списка классов синтаксиса и их символов-обозначений.
Дескриптор синтаксиса — это строка Lisp, которая описывает класс синтаксиса и другие синтаксические свойства символа. При необходимости изменить синтаксис символа, это делается путем вызова функции modify-syntax-entry и передачи дескриптора синтаксиса в качестве одного из ее аргументов (см. Функции таблиц синтаксиса).
Первый символ в дескрипторе синтаксиса должен быть символом обозначения класса синтаксиса. Второй символ, если он есть, указывает соответствующий символ (например, в Lisp соответствующий символ для «(» — «)»); пробел указывает, что соответствующего символа нет. Затем следуют символы, определяющие дополнительные свойства синтаксиса (см. Флаги синтаксиса).
Если соответствующий символ или флаги не нужны, достаточно одного символа (указывающего класс синтаксиса).
Например, дескриптор синтаксиса символа «*» в режиме C — ". 23" (т.е. знак препинания, слот соответствующего символа не используется, второй символ начального комментария, первый символ завершающего комментария), а запись для «/» — «. 14» (т.е. знак препинания, слот соответствующего символа не используется, первый символ начального комментария, второй символ завершающего комментария).
Emacs также определяет сырые дескрипторы синтаксиса, которые используются для описания классов синтаксиса на более низком уровне. См. Внутренности таблиц синтаксиса.
| • Таблицы классов синтаксиса | Таблица классов синтаксиса. | |
| • Флаги синтаксиса | Дополнительные флаги, которые может иметь каждый символ. |
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Syntax-Descriptors.html