U
    YSh+"                     @   sj   d 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 dgZG dd deZdS )z
    pygments.lexers.prql
    ~~~~~~~~~~~~~~~~~~~~

    Lexer for the PRQL query language.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexercombinedwordsincludebygroups)
CommentLiteralKeywordNameNumberOperatorPunctuationStringText
Whitespace	PrqlLexerc                   @   s$  e Zd ZdZdZdZdgZdgZddgZdZ	e
d	d
dZdd Zdd Zdejfdejfdefdeeejedfeejfdejfdejfededdefg
deejejeddfdeejejeddfdeejejedd fd!eejejedd"fd#eejejed$dfd%eejejed$dfd&eejejed$d fd'eejejed$d"fd(eejejd)fd*eejejd+fd,eejejd-fd.eejejd/fd0ejed$d)fd1ejed$d+fd2ejed$d-fd3ejed$d/fd4ejfd5ejfd6ejfd7efed8d9e fd:e fd;e!fed<d=e"j#fgd>e$j%fd?e$j%fd@e$j&fdAe$j'fdBe$j(fdCe$j)fged$gdDej*fgdEej*fedFgeejeejeejeejd2ejdGfdHej*fedIgd3ejdGfdJej*fedKgd2ejdGfdHej*fedLgd3ejdGfdJej*fedMgd0ejdGfedIdNejfgd1ejdGfedKdNejfgd0ejdGfedLdNejfgd1ejdGfedMdNejfgdOe!dPfdQej+dGfdRej+dGfdefedgdOe!dPfdSe!dGfdefedge
dTd
defe
dUd
dej,fge
dVd
de"j-fgdWej.fdXej.dYfdZej.fd[ej.dGfgd\e"j/dGfgd]Z0d^S )_r   z]
    For PRQL source code.

    grammar: https://github.com/PRQL/prql/tree/main/grammars
    PRQLzhttps://prql-lang.org/prqlz*.prqlzapplication/prqlzapplication/x-prqlz2.17)
boolintZint8Zint16Zint32Zint64Zint128floattextsetz\b)suffixc                 C   s   dt jfd| fd| fd| fgS )Nz]\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}z[^\\\'"%{\n]+[\'"\\]z%|(\{{1,2})r   Interpolttype r   G/root/rtd-docs/venv/lib/python3.8/site-packages/pygments/lexers/prql.pyinnerstring_rules(   s    zPrqlLexer.innerstring_rulesc                 C   s"   dt jfdt jdfd| fd| fgS )Nz\}z\{expr-inside-fstringz[^\\\'"{}\n]+r   r   r   r   r   r    fstring_rules5   s
    
zPrqlLexer.fstring_rulesz#!.*z#.*z\s+z^(\s*)(module)(\s*)importsz^prql Zletkeywordsexprz^[A-Za-z_][a-zA-Z0-9_]*z(f)(""")fstringescapetdqfz(f)(''')tsqfz(f)(")dqfz(f)(')sqfz(s)(""")stringescapez(s)(''')z(s)(")z(s)(')z(?i)(r)(""")tdqsz(?i)(r)(''')tsqsz
(?i)(r)(")dqsz
(?i)(r)(')sqsz"""z'''"'zQ@\d{4}-\d{2}-\d{2}T\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?z@\d{4}-\d{2}-\d{2}z?@\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?z[^\S\n]+numbersz&->|=>|==|!=|>=|<=|~=|&&|\|\||\?\?|\/\/z[-~+/*%=<>&^|.@]z[]{}:(),;[]	functionsz[A-Za-z_][a-zA-Z0-9_]*zT(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?z!\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?z0[oO](?:_?[0-7])+z0[bB](?:_?[01])+z0[xX](?:_?[a-fA-F0-9])+z\d(?:_?\d)*z.\\([\\bfnrt"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})z"\\(N\{.*?\}|u\{[a-fA-F0-9]{1,6}\})bytesescapez#popz\\\\|\\"|\\\nfstrings-doublez\\\\|\\'|\\\nfstrings-singlestrings-doublestrings-singlez\nz[{([]expr-inside-fstring-innerz	(=\s*)?\}z(=\s*)?:z[])}])ZintocasetypemoduleZinternal)truefalsenull)minmaxsumZaveragestddevZeveryanyZconcat_arraycountZlagZleadfirstlastZrankZ
rank_denseZ
row_numberroundasinZtuple_everyZ	tuple_mapZ	tuple_zip_eqZ_is_nullZ	from_textlowerupperZread_parquetZread_csvz-(?!\})z\{-commentz[^-}]z-\}z\w+(\.\w+)*)rootr&   r3   r'   r5   r,   r7   r6   r9   r8   r*   r+   r/   r0   r(   r)   r-   r.   r"   r:   r%   r4   rO   r$   N)1__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedr   ZbuiltinTypesr!   r#   r   Docr   Singler   r   r	   	NamespaceTypeReservedDeclarationr   AffixDoubler   r   Dater   r   r   r
   Variabler   FloatOctBinHexIntegerEscaper   ConstantFunction	MultilineClasstokensr   r   r   r    r      sX      5








  


 N)rT   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   r   r   __all__r   r   r   r   r    <module>   s   
0