HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/sql.cpython-38.pyc
U

G�
\$r�@s�dZddlZddlmZmZmZmZmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZddlmZmZddlmZddlmZmZmZmZddlmZd	d
ddd
dddgZe� d�Z!e� dej"�Z#e� dej"�Z$dd�Z%Gdd�de&�Z'Gdd	�d	e'e�Z(Gdd
�d
e'e�Z)Gdd�de'e�Z*e� d�Z+e� d�Z,e� d�Z-e� d�Z,e� d �Z.e� d!�Z/Gd"d#�d#e&�Z0Gd$d�de�Z1Gd%d�de�Z2Gd&d
�d
e�Z3Gd'd�de�Z4Gd(d�de�Z5Gd)d�de�Z6dS)*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\bccs�d}t�|j|��|��d��}|dk	r>|�|�d��}n|tt�|jtd|�	�d�|�	����}|r�|�|d�d��}n8tt
�|jtd|�	�d�|�	����}|r�|�d�}|�	d�t|�d�fV|�	d�tj|�d�fV|�	d	�t|�d	�fV|�r*|�
|�d
��D]}|V�qn|�	d
�t|�d
�fV|�	d�t|�d�fV|�	d�tj|�d�fV|�	d
�t|�d
�fVdS)z�Parse 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.
    N�d�r�����plpgsql������)�language_re�match�text�end�
_get_lexer�group�list�finditer�max�start�do_rerZ	Delimiter�get_tokens_unprocessed)�lexerr.�l�m�x�r=�5/usr/lib/python3/dist-packages/pygments/lexers/sql.py�language_callbackAs0 ��
r?cs(eZdZdZ�fdd�Zdd�Z�ZS)�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's,||_tt|�j|f|��D]
}|VqdS�N)r/�superr@r8)�selfr/�argsr<��	__class__r=r>r8os
��
z#PostgresBase.get_tokens_unprocessedc	Cs�|��dkrtd|j�S|g}|�d�r:|�|dd��|�d�rV|�|dd��|�d�r||�d�r||�|dd��|D].}zt|f|j�WStk
r�Yq�Xq�dS)N�sql�
postgresqlZplr'�ur$)rH)�lowerr�options�
startswith�append�endswithr)rCZlangZtriesr:r=r=r>r1vs

zPostgresBase._get_lexer)�__name__�
__module__�__qualname__�__doc__r8r1�
__classcell__r=r=rEr>r@fsr@c@s:eZdZdZdZddgZdgZejZ	de
fdejfdej
d	fd
d�dd
�eeD��dejfeedd�efdefdefdejfdejfdejfdeejej�dfdeejej�dfdefdefdejfdefgdej
d	fdej
dfd ej
fd!ej
fgd"ejfd#ejfd$ejdfgd%ejfd&ejfd'ejdfgd(�Z d)S)*rzM
    Lexer for the PostgreSQL dialect of SQL.

    .. versionadded:: 1.5
    zPostgreSQL SQL dialectrHZpostgresztext/x-postgresql�\s+�--.*\n?�/\*�multiline-comments�(�|ccs|]}|�dd�VqdS)� rTN)�replace)�.0�sr=r=r>�	<genexpr>�s�zPostgresLexer.<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""�")�rootrWrcrdN)!rOrPrQrR�name�aliases�	mimetypes�re�
IGNORECASE�flagsr
r�Single�	Multiline�joinrrr�Builtinrrr
r�Variabler�Float�IntegerrrZAffixr?r�tokensr=r=r=r>r�sT
����

�
�
��c@s�eZdZdZdZdgZdgZejZ	e
dd�eej
�D��Z
ee
d�D]6\ZZedekrFeeed	d
�efe
de<[q�qFds�td��d
ejfdefdejfdejfge
ddd�<dS)rzR
    Handle the extra syntax in Pl/pgSQL language.

    .. versionadded:: 1.5
    zPL/pgSQLr&ztext/x-plpgsqlccs"|]\}}||dd�fVqdSrAr=�r\�kr:r=r=r>r^�szPlPgsqlLexer.<genexpr>rmr#r_r`rzSQL keywords not foundz\%[a-z]\w*\bz:=z\<\<[a-z]\w*\>\>z\#[a-z]\w*\bN)rOrPrQrRrnrorprqrrrs�dictrrr{�	enumerate�i�patternr
