class_docstr: A compiled match expression as used by -k and -m.
  
  The expression can be evaluated against different matchers.
docstr: Evaluate the match expression.
  
  :param matcher:
      Given an identifier, should return whether it matches or not.
      Should be prepared to handle arbitrary strings as input.
  
  :returns: Whether the expression matches or not.
code: def evaluate(self, matcher: Callable[[str], bool]) -> bool:
      """Evaluate the match expression.
  
      :param matcher:
          Given an identifier, should return whether it matches or not.
          Should be prepared to handle arbitrary strings as input.
  
      :returns: Whether the expression matches or not.
      """
      ret: bool = eval(
          self.code, {"__builtins__": {}}, MatcherAdapter(matcher)
      )
      return ret
  
imports: import ast
  import dataclasses
  import enum
  import re
  import sys
  import types
  from typing import Callable
  from typing import Iterator
  from typing import Mapping
  from typing import NoReturn
  from typing import Optional
  from typing import Sequence
label_desc: Use image node_id 3 for calling the Expression obj's underlying member method code with example usage: obj.evaluate(matcher) and returns: ret