elisp: Syntax Descriptors
34.2 Syntax Descriptors
=======================
The “syntax class” of a character describes its syntactic role. Each
syntax table specifies the syntax class of each character. There is no
necessary relationship between the class of a character in one syntax
table and its class in any other table.
Each syntax class is designated by a mnemonic character, which serves
as the name of the class when you need to specify a class. Usually,
this designator character is one that is often assigned that class;
however, its meaning as a designator is unvarying and independent of
what syntax that character currently has. Thus, ‘\’ as a designator
character always stands for escape character syntax, regardless of
whether the ‘\’ character actually has that syntax in the current syntax
table. Syntax Class Table, for a list of syntax classes and
their designator characters.
A “syntax descriptor” is a Lisp string that describes the syntax
class and other syntactic properties of a character. When you want to
modify the syntax of a character, that is done by calling the function
‘modify-syntax-entry’ and passing a syntax descriptor as one of its
arguments (Syntax Table Functions).
The first character in a syntax descriptor must be a syntax class
designator character. The second character, if present, specifies a
matching character (e.g., in Lisp, the matching character for ‘(’ is
‘)’); a space specifies that there is no matching character. Then come
characters specifying additional syntax properties (Syntax
Flags).
If no matching character or flags are needed, only one character
(specifying the syntax class) is sufficient.
For example, the syntax descriptor for the character ‘*’ in C mode is
‘". 23"’ (i.e., punctuation, matching character slot unused, second
character of a comment-starter, first character of a comment-ender), and
the entry for ‘/’ is ‘. 14’ (i.e., punctuation, matching character slot
unused, first character of a comment-starter, second character of a
comment-ender).
Emacs also defines “raw syntax descriptors”, which are used to
describe syntax classes at a lower level. Syntax Table
Internals.
Menu