class_docstr: A class representing a Type-1 font, for use by backends.
  
  Attributes
  ----------
  parts : tuple
      A 3-tuple of the cleartext part, the encrypted part, and the finale of
      zeros.
  
  prop : Dict[str, Any]
      A dictionary of font properties.
class_docstr_tok: ["A","class","representing","a","Type-1","font",",","for","use","by","backends",".","Attributes","--","--","--","--","--","parts",":","tuple","A","3-tuple","of","the","cleartext","part",",","the","encrypted","part",",","and","the","finale","of","zeros",".","prop",":","Dict","[","str",",","Any","]","A","dictionary","of","font","properties","."]
docstr: A PostScript tokenizer. Yield (token, value) pairs such as
  (cls._whitespace, '   ') or (cls._name, '/Foobar').
docstr_tok: ["A","PostScript","tokenizer",".","Yield","(","token",",","value",")","pairs","such","as","(","cls._whitespace",",","'","'",")","or","(","cls._name",",","'\/Foobar","'",")","."]
code: def _tokens(cls, text):
      """
      A PostScript tokenizer. Yield (token, value) pairs such as
      (cls._whitespace, '   ') or (cls._name, '/Foobar').
      """
      pos = 0
      while pos < len(text):
          match = cls._comment_re.match(
              text[pos:]
          ) or cls._whitespace_re.match(text[pos:])
          if match:
              yield (cls._whitespace, match.group())
              pos += match.end()
          elif text[pos] == b"(":
              start = pos
              pos += 1
              depth = 1
              while depth:
                  match = cls._instring_re.search(text[pos:])
                  if match is None:
                      return
                  pos += match.end()
                  if match.group() == b"(":
                      depth += 1
                  elif match.group() == b")":
                      depth -= 1
                  else:  # a backslash - skip the next character
                      pos += 1
              yield (cls._string, text[start:pos])
          elif text[pos : pos + 2] in (b"<<", b">>"):
              yield (cls._delimiter, text[pos : pos + 2])
              pos += 2
          elif text[pos] == b"<":
              start = pos
              pos += text[pos:].index(b">")
              yield (cls._string, text[start:pos])
          else:
              match = cls._token_re.match(text[pos:])
              if match:
                  try:
                      float(match.group())
                      yield (cls._number, match.group())
                  except ValueError:
                      yield (cls._name, match.group())
                  pos += match.end()
              else:
                  yield (cls._delimiter, text[pos : pos + 1])
                  pos += 1
  
file_path: catboost/contrib/python/matplotlib/py2/matplotlib/type1font.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  import binascii
  import io
  import itertools
  import re
  import struct
  import numpy
label_desc: Use image node_id 4 for calling the Type1Font obj's underlying member method code with example usage: obj._tokens(cls, text) without return types