o
    ÒèFhÿ  ã                   @   s"   d dl mZmZ G dd„ dƒ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/loop/nvenv/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u r|dkrdS |t ju r|dkrdS |t jvrdS | ¡ }|t jju r1| d¡r1d| _dS |dkrB| jrB| jdkrBd| _dS |d	krT|  jd7  _| jrRdS dS |d
krct	d| jd ƒ| _dS |dv rq| jrq| jdkrqdS |dv rwdS dS )z<Get the new split level (increase, decrease or remain equal)ú(é   ú)éÿÿÿÿr   ÚCREATETÚDECLAREÚBEGINÚEND)ÚIFÚFORÚWHILEÚCASE)zEND IFzEND FORz	END WHILE)
ÚTÚPunctuationÚKeywordÚupperÚDDLÚ
startswithr   r   r   Úmax)r   ÚttypeÚvalueÚunifiedr	   r	   r
   Ú_change_splitlevel   s:   
ÿ
z$StatementSplitter._change_splitlevelc                 c   sÜ   � t jt jjf}|D ]I\}}| jr ||vr t | j¡V  |  ¡  |  j	|  
||¡7  _	| j t ||¡¡ | j	dkrC|t ju rC|dksP|t ju rS| ¡ d dkrSd| _q
| jrjtdd„ | jD ƒƒslt | j¡V  dS dS dS )zProcess the streamr   ú;ÚGOTc                 s   s   � | ]}|j V  qd S r   )Úis_whitespace)Ú.0Útr	   r	   r
   Ú	<genexpr>o   s   € z,StatementSplitter.process.<locals>.<genexpr>N)r   Ú
WhitespaceÚCommentÚSingler   r   Ú	Statementr   r   r   r'   ÚappendÚTokenr   r   ÚsplitÚall)r   ÚstreamÚ	EOS_TTYPEr$   r%   r	   r	   r
   ÚprocessO   s   €€ÿzStatementSplitter.processN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r'   r8   r	   r	   r	   r
   r      s    
4r   N)Úsqlparser   r   r   r   r	   r	   r	   r
   Ú<module>   s   