a
    wh                     @   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/battlenet.uz/venv/lib/python3.9/site-packages/sqlparse/engine/statement_splitter.py__init__   s    zStatementSplitter.__init__c                 C   s.   d| _ d| _d| _d| _d| _g | _d| _dS )z/Set the filter attributes to its default valuesFr   N)_in_declare_in_case
_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 rb|drbd| _dS |dkr| jr| jdkrd| _dS |d	kr|  jd7  _| jrdS dS |d
kr| j	st
d| jd | _nd| _	dS |dv r| jr| jdkr|dkrd| _	dS |dv rdS dS )z<Get the new split level (increase, decrease or remain equal)(   )r   ZCREATETZDECLAREZBEGINZENDF)ZIFZFORZWHILECASEr   )zEND IFzEND FORz	END WHILE)TPunctuationKeywordupperZDDL
startswithr   r   r   r   max)r   ttypevalueZunifiedr	   r	   r
   _change_splitlevel   sD    



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r|t ju r|dks|t ju r| d dkrd| _q| jrtdd | jD st| jV  dS )zProcess the streamr   ;ZGOTc                 s   s   | ]}|j V  qd S r   )Zis_whitespace).0tr	   r	   r
   	<genexpr>r       z,StatementSplitter.process.<locals>.<genexpr>N)r   
WhitespaceCommentSingler   r   Z	Statementr   r   r   r   appendTokenr   r   splitall)r   streamZ	EOS_TTYPEr   r   r	   r	   r
   processR   s    zStatementSplitter.processN)__name__
__module____qualname____doc__r   r   r   r-   r	   r	   r	   r
   r      s
   6r   N)Zsqlparser   r   r   r   r	   r	   r	   r
   <module>   s   