X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/ab422c4d6899b1442cb6954c1829c1fb656b006c..eb0f65b4fbbea60100b53cb40a1d7138d47ad0d2:/doc/lispref/syntax.texi diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi index a07f45c100..90daf34f0d 100644 --- a/doc/lispref/syntax.texi +++ b/doc/lispref/syntax.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990-1995, 1998-1999, 2001-2013 Free Software +@c Copyright (C) 1990-1995, 1998-1999, 2001-2015 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Syntax Tables @@ -141,6 +141,7 @@ Internals}. @node Syntax Class Table @subsection Table of Syntax Classes +@cindex syntax class table Here is a table of syntax classes, the characters that designate them, their meanings, and examples of their use. @@ -202,7 +203,7 @@ suppressed. The Lisp modes have two string quote characters: double-quote (@samp{"}) and vertical bar (@samp{|}). @samp{|} is not used in Emacs Lisp, but it is used in Common Lisp. C also has two string quote characters: -double-quote for strings, and single-quote (@samp{'}) for character +double-quote for strings, and apostrophe (@samp{'}) for character constants. Human text has no string quote characters. We do not want quotation @@ -335,6 +336,7 @@ that this kind of comment can be nested. For a two-character comment delimiter, @samp{n} on either character makes it nestable. +@cindex comment style Emacs supports several comment styles simultaneously in any one syntax table. A comment style is a set of flags @samp{b}, @samp{c}, and @samp{n}, so there can be up to 8 different comment styles. @@ -409,6 +411,7 @@ is not a syntax table. @end defun @deffn Command modify-syntax-entry char syntax-descriptor &optional table +@cindex syntax entry, setting This function sets the syntax entry for @var{char} according to @var{syntax-descriptor}. @var{char} must be a character, or a cons cell of the form @code{(@var{min} . @var{max})}; in the latter case, @@ -478,17 +481,17 @@ it easier to see the character returned by @code{char-syntax}.) @end group @group -;; Forward slash characters have punctuation syntax. Note that this -;; @code{char-syntax} call does not reveal that it is also part of -;; comment-start and -end sequences. +;; Forward slash characters have punctuation syntax. +;; Note that this @code{char-syntax} call does not reveal +;; that it is also part of comment-start and -end sequences. (string (char-syntax ?/)) @result{} "." @end group @group -;; Open parenthesis characters have open parenthesis syntax. Note -;; that this @code{char-syntax} call does not reveal that it has a -;; matching character, @samp{)}. +;; Open parenthesis characters have open parenthesis syntax. +;; Note that this @code{char-syntax} call does not reveal that +;; it has a matching character, @samp{)}. (string (char-syntax ?\()) @result{} "(" @end group @@ -506,6 +509,11 @@ This function returns the current syntax table, which is the table for the current buffer. @end defun +@deffn Command describe-syntax &optional buffer +This command displays the contents of the syntax table of +@var{buffer} (by default, the current buffer) in a help buffer. +@end deffn + @defmac with-syntax-table table body@dots{} This macro executes @var{body} using @var{table} as the current syntax table. It returns the value of the last form in @var{body}, after @@ -584,6 +592,8 @@ in turn, repeatedly, until they all return @code{nil}. @node Motion and Syntax @section Motion and Syntax +@cindex moving across syntax classes +@cindex skipping characters of certain syntax This section describes functions for moving across characters that have certain syntax classes. @@ -623,6 +633,8 @@ expression prefix syntax class, and characters with the @samp{p} flag. @node Parsing Expressions @section Parsing Expressions +@cindex parsing expressions +@cindex scanning expressions This section describes functions for parsing and scanning balanced expressions. We will refer to such expressions as @dfn{sexps}, @@ -665,6 +677,7 @@ result, Emacs treats them as four consecutive empty string constants. @node Motion via Parsing @subsection Motion Commands Based on Parsing +@cindex motion based on parsing This section describes simple point-motion functions that operate based on parsing expressions. @@ -730,6 +743,7 @@ cannot exceed that many. @node Position Parse @subsection Finding the Parse State for a Position +@cindex parse state for a position For syntactic analysis, such as in indentation, often the useful thing is to compute the syntactic state corresponding to a given buffer @@ -911,6 +925,7 @@ nicely. @node Control Parsing @subsection Parameters to Control Parsing +@cindex parsing, control parameters @defvar multibyte-syntax-as-symbol If this variable is non-@code{nil}, @code{scan-sexps} treats all @@ -1052,6 +1067,7 @@ standard categories are available in all modes. the range @w{@samp{ }} to @samp{~}. You specify the name of a category when you define it with @code{define-category}. +@cindex category set The category table is actually a char-table (@pxref{Char-Tables}). The element of the category table at index @var{c} is a @dfn{category set}---a bool-vector---that indicates which categories character @var{c}