+
    R<Âjø  ã                   ód   € R t ^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RI	H
t
  ! R R4      tR	R ltR# )
z	SQL LexerN)Ú
TextIOBase)ÚLock)ÚkeywordsÚtokens)Úconsumec                   ón   a € ] tR t^t o RtRt]! 4       t]R 4       t	R t
R tR tR tR tRR	 ltR
tV tR# )ÚLexerznThe Lexer supports configurable syntax.
To add support for additional keywords, use the `add_keywords` method.Nc                óø   € V P                   ;_uu_ 4        V P                  f'   V ! 4       V n        V P                  P                  4        RRR4       V P                  #   + '       g   i     T P                  # ; i)zJReturns the lexer instance used internally
by the sqlparse core functions.N)Ú_lockÚ_default_instanceÚdefault_initialization)Úclss   &ÚN/var/www/html/data_capital/venv/lib/python3.14/site-packages/sqlparse/lexer.pyÚget_default_instanceÚLexer.get_default_instance/   s^   € ð �Y�Y‹YØ×$Ñ$Ò,Ù(+«�Ô%Ø×%Ñ%×<Ñ<Ô>÷ ð ×$Ñ$Ð$÷	 ŽYð ×$Ñ$Ð$ús   •5AÁA9	c                ó’  € V P                  4        V P                  \        P                  4       V P	                  \        P
                  4       V P	                  \        P                  4       V P	                  \        P                  4       V P	                  \        P                  4       V P	                  \        P                  4       V P	                  \        P                  4       V P	                  \        P                  4       V P	                  \        P                  4       V P	                  \        P                  4       R# )zdInitialize the lexer with default dictionaries.
Useful if you need to revert custom syntax settings.N)ÚclearÚset_SQL_REGEXr   Ú	SQL_REGEXÚadd_keywordsÚKEYWORDS_COMMONÚKEYWORDS_ORACLEÚKEYWORDS_MYSQLÚKEYWORDS_PLPGSQLÚKEYWORDS_HQLÚKEYWORDS_MSACCESSÚKEYWORDS_SNOWFLAKEÚKEYWORDS_BIGQUERYÚKEYWORDS©Úselfs   &r   r   ÚLexer.default_initialization9   sÕ   € ð 	�
‰
ŒØ×Ñœ8×-Ñ-Ô.Ø×Ñœ(×2Ñ2Ô3Ø×Ñœ(×2Ñ2Ô3Ø×Ñœ(×1Ñ1Ô2Ø×Ñœ(×3Ñ3Ô4Ø×Ñœ(×/Ñ/Ô0Ø×Ñœ(×4Ñ4Ô5Ø×Ñœ(×5Ñ5Ô6Ø×Ñœ(×4Ñ4Ô5Ø×Ñœ(×+Ñ+Ö,ó    c                ó"   € . V n         . V n        R# )zËClear all syntax configurations.
Useful if you want to load a reduced set of syntax configurations.
After this call, regexps and keyword dictionaries need to be loaded
to make the lexer functional again.N©Ú
_SQL_REGEXÚ	_keywordsr   s   &r   r   ÚLexer.clearH   s   € ð
 ˆŒØˆŽr"   c                óÒ   € \         P                  \         P                  ,          pV UUu. uF'  w  r4\         P                  ! W24      P                  V3NK)  	  uppV n        R# u uppi )z.Set the list of regex that will parse the SQL.N)ÚreÚ
IGNORECASEÚUNICODEÚcompileÚmatchr%   )r    r   ÚFLAGSÚrxÚtts   &&   r   r   ÚLexer.set_SQL_REGEXP   sP   € ä—‘¤§
¡
Õ*ˆñ $ô
á#‘�ô �ZŠZ˜Ó"×(Ñ(¨"Ó-Ù#ò
ˆŽùó 
s   «-A#c                ó<   € V P                   P                  V4       R# )z`Add keyword dictionaries. Keywords are looked up in the same order
that dictionaries were added.N)r&   Úappend)r    r   s   &&r   r   ÚLexer.add_keywordsX   s   € ð 	�‰×Ñ˜hÖ'r"   c                ó�   € VP                  4       pV P                   F  pW#9   g   K  W2,          V3u # 	  \        P                  V3# )z�Checks for a keyword.

If the given value is in one of the KEYWORDS_* dictionary
it's considered a keyword. Otherwise, tokens.Name is returned.
)Úupperr&   r   ÚName)r    ÚvalueÚvalÚkwdicts   &&  r   Ú
is_keywordÚLexer.is_keyword]   s@   € ð �k‰k‹mˆØ—n”nˆFØŽ}Ø•{ EÐ)Ò)ñ %ô —;‘; Ð%Ð%r"   c              #  ó  "  € \        V\        4      '       d   VP                  4       p\        V\        4      '       d   M[\        V\        4      '       d.   V'       d   VP                  V4      pM+ VP                  R4      pM\        R\        V4      : 24      h\        P                  ! V4      pVP                  p\        V4      pV EF  w  rgWd9   d<   VP                  V4      pVe'   Vw  ršW¡Wi 3x € \        WYV,
          ^,
          4       KG  V P                   F¨  w  r¼V! W4      pV'       g   K  \        V\         P"                  4      '       d   WÍP%                  4       3x € M5V\        P&                  J d"   V P)                  VP%                  4       4      x € \        W]P+                  4       V,
          ^,
          4        Ký  	  \         P,                  V3x € EK  	  R#   \         d    TP                  R4      p ELhi ; i5i)as  
Return an iterable of (tokentype, value) pairs generated from
`text`. If `unfiltered` is set to `True`, the filtering mechanism
is bypassed even if filters are defined.

Also preprocess the text, i.e. expand tabs and strip it if
wanted and applies registered filters.

Split ``text`` into (tokentype, text) pairs.

``stack`` is the initial stack (default: ``['root']``)
zutf-8zunicode-escapez'Expected text or file-like object, got N)Ú
isinstancer   ÚreadÚstrÚbytesÚdecodeÚUnicodeDecodeErrorÚ	TypeErrorÚtyper   Úfind_delimited_spansÚopenersÚ	enumerateÚresolver   r%   r   Ú
_TokenTypeÚgroupÚPROCESS_AS_KEYWORDr;   ÚendÚError)r    ÚtextÚencodingÚdelimited_spansÚspan_openersÚiterableÚposÚcharÚresolvedrM   ÚttypeÚrexmatchÚactionÚms   &&&           r   Ú
get_tokensÚLexer.get_tokensj   sž  é € ô �dœJ×'Ò'Ø—9‘9“;ˆDä�dœC× Ò ØÜ˜œe×$Ò$ßØ—{‘{ 8Ó,‘ð9ØŸ;™; wÓ/‘Dô ÐEÄdÈ4ÃjÁ^ÐTÓUÐUä"×7Ò7¸Ó=ˆØ&×.Ñ.ˆä˜T“?ˆÜ!‰IˆCð
 Ô"Ø*×2Ñ2°3Ó7�ØÒ'Ø!)‘J�CØ c Ð.Ò.Ü˜H¨C¥i°!¥mÔ4Ùà$(§O¤OÑ �Ù˜TÓ'�çÙÜ ¬×(9Ñ(9×:Ò:Ø §'¡'£)Ð+Ó+Øœx×:Ñ:Ó:ØŸ/™/¨!¯'©'«)Ó4Ò4ä˜§%¡%£'¨C¥-°!Õ"3Ô4Úñ %4ô —l‘l DÐ(Õ(ó5 "øô *ô 9ØŸ;™;Ð'7Ó8“Dð9üs1   ‚AHÁHÁ1G$ ÂE"HÇ$HÈ HÈHÈHr$   ©N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r
   Úclassmethodr   r   r   r   r   r;   r[   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sQ   ø‡ € ñNð ÐÙ‹F€Eð( ñ%ó ð%ò-òò
ò(ò
&÷;)ò ;)r"   r   c                óH   € \         P                  4       P                  W4      # )zuTokenize sql.

Tokenize *sql* using the :class:`Lexer` and return a 2-tuple stream
of ``(token type, value)`` items.
)r   r   r[   )ÚsqlrP   s   &&r   Útokenizeri   ¨   s   € ô ×%Ñ%Ó'×2Ñ2°3ÓAÐAr"   r]   )rb   r)   Úior   Ú	threadingr   Úsqlparser   r   Úsqlparse.utilsr   r   ri   © r"   r   Ú<module>ro      s.   ðñ Û 	õ Ý ç %Ý "÷O)ñ O)ödBr"   