rrr�AssertionErrorrrwr�Label�Pseudor=r=r=r>r�s&��c@s�eZdZdZdZgZejZe	dd�e
ej�D��Zed�
dejdf�dedfd	efdejfd
ejfdejfdejfd
ejfged<dS)�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 lexerccs"|]\}}||dd�fVqdSrAr=r|r=r=r>r^�szPsqlRegexLexer.<genexpr>rmz\\[^\s]+zpsql-commandz\nrTrf�'(''|[^'])*'z	`([^`])*`z[^\s]+N)rOrPrQrRrnrorqrrrsr~rrr{rMr
r�r
rrxrrtZBacktick�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@s4eZdZdZdd�Zdd�Zdd�Zdd	�ZeZd
S)�	lookaheadz0Wrap an iterator and allow pushing back an item.cCst|�|_d|_dSrA)�iter�	_nextitem)rCr<r=r=r>�__init__s
zlookahead.__init__cCs|SrAr=)rCr=r=r>�__iter__szlookahead.__iter__cCs
||_|SrA)r�)rCr�r=r=r>�sendszlookahead.sendcCs$|jdk	r|j}d|_|St|j�SrA)r��nextr�)rCZnir=r=r>�__next__s

zlookahead.__next__N)	rOrPrQrRr�r�r�r�r�r=r=r=r>r�
sr�c@s,eZdZdZdZdddgZdgZdd�Zd	S)
rz=
    Lexer for psql sessions.

    .. versionadded:: 1.5
    zPostgreSQL console (psql)Zpsqlzpostgresql-consolezpostgres-consoleztext/x-postgresql-psqlc
cs�tf|j�}tt�|��}d}g}|D]�}|�d�r^|s^td	|j�}|�|�D]
}|VqNq�t�	|�}	|	dk	r�|�
t|�dtj
|	��fgf�||t|	���d�7}n||7}t�	|�s�t�|�r&q�q&t||�|��D]
}
|
Vq�tj}|D]�}t�	|�}	|	dk	�r|�|�qt�	|�}|dk	�r�|�d��d��sP|�d��d��rVtj}|�d�tj|�d�fV|�d�||�d�fVq�d||fVq�dSqdS)
N��$�consolerr#ZERRORZFATALr')r�)r�rKr��line_re�findallrLrr8�	re_promptr.rM�lenr�Promptr2�re_psql_command�re_end_command�searchr�Outputr��
re_messager	r6ZStrong)
rC�datarG�lines�curcode�
insertions�liner9r<Zmprompt�itemZ	out_tokenZmmsgr=r=r>r8+sR

�
��




�z+PostgresConsoleLexer.get_tokens_unprocessedN)rOrPrQrRrnrorpr8r=r=r=r>r s

c@s�eZdZdZdZdgZdgZdgZej	Z
defdej
fdejd	fed
dd�efed
dd�ejfdefdejfdej
fdejfdefdefgdejd	fdejdfdejfdejfgd�ZdS)rz
    Lexer for Structured Query Language. Currently, this lexer does
    not recognize any special syntax except ANSI SQL.
    �SQLrG�*.sqlz
