3
ž¾6b@  ã               @   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   | j ƒ  d S )N)Ú_reset)Úself© r   úa/var/www/html/sandeepIITI/myenv/lib/python3.6/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   Úlevel)r   r   r   r   r      s    zStatementSplitter._resetc             C   sÆ   |t jkrdS |jƒ }|t jjkr6|jdƒr6d| _dS |dkrX| jrX| jdkrXd| _dS |dkr||  jd7  _| jrxdS dS |dkrštd| jd ƒ| _dS |dkr¶| jr¶| jdkr¶dS |dkrÂdS dS )z<Get the new split level (increase, decrease or remain equal)r   ZCREATETZDECLAREé   ZBEGINZENDÚIFÚFORÚWHILEúEND IFúEND FORú	END WHILEéÿÿÿÿ)r   r   r   )r   r   r   r   )	ÚTÚKeywordÚupperZDDLÚ
startswithr   r   r
   Úmax)r   ÚttypeÚvalueZunifiedr   r   r   Ú_change_splitlevel   s.    
z$StatementSplitter._change_splitlevelc             c   s¨   t jt jjf}x€|D ]x\}}| jr@||kr@tj| jƒV  | jƒ  |  j	| j
||ƒ7  _	| jjtj||ƒƒ | j	dkr|t jkr|dkrd| _qW | jr¤tj| jƒV  dS )zProcess the streamr   ú;TN)r   Ú
WhitespaceÚCommentÚSingler   r   Z	Statementr   r   r   r   ÚappendÚTokenZPunctuation)r   ÚstreamZ	EOS_TTYPEr   r   r   r   r   ÚprocessM   s    
zStatementSplitter.processN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r&   r   r   r   r   r      s
   
2r   N)Zsqlparser   r   r   Úobjectr   r   r   r   r   Ú<module>   s   