î
kÐR\@  ã               @   s0   d  d l  m Z m Z Gd d „  d e ƒ Z d S)é    )ÚsqlÚtokensc               @   sF   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   úJ/var/www/dbchiro/venv/build/sqlparse/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 rM | j d ƒ rM d |  _ d S| d k r~ |  j r~ |  j d k r~ d |  _ d S| d k rª |  j d 7_ |  j r¦ d Sd 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 Sd 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   )	ÚTZ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]¬ \ } } |  j r[ | | k r[ t j |  j ƒ V|  j ƒ  n  |  j	 |  j
 | | ƒ 7_	 |  j j t j | | ƒ ƒ |  j	 d k r | t  j k r | d k r d |  _ q q W|  j ré t j |  j ƒ Vn  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   