| Server IP : 156.238.232.47 / Your IP : 216.73.216.150 Web Server : nginx/1.25.3 System : Linux C202504152095410 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : www ( 1000) PHP Version : 8.3.25 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib64/python2.7/lib2to3/ |
Upload File : |
�
ۜSec @ s� d Z d Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z d e
f d � � YZ d
e
f d � � YZ i a
d � Z d S(
s� 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.s+ George Boutsioukis <gboutsioukis@gmail.com>i����N( t defaultdicti ( t pytree( t reduce_treet BMNodec B s# e Z d Z e j � Z d � Z RS( s? Class for a node of the Aho-Corasick automaton used in matchingc C s1 i | _ g | _ t t j � | _ d | _ d S( Nt ( t transition_tablet fixerst nextR t countt idt content( t self( ( s+ /usr/lib64/python2.7/lib2to3/btm_matcher.pyt __init__ s ( t __name__t
__module__t __doc__t itertoolsR R ( ( ( s+ /usr/lib64/python2.7/lib2to3/btm_matcher.pyR s t
BottomMatcherc B s; e Z d Z d � Z d � Z d � Z d � Z d � Z RS( sg The main matcher class. After instantiating the patterns should
be added using the add_fixer methodc C sF t � | _ t � | _ | j g | _ g | _ t j d � | _ d S( Nt RefactoringTool( t sett matchR t roott nodesR t loggingt getLoggert logger( R ( ( s+ /usr/lib64/python2.7/lib2to3/btm_matcher.pyR s
c C sh | j j | � t | j � } | j � } | j | d | j �} x | D] } | j j | � qJ Wd S( s� Reduces a fixer's pattern tree to a linear path and adds it
to the matcher(a common Aho-Corasick automaton). The fixer is
appended on the matching states and called when they are
reachedt startN( R t appendR t pattern_treet get_linear_subpatternt addR ( R t fixert treet lineart match_nodest
match_node( ( s+ /usr/lib64/python2.7/lib2to3/btm_matcher.pyt add_fixer% s
c C s� | s
| g St | d t � r� g } xU | d D]I } | j | d | �} x+ | D]# } | j | j | d | � � qS Wq1 W| S| d | j k r� t � } | | j | d <n | j | d } | d r� | j | d d | �} n | g } | Sd S( s5 Recursively adds a linear pattern to the AC automatoni R i N( t
isinstancet tupleR t extendR R ( R t patternR R"