class_docstr: Checker for ast <-> pattern.
  
  NodeVisitor is needed for specific behavior checker.
  
  Attributes
  ----------
  node : AST
      node we want to compare with pattern
  placeholders : [AST]
      list of placeholder value for later comparison or replacement.
class_docstr_tok: ["Checker","for","ast","<","-",">","pattern",".","NodeVisitor","is","needed","for","specific","behavior","checker",".","Attributes","--","--","--","--","--","node",":","AST","node","we","want","to","compare","with","pattern","placeholders",":","[","AST","]","list","of","placeholder","value","for","later","comparison","or","replacement","."]
docstr: Check if the pattern match with the checked node.
  
  a node match if:
      - type match
      - all field match
docstr_tok: ["Check","if","the","pattern","match","with","the","checked","node",".","a","node","match","if",":","-","type","match","-","all","field","match"]
code: def generic_visit(self, pattern):
      """
      Check if the pattern match with the checked node.
  
      a node match if:
          - type match
          - all field match
      """
      if not isinstance(pattern, type(self.node)):
          return False
      return all(
          self.field_match(value, getattr(pattern, field))
          for field, value in iter_fields(self.node)
      )
  
imports: from gast import AST, iter_fields, NodeVisitor, Dict, Set
  from itertools import permutations
  from math import isnan
label_desc: Use image node_id 10 for calling the Check obj's underlying member method code with example usage: obj.generic_visit(pattern) and returns: all, False