o
    -wis                     @   s  d Z ddlZddlmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZmZmZ ddlmZ g d	Ze d
Z!e dej"Z#e dej"Z$dd Z%G dd de&Z'G dd de'eZ(G dd de'eZ)G dd de'eZ*e dZ+e dZ,e dZ-e dZ,e dZ.e dZ/G dd de&Z0G dd  d eZ1G d!d" d"eZ2G d#d$ d$eZ3G d%d& d&eZ4G d'd( d(eZ5G d)d* d*eZ6dS )+a  
    pygments.lexers.sql
    ~~~~~~~~~~~~~~~~~~~

    Lexers for various SQL dialects and related interactive sessions.

    Postgres specific lexers:

    `PostgresLexer`
        A SQL lexer for the PostgreSQL dialect. Differences w.r.t. the SQL
        lexer are:

        - keywords and data types list parsed from the PG docs (run the
          `_postgres_builtins` module to update them);
        - Content of $-strings parsed using a specific lexer, e.g. the content
          of a PL/Python function is parsed using the Python lexer;
        - parse PG specific constructs: E-strings, $-strings, U&-strings,
          different operators and punctuation.

    `PlPgsqlLexer`
        A lexer for the PL/pgSQL language. Adds a few specific construct on
        top of the PG SQL lexer (such as <<label>>).

    `PostgresConsoleLexer`
        A lexer to highlight an interactive psql session:

        - identifies the prompt and does its best to detect the end of command
          in multiline statement where not all the lines are prefixed by a
          prompt, telling them apart from the output;
        - highlights errors in the output and notification levels;
        - handles psql backslash commands.

    The ``tests/examplefiles`` contains a few test files with data to be
    parsed by these lexers.

    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)Lexer
RegexLexerdo_insertionsbygroupswords)Punctuation
WhitespaceErrorTextCommentOperatorKeywordNameStringNumberGeneric)get_lexer_by_nameClassNotFound)	iteritems)KEYWORDS	DATATYPESPSEUDO_TYPESPLPGSQL_KEYWORDS)_tsql_builtins)PostgresLexerPlPgsqlLexerPostgresConsoleLexerSqlLexerTransactSqlLexer
MySqlLexerSqliteConsoleLexerRqlLexerz.*?
z\s+LANGUAGE\s+'?(\w+)'?z\bDO\bc                 c   s   d}t | j| | d  }|dur | |d}n>tt | jtd|	 d |	  }|rB| |d d}ntt
| jtd|	 d |	  }|r^| d}|	dt|dfV  |	dtj|dfV  |	d	t|d	fV  |r||d
D ]}|V  qn|	d
t|d
fV  |	dt|dfV  |	dtj|dfV  |	dt|dfV  dS )zParse the content of a $-string using a lexer

    The lexer is chosen looking for a nearby LANGUAGE or assumed as
    plpgsql if inside a DO statement and no LANGUAGE has been found.
    Nd      r      plpgsql                  )language_rematchtextend
_get_lexergrouplistfinditermaxstartdo_rer   	Delimiterget_tokens_unprocessed)lexerr.   lmx r>   ]/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/vendor/pygments/lexers/sql.pylanguage_callbackA   s4    
r@   c                       s(   e Zd ZdZ fddZdd Z  ZS )PostgresBasea  Base class for Postgres-related lexers.

    This is implemented as a mixin to avoid the Lexer metaclass kicking in.
    this way the different lexer don't have a common Lexer ancestor. If they
    had, _tokens could be created on this ancestor and not updated for the
    other classes, resulting e.g. in PL/pgSQL parsed as SQL. This shortcoming
    seem to suggest that regexp lexers are not really subclassable.
    c                 '   s0    || _ tt| j|g|R  D ]}|V  qd S N)r/   superrA   r9   )selfr/   argsr=   	__class__r>   r?   r9   o   s   
z#PostgresBase.get_tokens_unprocessedc              	   C   s   |  dkrtdi | jS |g}|dr||dd   |dr-||d d  |dr@|dr@||dd  |D ]}zt|fi | jW   S  tyY   Y qBw d S )Nsql
postgresqlplr'   ur$   )rI   )lowerr   options
startswithappendendswithr   )rD   langtriesr;   r>   r>   r?   r1   v   s    

