
vÅÏ^”  ã               @   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   úF/tmp/pip-build-8lau8j11/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   sM  | t  j k r | d k r d S| t  j k r> | d k r> d S| t  j k rQ d S| j ƒ  } | t  j j k r‹ | j d ƒ r‹ 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 r9|  j r9|  j d k r9d S| d k rId Sd S)z<Get the new split level (increase, decrease or remain equal)ú(é   ú)r   ZCREATETZDECLAREZBEGINZENDÚIFÚFORÚWHILEúEND IFúEND FORú	END WHILEéÿÿÿÿr   )r   r   r   )r   r   r   r   )
ÚTÚPunctuationÚKeywordÚupperZDDLÚ
startswithr   r   r
   Úmax)r   ÚttypeÚvalueZunifiedr   r   r   Ú_change_splitlevel   s6    !	$		z$StatementSplitter._change_splitlevelc             c   sä   t  j t  j j f } x® | D]¦ \ } } |  j rX | | k rX 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ÚTokenr   )r   ÚstreamZ	EOS_TTYPEr   r    r   r   r   ÚprocessP   s    
*	zStatementSplitter.processN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r!   r)   r   r   r   r   r      s
   
4r   N)Zsqlparser   r   r   Úobjectr   r   r   r   r   Ú<module>	   s   