o
    svXjY  ã                   @   s$   d dl mZmZ G dd„ deƒZdS )é    )ÚsqlÚtokensc                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚStatementSplitterz1Filter that split stream at individual statementsc                 C   s   |   ¡  d S )N)Ú_reset©Úself© r   ú_/var/www/html/myproject/venv/lib/python3.10/site-packages/sqlparse/engine/statement_splitter.pyÚ__init__   s   zStatementSplitter.__init__c                 C   s(   d| _ d| _d| _d| _g | _d| _dS )z/Set the filter attributes to its default valuesFr   N)Ú_in_declareÚ
_is_createÚ_begin_depthÚ
consume_wsr   Úlevelr   r   r   r	   r      s   
zStatementSplitter._resetc                 C   sÆ   |t jvrdS | ¡ }|t jju r| d¡rd| _dS |dkr,| jr,| jdkr,d| _dS |dkr>|  jd7  _| jr<dS dS |dkrMtd| jd ƒ| _dS |d	v r[| jr[| jdkr[dS |d
v radS dS )z<Get the new split level (increase, decrease or remain equal)r   ÚCREATETÚDECLAREé   ÚBEGINÚENDéÿÿÿÿ)ÚIFÚFORÚWHILE)zEND IFzEND FORz	END WHILE)	ÚTÚKeywordÚupperÚDDLÚ
startswithr   r   r   Úmax)r   ÚttypeÚvalueÚunifiedr   r   r	   Ú_change_splitlevel   s2   
ÿ
z$StatementSplitter._change_splitlevelc                 c   sª   � t jt jjf}|D ]<\}}| jr ||vr t | j¡V  |  ¡  |  j	|  
||¡7  _	| j t ||¡¡ | j	dkrF|t ju rF|dkrFd| _q
| jrSt | j¡V  dS dS )zProcess the streamr   ú;TN)r   Ú
WhitespaceÚCommentÚSingler   r   Ú	Statementr   r   r   r"   ÚappendÚTokenÚPunctuation)r   ÚstreamÚ	EOS_TTYPEr   r    r   r   r	   ÚprocessN   s   €€ÿzStatementSplitter.processN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r"   r-   r   r   r   r	   r      s    
2r   N)Úsqlparser   r   r   Úobjectr   r   r   r   r	   Ú<module>   s   