zPostgresBase._get_lexer)__name__
__module____qualname____doc__r9   r1   __classcell__r>   r>   rF   r?   rA   f   s    rA   c                   @   s:  e Zd ZdZdZddgZdgZejZ	de
fdejfdejd	fd
ddd ee D  d ejfeeddefdefdefdejfdejfdejfdeejejdfdeejejdfdefdefdejfdefgdejd	fdejdfd ejfd!ejfgd"ejfd#ejfd$ejdfgd%ejfd&ejfd'ejdfgd(Z d)S )*r   zM
    Lexer for the PostgreSQL dialect of SQL.

    .. versionadded:: 1.5
    zPostgreSQL SQL dialectrI   postgresztext/x-postgresql\s+--.*\n?/\*multiline-comments(|c                 c   s    | ]	}| d dV  qdS ) rY   N)replace).0sr>   r>   r?   	<genexpr>   s    zPostgresLexer.<genexpr>z)\b\bsuffixz[+*/<>=~!@#%^&|`?-]+z::z\$\d+z&([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?[0-9]+z((?:E|U&)?)(')stringz((?:U&)?)(")quoted-identz$(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)	[a-z_]\w*:(['"]?)[a-z]\w*\b\1z[;:()\[\]{},.]\*/#pop[^/*]+[/*]z[^']+z'''z[^"]+z""")rootr\   rh   ri   N)!rS   rT   rU   rV   namealiases	mimetypesre
IGNORECASEflagsr
   r   Single	Multilinejoinr   r   r   Builtinr   r   r   r   Variabler   FloatIntegerr   r   Affixr@   r   tokensr>   r>   r>   r?   r      sV    





r   c                   @   s   e Zd ZdZdZdgZdgZejZ	e
dd eejD Zeed D ]\ZZed ekr>eee d	d
efed e< [ nq#J ddejfdefdejfdejfged dd< dS )r   zR
    Handle the extra syntax in Pl/pgSQL language.

    .. versionadded:: 1.5
    zPL/pgSQLr&   ztext/x-plpgsqlc                 c   $    | ]\}}||d d  fV  qd S rB   r>   ra   kr;   r>   r>   r?   rc         " zPlPgsqlLexer.<genexpr>rr   r#   rd   re   r   zSQL keywords not foundz\%[a-z]\w*\bz:=z\<\<[a-z]\w*\>\>z\#[a-z]\w*\bN)rS   rT   rU   rV   rs   rt   ru   rv   rw   rx   dictr   r   r   	enumerateipatternr   r   r   r   r   r|   r   LabelPseudor>   r>   r>   r?   r      s*    r   c                   @   s   e Zd ZdZdZg ZejZe	dd e
