class_docstr: Lexer for `Shen <http://shenlanguage.org/>`_ source code.
  
  .. versionadded:: 2.1
class_docstr_tok: ["Lexer","for","`","Shen","<","http",":","\/\/shenlanguage.org\/",">","`","_","source","code",".","..","versionadded",":",":","2.1"]
code: def _process_declarations(self, tokens):
      opening_paren = False
      for index, token, value in tokens:
          yield index, token, value
          if self._relevant(token):
              if (
                  opening_paren
                  and token == Keyword
                  and value in self.DECLARATIONS
              ):
                  declaration = value
                  for index, token, value in self._process_declaration(
                      declaration, tokens
                  ):
                      yield index, token, value
              opening_paren = value == "(" and token == Punctuation
  
imports: import re
  from pygments.lexer import RegexLexer, include, bygroups, words, default
  from pygments.token import Text, Comment, Operator, Keyword, Name, String, Number, Punctuation, Literal, Error
  from pygments.lexers.python import PythonLexer
label_desc: Use image node_id 3 for calling the ShenLexer obj's underlying member method code with example usage: obj._process_declarations(tokens) without return types