text/x-sqlrTrUrVrW(�ZABORTZABSZABSOLUTEZACCESSZADAZADDZADMINZAFTERZ	AGGREGATEZALIASZALLZALLOCATEZALTERZANALYSEZANALYZEZAND�ANYZAREZASZASCZ
ASENSITIVEZ	ASSERTIONZ
ASSIGNMENTZ
ASYMMETRIC�ATZATOMICZ
AUTHORIZATIONZAVGZBACKWARDZBEFOREZBEGINZBETWEENZBITVARZ
BIT_LENGTHZBOTHZBREADTHZBY�CZCACHE�CALLZCALLEDZCARDINALITYZCASCADEZCASCADEDZCASEZCASTZCATALOGZCATALOG_NAMEZCHAINZCHARACTERISTICSZCHARACTER_LENGTHZCHARACTER_SET_CATALOGZCHARACTER_SET_NAMEZCHARACTER_SET_SCHEMAZCHAR_LENGTHZCHECKZCHECKEDZ
CHECKPOINTZCLASSZCLASS_ORIGINZCLOBZCLOSEZCLUSTERZCOALSECEZCOBOLZCOLLATEZ	COLLATIONZCOLLATION_CATALOGZCOLLATION_NAMEZCOLLATION_SCHEMAZCOLUMNZCOLUMN_NAMEZCOMMAND_FUNCTIONZCOMMAND_FUNCTION_CODE�COMMENTZCOMMITZ	COMMITTEDZ
COMPLETIONZCONDITION_NUMBERZCONNECTZ
CONNECTIONZCONNECTION_NAMEZ
CONSTRAINTZCONSTRAINTSZCONSTRAINT_CATALOGZCONSTRAINT_NAMEZCONSTRAINT_SCHEMAZCONSTRUCTORZCONTAINSZCONTINUEZ
CONVERSIONZCONVERTZCOPYZ
CORRESPONTINGZCOUNTZCREATEZCREATEDBZ
CREATEUSERZCROSSZCUBEZCURRENTZCURRENT_DATEZCURRENT_PATHZCURRENT_ROLEZCURRENT_TIMEZCURRENT_TIMESTAMPZCURRENT_USERZCURSORZCURSOR_NAMEZCYCLEZDATAZDATABASEZDATETIME_INTERVAL_CODEZDATETIME_INTERVAL_PRECISIONZDAYZ
DEALLOCATEZDECLAREZDEFAULTZDEFAULTSZ
DEFERRABLEZDEFERREDZDEFINEDZDEFINERZDELETEZ	DELIMITERZ
DELIMITERSZDEREFZDESCZDESCRIBEZ
DESCRIPTORZDESTROYZ
DESTRUCTORZ
DETERMINISTICZDIAGNOSTICSZ
DICTIONARYZ
DISCONNECTZDISPATCHZDISTINCTZDOZDOMAINZDROPZDYNAMICZDYNAMIC_FUNCTIONZDYNAMIC_FUNCTION_CODEZEACH�ELSEZELSIF�ENCODINGZ	ENCRYPTEDZENDzEND-EXECZEQUALSZESCAPEZEVERYZ	EXCEPTIONZEXCEPTZ	EXCLUDINGZ	EXCLUSIVEZEXECZEXECUTEZEXISTINGZEXISTSZEXPLAINZEXTERNALZEXTRACTZFALSEZFETCHZFINALZFIRSTZFORZFORCEZFOREIGNZFORTRANZFORWARDZFOUNDZFREEZFREEZEZFROMZFULLZFUNCTION�GZGENERALZ	GENERATEDZGETZGLOBALZGOZGOTOZGRANTZGRANTEDZGROUPZGROUPINGZHANDLERZHAVINGZ	HIERARCHYZHOLDZHOSTZIDENTITYZIFZIGNOREZILIKEZ	IMMEDIATEZ	IMMUTABLEZIMPLEMENTATIONZIMPLICIT�INZ	INCLUDINGZ	INCREMENTZINDEXZ
INDITCATORZINFIXZINHERITSZ
INITIALIZEZ	INITIALLYZINNERZINOUTZINPUTZINSENSITIVEZINSERTZINSTANTIABLEZINSTEADZ	INTERSECTZINTOZINVOKERZISZISNULLZ	ISOLATIONZITERATEZJOINZKEYZ
KEY_MEMBERZKEY_TYPEZLANCOMPILERZLANGUAGEZLARGEZLASTZLATERALZLEADINGZLEFTZLENGTH�LESSZLEVELZLIKEZLIMITZLISTENZLOADZLOCALZ	LOCALTIMEZLOCALTIMESTAMPZLOCATIONZLOCATORZLOCKZLOWERZMAPZMATCH�MAXZMAXVALUEZMESSAGE_LENGTHZMESSAGE_OCTET_LENGTHZMESSAGE_TEXTZMETHODZMINZMINUTEZMINVALUEZMODZMODEZMODIFIESZMODIFYZMONTHZMOREZMOVEZMUMPSZNAMESZNATIONALZNATURALZNCHARZNCLOBZNEWZNEXTZNOZ
NOCREATEDBZNOCREATEUSERZNONEZNOTZNOTHINGZNOTIFYZNOTNULLZNULLZNULLABLEZNULLIFZOBJECTZOCTET_LENGTHZOFZOFFZOFFSETZOIDSZOLDZONZONLYZOPENZ	OPERATIONZOPERATORZOPTIONZOPTIONS�ORZORDERZ
ORDINALITYZOUTZOUTERZOUTPUTZOVERLAPSZOVERLAYZ
OVERRIDINGZOWNERZPADZ	PARAMETERZ
PARAMETERSZPARAMETER_MODEZPARAMATER_NAMEZPARAMATER_ORDINAL_POSITIONZPARAMETER_SPECIFIC_CATALOGZPARAMETER_SPECIFIC_NAMEZPARAMATER_SPECIFIC_SCHEMAZPARTIALZPASCALZPENDANTZPLACINGZPLIZPOSITIONZPOSTFIXZ	PRECISIONZPREFIXZPREORDERZPREPAREZPRESERVEZPRIMARYZPRIORZ
PRIVILEGESZ
PROCEDURALZ	PROCEDUREZPUBLICZREADZREADSZRECHECKZ	RECURSIVEZREFZ
REFERENCESZREFERENCINGZREINDEXZRELATIVEZRENAMEZ
REPEATABLEZREPLACEZRESETZRESTARTZRESTRICTZRESULTZRETURNZRETURNED_LENGTHZRETURNED_OCTET_LENGTHZRETURNED_SQLSTATEZRETURNSZREVOKEZRIGHTZROLEZROLLBACKZROLLUPZROUTINEZROUTINE_CATALOGZROUTINE_NAMEZROUTINE_SCHEMAZROWZROWSZ	ROW_COUNTZRULEZ
SAVE_POINTZSCALEZSCHEMAZSCHEMA_NAMEZSCOPEZSCROLLZSEARCHZSECONDZSECURITYZSELECTZSELFZ	SENSITIVEZSERIALIZABLEZSERVER_NAMEZSESSIONZSESSION_USERZSETZSETOFZSETSZSHAREZSHOWZSIMILARZSIMPLEZSIZEZSOMEZSOURCEZSPACEZSPECIFICZSPECIFICTYPEZ
SPECIFIC_NAMEr�ZSQLCODEZSQLERRORZSQLEXCEPTIONZSQLSTATEZSQLWARNINIGZSTABLEZSTARTZSTATEZ	STATEMENTZSTATICZ
STATISTICSZSTDINZSTDOUTZSTORAGEZSTRICTZ	STRUCTUREZSTYPEZSUBCLASS_ORIGINZSUBLISTZ	SUBSTRINGZSUMZ	SYMMETRICZSYSIDZSYSTEMZSYSTEM_USERZTABLEZ
TABLE_NAMEz TEMP�TEMPLATEZ	TEMPORARYZ	TERMINATEZTHANZTHEN�	TIMESTAMPZ
TIMEZONE_HOURZTIMEZONE_MINUTEZTOZTOASTZTRAILINGZ
TRANSATIONZTRANSACTIONS_COMMITTEDZTRANSACTIONS_ROLLED_BACKZTRANSATION_ACTIVEZ	TRANSFORMZ
TRANSFORMSZ	TRANSLATEZTRANSLATIONZTREATZTRIGGERZTRIGGER_CATALOGZTRIGGER_NAMEZTRIGGER_SCHEMAZTRIMZTRUEZTRUNCATEZTRUSTEDZTYPEZUNCOMMITTEDZUNDERZUNENCRYPTEDZUNIONZUNIQUEZUNKNOWNZUNLISTENZUNNAMEDZUNNESTZUNTILZUPDATEZUPPERZUSAGEZUSERZUSER_DEFINED_TYPE_CATALOGZUSER_DEFINED_TYPE_NAMEZUSER_DEFINED_TYPE_SCHEMAZUSINGZVACUUMZVALIDZ	VALIDATORZVALUESZVARIABLE�VERBOSEZVERSIONZVIEWZVOLATILEZWHENZWHENEVERZWHEREZWITHZWITHOUTZWORKZWRITEZYEARZZONEr_r`)ZARRAYZBIGINTZBINARYZBITZBLOBZBOOLEANZCHARZ	CHARACTER�DATEZDECZDECIMALZFLOATZINTZINTEGERZINTERVAL�NUMBERZNUMERICZREALZSERIALZSMALLINTZVARCHARZVARYINGZINT8ZSERIAL8ZTEXT�[+*/<>=~!@#%^&|`?-]rbr��"(""|[^"])*"z[a-z_][\w$]*�[;:()\[\],.]rgrhrirj�rmrWN)rOrPrQrRrnro�	filenamesrprqrrrsr
rrtrurr
rrwrrrzrr�rr{r=r=r=r>rjs@
K�L�M���_

��c@sVeZdZdZdZddgZdgZdgZej	ej
BZdefde
jfd	e
jd
feej�efeejdd�ejfeejdd�ejfeejdd�ejfd
eeeej�feejdd�efdeeee�fdej fdej!fdej!fdej!fdej"fde#jfde#j$fde%fdej&fdej'fdeeje%�fdefdej'j(fgd	e
jd
fde
jdfde
jfde
jfgd �Z)d!S)"rz�
    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-SQLZtsqlzt-sqlr�ztext/x-tsqlrTz
