
    Dvg                     0    d dl mZmZ  G d d          ZdS )    )sqltokensc                   *    e Zd ZdZd Zd Zd Zd ZdS )StatementSplitterz1Filter that split stream at individual statementsc                 .    |                                   d S N)_resetselfs    _/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/sqlparse/engine/statement_splitter.py__init__zStatementSplitter.__init__   s        c                 h    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
   s    r   r	   zStatementSplitter._reset   s9     


r   c                 J   |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 r|                    d          r	d| _        dS |dk    r| j        r| j        dk    r	d| _        dS |d	k    r| xj        dz  c_        | j        rdS dS |d
k    r.| j	        st          d| j        dz
            | _        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   CREATETDECLAREBEGINENDF)IFFORWHILECASEr"   )zEND IFzEND FORz	END WHILE)TPunctuationKeywordupperDDL
startswithr   r   r   r   max)r   ttypevalueunifieds       r   _change_splitlevelz$StatementSplitter._change_splitlevel   s}    AM!!esll1am##2!)##1
 ++-- AIM!!g&8&8&B&B!"DO1 iDO8IQ8N8N#D1g" q1 e= &$'4+<q+@$A$A!! %2555O 6(,(9A(=(=&   $18882 qr   c              #     K   t           j        t           j        j        f}|D ]\  }}| j        r3||vr/t          j        | j                  V  |                                  | xj	        | 
                    ||          z  c_	        | j                            t          j        ||                     | j	        dk    r|t           j        u r|dk    s,|t           j        u r%|                                d         dk    rd| _        | j        r;t!          d | j        D                       st          j        | j                  V  dS dS dS )zProcess the streamr   ;GOTc              3   $   K   | ]}|j         V  d S r   )is_whitespace).0ts     r   	<genexpr>z,StatementSplitter.process.<locals>.<genexpr>r   s$      "H"Hq1?"H"H"H"H"H"Hr   N)r#   
WhitespaceCommentSingler   r   	Statementr   r	   r   r-   appendTokenr$   r%   splitall)r   stream	EOS_TTYPEr*   r+   s        r   processzStatementSplitter.processR   sZ     L!)"22	 # 	' 	'LE5
  5	#9#9mDK00000  JJ$11%???JJ Ksy66777 
aEQ]$:$:u||**u{{}}Q/?4/G/G"& ; 	-s"H"HDK"H"H"HHH 	--,,,,,,,	- 	- 	- 	-r   N)__name__
__module____qualname____doc__r   r	   r-   r@    r   r   r   r      sW        ;;  	 	 	4 4 4l!- !- !- !- !-r   r   N)sqlparser   r   r#   r   rE   r   r   <module>rG      s[    & % % % % % % %h- h- h- h- h- h- h- h- h- h-r   