Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
Classes | Functions | Variables
docutils.parsers.rst.states Namespace Reference

Classes

class  Body
 
class  BulletList
 
class  Definition
 
class  DefinitionList
 
class  EnumeratedList
 
class  Explicit
 
class  ExtensionOptions
 
class  FieldList
 
class  Inliner
 
class  InterpretedRoleNotImplementedError
 
class  Line
 
class  LineBlock
 
class  MarkupError
 
class  MarkupMismatch
 
class  NestedStateMachine
 
class  OptionList
 
class  ParserError
 
class  QuotedLiteralBlock
 
class  RFC2822Body
 
class  RFC2822List
 
class  RSTState
 
class  RSTStateMachine
 
class  SpecializedBody
 
class  SpecializedText
 
class  Struct
 
class  SubstitutionDef
 
class  Text
 
class  UnknownInterpretedRoleError
 

Functions

 build_regexp (definition, compile=True)
 
 _loweralpha_to_int (s, _zero=(ord('a') -1))
 
 _upperalpha_to_int (s, _zero=(ord('A') -1))
 
 _lowerroman_to_int (s)
 

Variables

tuple state_classes
 

Detailed Description

This is the ``docutils.parsers.rst.states`` module, the core of
the reStructuredText parser.  It defines the following:

:Classes:
    - `RSTStateMachine`: reStructuredText parser's entry point.
    - `NestedStateMachine`: recursive StateMachine.
    - `RSTState`: reStructuredText State superclass.
    - `Inliner`: For parsing inline markup.
    - `Body`: Generic classifier of the first line of a block.
    - `SpecializedBody`: Superclass for compound element members.
    - `BulletList`: Second and subsequent bullet_list list_items
    - `DefinitionList`: Second+ definition_list_items.
    - `EnumeratedList`: Second+ enumerated_list list_items.
    - `FieldList`: Second+ fields.
    - `OptionList`: Second+ option_list_items.
    - `RFC2822List`: Second+ RFC2822-style fields.
    - `ExtensionOptions`: Parses directive option fields.
    - `Explicit`: Second+ explicit markup constructs.
    - `SubstitutionDef`: For embedded directives in substitution definitions.
    - `Text`: Classifier of second line of a text block.
    - `SpecializedText`: Superclass for continuation lines of Text-variants.
    - `Definition`: Second line of potential definition_list_item.
    - `Line`: Second line of overlined section title or transition marker.
    - `Struct`: An auxiliary collection class.

:Exception classes:
    - `MarkupError`
    - `ParserError`
    - `MarkupMismatch`

:Functions:
    - `escape2null()`: Return a string, escape-backslashes converted to nulls.
    - `unescape()`: Return a string, nulls removed or restored to backslashes.

:Attributes:
    - `state_classes`: set of State classes used with `RSTStateMachine`.

Parser Overview
===============

The reStructuredText parser is implemented as a recursive state machine,
examining its input one line at a time.  To understand how the parser works,
please first become familiar with the `docutils.statemachine` module.  In the
description below, references are made to classes defined in this module;
please see the individual classes for details.

Parsing proceeds as follows:

1. The state machine examines each line of input, checking each of the
   transition patterns of the state `Body`, in order, looking for a match.
   The implicit transitions (blank lines and indentation) are checked before
   any others.  The 'text' transition is a catch-all (matches anything).

2. The method associated with the matched transition pattern is called.

   A. Some transition methods are self-contained, appending elements to the
      document tree (`Body.doctest` parses a doctest block).  The parser's
      current line index is advanced to the end of the element, and parsing
      continues with step 1.

   B. Other transition methods trigger the creation of a nested state machine,
      whose job is to parse a compound construct ('indent' does a block quote,
      'bullet' does a bullet list, 'overline' does a section [first checking
      for a valid section header], etc.).

      - In the case of lists and explicit markup, a one-off state machine is
        created and run to parse contents of the first item.

      - A new state machine is created and its initial state is set to the
        appropriate specialized state (`BulletList` in the case of the
        'bullet' transition; see `SpecializedBody` for more detail).  This
        state machine is run to parse the compound element (or series of
        explicit markup elements), and returns as soon as a non-member element
        is encountered.  For example, the `BulletList` state machine ends as
        soon as it encounters an element which is not a list item of that
        bullet list.  The optional omission of inter-element blank lines is
        enabled by this nested state machine.

      - The current line index is advanced to the end of the elements parsed,
        and parsing continues with step 1.

   C. The result of the 'text' transition depends on the next line of text.
      The current state is changed to `Text`, under which the second line is
      examined.  If the second line is:

      - Indented: The element is a definition list item, and parsing proceeds
        similarly to step 2.B, using the `DefinitionList` state.

      - A line of uniform punctuation characters: The element is a section
        header; again, parsing proceeds as in step 2.B, and `Body` is still
        used.

      - Anything else: The element is a paragraph, which is examined for
        inline markup and appended to the parent element.  Processing
        continues with step 1.

Function Documentation

◆ build_regexp()

docutils.parsers.rst.states.build_regexp (   definition,
  compile = True 
)
Build, compile and return a regular expression based on `definition`.

:Parameter: `definition`: a 4-tuple (group name, prefix, suffix, parts),
    where "parts" is a list of regular expressions and/or regular
    expression definitions to be joined into an or-group.

Variable Documentation

◆ state_classes

tuple docutils.parsers.rst.states.state_classes
Initial value:
1= (Body, BulletList, DefinitionList, EnumeratedList, FieldList,
2 OptionList, LineBlock, ExtensionOptions, Explicit, Text,
3 Definition, Line, SubstitutionDef, RFC2822Body, RFC2822List)