ejD Zed dejdf dedfd	efdejfd
ejfdejfdejfdejfged< dS )PsqlRegexLexerz
    Extend the PostgresLexer adding support specific for psql commands.

    This is not a complete psql lexer yet as it lacks prompt support
    and output rendering.
    z'PostgreSQL console - regexp based lexerc                 c   r   rB   r>   r   r>   r>   r?   rc      r   zPsqlRegexLexer.<genexpr>rr   z\\[^\s]+zpsql-commandz\nrY   rk   '(''|[^'])*'z	`([^`])*`z[^\s]+N)rS   rT   rU   rV   rs   rt   rv   rw   rx   r   r   r   r   rO   r   r   r
   r   r}   r   ry   BacktickSymbolr>   r>   r>   r?   r      s"    
r   z^(\S.*?)??[=\-\(\$\'\"][#>]z\s*\\z;\s*(--.*?)?$z(\s*)(\\.+?)(\s+)$z(ERROR|FATAL):zS((?:DEBUG|INFO|NOTICE|WARNING|ERROR|FATAL|HINT|DETAIL|CONTEXT|LINE [0-9]+):)(.*?\n)c                   @   s4   e Zd ZdZdd Zdd Zdd Zdd	 ZeZd
S )	lookaheadz0Wrap an iterator and allow pushing back an item.c                 C   s   t || _ d | _d S rB   )iter	_nextitem)rD   r=   r>   r>   r?   __init__  s   

zlookahead.__init__c                 C   s   | S rB   r>   )rD   r>   r>   r?   __iter__  s   zlookahead.__iter__c                 C   s
   || _ |S rB   )r   )rD   r   r>   r>   r?   send  s   zlookahead.sendc                 C   s$   | j d ur| j }d | _ |S t| jS rB   )r   nextr   )rD   nir>   r>   r?   __next__  s
   

zlookahead.__next__N)	rS   rT   rU   rV   r   r   r   r   r   r>   r>   r>   r?   r   
  s    r   c                   @   s*   e Zd ZdZdZg dZdgZdd ZdS )r   z=
    Lexer for psql sessions.

    .. versionadded:: 1.5
    zPostgreSQL console (psql))psqlzpostgresql-consolezpostgres-consoleztext/x-postgresql-psqlc                 c   s   t d	i | j}tt|}	 d}g }	 zt|}W n	 ty%   Y nRw |drA|sAtd
i | j}|	|D ]}|V  q:n6t
|}	|	d urg|t|dtj|	 fgf ||t|	 d  7 }n||7 }t|sut|rvnqt||	|D ]}
|
V  qtj}	 t|}t
|}	|	d ur|| n=t|}|d ur|dds|ddrtj}|dtj|dfV  |d||dfV  nd||fV  qq)Nr#    $consoler   ERRORFATALr'   r>   )r   )r   rM   r   line_refindallr   StopIterationrN   r   r9   	re_promptr.   rO   lenr   Promptr2   re_psql_commandre_end_commandsearchr   Outputr   
re_messager	   r6   Strong)rD   datarH   linescurcode
insertionsliner:   r=   mpromptitem	out_tokenmmsgr>   r>   r?   r9   +  sf   


 


z+PostgresConsoleLexer.get_tokens_unprocessedN)rS   rT   rU   rV   rs   rt   ru   r9   r>   r>   r>   r?   r      s    r   c                   @   s   e Zd ZdZdZdgZdgZdgZej	Z
defdejfdejd	fed
ddefedddejfdefdejfdejfdejfdefdefgdejd	fdejdfdejfdejfgdZdS )r   z
    Lexer for Structured Query Language. Currently, this lexer does
    not recognize any special syntax except ANSI SQL.
    SQLrH   *.sqlz
text/x-sqlrY   rZ   r[   r\   (  ABORTABSABSOLUTEACCESSADAADDADMINAFTER	AGGREGATEALIASALLALLOCATEALTERANALYSEANALYZEANDANYAREASASC
ASENSITIVE	ASSERTION
ASSIGNMENT
ASYMMETRICATATOMICAUTHORIZATIONAVGBACKWARDBEFOREBEGINBETWEENBITVAR
BIT_LENGTHBOTHBREADTHBYCCACHECALLCALLEDCARDINALITYCASCADECASCADEDCASECASTCATALOGCATALOG_NAMECHAINCHARACTERISTICSCHARACTER_LENGTHCHARACTER_SET_CATALOGCHARACTER_SET_NAMECHARACTER_SET_SCHEMACHAR_LENGTHCHECKCHECKED
CHECKPOINTCLASSCLASS_ORIGINCLOBCLOSECLUSTERCOALSECECOBOLCOLLATE	COLLATIONCOLLATION_CATALOGCOLLATION_NAMECOLLATION_SCHEMACOLUMNCOLUMN_NAMECOMMAND_FUNCTIONCOMMAND_FUNCTION_CODECOMMENTCOMMIT	COMMITTED
COMPLETIONCONDITION_NUMBERCONNECT
CONNECTIONCONNECTION_NAME
CONSTRAINTCONSTRAINTSCONSTRAINT_CATALOGCONSTRAINT_NAMECONSTRAINT_SCHEMACONSTRUCTORCONTAINSCONTINUE
CONVERSIONCONVERTCOPYCORRESPONTINGCOUNTCREATECREATEDB
CREATEUSERCROSSCUBECURRENTCURRENT_DATECURRENT_PATHCURRENT_ROLECURRENT_TIMECURRENT_TIMESTAMPCURRENT_USERCURSORCURSOR_NAMECYCLEDATADATABASEDATETIME_INTERVAL_CODEDATETIME_INTERVAL_PRECISIONDAY
DEALLOCATEDECLAREDEFAULTDEFAULTS
DEFERRABLEDEFERREDDEFINEDDEFINERDELETE	DELIMITER
DELIMITERSDEREFDESCDESCRIBE
DESCRIPTORDESTROY
DESTRUCTORDETERMINISTICDIAGNOSTICS
DICTIONARY
DISCONNECTDISPATCHDISTINCTDODOMAINDROPDYNAMICDYNAMIC_FUNCTIONDYNAMIC_FUNCTION_CODEEACHELSEELSIFENCODING	ENCRYPTEDENDzEND-EXECEQUALSESCAPEEVERY	EXCEPTIONEXCEPT	EXCLUDING	EXCLUSIVEEXECEXECUTEEXISTINGEXISTSEXPLAINEXTERNALEXTRACTFALSEFETCHFINALFIRSTFORFORCEFOREIGNFORTRANFORWARDFOUNDFREEFREEZEFROMFULLFUNCTIONGGENERAL	GENERATEDGETGLOBALGOGOTOGRANTGRANTEDGROUPGROUPINGHANDLERHAVING	HIERARCHYHOLDHOSTIDENTITYIFIGNOREILIKE	IMMEDIATE	IMMUTABLEIMPLEMENTATIONIMPLICITIN	INCLUDING	INCREMENTINDEX
INDITCATORINFIXINHERITS
INITIALIZE	INITIALLYINNERINOUTINPUTINSENSITIVEINSERTINSTANTIABLEINSTEAD	INTERSECTINTOINVOKERISISNULL	ISOLATIONITERATEJOINKEY
KEY_MEMBERKEY_TYPELANCOMPILERLANGUAGELARGELASTLATERALLEADINGLEFTLENGTHLESSLEVELLIKELIMITLISTENLOADLOCAL	LOCALTIMELOCALTIMESTAMPLOCATIONLOCATORLOCKLOWERMAPMATCHMAXMAXVALUEMESSAGE_LENGTHMESSAGE_OCTET_LENGTHMESSAGE_TEXTMETHODMINMINUTEMINVALUEMODMODEMODIFIESMODIFYMONTHMOREMOVEMUMPSNAMESNATIONALNATURALNCHARNCLOBNEWNEXTNO
NOCREATEDBNOCREATEUSERNONENOTNOTHINGNOTIFYNOTNULLNULLNULLABLENULLIFOBJECTOCTET_LENGTHOFOFFOFFSETOIDSOLDONONLYOPEN	OPERATIONOPERATOROPTIONOPTIONSORORDER
ORDINALITYOUTOUTEROUTPUTOVERLAPSOVERLAY
OVERRIDINGOWNERPAD	PARAMETER
PARAMETERSPARAMETER_MODEPARAMATER_NAMEPARAMATER_ORDINAL_POSITIONPARAMETER_SPECIFIC_CATALOGPARAMETER_SPECIFIC_NAMEPARAMATER_SPECIFIC_SCHEMAPARTIALPASCALPENDANTPLACINGPLIPOSITIONPOSTFIX	PRECISIONPREFIXPREORDERPREPAREPRESERVEPRIMARYPRIOR
PRIVILEGES
PROCEDURAL	PROCEDUREPUBLICREADREADSRECHECK	RECURSIVEREF
REFERENCESREFERENCINGREINDEXRELATIVERENAME
REPEATABLEREPLACERESETRESTARTRESTRICTRESULTRETURNRETURNED_LENGTHRETURNED_OCTET_LENGTHRETURNED_SQLSTATERETURNSREVOKERIGHTROLEROLLBACKROLLUPROUTINEROUTINE_CATALOGROUTINE_NAMEROUTINE_SCHEMAROWROWS	ROW_COUNTRULE
SAVE_POINTSCALESCHEMASCHEMA_NAMESCOPESCROLLSEARCHSECONDSECURITYSELECTSELF	SENSITIVESERIALIZABLESERVER_NAMESESSIONSESSION_USERSETSETOFSETSSHARESHOWSIMILARSIMPLESIZESOMESOURCESPACESPECIFICSPECIFICTYPESPECIFIC_NAMEr   SQLCODESQLERRORSQLEXCEPTIONSQLSTATESQLWARNINIGSTABLESTARTSTATE	STATEMENTSTATIC
STATISTICSSTDINSTDOUTSTORAGESTRICT	STRUCTURESTYPESUBCLASS_ORIGINSUBLIST	SUBSTRINGSUM	SYMMETRICSYSIDSYSTEMSYSTEM_USERTABLE
TABLE_NAMEz TEMPTEMPLATE	TEMPORARY	TERMINATETHANTHEN	TIMESTAMPTIMEZONE_HOURTIMEZONE_MINUTETOTOASTTRAILING
TRANSATIONTRANSACTIONS_COMMITTEDTRANSACTIONS_ROLLED_BACKTRANSATION_ACTIVE	TRANSFORM
TRANSFORMS	TRANSLATETRANSLATIONTREATTRIGGERTRIGGER_CATALOGTRIGGER_NAMETRIGGER_SCHEMATRIMTRUETRUNCATETRUSTEDTYPEUNCOMMITTEDUNDERUNENCRYPTEDUNIONUNIQUEUNKNOWNUNLISTENUNNAMEDUNNESTUNTILUPDATEUPPERUSAGEUSERUSER_DEFINED_TYPE_CATALOGUSER_DEFINED_TYPE_NAMEUSER_DEFINED_TYPE_SCHEMAUSINGVACUUMVALID	VALIDATORVALUESVARIABLEVERBOSEVERSIONVIEWVOLATILEWHENWHENEVERWHEREWITHWITHOUTWORKWRITEYEARZONErd   re   )ARRAYBIGINTBINARYBITBLOBBOOLEANCHAR	CHARACTERDATEDECDECIMALFLOATINTINTEGERINTERVALNUMBERNUMERICREALSERIALSMALLINTVARCHARVARYINGINT8SERIAL8TEXT[+*/<>=~!@#%^&|`?-]rg   r   "(""|[^"])*"z[a-z_][\w$]*[;:()\[\],.]rl   rm   rn   ro   rr   r\   N)rS   rT   rU   rV   rs   rt   	filenamesru   rv   rw   rx   r
   r   ry   rz   r   r   r   r|   r   r   r   r   r   r   r   r>   r>   r>   r?   r   p  sB    
