
                         (    S SK JrJr   " S S5      rg)    )sqltokensc                   0    \ rS rSrSrS rS rS rS rSr	g)	StatementSplitter   z1Filter that split stream at individual statementsc                 $    U R                  5         g N)_resetselfs    5lib/third_party/sqlparse/engine/statement_splitter.py__init__StatementSplitter.__init__   s        c                 X    SU l         SU l        SU l        SU l        / U l        SU l        g)z/Set the filter attributes to its default valuesFr   N)_in_declare
_is_create_begin_depth
consume_wsr   levelr   s    r   r
   StatementSplitter._reset   s.     
r   c                    U[         R                  L a  US:X  a  gU[         R                  L a  US:X  a  gU[         R                  ;  a  gUR                  5       nU[         R                  R                  L a  UR                  S5      (       a  SU l        gUS:X  a)  U R                  (       a  U R                  S:X  a  SU l        gUS	:X  a(  U =R                  S-  sl        U R                  (       a  ggUS
:X  a  [        SU R                  S-
  5      U l        gUS;   a"  U R                  (       a  U R                  S:  a  gUS;   a  gg)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_splitlevel$StatementSplitter._change_splitlevel   s    AMM!eslamm#!))#
 ++- AIIMM!g&8&8&B&B"DO iDOO8I8IQ8N#Dg" e #At'8'81'< =D55OO(9(9A(=88 r   c              #     #    [         R                  [         R                  R                  4nU H  u  p4U R                  (       a7  X2;  a2  [
        R                  " U R                  5      v   U R                  5         U =R                  U R                  X45      -  sl	        U R                  R                  [
        R                  " X45      5        U R                  S::  d  M  U[         R                  L d  M  US:X  d  M  SU l        M     U R                  (       aE  [        S U R                   5       5      (       d#  [
        R                  " U R                  5      v   ggg7f)zProcess the streamr   ;Tc              3   8   #    U  H  oR                   v   M     g 7fr	   )is_whitespace).0ts     r   	<genexpr>,StatementSplitter.process.<locals>.<genexpr>j   s     "HKq??Ks   N)r%   
WhitespaceCommentSingler   r   	Statementr   r
   r   r/   appendTokenr&   all)r   stream	EOS_TTYPEr,   r-   s        r   processStatementSplitter.processO   s     LL!))"2"22	 #LE
 5#9mmDKK00  JJ$11%??J KKsyy67 zzQ5AMM#9esl"&' #, ;;s"HDKK"HHH--,,  I;s   CE !E 6E >A"E )r   r   r   r   r   r   N)
__name__
__module____qualname____firstlineno____doc__r   r
   r/   rB   __static_attributes__ r   r   r   r      s    ;2h-r   r   N)sqlparser   r   r%   r   rJ   r   r   <module>rL      s    &`- `-r   