class_docstr: For reStructuredText markup.
  
  .. versionadded:: 0.7
  
  Additional options accepted:
  
  `handlecodeblocks`
      Highlight the contents of ``.. sourcecode:: language``,
      ``.. code:: language`` and ``.. code-block:: language``
      directives with a lexer for the given language (default:
      ``True``).
  
      .. versionadded:: 0.8
class_docstr_tok: ["For","reStructuredText","markup",".","..","versionadded",":",":","0.7","Additional","options","accepted",":","`","handlecodeblocks","`","Highlight","the","contents","of","``","..","sourcecode",":",":","language","``",",","``","..","code",":",":","language","``","and","``","..","code-block",":",":","language","``","directives","with","a","lexer","for","the","given","language","(","default",":","``","True","``",")",".","..","versionadded",":",":","0.8"]
code: def analyse_text(text):
      if text[:2] == ".." and text[2:3] != ".":
          return 0.3
      p1 = text.find("\n")
      p2 = text.find("\n", p1 + 1)
      if (
          p2 > -1
          and p1 * 2 + 1 == p2  # has two lines
          and text[p1 + 1] in "-="  # they are the same length
          and text[p1 + 1]  # the next line both starts and ends with
          == text[p2 - 1]
      ):  # ...a sufficiently high header
          return 0.5
  
imports: import re
  from pygments.lexers.html import XmlLexer
  from pygments.lexers.javascript import JavascriptLexer
  from pygments.lexers.css import CssLexer
  from pygments.lexers.lilypond import LilyPondLexer
  from pygments.lexers.data import JsonLexer
  from pygments.lexer import RegexLexer, DelegatingLexer, include, bygroups, using, this, do_insertions, default, words
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, Number, Punctuation, Generic, Other, Whitespace
  from pygments.util import get_bool_opt, ClassNotFound
label_desc: Use image node_id 3 for calling the RstLexer obj's underlying member method code with example usage: obj.analyse_text(text) and returns: int, int