KLM
_

r   c                   @   sV  e Zd ZdZdZddgZdgZdgZej	ej
B Zdefdejfd	ejd
feejefeejddejfeejddejfeejddejfdeeeejfeejddefdeeeefdej fdej!fdej!fdej!fdej"fde#jfde#j$fde%fdej&fdej'fdeeje%fdefdej'j(fgd	ejd
fdejdfdejfdejfgd Z)d!S )"r   z
    Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to
    SQL.

    The list of keywords includes ODBC and keywords reserved for future use..
    zTransact-SQLtsqlzt-sqlr   ztext/x-tsqlrY   z--(?m).*?$\n?r[   r\   rd   re   z(goto)(\s+)(\w+\b)z(\[)([^]]+)(\])z0x[0-9a-f]+z[0-9]+\.[0-9]*(e[+-]?[0-9]+)?z\.[0-9]+(e[+-]?[0-9]+)?z[0-9]+e[+-]?[0-9]+rg   r   r  z[;(),.]z@@\w+z@\w+z(\w+)(:)z#?#?\w+z\?rl   rm   rn   ro   r  N)*rS   rT   rU   rV   rs   rt   r  ru   rv   rw   UNICODErx   r   r   ry   rz   r   r   	OPERATORSr   OPERATOR_WORDSWordTYPESr   Class	FUNCTIONSFunctionr   r   r   r   r   Hexr~   r   r   r   r   r|   r}   Magicr   r>   r>   r>   r?   r     sJ    


 

