
    +h                     (    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    U/var/www/html/venv/lib/python3.12/site-packages/sqlparse/engine/statement_splitter.py__init__zStatementSplitter.__init__   s        c                 X    d| _         d| _        d| _        d| _        g | _        d| _        y)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   s.     
r   c                 F   |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(  rt        d| j                  dz
        | _        y|dv r| j                  r| j                  dkD  ry|dv ryy)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   s    AMM!eslamm#!))#
 ++- AIIMM!g&8&8&B"DO iDOO8I8IQ8N#Dg" e #At'8'81'< =D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  s|t         j                  u s|dk(  sd| _         | j                  r?t        d | j                  D              s"t        j                  | j                         yyyw)zProcess the streamr   ;Tc              3   4   K   | ]  }|j                     y wr   )is_whitespace).0ts     r   	<genexpr>z,StatementSplitter.process.<locals>.<genexpr>j   s     "Hq1??"Hs   N)r"   
WhitespaceCommentSingler   r   	Statementr   r	   r   r,   appendTokenr#   all)r   stream	EOS_TTYPEr)   r*   s        r   processzStatementSplitter.processO   s     LL!))"2"22	 # 	'LE5
 5	#9mmDKK00  JJ$11%??J KKsyy67 zzQ5AMM#9esl"&'	', ;;s"HDKK"HH--,,  I;s   CEE-E3AEN)__name__
__module____qualname____doc__r   r	   r,   r=    r   r   r   r      s    ;2h-r   r   N)sqlparser   r   r"   r   rB   r   r   <module>rD      s    &`- `-r   