[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

35.6.3 Parser State

A parser state is a list of ten elements describing the final state of parsing text syntactically as part of an expression. The parsing functions in the following sections return a parser state as the value, and in some cases accept one as an argument also, so that you can resume parsing after it stops. Here are the meanings of the elements of the parser state:

  1. The depth in parentheses, counting from 0. Warning: this can be negative if there are more close parens than open parens between the start of the defun and point.
  2. The character position of the start of the innermost parenthetical grouping containing the stopping point; nil if none.
  3. The character position of the start of the last complete subexpression terminated; nil if none.
  4. Non-nil if inside a string. More precisely, this is the character that will terminate the string, or t if a generic string delimiter character should terminate it.
  5. t if inside a comment (of either style), or the comment nesting level if inside a kind of comment that can be nested.
  6. t if point is just after a quote character.
  7. The minimum parenthesis depth encountered during this scan.
  8. What kind of comment is active: nil for a comment of style “a” or when not inside a comment, t for a comment of style “b,” and syntax-table for a comment that should be ended by a generic comment delimiter character.
  9. The string or comment start position. While inside a comment, this is the position where the comment began; while inside a string, this is the position where the string began. When outside of strings and comments, this element is nil.
  10. Internal data for continuing the parsing. The meaning of this data is subject to change; it is used if you pass this list as the state argument to another call.

Elements 1, 2, and 6 are ignored in a state which you pass as an argument to continue parsing, and elements 8 and 9 are used only in trivial cases. Those elements serve primarily to convey information to the Lisp program which does the parsing.

One additional piece of useful information is available from a parser state using this function:

Function: syntax-ppss-toplevel-pos state

This function extracts, from parser state state, the last position scanned in the parse which was at top level in grammatical structure. “At top level” means outside of any parentheses, comments, or strings.

The value is nil if state represents a parse which has arrived at a top level position.

We have provided this access function rather than document how the data is represented in the state, because we plan to change the representation in the future.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.