r   c                   @   s   e Zd ZdZdZdgZdgZejZ	de
fdejfdejdfd	ejfd
ejfdejfdejfdejfdefdeeje
efdefdejfdejfdeeje
efdefdejfdefgdejdfdejdfdejfdejfgdZdS )r   z"
    Special lexer for MySQL.
    MySQLmysqlztext/x-mysqlrY   z(#|--\s+).*\n?r[   r\   rg   z[0-9]*\.[0-9]+(e[+-][0-9]+)z'(\\\\|\\'|''|[^'])*'z"(\\\\|\\"|""|[^"])*"z`(\\\\|\\`|``|[^`])*`r  a  \b(tinyint|smallint|mediumint|int|integer|bigint|date|datetime|time|bit|bool|tinytext|mediumtext|longtext|text|tinyblob|mediumblob|longblob|blob|float|double|double\s+precision|real|numeric|dec|decimal|timestamp|year|char|varchar|varbinary|varcharacter|enum|set)(\b\s*)(\()?a3  \b(add|all|alter|analyze|and|as|asc|asensitive|before|between|bigint|binary|blob|both|by|call|cascade|case|change|char|character|check|collate|column|condition|constraint|continue|convert|create|cross|current_date|current_time|current_timestamp|current_user|cursor|database|databases|day_hour|day_microsecond|day_minute|day_second|dec|decimal|declare|default|delayed|delete|desc|describe|deterministic|distinct|distinctrow|div|double|drop|dual|each|else|elseif|enclosed|escaped|exists|exit|explain|fetch|flush|float|float4|float8|for|force|foreign|from|fulltext|grant|group|having|high_priority|hour_microsecond|hour_minute|hour_second|if|ignore|in|index|infile|inner|inout|insensitive|insert|int|int1|int2|int3|int4|int8|integer|interval|into|is|iterate|join|key|keys|kill|leading|leave|left|like|limit|lines|load|localtime|localtimestamp|lock|long|loop|low_priority|match|minute_microsecond|minute_second|mod|modifies|natural|no_write_to_binlog|not|numeric|on|optimize|option|optionally|or|order|out|outer|outfile|precision|primary|procedure|purge|raid0|read|reads|real|references|regexp|release|rename|repeat|replace|require|restrict|return|revoke|right|rlike|schema|schemas|second_microsecond|select|sensitive|separator|set|show|smallint|soname|spatial|specific|sql|sql_big_result|sql_calc_found_rows|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|starting|straight_join|table|terminated|then|to|trailing|trigger|undo|union|unique|unlock|unsigned|update|usage|use|using|utc_date|utc_time|utc_timestamp|values|varying|when|where|while|with|write|x509|xor|year_month|zerofill)\bz*\b(auto_increment|engine|charset|tables)\bz(true|false|null)z([a-z_]\w*)(\s*)(\()rj   z@[a-z0-9]*[._]*[a-z0-9]*r  rl   rm   rn   ro   r  N)rS   rT   rU   rV   rs   rt   ru   rv   rw   rx   r
   r   ry   rz   r   r   r~   r   Doubler   r   r   r   Typer   r   r   Constantr  r}   r   r>   r>   r>   r?   r     sH    

