From: Alan Mackenzie <acm@muc.de>
To: emacs-devel@gnu.org
Subject: Fix the choked unreality in page Parser State in syntax.texi.
Date: Wed, 18 Dec 2019 19:54:23 +0000 [thread overview]
Message-ID: <20191218195423.GA5215@ACM> (raw)
Hello, Emacs.
The page Parser State in the Elisp manual gives a choked, vague,
inadequate impression. The cause is clear - A parser state is exactly
the return value of parse-partial-sexp, yet that function is not
mentioned once in the page.
In fact, the page looks censored to avoid mentioning parse-partial-sexp.
This is ridiculous and harmful.
I therefore propose installing the following documentation patch for
Emacs 27. It also tidies up one or two untidinesses:
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index 63d534dd13..d494d6fc5e 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -797,12 +797,13 @@ Parser State
A @dfn{parser state} is a list of (currently) eleven elements
describing the state of the syntactic parser, after it parses the text
between a specified starting point and a specified end point in the
-buffer. Parsing functions such as @code{syntax-ppss}
+buffer using @code{parse-partial-sexp} (@pxref{Low-Level Parsing}).
+Parsing functions such as @code{syntax-ppss}
@ifnottex
(@pxref{Position Parse})
@end ifnottex
-return a parser state as the value. Some parsing functions accept a
-parser state as an argument, for resuming parsing.
+also return a parser state as the value. @code{parse-partial-sexp}
+can accept a parser state as an argument, for resuming parsing.
Here are the meanings of the elements of the parser state:
@@ -866,11 +867,11 @@ Parser State
@end enumerate
Elements 1, 2, and 6 are ignored in a state which you pass as an
-argument to continue parsing. Elements 9 and 10 are mainly used
-internally by the parser code.
+argument to @code{parse-partial-sexp} to continue parsing. Elements 9
+and 10 are mainly used internally by the parser code.
- One additional piece of useful information is available from a
-parser state using this function:
+ Two additional pieces of useful information are available from a
+parser state using these functions:
@defun syntax-ppss-toplevel-pos state
This function extracts, from parser state @var{state}, the last
@@ -883,8 +884,8 @@ Parser State
@end defun
@defun syntax-ppss-context state
-Return @code{string} if @var{state} is a string and @code{comment} if
-it's a comment.
+Return @code{string} if the end position of a scan returning
+@var{state} is in a string, and @code{comment} if it's in a comment.
@end defun
@node Low-Level Parsing
--
Alan Mackenzie (Nuremberg, Germany).
next reply other threads:[~2019-12-18 19:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-18 19:54 Alan Mackenzie [this message]
2019-12-19 15:02 ` Fix the choked unreality in page Parser State in syntax.texi Eli Zaretskii
2019-12-20 16:45 ` Stefan Monnier
2019-12-20 20:37 ` Alan Mackenzie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191218195423.GA5215@ACM \
--to=acm@muc.de \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).