
    &)Jf                     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    e/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/sqlparse/engine/statement_splitter.py__init__zStatementSplitter.__init__   s        c                 Z    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   levelr
   s    r   r	   zStatementSplitter._reset   s2     


r   c                    |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t          d| j        dz
            | _        dS |dv r| j        r| j        dk    rdS |dv rdS dS )z<Get the new split level (increase, decrease or remain equal)(   )r   CREATETDECLAREBEGINEND)IFFORWHILECASE)zEND IFzEND FORz	END WHILE)
TPunctuationKeywordupperDDL
startswithr   r   r   max)r   ttypevalueunifieds       r   _change_splitlevelz$StatementSplitter._change_splitlevel   sW    AM!!esll1am##2!)##1
 ++-- AIM!!g&8&8&B&B!"DO1 iDO8IQ8N8N#D1g" q1 e #At'81'< = =D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>o   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.processO   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        ;;    2 2 2h!- !- !- !- !-r   r   N)sqlparser   r   r"   r   rD   r   r   <module>rF      s[    & % % % % % % %e- e- e- e- e- e- e- e- e- e-r   