6

r   c                   @   s.   e Zd ZdZdZdgZdgZdgZdd ZdS )	r    zO
    Lexer for example sessions using sqlite3.

    .. versionadded:: 0.11
    
sqlite3consqlite3z*.sqlite3-consoleztext/x-sqlite3-consolec              	   c   s    t di | j}d}g }t|D ]W}| }|ds"|dr=|t|dtj	|d d fgf ||dd  7 }q|rQt
|||D ]}|V  qGd}g }|dr`| tj|fV  q| tj|fV  q|rzt
|||D ]}|V  qtd S d S )Nr   zsqlite> z   ...> r      zSQL error: r>   )r   rM   r   r4   r2   rN   rO   r   r   r   r   r9   r6   	Tracebackr   )rD   r   rH   r   r   r.   r   r   r>   r>   r?   r9   q  s8   

z)SqliteConsoleLexer.get_tokens_unprocessedN)	rS   rT   rU   rV   rs   rt   r  ru   r9   r>   r>   r>   r?   r    e  s    r    c                   @   sr   e Zd ZdZdZdgZdgZdgZej	Z
ddefdefd	efd
ejfdejfdefdejfdejfdefg	iZdS )r!   zx
    Lexer for Relation Query Language.

    `RQL <http://www.logilab.org/project/rql>`_

    .. versionadded:: 2.0
    RQLrqlz*.rqlz
text/x-rqlrr   rY   z(DELETE|SET|INSERT|UNION|DISTINCT|WITH|WHERE|BEING|OR|AND|NOT|GROUPBY|HAVING|ORDERBY|ASC|DESC|LIMIT|OFFSET|TODAY|NOW|TRUE|FALSE|NULL|EXISTS)\bz
[+*/<>=%-]z)(Any|is|instance_of|CWEType|CWRelation)\brg   z[A-Z_]\w*\??r   r  r  N)rS   rT   rU   rV   rs   rt   r  ru   rv   rw   rx   r
   r   r   r   r|   r   r   r   ry   r   r   r>   r>   r>   r?   r!     s*    r!   )7rV   rv   pygments.lexerr   r   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   r   r   pygments.lexersr   r   pygments.utilr   "pygments.lexers._postgres_builtinsr   r   r   r   r   __all__compiler   rw   r-   r7   r@   objectrA   r   r   r   r   r   r   re_errorr   r   r   r   r   r   r    r!   r>   r>   r>   r?   <module>   s@   '4
%'8!




Pt8I(