(?m)--.*?$\n?rVrWr_r`z(goto)(\s+)(\w+\b)z(\[)([^]]+)(\])z0x[0-9a-f]+z[0-9]+\.[0-9]*(e[+-]?[0-9]+)?z\.[0-9]+(e[+-]?[0-9]+)?z[0-9]+e[+-]?[0-9]+rbr�r�z[;(),.]z@@\w+z@\w+z(\w+)(:)z#?#?\w+z\?rgrhrirjr�N)*rOrPrQrRrnror�rprqrr�UNICODErsrrrtrurrZ	OPERATORSrZOPERATOR_WORDSZWordZTYPESrZClassZ	FUNCTIONS�Functionrr
r�rrZHexryrzrr�rrwrxZMagicr{r=r=r=r>r�sH

� 

��c@s�eZdZdZdZdgZdgZejZ	de
fdejfdej
dfd	ejfd
ejfdejfdejfd
ejfdefdeeje
e�fdefdejfdejfdeeje
e�fdefdejfdefgdej
dfdej
dfdej
fdej
fgd�ZdS)rz"
    Special lexer for MySQL.
    ZMySQLZmysqlztext/x-mysqlrTz(#|--\s+).*\n?rVrWrbz[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*)(\()rez@[a-z0-9]*[._]*[a-z0-9]*r�rgrhrirjr�N)rOrPrQrRrnrorprqrrrsr
rrtrurrzryr�Doubler�rrr
ZTyperr�rZConstantr�rxr{r=r=r=r>rsF
����6

��c@s.eZdZdZdZdgZdgZdgZdd�ZdS)	r zO
    Lexer for example sessions using sqlite3.

    .. versionadded:: 0.11
    Z
sqlite3conZsqlite3z*.sqlite3-consoleztext/x-sqlite3-consolec	cs�tf|j�}d}g}t�|�D]�}|��}|�d�s>|�d�rt|�t|�dtj	|dd�fgf�||dd�7}q|r�t
||�|��D]
}|Vq�d}g}|�d�r�|��tj
|fVq|��tj|fVq|r�t
||�|��D]
}|Vq�dS)Nr�zsqlite> z   ...> r�zSQL error: )rrKr�r4r2rLrMr�rr�rr8r6�	Tracebackr�)rCr�rGr�r�r.r�r�r=r=r>r8ks2
��
�z)SqliteConsoleLexer.get_tokens_unprocessedN)	rOrPrQrRrnror�rpr8r=r=r=r>r _sc@sreZdZdZdZdgZdgZdgZej	Z
ddefdefd	e
fd
ejfdejfdefd
ejfdejfdefg	iZdS)r!zx
    Lexer for Relation Query Language.

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

    .. versionadded:: 2.0
    ZRQLZrqlz*.rqlz
text/x-rqlrmrTz�(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)\brbz[A-Z_]\w*\??r�r�r�N)rOrPrQrRrnror�rprqrrrsr
r
rrrwrrzrrtrr{r=r=r=r>r!�s(���)7rRrqZpygments.lexerrrrrrZpygments.tokenrrr	r
rrr
rrrrZpygments.lexersrrZ
pygments.utilrZ"pygments.lexers._postgres_builtinsrrrrr�__all__�compiler�rrr-r7r?�objectr@rrr�r�r�r�Zre_errorr�r�rrrrr r!r=r=r=r>�<module>sJ'4�
%'8!




�Jt8I(