%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/guppy/etc/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/guppy/etc/__pycache__/FSA.cpython-37.pyc

B

�]��@s"Gdd�d�ZGdd�de�ZdS)c@sveZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�FiniteAutomaton�cCs4||_||_|jii|_g|_g|_i|_d|_dS)N�)�start_state�
dump_state�table�unresolved_compositesZresolved_composites�composite_memo�
is_updated)�selfrr�r�@/opt/alt/python37/lib64/python3.7/site-packages/guppy/etc/FSA.py�__init__szFiniteAutomaton.__init__cCs$|\}}||j�|i�|<d|_dS)Nr)r�
setdefaultr	)r
Zxxx_todo_changeme�x�state�symbolrrr�__setitem__szFiniteAutomaton.__setitem__cGsft|�dkr|d}n,x |D]}||jkri|j|<qW|�|�}||||f<||jkrbi|j|<dS)Nr�)�lenr�
new_composite)r
rrZnexts�c�nrrr�add_transitions




zFiniteAutomaton.add_transitioncCs|yt|j|���}Wntk
r*dSXg}xF|D]>\}}t|t�rfx*|D]}|�||f�qNWq6|�||f�q6W|S)Nr)�listr�items�KeyError�
isinstance�CompositeState�append)r
rrZris�k�vZvirrr�
get_row_itemss

zFiniteAutomaton.get_row_itemscCs�x�|jr�|j}g|_x�|D]�}i}g}x6|D].}x(|�|�D]\}}|�|g��|�q<Wq,WxBt|���D]2\}}x(|D] }||j|krz|�|j�PqzWqlWx*t|���D]\}}|j||f|��q�WqWqWdS)N)	rr!rrrrrrr)r
Z
compositesrZds�l�arr rrr�make_deterministic+s 



z"FiniteAutomaton.make_deterministiccCs>i}x4t|j���D]"\}}x|D]\}}d||<q"WqW|S)Nr)rrr)r
Zsymsr�transrr rrr�get_all_input_symbols?s
z%FiniteAutomaton.get_all_input_symbolscCs|jS)N)r)r
rrr�get_all_statesFszFiniteAutomaton.get_all_statescCsiS)Nr)r
rrr�get_all_final_statesIsz$FiniteAutomaton.get_all_final_statescCs|jr|��t|j���S)N)r	r$rr�values)r
rrr�get_compositesLszFiniteAutomaton.get_compositescCsxi}i}xft|j���D]T\}}t|���}|��t|�}|�|�}|dkrZg}|||<|�|�|||<qW||fS)N)rrr�keys�sort�tuple�getr)r
�tc�tckrr r%�ksrrr�get_transition_classesQs

z&FiniteAutomaton.get_transition_classescs�dd�}dd�}��fdd�}�jrB������}�_d�_n�j}|\}}t|���}|�|�j�}	|||	�}
||
�}|S)Ncs^��fdd��i�xX|D]P}xJt|�D]>\}}x4||dd�D] }||k||kkr@d�||f<q@Wq&WqWx�t����D]�}|\}}||}||}	g}
x�|D]v}||}|	|}
||
k	r�||
f}|�kr�|
�|�q�|
|f}|�kr�|
�|�q��|}�|=|dk	�r�|�Pq�Wx:|
D]2}�|}|dk�rF|g}|�|<n
|�|��q WqzW�S)Ncs4x.|D]&}|�kr�|}�|=|r�|�qWdS)Nr)r"�pq�l1)�PS�psrmarkrrr6cs
zCFiniteAutomaton.get_minimized_dfa.<locals>.markall.<locals>.psrmarkrr)�	enumeraterr+r)�finals�tcvr�QZip�p�qr3ZdpZdqZdpsr#ZdpaZdqaZdpadqaZdqadpar"r)r5r6r�markallbsD





z2FiniteAutomaton.get_minimized_dfa.<locals>.markallcSs�i}x$|D]}x|D]}|g||<qWq
Wxb|D]Z\}}||}||}||k	r0t|�t|�krj||}}|�|�x|D]}|||<qzWq0W|S)N)r�extend)ZQSZPQS�eqsr:r;r<Zep�eqrrr�combine�s




z2FiniteAutomaton.get_minimized_dfa.<locals>.combinec
s�i}i}d}xZt|���D]J}t|�}||krd|}|d7}|d|f||<x|D]}|||<qTWqW��|�j�}i|_xdt|���D]T\}	}
i|j|
<}x*t�j|	���D]\}}||||<q�W|	�kr�d|j|
<q�W|S)NrzMS%dr)rr)�id�	__class__rZfinal_statesrr)
r?ZcsbyidZcsbyas�ir@Zideqr�s�fsaZcs0Zcstr%r#)r8r
rr�finalize�s(
z3FiniteAutomaton.get_minimized_dfa.<locals>.finalizer)r	r$r2Z_tctckrr)r)r
r8r=rArGZtctckr/r0r9r5r?rFr)r8r
r�get_minimized_dfaas0
z!FiniteAutomaton.get_minimized_dfacCsltttdd�|D������}t|�dkr2|dSy
|j|Stk
rf||j|<|j�|�|SXdS)NcSsg|]}|df�qS)rr)�.0�argrrr�
<listcomp>�sz1FiniteAutomaton.new_composite.<locals>.<listcomp>rr)	rr�dictr+rrrrr)r
�args�csrrrr�s

zFiniteAutomaton.new_compositecCs�t|j���}|��tdd�t|�D��}xj|D]b}|j|}td|||f�t|���}|��x*|D]"}||}td||||f�qnWq2WdS)NcSsg|]\}}||f�qSrr)rIrDrErrrrK�sz&FiniteAutomaton.pp.<locals>.<listcomp>z%d: %sz   %r  -> #%d: %s)rrr+r,rLr7�print)r
r1ZnumrErrNrr rrr�pp�s


zFiniteAutomaton.ppN)r)�__name__�
__module__�__qualname__r
rrr!r$r&r'r(r*r2rHrrPrrrrrs
	
prc@seZdZdS)rN)rQrRrSrrrrr�srN)rr-rrrrr�<module>sj

Zerion Mini Shell 1.0