
    ,i                     (    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    V/var/www/mymood/env/lib/python3.12/site-packages/sqlparse/engine/statement_splitter.py__init__zStatementSplitter.__init__   s        c                 t    d| _         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_seen_begin
consume_wsr   levelr
   s    r   r	   zStatementSplitter._reset   s=      
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_        d| _	        | 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   r   max)r   ttypevalueunifieds       r   _change_splitlevelz$StatementSplitter._change_splitlevel   sE    AMM!eslamm#!))#
 ++- AIIMM!g&8&8&B"DO iDOO8I8IQ8N#Dg"#D e==$'4+<+<q+@$A!  !&55OO(9(9A(=&  $88 r   c              #   h  K   t         j                  t         j                  j                  f}|D ]  \  }}| j                  r5||vr1t        j                  | j                         | j                          | xj                  | j                  ||      z  c_	        | j                  j                  t        j                  ||             |t         j                  u r`|dk(  r[| j                  rt        d| j                   dz
        | _        d| _        | j                  dk  s| j                   dk(  sd| _        |t         j"                  u r|j%                         d   dk(  r	d| _        ?|t         j                  t         j                  j                  t         j                  j&                  fvs|t         j"                  u r|j)                         dk(  rd| _         | j                  r?t+        d | j                  D              s"t        j                  | j                         y	y	y	w)
zProcess the stream;r   r   FTGOr   c              3   4   K   | ]  }|j                     y wr   )is_whitespace).0ts     r   	<genexpr>z,StatementSplitter.process.<locals>.<genexpr>   s     "HKq1??Ks   N)r$   
WhitespaceCommentSingler   r   	Statementr   r	   r   r.   appendTokenr%   r   r*   r   r&   split	Multiliner'   all)r   stream	EOS_TTYPEr+   r,   s        r   processzStatementSplitter.processT   s    LL!))"2"22	 #LE5
 5	#9mmDKK00  JJ$11%??J KKsyy67 %%3, ##(+At/@/@1/D(ED%#( ::?t'8'8A'=&*DO!))#a(8D(@"&aii.>.> !		 3 3 5 5 AII-%++-72J $) Q #V ;;s"HDKK"HH--,,  I;s    D H2#H24A?H25%H2AH2N)__name__
__module____qualname____doc__r   r	   r.   rB    r   r   r   r      s    ;
5n1-r   r   N)sqlparser   r   r$   r   rG   r   r   <module>rI      s    &z- z-r   