
    wg                     (    d dl mZmZ  G d d      Zy)    )sqltokensc                   (    e Zd ZdZd Zd Zd Zd Zy)StatementSplitterz1Filter that split stream at individual statementsc                 $    | j                          y N)_resetselfs    Y/var/www/horilla/myenv/lib/python3.12/site-packages/sqlparse/engine/statement_splitter.py__init__zStatementSplitter.__init__   s        c                 f    d| _         d| _        d| _        d| _        d| _        g | _        d| _        y)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   s5     
r   c                    |t         j                  u r|dk(  ry|t         j                  u r|dk(  ry|t         j                  vry|j                         }|t         j                  j                  u r|j                  d      rd| _        y|dk(  r#| j                  r| j                  dk(  rd| _        y|d	k(  r#| xj                  dz  c_        | j                  ryy|d
k(  r3| j                  st        d| j                  dz
        | _        yd| _	        y|dv r(| j                  r| j                  dkD  r|dk(  rd| _	        y|dv ryy)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=    AMM!eslamm#!))#
 ++- AIIMM!g&8&8&B"DO iDOO8I8IQ8N#Dg" e==$'4+<+<q+@$A!  !&55OO(9(9A(=&  $88 r   c              #     K   t         j                  t         j                  j                  f}|D ]  \  }}| j                  r5||vr1t        j                  | j                         | j                          | xj                  | j                  ||      z  c_	        | j                  j                  t        j                  ||             | j                  dk  r|t         j                  u r|dk(  s*|t         j                  u s|j                         d   dk(  sd| _         | j                  r?t!        d | j                  D              s"t        j                  | j                         yyyw)zProcess the streamr   ;GOTc              3   4   K   | ]  }|j                     y wr   )is_whitespace).0ts     r   	<genexpr>z,StatementSplitter.process.<locals>.<genexpr>r   s     "Hq1??"Hs   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   s    LL!))"2"22	 # 	'LE5
 5	#9mmDKK00  JJ$11%??J KKsyy67 

aEQ]]$:u|*u{{}Q/?4/G"&1	'6 ;;s"HDKK"HH--,,  I;s   D E/E/AE/N)__name__
__module____qualname____doc__r   r	   r-   r@    r   r   r   r      s    ;	4l!-r   r   N)sqlparser   r   r#   r   rE   r   r   <module>rG      s    &h- h-r   