File: //lib64/python3.6/lib2to3/__pycache__/btm_matcher.cpython-36.pyc
3
  \�  �               @   sl   d Z dZddlZddlZddlmZ ddlmZ ddlm	Z	 G dd	� d	e
�ZG d
d� de
�Zi a
dd
� ZdS )a�  A bottom-up tree matching algorithm implementation meant to speed
up 2to3's matching process. After the tree patterns are reduced to
their rarest linear path, a linear Aho-Corasick automaton is
created. The linear automaton traverses the linear paths from the
leaves to the root of the AST and returns a set of nodes for further
matching. This reduces significantly the number of candidate nodes.z+George Boutsioukis <gboutsioukis@gmail.com>�    N)�defaultdict�   )�pytree)�reduce_treec               @   s    e Zd ZdZej� Zdd� ZdS )�BMNodez?Class for a node of the Aho-Corasick automaton used in matchingc             C   s"