o
    Di                     @   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	   k/var/www/html/smartRegister/backend/venv/lib/python3.10/site-packages/sqlparse/engine/statement_splitter.py__init__   s   zStatementSplitter.__init__c                 C   s4   d| _ 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_seen_begin
consume_wsr   levelr   r	   r	   r
   r      s   
zStatementSplitter._resetc                 C   sT  |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rW|  jd7  _d| _	| jrUdS dS | j	rv|t ju sd|t j
u rv|d
v rvtd| jd | _d| _	dS |dkr| jstd| jd | _dS d| _dS |dv r| jr| jdkr|dkrd| _dS |dv rdS dS )z<Get the new split level (increase, decrease or remain equal)(   )r   CREATETDECLAREBEGIN)TRANSACTIONWORKTRANDISTRIBUTEDDEFERRED	IMMEDIATE	EXCLUSIVEFEND)IFFORWHILECASEr%   )zEND IFzEND FORz	END WHILE)TPunctuationKeywordupperDDL
startswithr   r   r   r   Namemaxr   )r   ttypevalueunifiedr	   r	   r
   _change_splitlevel   sR   

z$StatementSplitter._change_splitlevelc                 c   sF   t jt jjf}|D ]~\}}| jr ||vr t| jV  |   |  j	| 
||7  _	| jt|| |t ju r[|dkr[| jrJtd| jd | _d| _| j	dkrZ| jdkrZd| _q
|t ju rl| d dkrld| _q
|t jt jt jjt jjfvr|t ju r| dksd| _q
| jrtdd	 | jD st| jV  d
S d
S d
S )zProcess the stream;r   r   FTGOr   c                 s   s    | ]}|j V  qd S r   )is_whitespace).0tr	   r	   r
   	<genexpr>   s    z,StatementSplitter.process.<locals>.<genexpr>N)r&   
WhitespaceCommentSingler   r   	Statementr   r   r   r1   appendTokenr'   r   r-   r   r(   splitNewline	Multiliner)   all)r   stream	EOS_TTYPEr.   r/   r	   r	   r
   process_   s4   	zStatementSplitter.processN)__name__
__module____qualname____doc__r   r   r1   rD   r	   r	   r	   r
   r      s    Br   N)sqlparser   r   r&   r   r	   r	   r	   r
   <module>   s   