class_docstr: Lexer for Typographic Number Theory, as described in the book
  Gödel, Escher, Bach, by Douglas R. Hofstadter
  
  .. versionadded:: 2.7
class_docstr_tok: ["Lexer","for","Typographic","Number","Theory",",","as","described","in","the","book","G\u00f6del",",","Escher",",","Bach",",","by","Douglas","R.","Hofstadter","..","versionadded",":",":","2.7"]
docstr: Tokenize a formula.
docstr_tok: ["Tokenize","a","formula","."]
code: def formula(self, start, text):
      """Tokenize a formula."""
      if text[start] in self.NEGATORS:  # ~<...>
          end = start + 1
          while text[end] in self.NEGATORS:
              end += 1
          self.cur.append((start, Operator, text[start:end]))
          return self.formula(end, text)
      if text[start] in self.QUANTIFIERS:  # Aa:<...>
          self.cur.append((start, Keyword.Declaration, text[start]))
          start = self.variable(start + 1, text)
          if text[start] != ":":
              raise AssertionError
          self.cur.append((start, Punctuation, text[start]))
          return self.formula(start + 1, text)
      if text[start] == "<":  # <...&...>
          self.cur.append((start, Punctuation, text[start]))
          start = self.formula(start + 1, text)
          if text[start] not in self.LOGIC:
              raise AssertionError
          self.cur.append((start, Operator, text[start]))
          start = self.formula(start + 1, text)
          if text[start] != ">":
              raise AssertionError
          self.cur.append((start, Punctuation, text[start]))
          return start + 1
      # ...=...
      start = self.term(start, text)
      if text[start] != "=":
          raise AssertionError
      self.cur.append((start, Operator, text[start]))
      start = self.term(start + 1, text)
      return start
  
file_path: catboost/contrib/python/Pygments/py3/pygments/lexers/tnt.py
imports: import re
  from pygments.lexer import Lexer
  from pygments.token import Text, Comment, Operator, Keyword, Name, Number, Punctuation, Error
label_desc: Use image node_id 5 for calling the TNTLexer obj's underlying member method code with example usage: obj.formula(start, text) and returns: start, self, self, unknown